Die Technik hinter IoT: Arduino, Raspberry Pi & Co. Praxisbeispiele für den Hausgebrauch Uwe Steinmann MMK GmbH 25.-26. September 2017 Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 1 / 16
Inhalt 1 Die Zutaten für IoT 2 Die Hardware 3 Die Vernetzung 4 Einige Hardware-Beispiele 5 Die Software Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 2 / 16
Die Zutaten für IoT Internet Dinge Genaugenommen braucht man einen Zugang aus dem Internet zu den Dingen... es fehlt sicher noch ein Stück Hardware... und natürlich noch etwas Software... und letztlich noch eine Verbindung und ein Protokoll, um mit den Dingen zu reden Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 3 / 16
Die Zutaten für IoT Netzwerkverbindung zwischen Internet und den Dingen Prozessor, Speicher, diverse Schnittstellen und Sensoren Datenerfassung, Protokolle, Dienste im Internet zum Speichern oder Abholen von Daten Das existiert schon seit mindestens 25 Jahren und doch ist das IoT kaum älter als ein paar Jahre. Nur kabelgebundene Verbindung zum Internet oder proprietäre Funkverbindungen Fehlende Minaturisierung und Integration aller notwendigen Hardware-Komponenten in einem Chip Effiziente Protokolle, die sich mit wenig Hardware-Ressourcen umsetzen lassen Fehlende Stromsparmodi Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 4 / 16
Die Hardware mindestens 8-Bit Prozessorkern einige KB ROM (EPROM, EEPROM, Flash) einige hundert Byte RAM PIO, UART ADC, DAC, Timer, Watchdog, I2C, USB Das alles nach Möglichkeit auf einem Chip Mikrocontroller Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 5 / 16
Die Hardware (Prozessor) Intel MCS-51 Baureihe, z.b. 8051 (On-Chip-ROM, 128B RAM, UART, Timer, 1980), Siemens 80C517 (MCS-51 kompatible, 256B RAM, ADC, 16-Bit-Arithmetik, Watchdog, Power-Modi, ca. 1990) MCS-51 kompatible MC von ATMEL, MAXIM/DALLAS mit Flash Motorola 68HC11 (512B CMOS EEPROM, 256B RAM, 8K ROM, ADC, UART, PWM, 1985) Microchip Technology PICmicro, PIC32 (8-, 16, 32-Bit Prozessoren, zunächst EPROM, später Flash, sehr viele Varianten) TI MSP430 (16-Bit RISC, niedriger Stromverbrauch, ADC, DAC, Timer, I2C, USB, etc., Anfang 1990) Atmel AVR, AVR32 (ATmega324P, ATtiny85, etc., seid 1996) STMicroelectronics STM32 (32-Bit, Cortex-M, ADC, Timer, etc., seit 2007) Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 6 / 16
Die Hardware (Boards) Oft minimale Beschaltung der Mikrocontroller für Entwicklungszwecke und prototypische Anwendungen. Arduino mit ATmega Arduino Nano mit ATmega Digispark mit ATTiny Blue/Black Pill mit STM32 STM32 Nucleo Diverse Boards mit PIC LaunchPad mit MSP430 Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 7 / 16
Die Vernetzung Kabelgebunden Ethernet USB Kabellos WLAN Bluetooth Mobilfunk ZigBee Z-Wave Weitere IoT-Funksysteme für spezielle Anforderungen Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 8 / 16
Beispiele Die kleine Lösung spezielle Varianten der genannten Boards Erweiterung der Boards mittels Shields (Ethernet, WLAN, etc.) Kombination der Boards mit BlueTooth/WLAN-Modulen mit serieller Schnittstelle Die große Lösung Raspberry PI 1/2/3 Raspberry PI Zero W BeagleBone WLAN-Module, die auch programmiert werden können, z. B. ESP8266, ESP32 von Espressif Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 9 / 16
Digispark ATtiny85 von Microchip (früher ATMEL) 8Kb Flash 512 B SRAM 512 B EEPROM max. 20 MHz, 16,5 MHz mit int. Oszillator DIP8 Gehäuse, max. 6 IO-Pins ADC, TWI, Timer Programmierbar in C/C++, Assembler Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 10 / 16
ESP8266 Espressif 4-16 MB Flash (extern) 96 KB SRAM 80/160 MHz in der Regel als fertiges Modul verfügbar WLAN Programmierbar in C mit SDK des Herstellers, nicht vollständig freie Software, auch als Modem nutzbar ca. 20% der Rechenleistung für WLAN LUA, Python Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 11 / 16
Raspberry PI Zero W 1 GHz Single Core CPU 512 MB RAM Steckplatz für SD-Card HDMI, USB, 40 Pin-Header Bluetooth 4.1 und Low Energy WLAN Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 12 / 16
Die Software vollständiges Linux, oft Debian-basiert reduziertes Linux, z. B. OperWRT, busybox, ulibc MicroPython, LUA, JavaScript C-Programme unter Verwendung verschiedener SDKs Assembler Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 13 / 16
Das Hello World des Arduino int led = 13; void setup() { pinmode(led, OUTPUT); } void loop() { digitalwrite(led, HIGH); delay(1000); digitalwrite(led, LOW); delay(1000); } Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 14 / 16
C Es geht auch in schlichtem C, übersetzt mit avr-gcc und Upload mittels arvdude #define LED PB1 int main() { DDRB = (1 << LED); // LED as output PORTB = 0; // Init Port B } while(1) { PORTB ^= (1 << LED); // Toogle LED _delay_ms(500); wdt_reset(); // Reset Watchdog } Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 15 / 16
C LUA auf Basis von NodeMCU wifi.setmode(wifi.station) function listap(t) -- (SSID : Authmode, RSSI, BSSID, Channel) end station_cfg={} station_cfg.ssid="dd-wrt" station_cfg.pwd="xxxxxx" wifi.sta.config(station_cfg) wifi.sta.getap(1, listap) srv=net.createserver(net.tcp) srv:listen(80,function(conn) conn:on("receive",function(conn,payload) local buf = "Hallo Welt" conn:send(buf) end) conn:on("sent",function(conn) conn:close() end) end) Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September 2017 16 / 16