Mach's einfach: Erste Schritte - Eigene IoT-Lösungen mit ESP32 | 1 |
Der Autor | 2 |
Impressum | 4 |
Einleitung | 5 |
Inhalt | 10 |
1. Der Mikrocontroller ESP32 | 15 |
ESP32: 32-Bit-Mikrocontroller | 15 |
Einsetzbare Boards | 17 |
ESP32-Development-Kit V4 | 18 |
Die erste Inbetriebnahme | 20 |
Batterie- und Akkubetrieb | 21 |
2. Die IDE-Entwicklungsumgebung | 22 |
Verfügbare Entwicklungsumgebungen | 22 |
Arduino IDE installieren | 22 |
Linux-Installation | 23 |
Windows-Installation | 24 |
Arduino IDE für ESP32 einrichten | 25 |
Wichtige Voreinstellungen | 27 |
Arbeiten mit der Arduino IDE | 28 |
Bibliotheken administrieren | 30 |
Einbinden mit dem Bibliotheksverwalter | 30 |
Bibliothek als ZIP-Datei einbinden | 31 |
Bibliothek mit dem Datei-Manager einfügen | 32 |
Die Arduino IDE und ihre Eigenheiten | 32 |
3. Programmierers Fokus | 33 |
Programmieren in C und C++ | 33 |
Ordentliche C-Codestruktur | 33 |
Variablen- und Funktionsnamen | 33 |
Gültigkeitsbereich von Variablen | 34 |
Prägnante Kommentare | 34 |
JavaScript Object Notation | 35 |
Erste Hilfe im Problemfall | 37 |
4. Erste Schritte:LEDs ansteuern | 38 |
Einen LED-Blink-Sketch einsetzen | 38 |
Touch-LED und serieller Monitor | 41 |
Messung mit einem Hall-Sensor | 43 |
ESP32-interner Temperatursensor | 44 |
5. LED-Helligkeit und -Farbemit PWM steuern | 46 |
Pulsweitenmodulation (PWM) | 46 |
Heartbeat mit ESP32-LED-PWM | 47 |
RGB-LEDs gezielt ansteuern | 49 |
RGB-LED-Zustandsanzeige | 50 |
6. Sensoren:analog meets digital | 53 |
ADC: Analog-Digital-Wandler | 53 |
Smarter Dämmerungsschalter | 53 |
Temperatursensor nutzen | 56 |
Bodenfeuchtesensor YL-69 | 57 |
Der kapazitive Bodenfeuchtesensor | 60 |
Ultraschallsensor HC-SR04 | 61 |
Klassiker: der Bewegungsmelder | 64 |
Ein kleines Projekt | 66 |
7. Temperatur undLuftfeuchte messen | 67 |
Temperatur- und Luftfeuchtesensor DHT22 | 67 |
Die Schaltung | 68 |
Der Sketch | 68 |
8. 433-MHz-Geräte schalten | 71 |
Steuerbare Funksteckdosen | 71 |
Die rc-switch-Bibliothek | 72 |
433-MHz-Signale senden | 73 |
433-MHz-Signale empfangen | 75 |
Das Intertechno-Protokoll | 78 |
9. ESP32 bedient I2C | 79 |
Das verbirgt sich hinter I2C | 79 |
I2C-OLED-Display SSD 1306 | 80 |
Die Schaltung | 81 |
Der Sketch | 81 |
Funktionen der Bibliothek ESP32-SSD-1306 | 83 |
Andere Fonts einsetzen | 84 |
Eigene Bilder anzeigen | 86 |
Den I2C-Bus scannen | 89 |
10. ESP32 kommuniziert über SPI | 91 |
Wie funktioniert SPI? | 91 |
Der RFID-RC522 | 92 |
Die Schaltung | 93 |
Der Analyse-Sketch | 94 |
Sketch für die Zugangskontrolle | 95 |
TFT-Display über SPI ansteuern | 97 |
Die Schaltung | 98 |
Die Header-Datei User_Setup.h ändern | 99 |
Der Analyse-Sketch | 100 |
11. ESP32-Interrupts | 101 |
Was sind Interrupts? | 101 |
Der Timer-Interrupt | 101 |
Externer Interrupt | 105 |
12. ESP32 und Bluetooth | 108 |
Was ist Bluetooth? | 108 |
Grundlegende Vorbereitungen | 109 |
Nach Bluetooth-Geräten suchen | 110 |
Mit BluetoothSerial schalten | 112 |
13. ESP32 per App gesteuert | 115 |
Blynk: die App für das IoT | 115 |
Blynk-App installieren | 116 |
Das LED-Blynk-Projekt | 118 |
Blynk-Client auf dem ESP32 einrichten und starten | 121 |
Funksteckdosen über Blynk steuern | 122 |
Das DHT22-Blynk-Projekt | 123 |
Blynk informiert via E-Mail | 125 |
14. ESP32 als Webserver | 129 |
Webserver und Webclient | 129 |
NTP: das Network Time Protocol | 130 |
Grundlegende Vorbereitungen | 130 |
DHT22-Datenausgabe mit Zeitstempel | 131 |
LEDs über den Browser steuern | 137 |
Eine einfache HTML-Ausgabe | 139 |
15. Wetterdaten abrufen | 142 |
OpenWeatherMap im Einsatz | 142 |
Einzelne Wetterwerte isolieren | 146 |
16. ESP32 versendet E-Mails | 150 |
Benötigte Software installieren | 150 |
Der Arduino-Sketch | 152 |
Die Gsender_32.h-Datei | 152 |
Gmail-Account überprüfen | 154 |
17. MQTT by Cayenne | 155 |
Was genau ist MQTT? | 155 |
Und was ist Cayenne? | 156 |
ESP32 mit Cayenne verbinden | 157 |
Cayenne mit DHT22- und LED-Steuerung | 160 |
Cayenne und Verlaufsdaten | 165 |
18. ESP32 in den Sleep-Modus versetzen | 167 |
Betriebszustände des ESP32 | 167 |
Deep-Sleep mit Touch-Wake-up | 169 |
Deep-Sleep mit Timer-Wake-up | 171 |
Deep-Sleep mit externem Wake-up | 172 |
19. ESP32 über das Web updaten | 174 |
So funktioniert das Web-Update | 174 |
Der ArduinoOTA-OTAWebUpdater | 174 |
Ein Software-Update vorbereiten | 175 |
Übertragen der Binärdatei | 176 |
Anhang: Sketch-Referenz | 178 |
Webserver | 178 |
MQTT | 183 |
Deep-Sleep und Timer-Wake-up | 187 |
Index | 189 |