Cloud IOT (u.A. Azure-IOT) - Erfahrungen.

Begonnen von juergs, 21 April 2019, 10:16:12

Vorheriges Thema - Nächstes Thema

juergs

Hallo Zusammen,

da das IOT-Thema allgemein in der Wahrnehmung an Bedeutung zugenommen hat,
habe ich auch ich mich mit dem Thema intensiver befasst und wollte hier kurz darüber berichten.

Mein Einstiegspunkt war das kostenlose Angebot workshop-iot-in-a-day-von-null-auf-cloud-in-einem-tag 1.

Ich hatte mir im Vorfeld dazu hauptsächlich folgende IOT-Cloud-Lösungen angesehen:
hauptsächlich um meine Sensoren-Daten (BME680 etc.) mit einfachen Mitteln (Arduino+ESP8266 etc.) in der IOT-Cloud mit anzubinden.

Die Erwartungshaltung war eigentlich schlicht:  Sketch downloaden und mit einem ESP loslegen ....  ::),  eigentlich! Denkste!  :(

1.) Microsoft hat für ihre Cloud-Infrastruktur die IOT-Szene als zusätzliche Anwendungsfeld entdeckt und bietet in der Azure-Infrastruktur nun auch eine IOT-Integration an:
Azure-IOT https://azure.microsoft.com/de-de/.

Scheinbar hat MS SW-Entwickler im Blickpunkt, die ohne viel Lötarbeit loslegen wollen... und bieten ein fertiges azure-iot-developer-kit an, mit dem man
ein paar (noch) wenige vorgefertigte Projekte umsetzen Beispiel-haft kann.
Die von MS bevorzugte Hardware-Platform für die IOT-Seite ist wohl das "IoT DevKit" mit dem AZ3166-Device (EMW3166) , das eine ähnliche Plattform darstellt, wie z.B. "micro:bit".

MXCHIP-AZ3166: get-started

ESP8266: azureiothub-esp8266, azure-iot-arduino und iothub_client_sample_mqtt_esp8266, iot-hub-arduino-huzzah-esp8266-get-started
m5Stack: /get_started/rtos-m5stack

Aber wie war es mit der Einbindung von ESP8266 oder ESP32?
Es waren Beispiele im IOT-DevKit für den ESP8266 und ESP32 enthalten, waren aber leider zu alt (?) und bei mir, trotz erhöhter Anstrengungen  (esp8266\2.5.0/tools/sdk),
nicht in der Arduino-IDE compilierbar ... 

Line 1941: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:138:18: error: expected unqualified-id before '(' token
Line 1947: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:139:11: error: there are no arguments to 'typeof' that depend on a template parameter, so a declaration of 'typeof' must be available [-fpermissive]
Line 1955: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:139:13: error: expected '}' before '_x'
Line 1961: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:139:13: error: expected ')' before '_x'
Line 1963: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:140:4: error: '_x' was not declared in this scope
Line 1969: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:141:2: error: expected primary-expression before ')' token
Line 1975: C:\Users\js\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Arduino.h:141:2: error: expected ';' before ')' token[code]
Error compiling for board NodeMCU 1.0 (ESP-12E Module)


In der neuesten Version des DevKits sind die Beispiele für den ESP sogar komplett verschwunden bzw. in Richtung espressif und ESP8266_RTOS_SDK abgewandert bzw. https://github.com/espressif/esp-idf.


2.) thinger.io
ist OpenSource und für Maker mit kostenlosen Account für 2 IOT-Devices verfügbar.
Deren Hardware-Beispiele für den ESP8266 funktionierten .... einfach.  :D :)

Erkenntnisse:
Microsoft bietet mit der IOT-Central-Oberfläche eine sehr einfache Möglichkeit schnell mal eine (relativ) schöne Oberfläche "stricken"
und IOT-Devices monitoren zu können, um Entscheidern das Thema IOT näherbringen zu können, mehr aber auch nicht.
(Anmk.) Die "berühmte" Microsoft-"Halbherzigkeit" (ich denke da z.B. an das Thema "Mobile" + "Phone") ist auch hier (noch?) deutlich zu spüren.
Beim Testen bin ich doch noch auf viele Ungereimtheiten und Fehler gestoßen, die MS hoffentlich in den nächsten Versionen behebt.

Thinger bietet in diesem Zusammeng auch eine ansprechende Oberfläche an, die in etwa mit der Azure-IOT-Central vergleichbar ist, aber sich
auf zwei kostenlosen Devices beschränkt. Für Entwickler bzw. Maker aber mehr als ausreichend.

Da MS mit IOT Umsatz generieren möchte, sind viele Dinge kostenpflichtig. Insbesondere nach Ende der 30tägigen Ausprobier-Phase
bei der Umwandlung in pay-as-you-go-Abrechnungs-Modus. Hier muss man dann schon etwas mehr aufpassen welche
Leistung man  ausprobiert, da dann einiges sehr schnell Kosten verursachen kann.
Apropos Kosten: Wer sich die teils verwirrenden, teils widersprüchlichen Aussagen Microsofts zu den Kosten mal zu Gemüte geführt hat ...      :( >:(

Programmierung:
Die MXCHIP-AZ3166-Platine besteht aus einem WiFI-SOC mit einem ARM-STM32F412 SOC  und einem STM32F103 https://www.dfrobot.com/product-1616.html.
Hier ist einfach mehr Programmier-Know-How (MBED, MBED-OS, RTOS) zu investieren, wie z.B. bei einem ESP8266.

Weiterführend mit IOT-Hub:
https://docs.microsoft.com/de-de/azure/iot-hub/quickstart-send-telemetry-dotnet
https://azure-samples.github.io/iot-devkit-web-simulator/
https://github.com/Microsoft/vscode-iot-workbench/blob/master/docs/iot-devkit/devkit-shakeshake.md
https://www.kitronik.co.uk/microbit/bbc-micro-bit-accessories.html
https://github.com/jimbobbennett/MXChip-Workshop


Grüße,
Jürgen

PS: Es gibt natürlich noch viele andere IOT-Cloud-Umsetzungen, die ich Zeit-bedingt erst mal (für mich) außen vor gelassen habe ...
Außerdem ist alles stark im Flow ...  ;)

Lafarik

Hab jetzt von Microsoft auch so ein Teil geschenkt bekommen und prüfe grade wie und wofür ich es in meiner FHEM-Umgebung verwenden kann... :)
FHEM,FritzDECT,Z-Wave,LaCrosse,MQTT2,ConBeeII,ZigBee,EnOcean,Sonoff 4CH,NanoLeaf,LD382A,Sonos,Synology,IPCam,eBus3.0