Brühlmann | Heimautomation mit Arduino, ESP8266 und Raspberry Pi | E-Book | sack.de
E-Book

E-Book, Deutsch, 368 Seiten

Reihe: mitp Professional

Brühlmann Heimautomation mit Arduino, ESP8266 und Raspberry Pi

Das eigene Heim als Smart Home für Heimwerker, Bastler und Maker
1. Auflage 2021
ISBN: 978-3-95845-673-0
Verlag: mitp Verlags GmbH & Co.KG
Format: EPUB
Kopierschutz: 0 - No protection

Das eigene Heim als Smart Home für Heimwerker, Bastler und Maker

E-Book, Deutsch, 368 Seiten

Reihe: mitp Professional

ISBN: 978-3-95845-673-0
Verlag: mitp Verlags GmbH & Co.KG
Format: EPUB
Kopierschutz: 0 - No protection



  • Einsatz von Sensoren wie Licht-, Umwelt- und Barometersensoren sowie Raspberry Pi als Schaltzentrale
  • Verwendung fertiger Module wie Bewegungsmelder, Kontakte und Rauchmelder
  • Einsatz einfacher selbst gebauter Elektronik-Module

Mit diesem umfassenden Praxis-Handbuch erfahren Sie, wie Sie Ihr Heim selbst automatisieren können.

Anhand zahlreicher Beispiele lernen Sie Schritt für Schritt die Umsetzung verschiedener Projekte wie z.B. 433-MHz-Sender und -Empfänger, IoT-Gateway mit 433 MHz, drahtlose Infrarot-Fernsteuerung für den Fernseher, Wettermodul, drahtlose Klingel, Strom- und Briefkastenwächter und Aquarium-Timer.

Der Autor zeigt Ihnen die praktischen Einsatzmöglichkeiten verschiedener Sensoren und Aktoren im Smart Home wie Licht-, Umwelt- und Barometersensor. Dabei werden zum einen selbst gebaute einfache Elektronik-Module mit Arduino, ESP8266 und Wemos-Modulen realisiert und über eine Schaltzentrale mit Raspberry Pi gesteuert. Zum anderen werden fertige Module wie Bewegungsmelder, Kontakte oder Rauchmelder über einfache Gateways ins System integriert. Dabei wird für die Zentrale Node-Red verwendet, um die Daten und Zustände zu verarbeiten und zu visualisieren.

Jedes einzelne Projekt wird mit Stückliste und Steckbrett-Aufbau ausführlich dargestellt und beschrieben.

Dieses Buch richtet sich an Bastler und Maker, die bereits etwas Erfahrung mit Arduino und Raspberry Pi gesammelt haben und nun praktische Anwendungen in ihrem Heim aufbauen möchten.

Inhalte und Projekte:

  • IoT-Hardware mit Arduino, ESP8266 und Raspberry Pi
  • Arduino IDE und Node-Red
  • Die Protokolle HTTP und MQTT
  • Arduino als Sensormodul
  • Schaltmodule mit Tasmota-Firmware
  • Node-Red als Schaltzentrale
  • Wettermodul mit Licht-, Umwelt- und Barometersensor
  • 433-MHz-Sender und -Empfänger
  • IoT-Gateway mit 433 MHz
  • ESP8266 als RF-Gateway
  • Node-Red-Schaltzentrale mit Arduino-Interface
  • Drahtlose Infrarot-Fernsteuerung für den Fernseher
  • Drahtlose Klingel
  • Analog-Wandler-Modul
  • Homeautomation-Plattformen
  • Briefkastenwächter
  • Stromwächter
  • Aquarium-Timer
  • Leuchtstreifensteuerung
Brühlmann Heimautomation mit Arduino, ESP8266 und Raspberry Pi jetzt bestellen!

Zielgruppe


Maker und Bastler


Autoren/Hrsg.


Weitere Infos & Material


Kapitel 2:
Internet-Connectivity
Das Internet ist heute ein Werkzeug für Millionen von Menschen. Im Alltag, im Job und im Hobby kann man auf diese Datenquelle nicht mehr verzichten. Auch im Umfeld von Microcontrollern und Minicomputern, wie Arduino und Raspberry Pi, kommt man ohne das Internet nicht mehr aus. Die Community ist online vernetzt. Viele Bastler und Entwickler publizieren ihre Projekte und Programme online und stellen die Daten der ganzen Welt zur Verfügung. Internet-Connectivity, also die Verbindung zum Internet, ist natürlich im IoT-Bereich ein nötiges Tool. Der Buchstabe »I« steht ja stellvertretend für den Begriff Internet. Beim Raspberry Pi? aus dem vorherigen Kapitel haben Sie bereits gesehen, dass das Board Schnittstellen zum kabelgebundenen Ethernet und mit WiFi-Dongle eine drahtlose Kommunikation zur Verfügung stellt. Im Arduino-Umfeld muss für das Standard-Arduino-Board, den Arduino Uno, ein zusätzliches Shield eingesetzt werden, um eine Netzverbindung zum hausinternen Netzwerk oder zum Internet aufzubauen. Dieses Shield wird im nachfolgenden Abschnitt beschrieben. Drahtlose Verbindung ??und die Verbindung zu einem WLAN-Router erfordert keine Kabelverbindung und in vielen Haushalten, Büros oder Bastler-Räumen steht meist ein WLAN inklusive Zugang zum Internet zur Verfügung. In Kapitel 3 werden ausführlich die ESP8266?-Module von Espressif beschrieben, die bereits ein WiFi-Modul onboard beinhalten. Mit relativ wenig Aufwand können mit den ESP-Modulen? Sensor-Anwendungen über die Arduino-Entwicklungsumgebung realisiert werden. 2.1  Ethernet-Shiel?d
Mit dem Ethernet-Shield können Sie Ihren Arduino Uno über eine kabelgebundene Ethernet-Verbindung mit dem Internet verbinden. Das Ethernet-Shield (Abbildung 2.1) ist das dienstälteste Shie?ld für Ethernet-Kommunikation. Die aktuelle Version ist das Ethernet-Shield 2 (https://store.arduino.cc/arduino-ethernet-shield-2), das neben dem Ethernet-Anschluss in Form eines R?J45-Steckers noch einen Adapter für eine SD-Karte enthält. Abb. 2.1: Arduino-Ethernet-Shield (Bild: arduino.cc) Mit dem Ethernet-Shield können 10/100-MB-Netzwerkverbindungen aufgebaut werden. Der Onboard-Ethernet-Controller wird über den SPI-Port angesteuert (Serial Peripheral Interface). Die Software für die Ethernet-Kommunikation mit dem Ethernet-Shield erfolgt über die sogenannte Ethernet-Bibliothek:? https://www.arduino.cc/en/Reference/Ethernet Die Ethernet-Bibliothek ist in der Arduino-Entwicklungsumgebung standardmäßig installiert und kann direkt verwendet werden. Dank der Standard-Arduino-Bauform des Ethernet-Shields können Sie weiterhin Sensoren und externe Bauteile und Module anschließen. Das Ethernet-Shield ist bei vielen Elektronik-Lieferanten oder direkt im Arduino-Shop verfügbar. Neben dem Original-Board von Arduino sind auch etliche Ethernet-Shields von anderen Herstellern auf dem Markt. Bei der Shield-Auswahl ist jeweils zu beachten, dass das Ethernet-Shield mit einem Ethernet-Controller vom Typ Wiz5100? ausgerüstet ist. Die Shields mit diesem Controller-Typ können mit der oben genannten Ethernet-Bibliothek angesteuert werden. Arduino-Shop https://store.arduino.cc/arduino-ethernet-shield-2 Reichelt https://www.reichelt.com/ch/de/arduino-shield-ethernet-shield-2-ohne-poe-w5500-arduino-shd-eth2-p159410.html Bastelgarage https://www.bastelgarage.ch/ethernet-shield-spi-w5100-fur-arduino 2.2  WiFi-Verbindun?g
Für die Realisierung einer drahtlosen Netzverbindung kommt man an den ESP8266-Modulen nicht vorbei. Diese kleinen und kostengünstigen Microcontroller-Module sind zum heutigen Zeitpunkt quasi die erste Wahl. Die zentrale Hardware von Microcontroller-Modulen mit WiFi?-Schnittstelle sind die ESP-Module mit integrierter Antenne. In Abbildung 2.2 ist ein Typ ESP8266-?12 abgebildet, der direkt auf eine Leiterplatte gelötet werden kann. Abb. 2.2: ESP8266-12 Für komplexere Anwendungen mit Netzzugang kann natürlich auch immer ein Raspberry Pi eingesetzt werden. Boards mit den ESP8266-Modulen sind aber meist in kompakteren Bauformen verfügbar und eignen sich ideal als Sensor- oder Aktormodul. Sensormodule fühlen mit angeschlossenen Sensoren die Umwelt. Aktormodule sind Ausgangsmodule, die einen Relais- oder Motorausgang anbieten und für Schaltzwecke geeignet sind. 2.3  Arduino als Webclien?t
Ein Arduino Uno mit Ethernet-Shield wird in einer Anwendung als Webclient bezeichnet, wenn das Board Anfragen (Requests) an einen Webserver sendet. Am Arduino ist in diesem Fall beispielsweise ein Licht- oder Temperatursensor angeschlossen. Der vom Arduino eingelesene Sensorwert wird dann an eine Webanwendung übermittelt. Die Datenübermittlung erfolgt in Form eines URL?-Requests mit Parametern an eine externe Webanwendung. Die übermittelten Parameter sind dabei die Sensorwerte vom Arduino-Board. Die externe Webanwendung selbst verarbeitet nach Aufruf des Webrequests durch den Webclient (das Arduino-Board) die gesendeten Daten. Die Daten können beispielsweise in einer Datenbank gespeichert werden. Ein solcher Webrequest mit Parametern kann so aussehen: http://meinwebserver.com/sensor.php?sensorid=55&light=456; Der Parameter sensorid identifiziert das Sensormodul oder den Sensor und der Parameter light ist der gemessene Wert. Die Datenverarbeitung auf dem externen Server erfolgt in diesem Beispiel in der PHP-Datei sensor.php. Der Webclient selbst kann diese Verarbeitung nicht beeinflussen und hat auch keinen Einblick in diesen Programmcode. Falls die Webanwendung nach der Verarbeitung eine Rückmeldung sendet, weiß der Webclient, ob die Datenübertragung erfolgreich war. Stückliste (Webclient) 1 Arduino Uno 1 Ethernet-Shield 1 Ethernet-Kabel Drahtbrücken Für den ersten Test des Webclients wird der Arduino mit Ethernet-Shield am Netzwerk angeschlossen. Als Testprogramm kann der Beispielcode Webclient aus der Ethernet-Bibliothek geladen und ausgeführt werden. Im Beispielcode wird eine Suchanfrage mit dem Suchbegriff »arduino« bei Google (www.google.com) ausgeführt und die Antwort im seriellen Monitor dargestellt. Die Suchanfrage hat folgende URL: http://www.google.com/search?q=arduino Netzwerktechnisch arbeitet der Webclient mit einer dynamischen Vergabe einer IP-Adresse durch den internen Router. Falls DHCP? fehlschlägt, wird die IP-Adresse, die im Sketch eingetragen ist, verwendet. Meine Konfiguration sieht wie folgt aus: IPAddress ip(10, 0, 1, 222); IPAddress myDns(10, 0, 1, 1); Im seriellen Monitor kann nun der Webrequest an die Google-Website betrachtet werden (Abbildung 2.3). Im Beispiel ist zu sehen, dass der Router dem Webclient die IP-Adresse 10.0.1.56 zugewiesen hat. Abb. 2.3: Ethernet-Webclient – Webrequest im seriellen Monitor Nach Aufruf des Google-Webservers sendet dieser die Antwort: HTTP/1.1 200 OK Der Error-Code 200 sagt aus, dass die Anfrage korrekt angekommen und ausgeführt wurde. Der einfache Webclient mit dem Ethernet-Shield war also erfolgreich. Im Code des Webclients sind die Daten für den Zielserver in einzelnen Zeilen abgelegt. Für den Server selbst wird die Serveradresse in der Variablen char server[] gespeichert (smarthome_kap2_webclient.ino). char server[] = "www.google.com"; // name address for Google (using DNS) Den Suchstring /search?q=arduino finden Sie nach der Initialisierung: // if you get a connection, report back via serial: if (client.connect(server, 80)) { Serial.print("connected to "); Serial.println(client.remoteIP()); // Make a HTTP request: client.println("GET /search?q=arduino HTTP/1.1"); client.println("Host: www.google.com"); client.println("Connection: close"); client.println(); } ... Für eigene Anwendungen kann dieser Teil des Webclient-Programms individuell angepasst werden. Dazu können Sie den Aufruf auch etwas aufteilen und in einzelnen Zeilen darstellen. Für den Serveraufruf mit Parametern http://meinwebserver.com/sensor.php?sensorid=55&light=456; sieht der Programmteil dann so aus: // if you get a connection, report back via serial: if (client.connect(server, 80)) { Serial.print("connected to "); Serial.println(client.remoteIP()); // Make a HTTP request: client.print("GET /sensor.php?sensorid=55&"); client.print("light=456"); client.println(" HTTP/1.1"); client.println("Host: www.meinserver.com"); client.println("Connection: close"); client.println(); } ... 2.4  Arduino als Webserve?r
Ein Aufruf einer Webadresse, wie beispielsweise die Buchwebsite unter https://555circuitslab.com löst eine Antwort auf einem Webserver aus. Die Antwort ist eine Seite im HTML-Format, wird an den Anfrager zurückgesendet und kann im...


Thomas Brühlmann arbeitet als Consultant und hat langjährige Erfahrung in der Hardware- und Softwareentwicklung. Nebenbei realisiert er Projekte mit Open-Source-Hardware, hält Vorträge und führt Workshops durch. In seinem Blog unter arduino-praxis.ch publiziert er Projekte, Anwendungen, Tipps und Tricks.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.