Heimautomation mit Arduino, ESP8266 und Raspberry Pi (eBook)

Das eigene Heim als Smart Home für Heimwerker, Bastler und Maker
eBook Download: EPUB
2021 | 1. Auflage
368 Seiten
MITP Verlags GmbH & Co. KG
978-3-95845-673-0 (ISBN)

Lese- und Medienproben

Heimautomation mit Arduino, ESP8266 und Raspberry Pi -  Thomas Brühlmann
Systemvoraussetzungen
29,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen


  • 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



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.

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.

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-Shield


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 Shield 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 RJ45-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.

2.2  WiFi-Verbindung


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 Webclient


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 Webserver


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...

Erscheint lt. Verlag 25.2.2021
Reihe/Serie mitp Professional
Verlagsort Frechen
Sprache deutsch
Themenwelt Informatik Weitere Themen Hardware
Schlagworte Arduino • Buch • ESP8266 • homeautomation • Internet der Dinge • internet of things • Maker • Microcontroller • Node Red • Raspberry Pi • sarduino ide • Smart Home • SmartHome • smart home systeme • tasmota
ISBN-10 3-95845-673-1 / 3958456731
ISBN-13 978-3-95845-673-0 / 9783958456730
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Ohne DRM)
Größe: 17,4 MB

Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopier­schutz. Eine Weiter­gabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persön­lichen Nutzung erwerben.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Was Benutzer alles wissen sollten

von Claudio Franzetti

eBook Download (2023)
Springer Berlin Heidelberg (Verlag)
39,99