Lehký úvod do HW pro IoT Štěpán
Azure IoT Hub
Telemetrická data Měření Logy Nepřetržitý tok Hlídání hodnot v reálném čase Big Data Machine learning NoSQL databáze
Jen pro představu… 1 hodina = 60 minut 1 den = minut 1 týden = minut 1 měsíc = minut 1 rok = minut
Jen pro představu… 1 minuta = 60 vteřin 1 hodina = vteřin 1 den = vteřin 1 týden = vteřin 1 měsíc = vteřin 1 rok = vteřin
Azure IoT Hub Management koncových zařízení DeviceExplorer Každé zařízení má vlastní bezpečnostní klíče Obousměrná komunikace Zabezpečení pomocí TLS a SAS Podporované protokoly HTTPS REST AMQP MQTT Napojení na další služby Microsoft Azure
Bezpečnost V současné době velmi podceňované Fyzická bezpečnost zařízení Šifrování
Azure IoT Hub Demo
Stream Analytics Zpracování toku dat z jednoho nebo více zdrojů „Filtr“ Agregace Výstup do dalších Azure služeb
IoT Hub Metadata PROPERTYDESCRIPTION EventProcessedUtcTimeThe date and time that the event was processed. EventEnqueuedUtcTimeThe date and time that the event was received by the IoT Hub. PartitionIdThe zero-based partition ID for the input adapter. IoTHub.MessageIdUsed to correlate two-way communication in IoT Hub. IoTHub.CorrelationIdUsed in message responses and feedback in IoT Hub. IoTHub.ConnectionDeviceId The authenticated id used to send this message, stamped on servicebound messages by IoT Hub. IoTHub.ConnectionDeviceGenerationId The generationId of the authenticated device used to send this message, Stamped on servicebound messages by IoT Hub. IoTHub.EnqueuedTimeTime when the message was received by IoT Hub. IoTHub.StreamIdCustom event property added by the sender device.
Základní nastavení Stream Analytics DEMO
Agregace Skoro Real Time zpracování Jeden nebo více zdrojů Různé možnosti agregace Tumbling Window Hopping Window Sliding Window
Tumbling Window SELECT sensorld, AS count FROM sensorReadings TIMESTAMP BY time GROUP BY sensorld, TumblingWindow(second, 10)
Hopping Window SELECT sensorld, AS Count, AVG(temp) FROM SensorReadings TIMESTAMP BY time GROUP BY sensorld, HoppingWindow(second, 10, 5)
Sliding Window SELECT sensorld, MIN(temp) as temp FROM SensorReadings TIMESTAMP BY time GROUP BY sensorld, SlidingWindow(second, 5) HAVING MIN(temp) > 75
Azure IoT Hub SDK C, C#, JAVA, Node.js
Azure IoT Hub SDK Open Source C, C#, JAVA, Node.js Python Implementuje jen posílání a příjem zpráv
Azure IoT Hub REST API Všechny funkce dostupné přes REST API Požadavek musí být podepsán Shared Access Signature (SAS) Vynuceno TLS
Shared Access Signature HMAC-SHA256 Kombinace URL požadavku a času vypršení platnosti HTTP hlavička Authorization {URL-encoded-resourceURI} + "\n" + expiry
Shared Access Signature DEMO
Posílání a příjem zpráv Device to Cloud (D2C) – odesílání zpráv ze zařízení Cloud to Device (C2D) – odesílání zpráv na zařízení
Device to Cloud
Cloud to Device
Hardware Raspberry Pi, DragonBoard 410C, ESP8266, mbed
Raspberry Pi
Zná každý Podporovaný OS Linux (Debian, Fedora, …) Windows 10 IoT Core
3.3 V
Funkce GPIO Digitální Nelze použít všechna GPIO I 2 C Vestavěný pull-up rezistor 1k8 SPI Dva CE Více je nutné řešit manuálně PWM UART
3.3 V logika HW musí odpovídat 3.3 V logice Převodník úrovní
Omezený proud Nenapájejte hardware přímo z Raspberry Pi Používejte alespoň základní tranzistorový spínač pro větší proudy Author: Andreas B Mundt, CC A-SA
ADC, hodiny reálného času, PWM HAT Externí moduly Mnoho výrobců DIY (PICAXE, AVR, Arduino, …) Většinou I 2 C komunikace
DragonBoard 410C
1.8 V
DragonBoard 410C Velmi podobné Raspberry Pi Wifi a Bluetooth přímo na desce 8 GB eMMC 1 GB RAM Podporovaný OS Android 5.1 (Lollipop) na Linux Kernel 3.10 Debian 8.0 Windows 10 IoT Core
ESP8266
SoC kombinující mikrokontrolér a Wi-fi Extrémně nízká cena Velký výběr modulů Různý firmware LUA, Micropython, … Částečně kompatibilní s Arduino IDE Alternativa k Arduino Knihovna nesmí být závislá na AVR
Základní technická specifikace 32-bit RISC CPU: Tensilica Xtensa LX106, 80 MHz 64 KB RAM pro instrukce 96 KB RAM pro data Externí QSPI flash až 16MB IEEE b/g/n WEP, WPA/WPA2 16 GPIO SPI, I²C 1 10-bit ADC
ESP8266 a Azure IoT Hub DEMO
mbed Platforma od ARM
mbed Platforma společnosti ARM Podpora procesorů s jádrem ARM Cortex-M Celá řada desek On-line IDE
mbed Ukázka desek