Smart Home- und IoT-Technik für den Arduino bietet eine Fülle von Praxisprojekten, die mit einem einzigen Kit aufgebaut werden können. Das "Smart Home Internet of Things Kit V2.0 for Arduino" enthält über 30 Komponenten, Bauelemente und Module aus allen Bereichen der modernen Elektronik.
Neben seiner Tätigkeit als Dozent hat er sehr erfolgreich Fachartikel und Bücher zum Thema Elektronik, Halbleitertechnik und Mikrocontroller veröffentlicht sowie Kurse und Lernpakete zu diesen Themen erstellt.
Damit lassen sich eine Fülle von Projekten realisieren. Für den Einsteiger werden zunächst einige einfachere Einsteigerexperimente vorgestellt. Der fortgeschrittenere Anwender kann sich dagegen gleich an die komplexeren Themen heranwagen. Neben präzisen digitalen Thermometern, Hygrometern, Belichtungsmessern und verschiedenen Alarmanlagen entstehen auch praktisch einsetzbare Geräte und Anwendungen wie etwa • eine vollautomatische Beleuchtungssteuerung • ein digitales Thermostat • eine multifunktionale Klimamessstation
ISBN 978-3-89576-327-4
Zudem wird detailliert erklärt, wie Messdaten in das Internet übertragen werden. Dort sind sie grafisch darstellbar und können weltweit abgerufen werden. Auch auf die damit verbundenen Gefahren und die Problematik des Datenschutzes wird eingegangen.
Elektor-Verlag GmbH 52072 Aachen www.elektor.de
Die vorgestellten Praxisprojekte bleiben dabei aber nicht im Status eines „Laborprototyps“ stehen. Durch entsprechende Tipps und Hinweise entstehen vielmehr praxistaugliche Geräte, die in Haushalt, Hobby und Beruf eingesetzt werden können. Selbstverständlich können sämtliche Bauteile auch einzeln beschafft werden, so dass sich die Projekte im Buch auch ohne das komplette IoT-Kit durchführen lassen.
SMART HOME- UND IOT-TECHNIK FÜR DEN ARDUINO
●
Der Autor des vorliegendes Buches ist seit über 20 Jahren im Bereich der Elektronikentwicklung und der Physikalischen Technologie für verschiedene Großkonzerne tätig.
SMART HOME- UND IOT-TECHNIK
Günter Spanner
FÜR DEN ARDUINO
SMART-HOME-SYSTEME SELBER BAUEN
GÜNTER SPANNER
SMART HOME- UND IOT-TECHNIK
DESIGN SHARE
SMART-HOME-SYSTEME SELBER BAUEN
Günter Spanner LEARN DESIGN SHARE
LEARN
LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN RN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR SIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN RN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR
Smart Home und IOT Technik.indd All Pages
18/10/2017 12:55
Smart-Home- und IoT-Technik für den Arduino Smart-Home-Systeme selber bauen
● Dr. Günter Spanner
an Elektor Publication LEARN
Smart Home DE 170919.indd 3
DESIGN
SHARE
18-10-17 09:47
●
© 2017: Elektor Verlag GmbH, Aachen.
●
Alle Rechte vorbehalten.
1. Auflage 2017
Die in diesem Buch veröffentlichten Beiträge, insbesondere alle Aufsätze und Artikel sowie alle Entwürfe, Pläne, Zeichnungen und Illustrationen sind urheberrechtlich geschützt. Ihre auch auszugsweise Vervielfältigung und Verbreitung ist grundsätzlich nur mit vorheriger schriftlicher Zustimmung des Herausgebers gestattet. Die Informationen im vorliegenden Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Die in diesem Buch erwähnten Soft- und Hardwarebezeichnungen können auch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Sie gehören dem jeweiligen Warenzeicheninhaber und unterliegen gesetzlichen Bestimmungen. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autor können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für die Mitteilung eventueller Fehler sind Verlag und Autor dankbar. Umschlaggestaltung: Elektor, Aachen Satz und Aufmachung: D-Vision, Julian van den Berg | Oss (NL) Druck: Media-Print Informationstechnologie GmbH, Paderborn Printed in Germany
●
ISBN 978-3-89576-327-4
Elektor-Verlag GmbH, Aachen www.elektor.de
Elektor ist Teil der Unternehmensgruppe Elektor International Media (EIM), der weltweit wichtigsten Quelle für technische Informationen und Elektronik-Produkte für Ingenieure und Elektronik-Entwickler und für Firmen, die diese Fachleute beschäftigen. Das internationale Team von Elektor entwickelt Tag für Tag hochwertige Inhalte für Entwickler und DIYElektroniker, die über verschiedene Medien (Magazine, Videos, digitale Medien sowie Social Media) in zahlreichen Sprachen verbreitet werden. www.elektor.de
LEARN
Smart Home DE 170919.indd 4
DESIGN
SHARE
18-10-17 09:47
Inhalt Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Kapitel 1 • Heimautomatisierung und das Internet der Dinge . . . . . . . . . . . . . . . . 14 Kapitel 2 • IoT und Smart Home für "Maker" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Kapitel 3 • Die Arduinos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1 Ein erster Funktionstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Der Arduino wird programmiert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Widerstände: Grundbauelemente der Elektronik . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Für gute Verbindungen: Jumper-Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 Leuchtdioden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6 Arduino mit Batteriebetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Kapitel 4 • Schnellstart: Projekte für den Einstieg . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Alarmanlagen-Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 SOS-Notsignale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 Schalten und walten mit Tastern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Der serielle Monitor als wertvolle Informationsquelle . . . . . . . . . . . . . . . . . . . . . . 32 Kapitel 5 • Einstieg in die Smart-Home-Sensorik . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.1 Optimales Raumklima? – Der Temperatur-Feuchtesensor schafft Klarheit . . . . . . . 36 5.2 Temperatur- und Feuchtemessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3 Kalibrierung mit Feuchtekammer und Silikagel . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.4 Mehrere Sensoren an einem Controller? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5 Hell oder dunkel – Lichtintensitäten elektronisch erfasst . . . . . . . . . . . . . . . . . . . 45 5.6 Automatisch Helligkeitssteuerung und Notbeleuchtungen . . . . . . . . . . . . . . . . . . 48 5.7 Hochdruckwetter oder Tiefdruckgebiet? – Wettervorhersage mit dem Luftdrucksensor BMP085 . . . . . . . . . . . . . . . . . . . . . 50 5.8 Ein Temperaturvergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.9 Tiefgekühlter Sensor gefällig? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.10 Klima-Messstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.11 Nebenwirkungen in der Sensortechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Kapitel 6 • Sicherheitstechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.1 Optische Alarmanlagen und Lichtschrankensicherung . . . . . . . . . . . . . . . . . . . . . 61 6.2 Überwachung durch Umgebungslichtmessung . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3 Mit dem PIR-Sensor bleibt keine Bewegung unentdeckt . . . . . . . . . . . . . . . . . . . . 64
●5
Smart Home DE 170919.indd 5
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino 6.4 Dem Einbruch keine Chance: Auswertung von PIR-Signalen . . . . . . . . . . . . . . . . . 65 6.5 Zugangskontrolle mit RFID-Technik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.6 Drahtlos Daten lesen: Das RFID-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.7 Das RFID-Modul am Arduino MEGA2560 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.8 RFID-Tags für die Zugangssicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.9 Erkennung von Explosions- oder Erstickungsgefahr mit Gas-Sensoren . . . . . . . . . 79 6.10 Anschluss des Gas-Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.11 Hardware- vs. Software-Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Kapitel 7 • Funk statt Kabelsalat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.1 Hochfrequenztechnik ohne Hürden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.2 Drahtloses Daten-Ping-Pong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.3 Datenübertragung im Gigahertz-Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.4 Funkübertragung von analogen Messwerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.5 Drahtlose Relais-Steuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.6 Der Sender als Kommandozentrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.7 Der Empfänger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.8 Software für sicheres Schalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.9 Funktionstest und Reichweitenbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.10 Für größere Lasten: Das Relais-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.11 Halogenlampe mit Fernbedienung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.12 Automatische Relais-Steuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.13 Für optimales Wohlfühlklima: Intelligentes Thermostat . . . . . . . . . . . . . . . . . . 104 Kapitel 8 • Internetzugang mit dem Ethernet-Shield . . . . . . . . . . . . . . . . . . . . . . 108 8.1 Netzwerktechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 8.2 Ethernet, LAN und TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.3 IP-Adressen, Netzwerkmasken, Gateways und MAC-Adresse . . . . . . . . . . . . . . . 112 8.4 Der Arduino als Web-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Kapitel 9 • Einstieg in das Internet der Dinge . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.1 Registrierung auf der Device-Bit-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.2 Neues Gerät hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.3 Hinzufügen eines neuen Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 9.4 Laden von Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
●6
Smart Home DE 170919.indd 6
18-10-17 09:47
Inhalt 9.5 Hochladen von Sensordaten über den PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.6 Datenübertragung ins Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.7 Aufbau des Sensorboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.8 Schalter hinzufügen: Das Relais-Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.9 Weltweit schalten und walten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Kapitel 10 • IoT mit der Device-Bit-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 10.1 Datensicherheit und Privatsphäre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 10.2 Statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 10.3 Datenexport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 10.4 Vergleich verschiedener Messdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Kapitel 11 • Automatisches Versenden von E-Mails . . . . . . . . . . . . . . . . . . . . . . . 145 Kapitel 12 • Mobiler Zugriff mit Smartphone oder Tablet . . . . . . . . . . . . . . . . . . . 147 Kapitel 13 • Die Alternative: ThingSpeak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.1 Einrichtung der Datenbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.2 Grafische Darstellung von Daten in ThingSpeak . . . . . . . . . . . . . . . . . . . . . . . 152 Kapitel 14 • Praxisanwendungen für Fortgeschrittene . . . . . . . . . . . . . . . . . . . . . 154 Kapitel 15 • Bus-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 ² 15.1 Grundlagen und Anwendungen des I C-Busses . . . . . . . . . . . . . . . . . . . . . . . . 155 15.2 Kompakt und einfach: Klimastation mit I²C-Komponenten . . . . . . . . . . . . . . . . 163 15.3 Zusätzliche I/O-Pins: Port-Expander für den I²C-Bus . . . . . . . . . . . . . . . . . . . . 166 15.4 Mehrere LC-Displays an verschiedenen Orten: I²C und PCF8574 machen es möglich! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 15.5 Unentbehrlich für Zeitsteuerungen: Echtzeituhren mit Kalender und Datumsanzeige . . . . . . . . . . . . . . . . . . . . . . . 171 15.6 Der SPI-Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 15.7 Doppelt wichtig: die SPI-Schnittstelle für den Arduino . . . . . . . . . . . . . . . . . . . 179 15.8 Die Mitglieder der SPI-Familie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 15.9 SPI-Empfang mit Schieberegisterbausteinen . . . . . . . . . . . . . . . . . . . . . . . . . 180 15.10 LCD-Displays via SPI-Bus ansteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 15.11 Der LED-Treiber MAX7219 steuert Punktmatrizen und Sieben-Segment-Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 15.12 Drahtlose Datenübertragung mit nRF24L01-Modulen . . . . . . . . . . . . . . . . . . . 183 15.13 Ansteuern von SD- und µSD-Karten über SPI . . . . . . . . . . . . . . . . . . . . . . . . 184
●7
Smart Home DE 170919.indd 7
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino 15.14 Der SPI-Bus als Mikrocontroller-Programmierschnittstelle . . . . . . . . . . . . . . . 185 Kapitel 16 • Grundlagen der Arduino-Programmierung . . . . . . . . . . . . . . . . . . . . 187 Kapitel 17 • Die grundlegende Programmstruktur . . . . . . . . . . . . . . . . . . . . . . . 188 17.1 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 17.2 Syntaxelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 17.3 Variablen und Variablendeklaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 17.4 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 17.5 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 17.6 Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 17.7 Strukturelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 17.8 Zeitsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 17.9 Serielle Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Kapitel 18 • Verwendung von Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Kapitel 19 • Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Kapitel 20 • Bauelemente und Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 20.1 Breadboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 20.2 Widerstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 20.3 Leuchtdioden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 20.4 Drucktaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 20.5 Kompakt und leistungsfähig: Der Arduino Nano . . . . . . . . . . . . . . . . . . . . . . . 202 20.6 Für größerer Projekte: der Arduino 2560 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 20.7 Netzwerk-Modul W5100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 20.8 Das Lichtsensor-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 20.9 Der Gas-Sensor MQ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 20.10 Der Temperatur- und Luftfeuchtesensor DHT11 . . . . . . . . . . . . . . . . . . . . . . 206 20.11 Der Luftdrucksensor BMP180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 20.12 Der Bewegungssensor PIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 20.13 Das 4-Kanal-Relais-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 20.14 Das RFID-Modul RC522 und die KeyCard . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 20.15 Das Funkmodul NRF24L01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 20.16 Die USB-Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 20.17 Jumper-Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
●8
Smart Home DE 170919.indd 8
18-10-17 09:47
Inhalt 20.18 Modulkabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Kapitel 21 • Bezugsquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Kapitel 22 • Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Kapitel 23 • Verzeichnis der Sketche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Kapitel 24 • Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Kapitel 24 • Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
●9
Smart Home DE 170919.indd 9
18-10-17 09:47
Einführung
Einführung Heimautomatisierung und das Internet der Dinge (IoT – Internet of Things) sind aus der Welt der Elektronikanwendungen nicht mehr wegzudenken. Projekte aus diesem Bereich, die noch vor wenigen Jahren nicht oder nur mit höchstem Aufwand realisierbar gewesen wären, können heute im Handumdrehen umgesetzt werden. Systeme und Baugruppen wie Arduino und Raspberry Pi ermöglichen es auch Menschen mit wenig Hard- und Software-Erfahrung, komplexe Aufgaben umzusetzen. Die Zeiten, in denen sich die Anwendungen des Arduino auf das Blinkenlassen einer LED beschränkten, sind vorbei. Der Arduino ist nicht mehr Selbstzweck, sondern integraler Bestandteil nutzbringender Systeme geworden. Die Frage lautet heute nicht mehr "Was kann ich mit einem Arduino oder Raspberry Pi anfangen?", sondern "Wie kann ich mein Projekt optimal mit einem Arduino oder Raspberry Pi umsetzen?" Die Möglichkeiten des IoT sind in den letzten Jahren geradezu gigantisch angewachsen, und täglich kommen neue interessante Ideen und Anwendungen hinzu. Der Arduino ist inzwischen zu einer festen Größe in der Gemeinde der Elektroniker und "Maker" geworden. Wo früher Mikrocontroller eingesetzt wurden, kommt heute immer häufiger der Arduino zum Zug, denn der Einstieg in die Welt der Controllertechnik ist damit zum Kinderspiel geworden. Anstelle einer komplexen Programmierumgebung kann man jetzt mit einer intuitiven Entwicklungsumgebung arbeiten, die auch Anfängern keine Probleme bereitet. Die Dinge liegen etwas anders, wenn komplette Heimautomatisierungsprojekte umgesetzt werden sollen. Hier ist der Anwender häufig noch weitgehend auf sich selbst gestellt. Zwar existiert eine Fülle spezieller Systeme von verschiedenen Herstellern, allerdings sind sie oft auf wenige Anwendungsgebiete beschränkt. Zudem sind solche professionellen Systeme mit erheblichen Kosten verbunden. Selbst einfache Sensor- oder Aktoreinheiten schlagen schnell mit mehreren Tausend Euro zu Buche. Elektronische Einzelkomponenten dagegen sind oft für wenige Cent erhältlich. Natürlich muss man sich dabei auch im Klaren sein, dass man mit einem Eigenbau meist nicht die Zuverlässigkeit industriell gefertigter Geräte erreicht. Wenn man allerdings wirklich innovative Projekte umsetzen will, muss man sich ohnehin direkt mit elektronischen Bauelementen befassen. Dies stellt aber viele Einsteiger vor größere Probleme. Abhilfe bieten hier sogenannte "Kits". Sie enthalten alle notwendigen Komponenten, die zur Durchführung verschiedener Eigenbauprojekte notwendig sind. Genau hier setzt das vorliegende Buch an. Es bietet eine Fülle von Praxisprojekten, die mit einem einzigen Kit aufgebaut werden können. Dieses Kit, das "Smart Home Internet of Things Kit V2.0 for Arduino" (Elektor Artikel-Nr. 17793, Bestellung im Elektor-Shop: https://www.elektor.de/ smart-home-internet-of-things-kit-for-arduino-raspberry-pi) enthält über 30 Komponenten, Bauelemente und Module aus allen Bereichen der modernen Elektronik. Elementen wie LEDs, Tastern und Widerständen sind auch komplexe und hochmoderne Module ent-
● 11
Smart Home DE 170919.indd 11
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
halten, beispielsweise • ein Lichtsensor-Modul • ein hochwertiger Gas-Sensor • eine Modul zur Messung der Luftfeuchtigkeit • ein Kombi-Messmodul für Luftdruck- und Temperaturmessung • ein RFID-Modul inklusive zugehörigem Transponder • ein IR-Bewegungsdetektor (PIR-Modul) Darüber hinaus enthält das Kit weitere Spezialbauelemente wie • zwei Funkmodule für das lizenzfreie 2,4-GHz-ISM-Band • eine Relaisplatine mit vier Schaltkanälen für 230 V Die ebenfalls enthaltenen Prozessorplatinen • ein Arduino Mega2560 • ein Arduino Nano • ein Netzwerkmodul für die Datenübertragung ins Internet runden das durchdachte Sortiment ab. Damit lässt sich eine Fülle von Projekten realisieren. Für den Einsteiger werden zunächst einige einfachere Einsteigerexperimente vorgestellt. Der weiter fortgeschrittene Anwender kann sich dagegen gleich an die komplexeren Themen heranwagen. Neben präzisen digitalen Thermometern, Hygrometern, Belichtungsmessern und verschiedenen Alarmanlagen entstehen auch praktisch einsetzbare Geräte und Anwendungen wie etwa • eine vollautomatische Beleuchtungssteuerung • ein digitaler Thermostat • eine multifunktionale Klima-Messstation Zudem wird detailliert erklärt, wie Messdaten ins Internet übertragen werden. Dort sind sie grafisch darstellbar und können weltweit abgerufen werden. Auch auf die damit verbundenen Gefahren und die Problematik des Datenschutzes wird eingegangen. Die vorgestellten Praxisprojekte bleiben dabei aber nicht im Status eines "Laborprototyps" stehen. Durch entsprechende Tipps und Hinweise entstehen vielmehr praxistaugliche Geräte, die in Haushalt, Hobby und Beruf eingesetzt werden können. Alle Projekte lassen sich dabei mit den Komponenten aus dem IoT-Kit realisieren. Alternativ können die meisten erforderlichen Bauelemente aber auch über den Fachhandel bezogen werden. Ein entsprechendes Bezugsquellenverzeichnis findet sich am Ende des Buches. So sind einerseits defekte oder verloren gegangene Bauelemente leicht ersetzbar.
● 12
Smart Home DE 170919.indd 12
18-10-17 09:47
Einführung
Andererseits besteht so auch die Möglichkeit, einzelne Projekte durchzuführen, ohne dass das gesamte Kit erforderlich ist. Mit den SainSmart oder SunFounder-Boards steht darüber hinaus seit einiger Zeit eine kostengünstige und dennoch qualitativ hochwertige Alternative zum Arduino zur Verfügung. Diese Boards sind vollständig zu den klassischen Arduinos kompatibel. So bleibt es jedem Anwender selbst überlassen, ob er mit dem Arduino MEGA arbeiten will oder aber dem SainSmart oder SunFounder MEGA2560 den Vorzug gibt. Alle Programme aus diesem Buch können unter www.elektor.de/smart-home-iot-fuer-arduino heruntergeladen werden. Falls ein Programm nicht identisch mit dem im Buch beschriebenen sein sollte, sollte die Version aus dem Download verwendet werden, da sie die aktuellere ist.
● 13
Smart Home DE 170919.indd 13
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 1 • Heimautomatisierung und das Internet der Dinge Unter Heimautomatisierung oder auch "Smart Home"-Technologie versteht man elektronische Systeme, die das Leben im eigenen Heim komfortabler gestalten sollen. Dabei steht neben einer Verbesserung der Wohn- und Lebensqualität auch die Sicherheit in Bezug auf allgemeine Gefahren wie Feuer, Wasser oder Einbruch im Mittelpunkt. Daneben gehört die Einsparung von elektrischer Energie und anderen Energieträgern, z. B. Öl oder Gas zu diesem Themenbereich. Spezielle Geräte und vernetzte Systeme ermöglichen automatisierte Abläufe und entlasten den Menschen von alltäglichen Routineaufgaben. Unter Heimautomatisierung fasst man einerseits die Vernetzung von Haustechnik bzw. Haushaltsgeräten wie etwa Beleuchtungseinrichtungen, Jalousien, Heizung, Elektroherd, Kühlschrank oder Waschmaschine zusammen. Darüber hinaus wird aber auch in zunehmendem Maße die Vernetzung von Komponenten der Unterhaltungselektronik, wie etwa die zentrale Speicherung und universelle Nutzung von Video- und Audio-Inhalten, immer mehr zum Thema der Smart-Home-Technologie. Über spezielle Verkabelungen und passende Netzwerktechnik werden Schutzsysteme und Alarmeinrichtungen oder Audio- und Videotechnik zu einer sicheren, bequemen, und komfortabel zu bedienenden Einheit. Damit einher geht eine weiter verbesserte Umweltfreundlichkeit und Energieeffizienz des Hauses oder der Wohnung. Von Smart-Home-Technologie spricht man insbesondere, wenn sämtliche im Haus vorhandenen Beleuchtungen, Schalter, Bedieneinheiten oder Geräte untereinander vernetzt sind. Viele moderne Geräte können dabei auf eine eigenen "Intelligenz" zurückgreifen. Nutzerdaten und Verhaltensweisen werden gespeichert und die Lernfähigkeit der Systeme führt zu einer zunehmenden Verbesserung der Wohnqualität. Verschiedene Geräte sind zunehmend auch mit eigenen elektronischen Kennzeichnungen, sogenannten "Tags", ausgerüstet. Das bedeutet, dass zu diesen Geräten Informationen zum Beispiel über Hersteller, Produktnamen und Leistung hinterlegt sind. Zunehmend verfügen Heimautomatisierungssysteme auch über eigene Programmierschnittstellen, die immer öfter auch über das Internet angesprochen werden. Die Steuerung erfolgt dann über mobile Geräte wie Smartphones oder Tablet-Computer mit geeigneten Apps. Eng verwandt mit diesen Verfahren und Systemen sind solche des Smart Grids und Smart-Metering, bei denen der Schwerpunkt auf dem Messen und einer intelligenten Regulierung des Energieverbrauchs liegt. Neben "Smart Home" finden sich auch Begriffe wie "Intelligentes Wohnen", "eHome", "Smart Living" und weitere Bezeichnungen. Diese Begriffe haben sich jedoch bislang nicht etablieren können. Das Smart-Home-Konzept ist aus der Konvergenz von Internet- und Sensortechnologie entstanden. Es integriert alle im eigenen Heim vorhandenen Anlagen und Geräte zu einer
● 14
Smart Home DE 170919.indd 14
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 2 • IoT und Smart Home für "Maker" Wenn es um Smart-Home-Technologie in der Praxis geht, tritt häufig das Problem auf, wie man verschiedenste Geräte steuern kann. Viele Hersteller haben ihre eigenen Konzepte und Systeme entwickelt. Jede dieser Lösungen hat ihre Vor- und Nachteile. Häufig ist es jedoch so, dass fertige Lösungen oft vergleichsweise teuer sind. Die aktuellen Entwicklungen im Open-Source-Hard- und Software-Bereich und die rasanten Fortschritte in der Internet-of-Things-Technologie erlauben es jedoch auch, ganz eigene Systeme zu realisieren. Diejenigen, die über grundlegende Kenntnisse der Programmierung verfügen, können heutzutage eine ganze Reihe von Smart-Home-Konzepten in Eigenregie entwerfen und realisieren. Mit vergleichsweise sehr niedrigen Kosten können mit dem Arduino umfangreiche Funktionen umgesetzt werden. Die Open-Source-Tools sind nicht nur für die Maker und Hobby-Hardware-Entwickler einfach einzusetzen, sondern sie bieten auch eine Fülle vorgefertigter Lösungen an, die in kürzester Zeit nutzbringend eingesetzt werden können. So lernt man sehr schnell, wie eigene Projekte erfolgreich entwickelt werden können. Das Smart-Home-Kit von SunFounder liefert dazu die wichtigsten elektronischen Komponenten. Zusammen mit diesem Buch werden Sie nicht nur ein tieferes Verständnis der modernen Open-Source-Technologie und dem Internet der Dinge erlangen, sondern auch real einsetzbare und nützliche Projekte umsetzen.
● 16
Smart Home DE 170919.indd 16
18-10-17 09:47
Kapitel 3 • Die Arduinos
Kapitel 3 • Die Arduinos Im Allgemeinen versteht man unter "Arduino" einerseits das Board selbst, also die Hardware. Hiervon gibt es verschiedene Varianten, welche nachfolgend etwas genauer erläutert werden. Andererseits wird damit aber auch die Programmierumgebung bezeichnet. Beide Einheiten gehören unmittelbar zusammen und bilden das "System Arduino". Die Arduino-Hardware besteht aus einem Mikrocontroller-Board. Hierbei handelt es sich um eine Leiterplatte oder Platine, auf der sich neben dem Controller selbst noch verschiedene andere elektronische Komponenten befinden. Am oberen und unteren Rand des Boards verfügen Arduinos über eine Reihe von Buchsen, Steckplätzen oder auch Stiftleisten, die allgemein auch Pins genannt werden. Die Pins werden benutzt, um die unterschiedlichsten elektronischen Komponenten mit dem Arduino zu verbinden. Diese Bauteile, z. B. Taster, Leuchtdioden (LEDs), unterschiedliche Sensoren etc., werden in den folgenden Kapiteln vorgestellt. Es existieren verschiedene Versionen von Arduino-Boards, die mit der Arduino-Software verwendet werden können. Dazu gehört eine ganze Reihe verschieden großer Varianten, die mit der offiziellen "Arduino"-Bezeichnung gekennzeichnet sind. Daneben gibt es aber auch eine Vielzahl von häufig wesentlich preisgünstigeren, dennoch praktisch gleichwertigen sogenannten Arduino-Klonen. Diese Boards sind zu den Originalen weitestgehend Hard- und Software-kompatibel. Das bedeutet, dass sie sich sowohl elektrisch als auch programmiertechnisch genauso verhalten wie die originalen Arduinos. Die klassischen Boards tragen Bezeichnungen wie • Arduino UNO • Arduino MEGA • Arduino Micro etc. Die dazu jeweils kompatiblen Boards heißen entsprechend • SunFounder MEGA • Seeduino UNO • Funduino MEGA • Freeduino Micro • SainSmart UNO usw. Im Rahmen des vorliegenden Buches kommen hauptsächlich der Arduino bzw. SunFounder MEGA2560 sowie der Arduino (SunFounder) NANO zum Einsatz (s. Abb.). Andere dazu kompatible Boards, wie etwa der SainSmart MEGA können in allen Anwendungsfällen genauso verwendet werden, wie der Original-Arduino.
● 17
Smart Home DE 170919.indd 17
18-10-17 09:47
Kapitel 4 • Schnellstart: Projekte für den Einstieg
Kapitel 4 • Schnellstart: Projekte für den Einstieg Nachdem die grundlegenden Bauelemente bekannt sind und auch bereits ein Funktionstest des Arduino durchgeführt wurde, steht den ersten Projekten nichts mehr im Wege. Zunächst werden einige einfache Projekte vorgestellt, die mit geringem Hardware-Aufwand realisiert werden können. Auch die zugehörigen Sketche sollten keine Verständnisprobleme bereiten. Dennoch können auch diese einfachen Anwendungen bereits in der Praxis eingesetzt werden. Um einen schnellen Einstieg zu gewährleisten, werden die Sketche hier nur kurz vorgestellt. Im Anhang findet sich eine ausführliche Einführung in die Arduino-Programmiersprache, sodass dort bei eventuellen Unklarheiten nachgeschlagen werden kann. Am Anfang ist es sicherlich vorteilhaft, einige Sketche direkt in die IDE einzutippen, um mit dem Programmierablauf vertraut zu werden. Bei längeren Sketchen wird dies allerdings schnell sehr mühsam und bringt keinen Lerneffekt mehr. Daher sind alle Sketche in einem Download-Paket enthalten, das aus dem Internet geladen werden kann. Weitere Details dazu finden sich im Abschnitt "Einführung". 4.1 Alarmanlagen-Simulator Bereits mit dem ersten Aufbau können einige nützliche praktische Anwendungen realisiert werden. Als erstes Praxisprojekt soll ein Alarmanlagen-Simulator entstehen. Für den Test des Arduino wurde der Sketch blink.ino verwendet. Er brachte eine LED dazu, regelmäßig zu blinken Im folgenden Sketch bleibt die LED dagegen für drei Sekunden dunkel und blitzt dann nur eine Zehntelsekunde lang auf. Ein solches Verhalten dient bei Alarmanlagen in Häusern oder Fahrzeugen oft als Anzeige dafür, dass das System "scharf" geschaltet ist. Entsprechend getarnt kann der Arduino so also bereits als Alarmanlagen-Simulator dienen. In manchen Fällen lassen sich Gelegenheitseinbrecher schon alleine durch eine solche blitzende LED abschrecken, da sie ja nicht wissen können, dass es sich nur um eine Attrappe handelt. Das Programm dazu sieht so aus: // Alarm_simulator void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(100);
// turn the LED on (HIGH is the voltage level) // wait for a second
digitalWrite(13, LOW);
// turn the LED off by making the voltage LOW
delay(3000);
// wait for a second
}
Sketch 4.1: Alarm_simulator
● 29
Smart Home DE 170919.indd 29
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 5 • Einstieg in die Smart-Home-Sensorik Ein wichtiger Bestandteil der Smart-Home-Technologie ist die Erfassung von Umweltdaten. Erst wenn entsprechende Sensoren verfügbar sind, wird eine komfortable Automatisierung möglich. Die zentralen Parameter in einem Wohngebäude sind: • Temperatur • Beleuchtungsstärke • Luftfeuchte Alle diese Werte können über geeignete Sensoren schnell und sicher erfasst werden. Darüber hinaus steht noch eine Vielzahl weiterer Sensortypen zur Verfügung. Die wichtigsten für den Heimbereich sind • Luftdrucksensor • Gas-Sensor • Passive Infrarotsensoren Damit lassen sich weitere wesentliche Daten in der heimischen Umgebung erfassen. Der Luftdrucksensor lässt beispielsweise Rückschlüsse auf die künftige Wetterentwicklung zu. Schnell fallender Luftdruck deutet das Heranziehen einer Schlechtwetterfront an. Bei Vorliegen entsprechender Messwerte kann man so einen "Unwetteralarm" auslösen und eine Warnung auf ein mobiles Gerät ausgeben. Zudem kann man motorisierte Markisen einfahren oder elektrisch gesteuerte Dachfenster schließen. Gas-Sensoren bieten zusätzliche Sicherheit, falls brennbare Gase im Haus oder im Keller gelagert oder im Haus verteilt werden. Moderne Module verfügen über hohe Empfindlichkeiten und erlauben die Detektion von geringsten Gasspuren in der Luft. Bei fachgerechter Anwendung bieten sie Schutz vor Vergiftungs- oder Explosionsgefahr. Aber auch beim routinemäßigen Umgang mit Gasen können sie vor unerwartet hohen Konzentrationen warnen. Man kann in diesem Fall frühzeitig für eine ausreichende Durchlüftung des Raumes sorgen und so eventuellen Gefahren vorbeugen. Passive Infrarotsensoren haben ebenfalls weite Verbreitung gefunden. Am bekanntesten sind sicher automatische Beleuchtungen, die nur dann aktiv werden, wenn sich Personen in ihrem Erfassungsbereich aufhalten. Aber auch in der Gebäudesicherung werden diese Sensoren eingesetzt, da sie auch geringste Bewegungen von Menschen oder Tieren zuverlässig detektieren können. 5.1 Optimales Raumklima? – Der Temperatur-Feuchtesensor schafft Klarheit Dem Hardware-Kit liegt ein kombinierter Sensor für Feuchte- und Temperaturerfassung bei. Dieses Modul enthält neben den Sensoren selbst bereits die erforderlichen A/D-Wandler für beide Messwerte. Dadurch wird das Auslesen des Sensors sehr einfach. Es wird lediglich ein einziger Daten-Pin benötigt, über den die Messwertinformationen übertragen werden. Der Sensor selbst besitzt vier Pins, die aber auf dem Modul bereits intern verschaltet sind, sodass nur noch drei Verbindungsleitungen zum Arduino erforderlich sind. Zudem enthält das
● 36
Smart Home DE 170919.indd 36
18-10-17 09:47
Kapitel 6 • Sicherheitstechnik
Kapitel 6 • Sicherheitstechnik Ein wichtiges Teilgebiet der Sicherheitstechnik sind Alarmanlagen. Dieser Bereich hat sich in den letzten Jahren rasch entwickelt und immer mehr Haus- und Wohnungsbesitzer legen sich eine mehr oder weniger aufwendige Alarmsicherung zu. Die Möglichkeiten, sein Eigentum auf diese Weise zu schützen, sind vielfältig. Neben optischen Sicherungseinrichtungen werden immer häufiger auch PIR-Sensoren eingesetzt. Sie reagieren auf Körperwärme und sind in der Lage, auch geringste Bewegungen zu erfassen. Die RFID-Technik ermöglicht die Zugangsbeschränkung zu bestimmten Bereichen. Anstelle von Schlüsseln und Schlössern kommen hier Funkchips zum Einsatz. Die Vor- und Nachteile dieses Verfahrens werden in einem der nachfolgenden Abschnitte genauer erläutert. Schließlich ist auch die Überwachung von Räumen auf gefährliche Gase hin ein wichtiger Sicherheitsaspekt. Wie man diesen Gefahren mithilfe eines Gas-Sensors begegnen kann, wird am Ende dieses Kapitels erläutert. 6 .1 Optische Alarmanlagen und Lichtschrankensicherung In Alarmanlagen für Haus und Hof kommen unter anderem auch optische Sensoren zum Einsatz. Auch ein LDR kann hier eingesetzt werden. Wie bereits erwähnt, liefert dieses Modul bei zunehmender Helligkeit eine abnehmende Spannung am SIG-Ausgang. Dies muss natürlich auch bei Alarmanlagenanwendungen entsprechend berücksichtigt werden. Vom Lichtsensor zur Lichtschranke ist es nur ein kleiner Schritt. Man benötigt lediglich noch eine gebündelte Lichtquelle, die auf den Fotowiderstand ausgerichtet werden muss. Optimal sind hier natürlich Laserquellen. So kann man zu diesem Zweck durchaus die bekannten Laserpointer einsetzen. Allerdings sind auch einfache Taschenlampen oder auch nur LEDs mit vorgeschalteten Sammellinsen ausreichend. Werden Infrarot-LEDs verwendet, so hat man zusätzlich noch den Vorteil, dass der Strahl der Lichtschranke unsichtbar ist. Allerdings muss man dann testen, ob der LDR hier noch empfindlich genug reagiert. Die folgende Abbildung zeigt das Prinzip einer einfachen Lichtschranke.
Abbildung 6.1: Prinzip einer Lichtschranke Das Programm für einen Lichtschrankenalarm kann direkt aus dem Sketch zum Notlicht abgeleitet werden. Sobald die Lichtschranke unterbrochen wird, leuchtet die rote LED auf. Zusätzlich wird nun aber eine Warnmeldung auf den seriellen Monitor ausgegeben:
● 61
Smart Home DE 170919.indd 61
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 7 • Funk statt Kabelsalat Möchte man Haus oder Wohnung automatisieren und überwachen, so muss man häufig Daten und Messwerte an verschiedenen Orten erfassen und weiterleiten. Die klassische Datenübertragung erfolgt dabei über Kabel. In vielen Gebäuden fehlen aber passende Kabelkanäle. Man müsste in diesen Fällen unschöne Leitungen im gesamten Wohngebäude verlegen oder aber mit hohem finanziellen Aufwand neue Kabelkanäle installieren. Abhilfe kann hier die drahtlose Datenübertragung schaffen. Mithilfe hochfrequenter Signale können so Messwerte und Daten aller Art über größere Entfernungen übertragen werden. Prinzipiell ist die Erzeugung und der Empfang von Hochfrequenz vergleichsweise aufwendig. So haben sich Generationen von Hobbyelektronikern damit herumgeschlagen, mit selbstgebauten Empfängern Radiosignale im Megahertzbereich zu empfangen. In früheren Zeiten war die Radiotechnik sogar häufig der Einstieg in das weite Feld der Elektronik. Allerdings treten bei höheren Frequenzen ab einigen Megahertz zunehmend Probleme auf. Selbst minimale Kapazitäten oder Induktivitäten zeigen nun ihre störenden Einflüsse. Drahtstücke von wenigen Zentimetern Länge können bereits erheblichen Einfluss auf die Empfangseigenschaften einer Schaltung haben. Ab etwa 10 MHz wird die Hochfrequenztechnik so geradezu zum Hexenwerk. Sender und Empfänger in diesem Bereich erfordern umfangreiches Spezialwissen. Ein Aufbau auf einem Breadboard ist aufgrund der inhärenten Streukapazitäten und -induktivitäten meist von vorneherein zum Scheitern verurteilt. Zudem ist das Senden von elektromagnetischen Wellen stark reglementiert. Sogenannte "Schwarzsender" sind in den meisten Ländern der Welt streng verboten und der Betreiber muss mit hohen Strafen rechnen. Glücklicherweise gibt es aber Lösungen, die auch dem hochfrequenztechnischen Laien die drahtlose Datenübertragung auf legalem Wege gestatten. Spezielle Module für bestimmte Frequenzbänder enthalten die gesamte Hochfrequenzelektronik inklusive Antenne, Sender und Modulationseinheit. Es muss nur noch das niederfrequente Datensignal am Sender eingespeist werden, dann wird es drahtlos an einen zugehörigen Empfänger übertragen. Dort wird das Signal demoduliert und steht in hoher Qualität wieder zur Verfügung. Auf diese Weise wird die kabellose Datenübertragung fast zum Kinderspiel, und einer auf Funktechnik basierenden Heimautomatisierung stehen keine hochfrequenztechnischen Hürden mehr im Wege. 7.1 Hochfrequenztechnik ohne Hürden Die für Privatanwender freigegebenen Frequenzen sind als sogenanntes ISM-Band bekannt. ISM steht dabei für Industry, Science and Medicine also Industrie, Wissenschaft und Medizin. Ein wichtiger Teilbereich ist das 2,4-GHz-Band, für welches viele preisgünstige Module verfügbar sind. Auch der Hardware-Satz des IoT-Kits enthält zwei solche Komponenten (s. Abb.).
● 86
Smart Home DE 170919.indd 86
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 8 • Internetzugang mit dem Ethernet-Shield Der Arduino MEGA2560 verfügt nicht über eine direkte Möglichkeit zur Kommunikation mit einem Netzwerk. Abhilfe schafft hier ein spezielles Shield. Mit dem W5100-Shield steht ein vielseitiger Netzwerk-Controller mit integrierter Ethernet-Schnittstelle zur Verfügung. Es zeichnet sich durch hervorragende Leistung und niedrige Kosten aus. Das Shield ermöglicht es, auch ohne aufwendiges Betriebssystem via Ethernet auf LAN, Intra- und Internet zuzugreifen. Es eignet sich daher bestens zum Einsatz in IoT- und Heimautomatisierungsprojekten. Der auf dem Shield eingesetzte WIZnet-W5100-Chip ist kompatibel mit • IEEE 802.3 10Base-T und • 802.3u 100 BASE-TX-Standards Der Chip integriert die gesamte für einen Internetzugriff erforderliche Hardware in einen einzigen Baustein. Alle hierfür erforderlichen Protokollschichten sind enthalten: • Medium Transportschicht (MAC) • Physical-Layer (PHY). • Hardware TCP/IP-Protokoll-Stack Damit werden alle gängigen und weltweit etablierten Protokolle wie TCP, UDP, IPv4 etc. unterstützt. Darüber hinaus enthält der Baustein einen internen 16 kByte großen Speicher. So kann mit dem W5100 die Implementierung eines Internetzugangs sehr einfach umgesetzt werden. Auf der Controller-Seite verfügt das W5100-Shield über drei Schnittstellen: • einen direkten Parallel-Bus • einen indirekten Parallel-Bus • einen SPI-Bus Damit kann das Shield mit dem Controller auf dem MEGA2560 kommunizieren. Die Ansteuerung erfolgt ähnlich wie der Zugriff auf einen externen Speicher. Zudem steht eine umfangreiche Ethernet-Bibliothek zur Verfügung, welche die Arbeit mit dem Shield noch weiter vereinfacht. Die folgende Abbildung zeigt den MEGA2560 mit aufgestecktem Ethernet-Shield. Bei den Anwendungen in diesem Buch kommt der SPI-Bus zur Steuerung des Moduls zum Einsatz. Details zum SPI-Protokoll finden sich im entsprechenden Kapitel weiter hinten im Buch.
● 108
Smart Home DE 170919.indd 108
18-10-17 09:47
Kapitel 9 • Einstieg in das Internet der Dinge
Kapitel 9 • Einstieg in das Internet der Dinge Mit der sogenannten Device-Bit-Plattform steht eine Echtzeit-Datenerfassungsmethode für das Internet der Dinge (Internet of Things, IoT) zur Verfügung. Auf diese Plattform kann über die Web-Adresse http://www.devicebit.com zugegriffen werden. Diese Homepage stellt umfangreiche Funktionalitäten für selbsterstellte APIs (Application Programming Interfaces) zur Verfügung. Die Erstellung von Anwendungen und das Hinzufügen von Sensoren oder Geräten wird mit der Device-Bit-Plattform zum Kinderspiel. Die Plattform ermöglicht sowohl die Echtzeit-Datenspeicherung als auch den weltweiten Zugriff auf die dort abgelegten Daten. Zudem wird die globale Fernbedienung von Geräten und elektronischen Einrichtungen ermöglicht. Die Device-Bit-Plattform stellt aber nicht nur einen einfachen Weg zum Testen und Erproben von Prototypen dar. Sie kann sogar dazu dienen, neue Produkte oder Dienstleistungen weltweit bekannt zu machen oder auf dem internationalen Markt zu platzieren. Die Plattform ist also nicht nur für Privatanwendungen interessant, sondern sie kann sogar im kommerziellen Bereich eingesetzt werden. Neben umfassenden Möglichkeiten zur Datenanalyse bietet die Plattform auch die Möglichkeit, Echtzeit-Warnungen und Benachrichtigungen zu versenden. Wenn Sensoren Werte liefern, die außerhalb festgelegter Toleranzbereiche liegen, können unverzüglich entsprechende Hinweise oder sogar Alarmmeldungen gesendet werden. Man kann jederzeit eigene, auf der Plattform basierende Ideen verwirklichen und eigene Geräte entwickeln. Dank der DeviceBit-Web-Seite kann man sich dabei auf Hardware und eigne Anwendungssoftware statt auf Internet-Infrastruktur konzentrieren. Die Device-Bit-Plattform ist auch in der Lage, mit bestehenden sozialen Netzwerken wie Twitter und Facebook zu kommunizieren, sodass man mit Bekannten oder Freunden Projekte teilen kann. Das kann für Entwicklungsarbeit auf den verschiedensten Gebieten äußerst nützlich sein.
● 121
Smart Home DE 170919.indd 121
18-10-17 09:47
Kapitel 10 • IoT mit der Device-Bit-Plattform
Kapitel 10 • IoT mit der Device-Bit-Plattform Nun steht mit der Device-Bit-Plattform eine umfangreiche Basis für die Heimautomatisierung zur Verfügung. Man kann etwa die Helligkeit in einem Raum kontrollieren und über eines der Relais eine Markise oder ein Rollo ansteuern. Falls die Temperatur in einem Raum im Sommer zu hoch werden sollte, kann man über ein anderes Relais eine Klimaanlage aktivieren. All diese Aktionen kann man prinzipiell von jedem Punkt der Welt aus durchführen, solange ein Internetzugang vorhanden ist. So kann man etwa eine Ferienwohnung vom Hauptwohnsitz aus steuern und das optimale Raumklima einstellen, wenn man dort Urlaub machen will. Kommt man dann an, muss man sich um nichts mehr kümmern, da alle Geräte und Funktionen bereits optimal eingestellt sind. Aber auch vom Büro aus kann man zu Hause die gewünschte Temperatur einstellen. Man kann so etwa die aktuelle Raumtemperatur im Wohnzimmer aus der Ferne ablesen und, je nach Stimmungslage, eine angenehm warme oder aber auch eine eher kühle Umgebung wählen. 10.1 Datensicherheit und Privatsphäre All diesen Annehmlichkeiten stehen aber auch gewisse Gefahren gegenüber. Insbesondere den Themen Datensicherheit und Privatsphäre sollte man im IoT-Bereich besondere Aufmerksamkeit widmen. Sicherlich will niemand, dass völlig fremde Personen die Heizungs- oder Klimaanlage im eigenen Heim steuern. Aber auch andere Gefahren sind zu beachten. So können verschiedene Sensorwerte Rückschlüsse darauf zulassen, ob die Hausbewohner eventuell gerade im Urlaub sind. Eine niedrige Raumtemperatur von z. B. 10° C über einen längeren Zeitraum hinweg legt die Vermutung nahe, dass das entsprechende Haus gerade leersteht und die Bewohner verreist sind. Potenzielle Einbrecher hätten dann ein leichtes Spiel. Aber auch aus anderen Daten können Rückschlüsse auf die Gewohnheiten der Hausbewohner gezogen werden. Nicht immer ist es erwünscht, dass diese Gewohnheiten in aller Öffentlichkeit bekannt sind. In den meisten Fällen besteht daher ein starkes Interesse daran, dass die Sensordaten des eigenen Heimes vertraulich bleiben. Aus diesem Grunde ist der Zugang zur Device-Bit-Plattform auch mit einem Passwort geschützt. Allerdings gibt es verschiedene Möglichkeiten, die Daten zu veröffentlichen. Hier ist also größte Vorsicht geboten, dass nicht versehentlich private Messdaten öffentlich einsehbar werden. Außerdem muss man sich im Klaren darüber sein, dass prinzipiell jeder Zugang geknackt oder "gehackt" werden kann. In diesem Fall kann dann der betreffende Angreifer alle Daten des Hausautomatisierungssystems unerkannt mitlesen. Zudem kann er Zugriff auf alle über das Web-Interface angesteuerten Geräte erlangen. Man sollte sich also vor Inbetriebnahme sehr genau überlegen, welche Geräte man über das Internet steuern will. Wenn beispielsweise ein unbefugter "Spaßvogel" in einer wochenlang nicht genutzten Ferienwohnung die Heizung auf volle Leistung dreht, kann dies erhebliche Kosten verursachen. Aber natürlich sind auch andere noch schwerer wiegende Missbräuche denkbar. Der Fanta-
● 141
Smart Home DE 170919.indd 141
18-10-17 09:47
Kapitel 11 • Automatisches Versenden von E-Mails
Kapitel 11 • Automatisches Versenden von E-Mails Die Device-Bit-Plattform ist auch in der Lage, selbstständig E-Mails zu senden. Hierzu müssen unter IoT Applicationms Sending Scheme die entsprechenden Einstellungen angegeben werden. Die folgende Abbildung zeigt ein Anwendungsbeispiel.
Abbildung 11.1: Versenden von E-Mails Nach de Aktivierung der Funktion werden automatisch E-Mails an die angegebene Adresse versandt. Der Inhalt der Mail kann unter "Text Edit" festgelegt werden.
Abbildung 11.2: Mail-Inhalt definieren Unter "Content" kann ein beliebiger Text angegeben werden. Messwerte müssen dabei in doppelten eckigen Klammeren ( "[[Wert]]" ) angegeben werden. Der Text "Hello! Humidity is: [[Humidity]]% - Lightintensity is: [[Lightintensity]]" sendet also die folgende E-Mail an das angegeben Postfach:
● 145
Smart Home DE 170919.indd 145
18-10-17 09:47
Kapitel 12 • Mobiler Zugriff mit Smartphone oder Tablet
Kapitel 12 • Mobiler Zugriff mit Smartphone oder Tablet Auch eine direkter Zugriff auf die Device-Bit-Plattform mit mobilen Geräten wie Smartphones oder Tablets ist möglich. Hierzu muss man die Adressen m.devicebit.com im Browser des Mobilgeräts aufrufen. Nach dem Einloggen steht eine angepasste Oberfläche zur Verfügung:
Abbildung 12.1: Zugriff auf die Device-Bit-Plattform mit dem Smartphone In der Applikation können dann wieder alle Sensorwerte mobil abgefragt werden.
Abbildung 12.2: Mobile Abfrage von Sensorwerten Allerdings kann mit modernen Geräten auch direkt auf die Web-Pages zugegriffen werden. Dann steht dort derselbe Funktionsumfang zur Verfügung wie auf einem PC oder Laptop.
● 147
Smart Home DE 170919.indd 147
18-10-17 09:47
Kapitel 13 • Die Alternative: ThingSpeak
Kapitel 13 • Die Alternative: ThingSpeak Kostenlose Internet-Plattformen wie Device Bit haben einen gravierenden Nachteil. Es kann nicht garantiert werden, dass sie immer verfügbar sind. Dies gilt zum einen hinsichtlich der Online-Zeiten, zum anderen aber auch bezüglich einer generellen Betriebsdauer. Da man mit den Betreibern der Plattform keinen Vertrag in irgendeiner Form abgeschlossen hat, besteht natürlich auch kein Recht auf permanenten Zugriff. Prinzipiell könnten die Betreiber die Web-Seiten jederzeit abschalten. Aus diesem Grunde ist es vorteilhaft, immer eine Alternative zur Hand zu haben. Hier bietet sich ThingSpeak an. Diese IoT-Plattform ist unter thingspeak.com/ erreichbar. Sie ist ähnlich aufgebaut wie die Device-Bit-Web-Seiten und bietet ebenfalls eine umfassende Unterstützung für Arduino-basierte Projekte an. Im Folgenden soll daher auch diese Plattform etwas genauer unter die Lupe genommen werden. Die passende Library kann unter https://github.com/mathworks/thingspeak-arduino heruntergeladen werden. Die Library wird wieder wie üblich in das Arduino-Verzeichnis installiert. Auf der Hardware-Seite kann direkt das Sensor-Board aus dem Kapitel "Aufbau des Sensorboards" übernommen werden. 13.1 Einrichtung der Datenbasis Hinsichtlich der Einrichtung der Web-Seite bestehen zwischen Device Bit und ThingSpeak viele Parallelen. Auch bei ThingSpeak ist ein Anmeldung über die Log-In-Page erforderlich. Der Aufbau der Kommunikation erfolgt auch hier über einen eindeutigen Zuordnungscode, den sogenannten API-Key. Hinzu kommt noch eine Channel-ID. Die aktuellen Werte können unter Channels MyChannels abgefragt werden. Die beiden Daten müssen wieder in den Sketch eingefügt werden. Dann können die bekannten Sensordaten auf die Web-Page geladen und weltweit abgefragt werden. Der Sketch dazu sieht so aus: // ThingSpeak_Sensor #include "ThingSpeak.h" #include <SPI.h> #include <dht11.h> #include <Wire.h> #include <Adafruit_Sensor.h>
● 149
Smart Home DE 170919.indd 149
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 14 • Praxisanwendungen für Fortgeschrittene Nachdem in den letzten Abschnitten überwiegend Anwendungen mit dem Material aus dem SunFounder-Smart-Home-Kit erläutert wurden, sollen in den folgenden Kapiteln auch komplexere Geräte und Projekte vorgestellt werden. Diese Geräte und Projekte zeichnen sich insbesondere dadurch aus, dass sie mehrere Module miteinander kombinieren. So entsteht unter Verwendung zusätzlicher Hardware wie etwa eines Echtzeitmoduls oder einer LCD-Anzeige eine sehr praxistaugliche Wetterstation. Die dazu erforderlichen Komponenten können meist preisgünstig bei den einschlägigen Online-Händlern (s. Bezugsquellenverzeichnis) bezogen werden. Aber auch die bereits bekannten Komponenten werden weiter eingesetzt und detaillierter beschrieben. Insbesondere der Einsatz sogenannter Bus-Systeme soll dabei im Vordergrund stehen. Damit lassen sich umfangreiche Heimautomatisierungssysteme realisieren. Die Anzahl der an den Arduino MEGA2560 anschließbaren Komponenten ist damit nahezu unbegrenzt. Unter Verwendung des Relais-Moduls können dann etwa Halogenlampen oder andere leistungsstarke Verbraucher über die verschiedensten Sensoren gesteuert werden. Mit dem RFID-Modul kann ein komplettes Zugangssicherungssystem entwickelt werden, mit dem Türen oder Räume über einen Code gesichert werden können. Natürlich stellen auch die hier vorgestellten Praxisbeispiele nur eine Auswahl dar. Mit den vorhandenen Teilen kann noch eine Vielzahl weiterer Anwendungen aufgebaut werden. Nach dem Durcharbeiten der folgenden Kapitel ist der dann bereits fortgeschrittene Anwender mit einer Vielfalt von Modulen bestens vertraut und kann dies auch in aufwendigeren Systemen einsetzen. Der Fantasie sein hier keine Grenzen gesetzt. Projekte wie eine • licht- und zeitgesteuerte Hausbeleuchtung • eine Katzenklappe mit RFID-Erkennung • eine klimaoptimierten Heizungs- oder Belüftungssteuerung • eine Alarmsicherung mit PIR-Detektoren und RFID-Aktivierung • usw. können so problemlos realisiert werden.
● 154
Smart Home DE 170919.indd 154
18-10-17 09:47
Kapitel 15 • Bus-Systeme
Kapitel 15 • Bus-Systeme Für Mikrocontrolleranwendungen haben zwei Bus-Systeme weite Verbreitung gefunden: • I2C • SPI
(Inter IC oder IIC) (Serial Peripherial Interface)
Diese beiden Systeme bieten insbesondere dann interessante Möglichkeiten, wenn es um die Realisierung größerer Projekte geht. Bei zunehmend komplexeren Aufgaben und umfangreichen Erweiterungen werden selbst beim Arduino Mega die Pins knapp. Bus-Systeme stellen hier eine ausgezeichnete Lösung dar, da sie es gestatten, mit nur wenigen Pins eine nahezu unbegrenzte Anzahl von Sensoren oder Aktoren anzusteuern. Die beiden Busse kamen bereits bei mehreren Gelegenheiten ins Spiel, da einige der Module aus dem Smart-Home-Kit über I2C bzw. SPI angesteuert werden. Sie sind in der folgenden Tabelle zusammengefasst: Modul
Bus-System
nRF24L01
SPI
RFIDRC522
SPI
Barometer BMP180
I2C
Netzwerkmodul W5100
SPI
Darüber hinaus können über Bus-Systeme viele weitere Komponenten an den Arduino angeschlossen werden, z. B. • Displays und Anzeigeeinheiten • EEPROMs, Flash-Speicher oder SD-Karten • Echtzeituhren Da einige dieser Komponenten auch im Smart-Home-Bereich von besonderer Bedeutung sind, sollen die Bus-Systeme im Folgenden etwas genauer betrachtet werden. ² 15.1 Grundlagen und Anwendungen des I C-Busses Der Arduino MEGA verfügt über 54 digitale IO-Pins und 16 analoge Eingänge. Diese Eingänge sind für viele kleinere Projekte vollkommen ausreichend, bei größeren IoT-Anwendungen stößt man jedoch schnell an Grenzen. Sogenannte Bus-Systeme bieten hier eine kostengünstige Erweiterungsmöglichkeit. Sie erlauben es, umfangreiche Funktionen mit nur wenigen Pins zu steuern. Ein klassisches Beispiel ist die Verwendung eines I²C-Displays. Es benötigt nur zwei Port-Pins im Gegensatz zu den sechs oder mehr Ports, die ein klassisches HD44780-LCD belegt. In diesem Kapitel soll daher zunächst der I²C-Bus betrachtet werden. Der SPI-Bus wird dann in den folgenden Abschnitten behandelt.
● 155
Smart Home DE 170919.indd 155
18-10-17 09:47
Kapitel 16 • Grundlagen der Arduino-Programmierung
Kapitel 16 • Grundlagen der Arduino-Programmierung Einer der Hauptgründe für den überragenden Erfolg der Arduino-Plattform ist die Verfügbarkeit einer einfachen Programmierumgebung. Die Arduino-IDE (Integrated Developing Environment) ist sehr einfach aufgebaut, und selbst Kinder und Jugendliche können damit bereits nach kürzester Zeit eigene Programme erstellen. Zudem steht für nahezu jede Anwendung eine sogenannte Bibliothek zur Verfügung. Auch damit wird die Umsetzung eigener Projekte wesentlich vereinfacht. Man muss nun nicht mehr das Rad jedes Mal neu erfinden. Vielmehr kann der Anwender auf die umfangreichen Vorarbeiten anderer Programmierer zurückgreifen. Dennoch ist für eigene Projekte ein gewisses Grundverständnis der Arduino-Programmiersprache unerlässlich. Aus diesem Grund geben die folgenden Kapitel eine kurze Einführung in die wichtigsten Befehle und Strukturen der Arduino-Programmierung. Diese Einführung ist weniger als Grundkurs gedacht, sondern als Nachschlagewerk, falls einmal die ein oder andere Stelle in einem Sketch nicht gleich ganz klar sein sollte. Für einen umfassenderen Einstieg sei an dieser Stelle auf das Literaturverzeichnis verwiesen.
● 187
Smart Home DE 170919.indd 187
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 17 • Die grundlegende Programmstruktur Ein Arduino-Programm oder "Sketch" besteht immer aus mindestens zwei Teilen: 1. void setup() {
anweisungen; }
2. void loop() {
anweisungen; }
Setup wird als erste Funktion in einem Programm abgearbeitet. Es wird nur einmal ausgeführt und dient beispielsweise der Festlegung von PinModes oder dem Starten der seriellen Kommunikation. Nach der setup()-Funktion folgt die loop()-Funktion. Hier wird der Programm-Code eingefügt, der kontinuierlich in einer unendlichen Schleife ausgeführt wird. 17.1 Funktionen Funktionen sind Programmblöcke mit einem Namen. Sie enthalten Anweisungen, die beim Aufruf der Funktion ausgeführt werden. Auch void setup() und void loop() sind nichts anderes als spezielle Funktionen, die standardmäßig vom Programmiersystem des Arduino zur Verfügung gestellt werden. Sie Erstellung eigener Funktionen ist sinnvoll, um sich wiederholende Aufgaben zu vereinfachen und um die Übersichtlichkeit der Programmstruktur zu verbessern. Eine Funktion wird definiert, indem zuerst der Typ der Funktion festgelegt wird. Dieser Typ ist identisch mit dem Datentyp des zurückgegebenen Wertes. Durch "int" wird so z. B. bestimmt, dass ein Integer, also eine Ganzzahl, zurückgegeben wird. Soll kein Wert zurückgegeben werden, wird "void" als Funktionstyp angegeben. Nach der Definition des Typs wird der Funktionsname angegeben und in Klammern folgen alle Parameter, die der Funktion übergeben werden sollen: Typ FunktionsName(parameter) {
anweisungen; }
17.2 Syntaxelemente
{} geschweifte Klammern
Durch geschweifte Klammern wird der Anfang und das Ende von Funktions- und Anweisungsblöcken gekennzeichnet.
; Semikolon
Das Semikolon kennzeichnet das Ende einer Anweisung.
/*... */ Block Kommentare
Mehrzeilige Kommentare sind Textbereiche, die keinen Programm-Code, sondern
● 188
Smart Home DE 170919.indd 188
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 18 • Verwendung von Bibliotheken Bibliotheken oder Libraries – kurz "LIBs" – sind ein wesentlicher Grund für den umfassenden Erfolg des Arduino-Gedankens. Zwar standen auch in früheren Programmiersystemen bereits umfangreiche LIBs zur Verfügung, doch mussten sie häufig teuer bezahlt werden oder waren einfach nicht allgemein bekannt oder verfügbar. Mit dem Aufkommen der Arduino-IDE hat sich diese Situation grundlegend geändert. Eine Vielzahl von Standard-Bibliotheken wird bereits mit der IDE kostenlos mitgeliefert. Noch wichtiger ist aber, dass sich eine überwältigende Vielzahl von LIBs entwickelt hat, die von der weltumspannenden Gemeinde der Anwender erstellt wurde. Die Bibliotheken werden praktisch immer kostenfrei im Internet zur Verfügung gestellt. Damit ist eine umfassende Menge an Anwendungen für die breite Öffentlichkeit zugänglich geworden. In den allermeisten Fällen findet sich zu jedem geplanten Projekt oder zu jeder Programmanwendung eine passende LIB. Meist kann die Library als ZIP-Datei aus dem Internet heruntergeladen werden. Danach muss sie in die Arduino-Programmierumgebung eingefügt werden. Hierfür wird die ZIP-Datei zunächst entpackt. Dann muss das neue Dateiverzeichnis einfach in den zugehörigen Pfad, arduino-x.y.z\libraries kopiert werden. Nach einem Neustart der IDE steht die Library bereits zur Verfügung. Alternativ kann auch unter den Menü-Punkten Sketch -> Include Library und add .ZIP Library eine LIB eingebunden werden. Nachfolgend sind die für dieses Buch erforderlichen Libraries aufgeführt. Gelegentlich kann es vorkommen, dass ein Link nicht mehr aktiv ist. In diesen Fällen findet sich aber meist mithilfe einer Suchmaschine leicht und schnell Ersatz. Die allgemein erforderlichen Libraries finden sich in einer Zip-Datei, die unter
https://www.sunfounder.com/learn/category/Smart-Home-Kit-V2-0-for-Arduino.html
heruntergeladen werden kann. In diesem Zip-Archiv (Smart_Home_Kit_V2.0_for_Arduino. zip) finden sich die Libraries zu den folgenden Sensoren: • BMP085Unified • Dht11 • RFID (RFID1) In der ebenfalls enthaltenen Library "Sensor" sind verschiedene Hilfsfunktionen zusammengefasst. Diese Library muss daher ebenfalls installiert werden. Darüber hinaus wird die Library für den • DeviceBitTcpClient
● 196
Smart Home DE 170919.indd 196
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 19 • Fehlersuche Falls ein Projekt einmal gar nicht so funktioniert wie erwartet, kann eventuell dieser Abschnitt weiterhelfen. Die folgenden Punkte fassen die in der Praxis am häufigsten auftauchenden Fehlerursachen zusammen. Wenn man sie nacheinander durchgeht und abhakt, ist die Wahrscheinlichkeit hoch, dass die Schaltung schließlich auch einwandfrei arbeitet. • Sind alle polaren Bauelemente richtig gepolt? Bitte insbesondere Elkos, ICs und LEDs prüfen! • Darauf achten, dass sich die Anschlussdrähte von Bauelementen nicht unbeabsichtigt berühren und so unerwünschte Kurzschlüsse verursachen. • Sind die Widerstände korrekt ausgewählt? Bei schlechten Lichtverhältnissen können die Farbringe leicht verwechselt werden. Insbesondere 1 kΩ und 10 kΩ sind oft schwer auseinanderzuhalten. Ist bei Batteriebetrieb die Leistung der verwendeten Batterien noch ausreichend? Die im Arduino-Umfeld häufig verwendeten Aufbaubilder erleichtern zwar den Einstieg in die Elektronik, allerdings werden sie bei größeren Aufbauten auch relativ schnell ziemlich unübersichtlich. Hier kann es helfen, wenn man sich selbst einen klassischen Schaltplan anfertigt. Dann fallen falsche Verbindungen oft sehr schnell auf. Dieses Vorgehen ist auch als "Reverse Engineering" bekannt. Zudem fördert dieses Vorgehen das Verständnis einer Schaltung oft ganz erheblich. Bei einem Verbindungsaufbau zum Internet sollten folgende Punkte überprüft werden: • Wurde für den Verbindungsaufbau zur Device-Bit-Plattform der Sketch mit der IDE-Version 1.0.5 kompiliert? Aufgrund von Kompatibilitätsproblemen treten bei späteren Versionen häufig Probleme auf. • Wurde der LW_USERKEY im verwendete Sketch korrekt eingetragen? Nochmals den Eintrag im aktiven Sketch prüfen: #define LW_USERKEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
// USERKEY
#define LW_GATEWAY "01"
// User gateway Number
Dieser Key kann in der Device-Bit-Plattform aktualisiert werden. Nach jeder Aktualisierung muss natürlich der neue Schlüssel verwendet werden. • Kein Server hat eine Up-Time von 100 %. Dies gilt natürlich auch für die Device-Bit-Plattform. So kommt es hin und wieder vor, dass der Server nicht online ist. In diesem Fall kann es selbstverständlich auch nicht zu einen Verbindungsaufbau kommen. In diesem Falle kann man nur abwarten, bis der Server wieder online ist.
● 198
Smart Home DE 170919.indd 198
18-10-17 09:47
Kapitel 20 • Bauelemente und Module
Kapitel 20 • Bauelemente und Module Das vorliegende Buch ist prinzipiell auf das IoT-ID-Kit von SunFounder abgestimmt. Alle Experimente und Projekte können mit den Komponenten aus diesem Paket durchgeführt werden. Allerdings gibt es sicher auch viele Interessenten, die nicht an allen Bauelementen interessiert sind, sondern vielleicht nur einige der Aufbauten umsetzen wollen. In diesem Fall können die erforderlichen Teile meist auch einzeln beschafft werden. Im nächsten Kapitel finden sich einige Bezugsquellen, die viele der erforderlichen Komponenten liefern können. In diesem Abschnitt werden alle verwendeten Teile vorgestellt, Bezugsquellen und Alternativen genannt. Damit sollte die Beschaffung einzelner Bauelemente kein Problem mehr darstellen. Zudem können eventuell zusätzlich benötigte Bauelemente oder Ersatzteile bestellt werden, falls einzelne Elemente verloren gegangen sind oder Defekte auftreten. Die folgenden Komponenten und Bauelement sind im SunFounder-Kit enthalten: Aufbautechnik: • 1x Breadboard Elektronische Bauelemente: • 5x 220-Ω-Widerstand • 5x LED (rot) • 5x Drucktaster Arduinos und Shields: • 1x Arduino NANO • 1x Arduino Mega 2560 • 1x Netzwerk-Modul W5100 Module • 1x • 1x • 1x • 1x • 1x • 1x • 1x • 2x
Fotowiderstandsmodul Gas-Sensor MQ2 Temperatur- und Feuchte-Sensor DHT11 Luftdrucksensor BMP180 Infrarot-Sensor PIR 4-Kanal-Relais-Modul RFID RC522 und Schlüsselanhänger-Transponder NRF24L01
Kabel • 40x Dupont Wire (female to male) • 20x Dupont Wire (male to male) • 20x Dupont Wire (female to female)
● 199
Smart Home DE 170919.indd 199
18-10-17 09:47
Kapitel 21 • Bezugsquellen
Kapitel 21 • Bezugsquellen Wenn man das Bauteilesortiment des Kits ergänzen oder erweitern will, wenn ein Bauteil verloren geht oder nicht mehr funktioniert, können bei den großen Elektronik-Versandhäusern Ersatzteile bestellt werden:
• • • • •
Reichelt Elektronik: www.reichelt.de Conrad Electronic Versand: www.conrad.de AK-Modulbus: www.ak-modul-bus.de ELV-Elektronik AG: www.elv.de Elektor-Web-Shop: https://www.elektor.de/
Zudem bieten die bekannten Online-Shops wie Amazon und Ebay in zunehmendem Maße elektronische Komponenten an. Hier erhält man meist zwar keine einzelnen Halbleiter, jedoch sind immer wieder Sortimente oder Bündel mit verschiedenen interessanten Bauelementen zu finden.
● 213
Smart Home DE 170919.indd 213
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 22 • Literatur Das vorliegende Buch befasst sich intensiv mit den Bauteilen des Hardware-Kits. Wenn man die einzelnen Kapitel vollständig durcharbeite, ist man durchaus in der Lage, weiterführende Literatur zu studieren und zu verstehen. Die nachfolgenden Bücher und Medien schließen sich nahtlos an das Niveau des Buches an: [1] [2] [3] [2] [3] [4] [5] [6] [7] [8] [9]
AVR-Microcontroller in C_programmieren, Franzis, 2010 Sensortechnik, Franzis, 2009, Lernpaket AVR-Microcontroller in C programmieren, Franzis, 2010 Online-KURS_Mikrocontroller, Franzis, 2011 Arduino – Schaltungsprojekte für Profis, Elektor, 2012 C-Programmierung von AVR-Mikrocontrollern, Franzis, 2012, Lernpaket Coole Projekte mit dem Arduino Micro, Franzis, 2014 Arduino-Projects, Franzis, 2014, Lernpaket Lernpaket "AVR-Mikrocontroller in C programmieren", Franzis 2012 Lernpaket Physical Computing, Franzis, 2015 Lernpaket Sensoren und Motoren am Arduino, Franzis, 2016
Ergänzende Informationen zum Thema Elektronik allgemein sind in den folgenden E-Books zu finden. Diese Reihe wird kontinuierlich ergänzt und erweitert: [1] E-book Elektronik! – Transistortechnik http://www.amazon.de/dp/B00OXNCB02 [2] E-book Elektronik! – Audiotechnik https://www.amazon.de/dp/B013NSPPY6 [3] E-book Elektronik! – Messtechnik https://www.amazon.de/dp/B0753GXHVP Als weiterführende Literatur können die folgenden Werke empfohlen werden: [1] [2] [3] [4]
P. Horowitz, W. Hill: The Art of Electronics, Cambridge University Press, Third Edition, 2015 Praxiskurs AVR-XMEGA-Mikrocontroller: Mit C von Anfang an, Elektor, 2015 Lernpaket Physical Computing, Franzis, 2015 Elektronik mit ICs, Lernpaket, Franzis, 2008
● 214
Smart Home DE 170919.indd 214
18-10-17 09:47
Kapitel 23 • Verzeichnis der Sketche
Kapitel 23 • Verzeichnis der Sketche Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch Sketch
4.1: Alarm_simulator 4.2: SOS 4.3: Bouncing 4.4: Debouncing 5.1: DHT11_numerical 5.2: DHT11_graphical 5.3: DHT11_multiple_sensors 5.5: photoresistor_percent 5.6: photoresistor_graphical 5.7: Emergency Light 5.8: BMP180_numerical 5.9: BMP180_graphical 5.10: TempComp 5.11: ClimateStation 6.1: Light_barrier 6.2: PIR_alarm 6.3: PIR_graphics 6.4: RFID 6.5: RFID_show_ID 6.6: RFID_identification 6.7: MQ2 6.8: MQ2_graphical 7.3: NRF24L01_analog_transmit_MEGA 7.4: NRF24L01_analog_receive 7.7: NRF24L01_switch_receiver 7.8: NRF24L01_thermostat_TX_MEGA 7.9: NRF24L01_thermostat_RX 8.1: SimpleWeb-Server 8.2: GraphWeb-Server_AnalogIn 9.2: photoresistor_acquisition_board 13.1: ThingSpeak_Sensor 15.1: I2C_climate_station 15.2: Mega-LED-chaser using PCF8574(A) Port-Expanders 15.3: I2C_LCD_test 15.4: RTC clock 15.5: SPI_74HC595 15.6: SPI_LCD
29 30 31 35 40 41 44 47 48 50 52 53 55 58 62 67 68 75 77 78 82 83 95 96 104 105 107 116 119 129 152 166 168 171 175 181 182
● 215
Smart Home DE 170919.indd 215
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Kapitel 24 • Abbildungsverzeichnis Abbildung 3.1: SunFounder MEGA2560 Abbildung 3.2: SunFounder NANO Abbildung 3.3: Steckplatine oder Breadboard Abbildung 3.5: LED am Arduino Abbildung 3.6: Auswahl des richtigen Boardtyps Abbildung 3.7: Auswahl des COM-Ports Abbildung 3.8: Widerstände Abbildung 3.9: Jumper-Kabel Abbildung 3.10: Verbindungskabel für Module Abbildung 3.11: Leuchtdioden Abbildung 3.12: 9-V-Batterieclip Abbildung 4.1: Taster Abbildung 4.2: Taster am Arduino Abbildung 4.3: Der serielle Monitor in der Arduino-IDE Abbildung 4.4: Prellverhalten eines Tasters Abbildung 5.1: Temperatur/Feuchte-Sensor DHT11 Abbildung 5.2: DHT11-Pin-Belegung Abbildung 5.3: Interner Aufbau des DHT11-Sensors Abbildung 5.4: DHT11-Modul am Mega2560 Abbildung 5.5: Test des DHT11-Sensors Abbildung 5.6: Kombisensor DHT11 in feuchter Umgebung Abbildung 5.7: Zwei DHT11-Sensoren am Mega2560 Abbildung 5.8: Simultanes Auslesen zweier DHT11-Sensoren Abbildung 5.9: Das Fotowiderstandsmodul am Analogeingang A0 des Mega2560 Abbildung 5.10: Lichtmessung mit dem LDR-Modul Abbildung 5.11: Tageslichtverlauf in einem Zimmer Abbildung 5.12: Notbeleuchtung Abbildung 5.13: Anschluss des BMP180-Luftdrucksensors an den Mega2560 Abbildung 5.14: Temperaturvergleich BMP180 und DHT11 Abbildung 5.15: Tiefgekühlter Sensor Abbildung 5.16: Klimastation Abbildung 5.17: Umweltmessdaten Abbildung 6.1: Prinzip einer Lichtschranke Abbildung 6.2: Lichtvorhang Abbildung 6.3: Raumüberwachung mit dem Optosensor: Spikes deuten auf Personen im überwachten Bereich hin. Abbildung 6.4: Funktionsprinzip des PIR-Sensors Abbildung 6.5: Anschluss des PIR-Moduls an den MEGA2560 Abbildung 6.6: Ausgabe des PIR-Sensors im seriellen Monitor Abbildung 6.7: Grafisches Überwachungsprotokoll Abbildung 6.8: RFID-Modul Abbildung 6.9: RFID-Tags als Karte und Schlüsselanhänger Abbildung 6.10: RFID-Tag als Aufkleber in einem Buch Abbildung 6.11: RFID-Tag als Informationsquelle
18 18 19 21 23 23 25 26 27 27 28 31 32 33 34 37 37 38 39 41 42 43 45 46 47 48 49 51 55 56 57 59 61 63 64 65 66 68 68 70 70 71 72
● 216
Smart Home DE 170919.indd 216
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
Index 2,4-GHz-Band 86 6-Pin-Schnittstelle 185 74HC595 177, 180
Flüssigkristall 169 Fotowiderstände 205 Funktionen 188
A
G
A/D-Wandler 36 API-Key 149 Arduino-Bootloader 185 Arduino-Plattform 187 Arduino-Programmierumgebung 22 asynchron 175
Gangreserve 172 Gaskonzentration 79, 206 Gas-Sensor 80, 81
B Backlight 171 Baudrate 176 Bauteilesortiment 213 Betriebsspannung 20 Bewegungsmelder 65 BMP180 207 Bootloader 185 BPW40 205 Bus-System 155
C Channel-ID 149 Chip-Select-Leitung 177 Clock-Leitung 177
H Heizelement 80 Hintergrundbeleuchtung 171 Hot-Plug-Fähigkeit. 160
I I²C-Scanner 163 I²C-Sensoren 160 ICSP 179 ICSP-Schnittstelle 185 IDE 187 In Circuit Serial Programming 179 Infrarotstrahlung 207 Integrated Developing Environment 187 IP-Protokoll-Stack 108 IR-Strahlung 64 ISM 86
J D Datentypen 189 Datum 172 DHT-11 37 DHT11-Sensor 206
Jumper-Kabel 211
K Kabelkanäle 183 Klimadaten 163
E
L
Echtzeitbaustein 172 elektromagnetische Einstreuungen 160 E-Mails 145 Erdgas 206 Explosion 79
LCD 170 LC-Displays 170 LDR 45 LDR-Modul 63 LED 20 lichtabhängiger Widerstand 45 Liquified Petroleum Gas 79 LM75 160 Log-In Page 149
F FET-Verstärker 64 Feuchte 36
● 220
Smart Home DE 170919.indd 220
18-10-17 09:47
Index
LPG 79 Luftdruck 172 Luftdrucksensor 207 Luftfeuchtigkeitswert 206
M MAX7219 182 Mikrocontroller 22 Modul 76 Modulkabel 212 MQ-2 79 MQ-2-Gassensor 206 MQ-X-Baureihe 79
N Netzwerk-Controller 108 nRF24L01 87 nRF24L01-Funkmodul 183
SD-Kartenslot 110 Semikolon 188 Sensoren 36 Shield 108 Single-Chip-Netzwerk-Interface 204 Sketch 188 Slave-Device 182 SMA-Buchse 88 Smartphone 147 SMS 146 SPI-Baustein 175 SPI-Bus 175 SPI-Flash-Speicher 178 Spike 63 SPI-Port 185 SPI-Protokoll 108, 184 SPI-Schnittstelle 179, 185 Start- und Stopp-Bits 176 Steuerleitung 175
O Online-Zeiten 149
P PCF8574 166 PHY 108 Physical-Layer 108 PIR 64 PIR-Alarm 153 PIR-Modul 207 PIR-Sensor 64, 207 Port-Expander 166 Programmer 185 Programmierung 185
R Raumbeleuchtungen 45 Raumklimatisierung 107 Real-Time-Clock 172, 179 RFID-System 76 Rollladensteuerungen 45 RTC 172
T Tablet 147 TCP 108 Thermoelement 207 Thermospannungen 160 Thermostatfunktion 104 Thermostatsteuerung 104 ThingSpeak 149 Transceiver 87 Twitter 146
U UART-Bausteine 177 Übertragungstakt 176 Uhrenquarz 172 Uhrzeit 172 Unwetteralarm 36
V Variablen 189 Versenden von Mails 146 Vorwiderstand 20
S SainSmart MEGA 17 Schieberegister 177 Schwellwert 104
W W5100 108 W5100-Chip 110
● 221
Smart Home DE 170919.indd 221
18-10-17 09:47
Smart-Home- und IoT-Technik für den Arduino
W5100-Modul 204 W5100-Shield 204 Wärmestrahlung 207 Widerstände 25 WIZnet-W5100-Chip 108
● 222
Smart Home DE 170919.indd 222
18-10-17 09:47
Smart Home- und IoT-Technik für den Arduino bietet eine Fülle von Praxisprojekten, die mit einem einzigen Kit aufgebaut werden können. Das "Smart Home Internet of Things Kit V2.0 for Arduino" enthält über 30 Komponenten, Bauelemente und Module aus allen Bereichen der modernen Elektronik.
Neben seiner Tätigkeit als Dozent hat er sehr erfolgreich Fachartikel und Bücher zum Thema Elektronik, Halbleitertechnik und Mikrocontroller veröffentlicht sowie Kurse und Lernpakete zu diesen Themen erstellt.
Damit lassen sich eine Fülle von Projekten realisieren. Für den Einsteiger werden zunächst einige einfachere Einsteigerexperimente vorgestellt. Der fortgeschrittenere Anwender kann sich dagegen gleich an die komplexeren Themen heranwagen. Neben präzisen digitalen Thermometern, Hygrometern, Belichtungsmessern und verschiedenen Alarmanlagen entstehen auch praktisch einsetzbare Geräte und Anwendungen wie etwa • eine vollautomatische Beleuchtungssteuerung • ein digitales Thermostat • eine multifunktionale Klimamessstation
ISBN 978-3-89576-327-4
Zudem wird detailliert erklärt, wie Messdaten in das Internet übertragen werden. Dort sind sie grafisch darstellbar und können weltweit abgerufen werden. Auch auf die damit verbundenen Gefahren und die Problematik des Datenschutzes wird eingegangen.
Elektor-Verlag GmbH 52072 Aachen www.elektor.de
Die vorgestellten Praxisprojekte bleiben dabei aber nicht im Status eines „Laborprototyps“ stehen. Durch entsprechende Tipps und Hinweise entstehen vielmehr praxistaugliche Geräte, die in Haushalt, Hobby und Beruf eingesetzt werden können. Selbstverständlich können sämtliche Bauteile auch einzeln beschafft werden, so dass sich die Projekte im Buch auch ohne das komplette IoT-Kit durchführen lassen.
SMART HOME- UND IOT-TECHNIK FÜR DEN ARDUINO
●
Der Autor des vorliegendes Buches ist seit über 20 Jahren im Bereich der Elektronikentwicklung und der Physikalischen Technologie für verschiedene Großkonzerne tätig.
SMART HOME- UND IOT-TECHNIK
Günter Spanner
FÜR DEN ARDUINO
SMART-HOME-SYSTEME SELBER BAUEN
GÜNTER SPANNER
SMART HOME- UND IOT-TECHNIK
DESIGN SHARE
SMART-HOME-SYSTEME SELBER BAUEN
Günter Spanner LEARN DESIGN SHARE
LEARN
LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN RN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR SIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN RN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR
Smart Home und IOT Technik.indd All Pages
18/10/2017 12:55