You are viewing an older revision! See the latest version
mbedServer
Einführung¶
Bei Internet auf Dingen Geräten stehen folgende Ziele im Vordergrund:
- Direkt Adressierbar, Gerät zu Gerät (Master/Slave), Gerät zu Smartphone/Tablet (Wearables) oder Gerät - Cloud
- Einfache Einbindung in bestehende Netzwerke (Ethernet, WLAN, Bluetooth)
- Anpassung an limitierte Ressourcen der Geräte (min. 32KB Flash, 4KB RAM) oder Wissen der Anwender
- Skalierbar von 250 - 300 Geräte in einem Haushalt
- Antwortzeiten unter 100 Millisekunden für eine typische Interaktion (z.B. im Auto)
- Nahtlose Integration mit Smartphones und Tablets
- Minimaler Stromverbrauch für lange Batterielebensdauer (ein Jahr und länger)
Um diese Ziele zu erreichen, werden eigene Protokolle und Device Server verwendet.
Ein Device Server nutzt:
- Open-Source-Protokolle wie COAP / HTTP, MQTT, TLS / TCP, DTLS / UDP und OMALWM2M für die Datenkommunikation und Gerätemanagement.
- Stellt die Interoperabilität zwischen Geräte Protokollen wie MQTT, COAP etc. und REST (über HTTP) her.
COAP¶
Constrained Application Protocol (Coap) ist ein Software-Protokoll welches für Internet der Dinge Geräte zugeschnitten ist.
COAP ist auf den meisten Geräten, die UDP Unterstützen, lauffähig.
Ein COAP fähiges Gerät publiziert seine Sensoren und Aktoren in einem Resource Directory oder stellt selber ein solches zur Verfügung.
Mittels Resource Discovery können die vorhandenen Sensoren und Aktoren mit ihren Attributen abgefragt werden.
Resource discovery
GET /.well-known/core
Antwort
</config/groups>;rt="core.gp";ct=50, </large>;rt="block";sz=1280, </device>;title="Device management", </sensors/temp>;if="sensor";rt="ucum.Cel", </sensors/light>;if="sensor";rt=light-lux
rt=Resource Type, ct=Content Type, if=Interface Description
Weitere Informationen: ARM CoAP Tutorial
IoT @ Eclipse¶
Das IoT Eclipse Projekt ist einen Sammlung von Internet der Dinge Projekten.
Californium¶
Dienst zum Erstellen von CoAP Clients und Servern in Java.
leshan - Open Mobile Alliance (OMA) Lightweight M2M (LWM2M) Server¶
leshan Erweitert Californium um einen Lightweight M2M (LWM2M) Server. D.h. neben der CoAP Funktionalität kommen weitere hinzu, wie:
- RD - Resource Directory (Verwalten von CoAP Clients)
- Eine Web Oberfläche
- REST API
- Standard Device Management Objects
Standard Device Management Objects
- 1 - Server
- 2 - Zugriffsberechtigungen
- 3 - Gerät
- 4 - Monitoring
- 5 - Firmware
- 6 - GPS Informationen
Installation
wget https://hudson.eclipse.org/leshan/job/leshan/lastSuccessfulBuild/artifact/leshan-standalone.jar java -jar ./leshan-standalone.jar
Anwahl der Web Oberfläche mittels http://localhost/8080.
Beispiele: REST (leshan Server)
# Alle Clients abfragen (Antwort im JSON Format) curl -X GET http://localhost:8080/api/clients # Wert von LED2 abfragen (Antwort im text/plain Format) curl -X GET http://localhost:8080/api/clients/mbed-k64f-1234/10/0/2 # Wert für LED2 setzen curl -X GET -vvv http://localhost:8080/api/clients/mbed-k64f-1234/10/0/2 -H "Content-Type: text/plain" -d "10"
Import programCOAPleshan
CoAP Device Server Client mit leshan Server
Übungen¶
Installiert den LWM2M Server auf Eurem Notebook.
Importiert das COAPleshan Programm, ändert die IP-Adresse des Servers auf die Eures Notebooks und lädt es auf Eurer Board.