Beschreibung
Mit dem ESP32 setzen Maker anspruchsvolle IoT-Projekte um. Ein leistungsstarkes SoC und zahlreiche Schnittstellen zur Kommunikation machen ihn zur idealen Basis für alle Ihre Ideen in der IoT-Programmierung, bei der Hausautomation oder einfach beim Elektronikbasteln. Dieser Leitfaden begleitet Sie bei Ihren Projekten und zeigt Ihnen die Arbeit mit Entwicklungsumgebungen, Sensoren, Schnittstellen und allem, was dazu gehört. So gelingt Ihnen der umfassende Einstieg in die Mikrocontrollerprogrammierung.Neu in dieser Auflage: Arduino IDE 2.0, erweiterte Kapitel zu Debugging und Multithread-Programmierung.
Aus dem Inhalt:
Chips und Boards
Stromversorgung
Werkstatt: Löten, Verkabeln, Fritzing
Programmiergrundlagen in C und C++
Entwicklungsumgebungen: Arduino und ESP-IDF
Analog- und Digitalausgänge, LEDs, Impulszähler und mehr
Sensoren
SPI, I²C, UART
Drahtlose Kommunikation mit Bluetooth, OTA und Wifi
JTAG-Debugging und weitere Tricks bei der Fehlersuche
ULP-Programmierung: Tasks und Deep Sleep
Projektideen für Maker: Evil Dice, Binär-Uhr, Solar-WLAN-Repeater
Inhalt
1.1 ... Ein kurzer Rückblick in die Entwicklung von Mikrocontrollern ... 19
1.2 ... Die ESP32-SoCs ... 20
1.3 ... Die Module WROOM, SOLO, WROVER und PICO ... 26
1.4 ... Die Boards ... 29
1.5 ... Das ESP32-Dev-KitC V4 ... 30
1.6 ... Das ESP32-Dev-KitC V4 -- Erstinbetriebnahme am PC ... 41
2.1 ... Betriebszustände und typische Stromverbräuche ... 43
2.2 ... Anschlüsse zur Stromversorgung ... 45
2.3 ... Grundschema der Stromversorgung ... 46
2.4 ... Spannungsquellen ... 47
2.5 ... Spannungsregler ... 50
3.1 ... Breadboard & Co. ... 55
3.2 ... Hilfreiche Werkzeuge ... 59
3.3 ... Fritzing ... 62
3.4 ... Löttechnik ... 75
4.1 ... Der Weg von lesbaren Anweisungen zum Maschinencode ... 85
4.2 ... Das Betriebssystem der Entwicklungsumgebung ... 88
4.3 ... esptool.py ... 89
4.4 ... Entwicklungsumgebungen in der Übersicht ... 97
4.5 ... Die Partitionstabelle festlegen ... 167
4.6 ... Fazit ... 169
5.1 ... Programmdesign für den Mikrocontroller ... 171
5.2 ... Syntax und Semantik in der Programmiersprache ... 175
5.3 ... Zeichen, Kommentare und Begriffe ... 176
5.4 ... Daten und Datentypen ... 179
5.5 ... Variablen ... 183
5.6 ... Ausdrücke und Operatoren ... 187
5.7 ... Zeiger (Pointer) ... 197
5.8 ... Arrays und Strukturen ... 201
5.9 ... Kontrollstrukturen ... 205
5.10 ... Funktionen ... 215
5.11 ... Funktionen nutzen: Ihr Werkzeugkasten ... 229
5.12 ... Klassen und objektorientierte Programmierung ... 235
5.13 ... Die String()-Klasse ... 243
5.14 ... Serielle Aus- und Eingabe ... 252
5.15 ... Vorgriff: Tasks und Threads ... 258
5.16 ... Präprozessordirektiven ... 259
5.17 ... Prinzipien des Softwareentwurfs ... 262
5.18 ... Fehlermanagement ... 263
5.19 ... JSON -- das Datenformat für den Datenaustauch ... 283
6.1 ... ULP-Programmierung ... 287
6.2 ... FreeRTOS-Tasks verwalten ... 316
6.3 ... FreeRTOS-Task-Synchronisation ... 327
6.4 ... Threads nutzen ... 358
7.1 ... Der interne Hall-Sensor ... 363
7.2 ... Digitale Aus-/Eingänge ... 364
7.3 ... Analoge Aus-/Eingänge ... 373
7.4 ... Das ESP32-Touch-Sensor-System ... 385
7.5 ... DHT11 und DHT22 ... 390
7.6 ... 433-MHz-Steuerung ... 395
7.7 ... LED-Control und Pulsweitenmodulation ... 400
7.8 ... Impulszähler ... 407
7.9 ... Universal-Timer, Watchdog-Timer ... 410
7.10 ... Energie-(Spar-)Modi ... 415
7.11 ... Daten auf dem ESP32 speichern ... 423
8.1 ... SPI ... 427
8.2 ... I²C ... 445
8.3 ... I2S ... 449
8.4 ... Bluetooth ... 460
8.5 ... WLAN/Wi-Fi ... 477
8.6 ... UART ... 500
8.7 ... OTA ... 506
9.1 ... Das JSON-Datenaustauschformat in der Praxis ... 512
9.2 ... Apps ... 517
9.3 ... Messenger ... 538
9.4 ... Das MQTT-Protokoll ... 558
9.5 ... Cloud-IoT-Plattformen ... 566
9.6 ... Lokale Anwendungen nutzen ... 592
10.1 ... The Evil Dice ... 619
10.2 ... Die Maker-Uhr ... 625
10.3 ... Das Dateisystem einmal anders ... 645
10.4 ... Solar-Repeater ... 655
10.5 ... Als die Bilder laufen lernten ... 659
10.6 ... IoT-Barometer ... 672
10.7 ... Eine kleine Schaltzentrale ... 688
10.8 ... Den ESP32 mit Alexa steuern ... 706
10.9 ... Mit Text To Speech und ChatGPT experimentieren ... 715
A.1 ... Sensoren ... 725
A.2 ... Fritzing-Parts ... 726
A.3 ... Verwendete Software und Softwareversionen ... 727
A.4 ... RTC-MUX-Pin-Liste ... 728