building IoT, März 2021, online: Vortrag von Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware)
Abstract: Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Die Stadt Rosenheim ist auf dem Weg zur Smart City mit zahlreichen bereits umgesetzten Use Cases im kommunalen Bereich. Mit der Eröffnung unseres neuen Büros in Zeiten der Pandemie sahen wir den Bedarf und die Gelegenheit für eine moderne Raumklima-Überwachung unter Verwendung der lokalen LoRaWAN Infrastruktur. Dieser Vortrag berichtet wie wir in sehr kurzer Zeit eine eigene Smart-Office Lösung umgesetzt haben. Wir beschreiben die konzeptionelle Architektur und zeigen die wesentlichen Bestandteile des komplett Event-getriebenen Serverless Backends auf Basis verschiedener Dienste der Google
Cloud.
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
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();
});
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