SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Mit LoRaWAN und Serverless zur
eigenen Smart-O
ffi
ce-Lösung
building IoT, 24. März 2021


@LeanderReimer #qaware #CloudNativeNerd
Dev
Mario-Leander Reimer


Principal Software Architect


@LeanderReimer


#cloudnativenerd #qaware


https://lreimer.github.io
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
2019
3
https://www.ovb-online.de/rosenheim/rosenheim-stadt/rosenheimer-fassadenpreis-alten-industriebau-13784656.html
https://www.ovb-online.de/rosenheim/rosenheim-stadt/offenen-denkmals-einblicke-alte-papierfabrik-rosenheim-12987260.html
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
smartcity-rosenheim.de
6
Netzbetreiber (Internet, TV, Telefon) Überwachung von Funktionsgebäuden Die Bienenstockwaage
Füllstandsorientierte Containerleerung Zählerfernauslesung Überwachung von Gebäuden
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
QAware O
ffi
ce Use Cases
• Überwachung des Raumklimas (Temperatur, CO2) für unsere
Besprechungsräume


• Temperatur- und Lichtüberwachung im Serverraum


• Überwachung des Geräuschpegel im Großraumbüro


• Live Belegungsplan für die Shared Desks
7
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
2020
8
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Das Team
9
The Developer The Product Owner
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Die Sensoren
10
ELSYS ERS CO2 Raumsensor ELSYS ERS-Desk Bewegungsmelder
ELSYS ERS Sound Geräuschpegelsensor
• Temperatur


• Luftfeuchtigkeit


• Bewegung (PIR)


• Licht


• Geräuschpegel
• Temperatur


• Luftfeuchtigkeit


• Bewegung (PIR)


• Licht


• CO2 Level
• Temperatur


• Luftfeuchtigkeit


• Bewegung (PIR)


• Licht


• Belegungszustand
Bild: pavlinec – gettyimages.de
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
–Werner Vogels, CTO, Amazon
„Kein Server ist einfacher zu verwalten,
als kein Server!“
12
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
13
Serverless computing refers to a new model of cloud
native computing, enabled by architectures that do
not require server management to build and run
applications. It leverages a
fi
ner-grained deployment
model where applications, bundled as one or more
functions, are uploaded to a platform and then
executed, scaled, and billed in response to the exact
demand needed at the moment.
https://landscape.cncf.io/
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
14
Functions


are the preferred
Programming Model for
Serverless Applications and
Event-driven Architectures
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
15
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
16
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
17
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Beispiel: Receiver Function
18
const functions = require('firebase-functions')


const admin = require('firebase-admin')


admin.initializeApp(functions.config().firebase)


exports.receive = functions.https.onRequest((request, response) => {


if (request.method !== 'POST') {


return response.status(405).end();


}


if (request.get('content-type') !== 'application/json') {


return response.status(415).end();


}


const data = request.rawBody;


const json = JSON.parse(data.toString());


json.data = decodePayload(hexToBytes(json.data));




admin.firestore().collection('raw-device-data')


.add(json)


.then(() => console.info('Added raw device data'));




return response.status(200).end();


});
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Beispiel: Cloud IoT Core mit MQTT.fx
19
$ export PROJECT_ID=`gcloud config get-value core/project`


$ export REGION=`gcloud config get-value compute/region`


# create a Cloud IoT Core registry


$ gcloud pubsub topic create device-state


$ gcloud pubsub topic create device-telemetry


$ gcloud iot registries create iot-registry --project=$PROJECT_ID --region=$REGION 


--enable-mqtt-config --no-enable-http-config 


--state-pubsub-topic=device-state --event-notification-config=topic=device-telemetry


# generate RSA key pair for IoT device


$ openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:2048


$ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem


$ openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in rsa_private.pem -out rsa_private.pkcs8


# create a device for the MQTT.fx client


$ gcloud iot devices create mqtt.fx --project=$PROJECT_ID --region=$REGION 


--registry=iot-registry --public-key path=rsa_public.pem,type=rsa-pem


# send commands to device and subfolder via MQTT


$ gcloud iot devices commands send --region=$REGION --registry=iot-registry --device=mqtt.fx 


--command-data=HIGH --subfolder=co2


$ gcloud iot devices commands send --region=$REGION --registry=iot-registry --device=mqtt.fx 


--command-data=HIGH —subfolder=temp
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Die Klo-Ampel
• Raspberry Pi Zero W Starter Kit


• Feob Powerbank 24800mAh


• blink(1) mk3 LED


• Go Application als MQTT Client
20
// building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware
Weitere Ideen und Schritte
• Nutzung von The Things Network im O
ffi
ce München


• Nutzung von AWS IoT Core for LoRaWan


• Nutzung eines API Gateways um Funktionen zu veröffentlichen


• Entwicklung von Client Apps (Desktop, Mobile) zur Status Anzeige


• Implementierung auf AWS und Azure als Technologie-Vergleich
21
Mario-Leander Reimer


Principal Software Architect, QAware GmbH


mario-leander.reimer@qaware.de


https://www.qaware.de


https://speakerdeck.com/lreimer/


https://github.com/lreimer/
&

Más contenido relacionado

La actualidad más candente

Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
QAware GmbH
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
Tobias Schneck
 

La actualidad más candente (20)

Kaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinKaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes sein
 
DevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der SchieneDevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der Schiene
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-UmfeldEnterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
Making the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUICMaking the internet faster HTTP/3 und QUIC
Making the internet faster HTTP/3 und QUIC
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Holistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice ArchitekturenHolistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice Architekturen
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 
Aqiptech broschüre 2016
Aqiptech broschüre 2016Aqiptech broschüre 2016
Aqiptech broschüre 2016
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with Spark
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 

Similar a Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung

Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
QAware GmbH
 

Similar a Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung (20)

Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
 
Per Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHHPer Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHH
 
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationWebcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 
Hsps2014
Hsps2014Hsps2014
Hsps2014
 
Cloud Konzepte und Strategien
Cloud Konzepte und StrategienCloud Konzepte und Strategien
Cloud Konzepte und Strategien
 
PROFI Cloud Lösung
PROFI Cloud LösungPROFI Cloud Lösung
PROFI Cloud Lösung
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-Anwendungen
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Peter Hanke (Netapp Austria)
Peter Hanke (Netapp Austria)Peter Hanke (Netapp Austria)
Peter Hanke (Netapp Austria)
 
DACHNUG50 MX Digitalisierung - DACHNUG Vortrag.pdf
DACHNUG50 MX Digitalisierung - DACHNUG Vortrag.pdfDACHNUG50 MX Digitalisierung - DACHNUG Vortrag.pdf
DACHNUG50 MX Digitalisierung - DACHNUG Vortrag.pdf
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 

Más de QAware GmbH

"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
QAware GmbH
 

Más de QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung

  • 1. Mit LoRaWAN und Serverless zur eigenen Smart-O ffi ce-Lösung building IoT, 24. März 2021 @LeanderReimer #qaware #CloudNativeNerd Dev
  • 2. Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware https://lreimer.github.io
  • 3. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 2019 3
  • 4.
  • 6. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware smartcity-rosenheim.de 6 Netzbetreiber (Internet, TV, Telefon) Überwachung von Funktionsgebäuden Die Bienenstockwaage Füllstandsorientierte Containerleerung Zählerfernauslesung Überwachung von Gebäuden
  • 7. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware QAware O ffi ce Use Cases • Überwachung des Raumklimas (Temperatur, CO2) für unsere Besprechungsräume • Temperatur- und Lichtüberwachung im Serverraum • Überwachung des Geräuschpegel im Großraumbüro • Live Belegungsplan für die Shared Desks 7
  • 8. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 2020 8
  • 9. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Das Team 9 The Developer The Product Owner
  • 10. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Die Sensoren 10 ELSYS ERS CO2 Raumsensor ELSYS ERS-Desk Bewegungsmelder ELSYS ERS Sound Geräuschpegelsensor • Temperatur • Luftfeuchtigkeit • Bewegung (PIR) • Licht • Geräuschpegel • Temperatur • Luftfeuchtigkeit • Bewegung (PIR) • Licht • CO2 Level • Temperatur • Luftfeuchtigkeit • Bewegung (PIR) • Licht • Belegungszustand
  • 11. Bild: pavlinec – gettyimages.de
  • 12. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware –Werner Vogels, CTO, Amazon „Kein Server ist einfacher zu verwalten, als kein Server!“ 12
  • 13. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 13 Serverless computing refers to a new model of cloud native computing, enabled by architectures that do not require server management to build and run applications. It leverages a fi ner-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment. https://landscape.cncf.io/
  • 14. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 14 Functions are the preferred Programming Model for Serverless Applications and Event-driven Architectures
  • 15. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 15
  • 16. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 16
  • 17. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware 17
  • 18. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Beispiel: Receiver Function 18 const functions = require('firebase-functions') const admin = require('firebase-admin') admin.initializeApp(functions.config().firebase) exports.receive = functions.https.onRequest((request, response) => { if (request.method !== 'POST') { return response.status(405).end(); } if (request.get('content-type') !== 'application/json') { return response.status(415).end(); } const data = request.rawBody; const json = JSON.parse(data.toString()); json.data = decodePayload(hexToBytes(json.data)); admin.firestore().collection('raw-device-data') .add(json) .then(() => console.info('Added raw device data')); return response.status(200).end(); });
  • 19. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Beispiel: Cloud IoT Core mit MQTT.fx 19 $ export PROJECT_ID=`gcloud config get-value core/project` $ export REGION=`gcloud config get-value compute/region` # create a Cloud IoT Core registry $ gcloud pubsub topic create device-state $ gcloud pubsub topic create device-telemetry $ gcloud iot registries create iot-registry --project=$PROJECT_ID --region=$REGION --enable-mqtt-config --no-enable-http-config --state-pubsub-topic=device-state --event-notification-config=topic=device-telemetry # generate RSA key pair for IoT device $ openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:2048 $ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem $ openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in rsa_private.pem -out rsa_private.pkcs8 # create a device for the MQTT.fx client $ gcloud iot devices create mqtt.fx --project=$PROJECT_ID --region=$REGION --registry=iot-registry --public-key path=rsa_public.pem,type=rsa-pem # send commands to device and subfolder via MQTT $ gcloud iot devices commands send --region=$REGION --registry=iot-registry --device=mqtt.fx --command-data=HIGH --subfolder=co2 $ gcloud iot devices commands send --region=$REGION --registry=iot-registry --device=mqtt.fx --command-data=HIGH —subfolder=temp
  • 20. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Die Klo-Ampel • Raspberry Pi Zero W Starter Kit • Feob Powerbank 24800mAh • blink(1) mk3 LED • Go Application als MQTT Client 20
  • 21. // building IoT // Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung // @LeanderReimer #cloudnativenerd #qaware Weitere Ideen und Schritte • Nutzung von The Things Network im O ffi ce München • Nutzung von AWS IoT Core for LoRaWan • Nutzung eines API Gateways um Funktionen zu veröffentlichen • Entwicklung von Client Apps (Desktop, Mobile) zur Status Anzeige • Implementierung auf AWS und Azure als Technologie-Vergleich 21
  • 22. Mario-Leander Reimer Principal Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ https://github.com/lreimer/ &