Mikrocontroller ESP32

Das umfassende Handbuch
 
 
Rheinwerk (Verlag)
  • 1. Auflage
  • |
  • erschienen am 25. September 2020
  • |
  • 616 Seiten
 
E-Book | ePUB mit Wasserzeichen-DRM | Systemvoraussetzungen
E-Book | ePUB ohne DRM | Systemvoraussetzungen
978-3-8362-7447-0 (ISBN)
 

Mit dem ESP32 setzen Maker auch anspruchsvolle IoT-Projekte um. Ein leistungsstarkes SoC und zahlreiche Schnittstellen zur Kommunikation machen ihn zur idealen Basis für all Ihre Ideen in der IoT-Programmierung, der Hausautomation oder einfach dem Elektronikbasteln. Dieser Leitfaden begleitet Sie dabei und zeigt Ihnen die Arbeit mit Entwicklungsumgebungen, Sensoren, Schnittstellen und allem, was dazu gehört. So gelingt der umfassende Einstieg in die Mikrocontrollerprogrammierung.

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
  • Projektideen für Maker: Evil Dice, Binär-Uhr, Solar-WLAN-Repeater, Haussteuerung
1. Auflage
  • Deutsch
  • Bonn
  • |
  • Deutschland
  • Neue Ausgabe
  • 43,82 MB
978-3-8362-7447-0 (9783836274470)
weitere Ausgaben werden ermittelt


Einleitung ... 13


1. Der Mikrocontroller ESP32 und seine Funktionalitäten ... 19


1.1 ... Die ESP32-SoCs ... 19

1.2 ... Die Module ... 22

1.3 ... Die Boards ... 25

1.4 ... Das ESP32-Dev-KitC V4 ... 26

1.5 ... ESP32-Dev-KitC V4 -- Erstinbetriebnahme am PC ... 37



2. Die Stromversorgung ... 39


2.1 ... Betriebszustände und typische Stromverbräuche ... 39

2.2 ... Anschlüsse zur Stromversorgung ... 41

2.3 ... Grundschema der Stromversorgung ... 42

2.4 ... Spannungsquellen ... 43

2.5 ... Spannungsregler ... 46



3. Ihre Werkstatt ... 51


3.1 ... Breadboard & Co. ... 51

3.2 ... Hilfreiche Werkzeuge ... 55

3.3 ... Fritzing ... 58

3.4 ... Löttechnik ... 71



4. Entwicklungsumgebungen ... 81


4.1 ... Der Weg von lesbaren Anweisungen zum Maschinencode ... 81

4.2 ... Das Betriebssystem der Entwicklungsumgebung ... 84

4.3 ... esptool.py ... 85

4.4 ... Entwicklungsumgebungen in der Übersicht ... 93

4.5 ... Partitionstabelle festlegen ... 141

4.6 ... Resümee ... 143



5. Programmierung mit C und C++ ... 145


5.1 ... Programmdesign für den Mikrocontroller ... 145

5.2 ... Syntax und Semantik in der Programmiersprache ... 149

5.3 ... Zeichen, Kommentare und Begrifflichkeiten ... 150

5.4 ... Daten und Datentypen ... 153

5.5 ... Variablen ... 158

5.6 ... Ausdrücke und Operatoren ... 162

5.7 ... Zeiger (Pointer) ... 171

5.8 ... Arrays und Strukturen ... 175

5.9 ... Kontrollstrukturen ... 179

5.10 ... Funktionen ... 188

5.11 ... Funktionen nutzen: Ihr Werkzeugkasten ... 202

5.12 ... Klassen und objektorientierte Programmierung ... 208

5.13 ... Die String()-Klasse ... 216

5.14 ... Serielle Aus- und Eingabe ... 225

5.15 ... Exkurs: Tasks und Threads ... 231

5.16 ... Präprozessordirektiven ... 234

5.17 ... Prinzipien des Softwareentwurfs ... 237

5.18 ... Fehlermanagement ... 237

5.19 ... JSON -- das Datenformat für den Datenaustauch ... 248



6. Peripherie und Funktionen des ESP32 ... 253


6.1 ... Der interne Hall-Sensor ... 253

6.2 ... Digitale Aus-/Eingänge ... 254

6.3 ... Analoge Aus-/Eingänge ... 263

6.4 ... Das ESP32-Touch-Sensor-System ... 275

6.5 ... DHT11/DHT22 ... 281

6.6 ... 433-MHz-Steuerung ... 285

6.7 ... LED-Control und Pulsweitenmodulation ... 291

6.8 ... Impulszähler ... 297

6.9 ... Universaltimer, Watchdogtimer ... 301

6.10 ... Energie-(Spar-)Modi ... 305

6.11 ... Daten auf dem ESP32 speichern ... 314

6.12 ... FreeRTOS-Task-Funktionen ... 317

6.13 ... Thread-Funktionalität nutzen ... 321



7. Externe Schnittstellen ... 325


7.1 ... SPI ... 325

7.2 ... I²C ... 344

7.3 ... Bluetooth ... 348

7.4 ... WLAN/WiFi ... 366

7.5 ... UART ... 389

7.6 ... OTA ... 394



8. Externe Kommunikations- und Steuerungsmöglichkeiten ... 399


8.1 ... Das JSON-Datenaustauschformat in der Praxis ... 400

8.2 ... Apps ... 405

8.3 ... Messenger ... 430

8.4 ... Das MQTT-Protokoll ... 450

8.5 ... Cloud-IoT-Plattformen ... 458

8.6 ... Lokale Anwendungen nutzen ... 484



9. Projektideen ... 513


9.1 ... The Evil Dice ... 513

9.2 ... Die Maker-Uhr ... 519

9.3 ... Das Dateisystem einmal anders ... 539

9.4 ... Solar-Repeater ... 549

9.5 ... Als die Bilder laufen lernten ... 553

9.6 ... IoT-Barometer ... 566

9.7 ... Eine kleine Schaltzentrale ... 582



Anhang ... 603


A.1 ... Sensoren ... 603

A.2 ... Fritzing-Parts ... 604

A.3 ... Verwendete Software und Softwareversionen ... 605



Index ... 607

Einleitung


Das mooresche Gesetz besagt, dass sich die Komplexität integrierter Schaltkreise mit minimalen Komponentenkosten regelmäßig verdoppelt; die Zeitspanne variiert zwischen 12 und 24 Monaten. Das ist aber mehr eine Faustregel als ein Naturgesetz. Aber wenn Sie sich die Geschichte der Mikroprozessoren anschauen, wird diese These eindrucksvoll belegt. Es ist eine rasante Entwicklung von Prozessoren mit ca. 8.000 Transistoren Anfang der 1970er Jahre bis zu heutigen Bausteinen mit in der Spitze nahezu 10.000.000.000 Transistoren.

Nutznießer dieser Entwicklung ist nicht nur der industrielle Bereich, in dem integrierte Schaltkreise heute nahezu überall Maschinen und Geräte steuern oder zur Verarbeitung von Daten eingesetzt werden. Auch im privaten Consumerbereich sind hochintegrierte Schaltkreise allgegenwärtig und unverzichtbar. Die Miniaturisierung und die Preisentwicklung sind inzwischen so weit fortgeschritten, dass bereits Kleidungsstücke (sogenannte Wearables) damit ausgestattet werden.

Vielfach genügen industriell gefertigte und angebotene Gegenstände jedoch nicht privaten, ganz spezifischen Anforderungen, wenn Sie etwas Eigenes entwickeln und bauen möchten. Dies betrifft auch den weiten Bereich der Elektrotechnik und Elektronik, in dem Enthusiasten aus purem Interesse für die Sache an sich anspruchsvolle Projekte verwirklichen oder mit den jeweils verfügbaren Bauteilen ganz eigene Lösungen für sehr individuelle Probleme realisieren. Allerdings haben sich im Lauf der Jahre bzw. Jahrzehnte die Projekte, die dafür verwendeten Materialien und die Vorgehensweise entschieden verändert. Standen vor Jahren noch z. B. der Bau eines Verstärkers oder eines Kurzwellenempfängers im Vordergrund, sind dies heute Dinge, die eher dem Bereich Hausautomation oder Robotik zuzuordnen sind. Dementsprechend haben sich auch die verwendeten Arbeitsmaterialien wie Röhren, mächtige Transformatoren oder dicke Kondensatoren verändert und sind heute vielfach zugunsten von Mikrocomputern (z. B. dem Raspberry Pi und seinen Derivaten) oder Mikrocontrollern (wie etwa der Arduino-Plattform oder dem ESP32) zurückgetreten. In der Folge sind die Anforderungen an das Wissen und die Fähigkeiten der Maker gestiegen, denn ohne ein gewisses Maß an Programmierkenntnissen lässt sich diesen Bauteilen kein Leben einhauchen.

Obwohl sich die beiden Bauteilklassen Mikrocomputer und Mikrocontroller in ihren Anwendungsbereichen häufig überlappen, lässt sich dennoch eine grobe Unterscheidung treffen. Ein Mikrocomputer mit einem Mikroprozessor als zentraler Recheneinheit wird häufig mit einem Kleinrechner assoziiert, der - zwar mit deutlich abgespeckter Leistung - die wesentlichen Aufgaben eines normalen PCs abdecken kann. Der Mikrocontroller hingegen ist auf die Bewältigung technischer Anforderungen zugeschnitten. Er tritt im Alltag häufig in Gestalt von sogenannten eingebetteten Systemen in Gebrauchsartikeln wie Staubsaugern, Fernbedienungen, Motorsteuerungen und vielem mehr auf. In Ihrem Haushalt werden Sie wahrscheinlich hunderte Mikrocontroller finden, wenn Sie genau hinschauen.

Für beide Bauteilklassen ist im Handel eine sehr große Anzahl verschiedener Chips erhältlich, die in einer noch größeren Anzahl an Modulen und Boards verbaut sind. Für sich ist diese Hardware aber kaum sinnvoll einsetzbar. Richtig interessant wird es erst, wenn diese Bauteile mit anderen Komponenten wie z. B. Sensoren oder Schaltern verbunden werden und Informationen mittels entsprechender Protokolle über das World Wide Web austauschen.

Ob nun ein Mikrocontroller oder ein Mikrocomputer für die anstehenden Vorhaben die beste Wahl ist, kann an dieser Stelle nicht beantwortet werden. Schwerpunkt dieses Buches ist ein Mikrocontroller, der in einem Modul der ESP32-Baureihe enthalten ist. Bei Aufgabenstellungen, bei denen der Mikrocontroller auf »Unterstützung« angewiesen ist (z. B. Datenspeicherung), werden realisierbare Lösungswege aufgezeigt und besprochen.

Der Ansatz des Buches


Dieses Buch ist keine schrittweise Einführung in ein spezielles und abgegrenztes Anwendungsgebiet des ESP32 (z. B. Robotik, Hausautomation, Internet of Things). Sie werden also kein durchgehendes Projekt finden, das für Sie sehr wahrscheinlich keine Relevanz hat, denn Sie können mit dem ESP32 sehr unterschiedliche Dinge machen. Stattdessen möchte ich Ihnen im Charakter eines Handbuches möglichst umfassend verschiedene Aspekte darstellen. Es soll auf diese Weise zum Experimentieren anregen und den Einstieg auch in komplexere Vorhaben ermöglichen, die dann eingehendere Kenntnisse voraussetzen.

Deshalb erhalten die Themen Entwicklungsumgebungen, Programmiertechnik und Programmiersprachen C/C++/Arduino einen entsprechenden Stellenwert und Raum. Dabei beschränkt sich das Buch nicht darauf, Beispielprojekte nur in einer Entwicklungsumgebung oder einer Programmiersprache vorzustellen. Im Sinne eines möglichst breiten Ansatzes greift es Alternativen auf und erläutert diese praxisgerecht. Das soll allerdings nicht zu Lasten von einfachen und komplexeren Anwendungsbeispielen gehen.

Neben den Erklärungen spielen Abbildungen eine tragende Rolle. Getreu dem Motto, dass Bilder mehr als tausend Worte sagen, lässt sich hiermit trotz des Platzes, den Bilder nun einmal einnehmen, die zu vermittelnde Botschaft einfach besser darstellen.

Für wen das Buch gedacht ist


Das Buch richtet sich an alle,

  • die sich die Möglichkeiten eines ESP32 zunutze machen möchten,

  • die breit angelegte Informationen rund um den Mikrocontroller ESP32 suchen,

  • die neugierig sind und gerne einmal »über den Tellerrand schauen«,

  • die mit einfachen Mitteln schnell loslegen möchten,

  • die nicht nur einen Einstieg in ein ausgewähltes Anwendungsgebiet von Mikrocontrollern wollen, sondern das gesamte Leistungsspektrum vorgestellt bekommen möchten,

  • die es begrüßen, ausgewählte Techniken der Softwareentwicklung und Programmierung vorgestellt zu bekommen,

  • die gerne eigene Projekte unabhängig von industriellen Produkten entwickeln möchten,

  • die auch gerne neben der komfortablen Arduino-Welt in speziellen Beispielen in die etwas komplexere Entwicklungsumgebung der Firma Espressif eintauchen möchten.

Der Inhalt des Buches


Das Buch soll umfassende Unterstützung dabei bieten, den Mikrocontroller ESP32 zum Herz einer eigenen Schaltzentrale zu machen oder ihn zumindest für ausgesuchte Projekte einzusetzen (siehe Abbildung 1).

Abbildung 1    Der ESP32 als zentrales Steuerelement

Deshalb sind die Kapitel des Buches in der Reihenfolge zunächst so angeordnet, dass sie von Grund auf in die Welt des ESP32 einführen. Dennoch ist es auch möglich, einzelne Abschnitte gezielt auszuwählen und für aktuelle Arbeiten heranzuziehen.

  • Kapitel 1: Der Mikrocontroller und seine Funktionalitäten
    Hier liegt der Fokus auf der Hardware ESP32 und der Erstinbetriebnahme an einem PC.

  • Kapitel 2: Die Stromversorgung
    Der Schwerpunkt dieses Kapitels ist ein Blick auf die verschiedenen Möglichkeiten der Stromversorgung.

  • Kapitel 3: Ihre Werkstatt
    Dieses Kapitel behandelt gebräuchliche Werkzeuge und Software-Tools rund um den Mikrocontroller.

  • Kapitel 4: Entwicklungsumgebungen
    Dieser Teil zeigt unterschiedliche Möglichkeiten, den Mikrocontroller zu programmieren.

  • Kapitel 5: Programmierung mit C und C++
    Thema in diesem Kapitel sind grundlegende Informationen zur Programmiersprache C/C++.

  • Kapitel 6: Peripherie und Funktionen des ESP32
    Dieses Kapitel befasst sich mit Schnittstellen zu Sensoren und Aktoren.

  • Kapitel 7: Externe Schnittstellen
    In diesem Kapitel geht es um die Kommunikation mit externen Schnittstellen.

  • Kapitel 8: Externe Kommunikations- und Steuerungsmöglichkeiten
    Dieser Teil widmet sich Bluetooth und WLAN sowie den damit eröffneten umfangreichen Möglichkeiten der externen Kommunikation und Steuerung.

  • Kapitel 9: Projektideen
    Komplexe und weniger komplexe Projektideen werden vorgestellt und sollen zum Nachbau anregen.

...
»Das Prädikat "umfassend" in der Unterzeile beschreibt den Inhalt des Buches sehr gut, denn es werden ziemlich alle Aspekte rund um den populären ESP32 detailliert behandelt, mit denen man in Berührung kommen könnte und darüber hinaus.«
(Make: Magazin)
 
»Alles in Allem, kriegst du mit diesem ESP32 Buch eine wirklich umfassende Erklärung rund um den Mikrocontroller und wirst am Schluss in der Lage sein, eigene Projekte damit zu gestalten. Durch die vielen Bilder/Erklärungen und abgeschlossenen Themen eignet sich dieses Buch auch gut als Nachschlagewerk.«
(Programmierbuch.de)
 
»Für alle, die gern eigene Projekte unabhängig von industriellen Projekten entwickeln möchten.«
(EKZ Bibliotheksservice)

Dateiformat: ePUB
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Dateiformat: ePUB
Kopierschutz: ohne DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für "glatten" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Ein Kopierschutz bzw. Digital Rights Management wird bei diesem E-Book nicht eingesetzt.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

39,90 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
E-Book bestellen

39,90 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB ohne DRM
siehe Systemvoraussetzungen
E-Book bestellen