37
MACH'S EINFACH Handbuch für ESP32 MAKER KIT

Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

  • Upload
    others

  • View
    43

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

MACH'S EINFACH

Handbuchfür ESP32 MAKER KIT

Page 2: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Handbuchfür ESP32 MAKER KIT

67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34

Page 3: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

67093-9_HB-TITELEI_RZ.indd 3 18.11.19 14:34

Page 4: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Bibliografi sche Information der Deutschen BibliothekDie Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografi e; detaillierte Daten sind im Internet über http://dnb.ddb.de abru� ar.

Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft und getestet. Trotzdem können Fehler im Buch und in der Software nicht vollständig ausgeschlossen werden. Verlag und Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmun-gen. Im Übrigen haften Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit oder wegen der schuldhaften Verletzung wesentlicher Vertragspfl ichten. Der Scha-densersatzanspruch für die Verletzung wesentlicher Vertragspfl ichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist.

WARNUNG! Augenschutz und LEDs:Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden ver-ursachen! Dies gilt besonders für helle LEDs im klaren Gehäuse sowie in besonderem Maße für Power-LEDs. Bei weißen, blauen, violetten und ultravioletten LEDs gibt die scheinbare Helligkeit einen falschen Eindruck von der tatsächlichen Gefahr für Ihre Augen. Besondere Vorsicht ist bei der Verwendung von Sammellinsen geboten.Betreiben Sie die LEDs so wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.

Liebe Kunden!Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen. Der bestimmungsge-mäße Gebrauch ist in der beiliegenden Anleitung beschrieben.

Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich. Bauen Sie die Schal-tungen deshalb genau so auf, wie es in der Anleitung beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden.

Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt ge-trennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene kostenlose Annahmestelle fi nden, sagt Ihnen Ihre kommunale Verwaltung.

Für Kinder unter 14 Jahren nicht geeignet!

© 2020 FRANZIS Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt.

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche be-trachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.

Produktmanagement: Tobias Schärtl, Maria SiegmantelAutor: Dr. Günter SpannerCovergestaltung: Julia HarrerGTIN: 4019631670939

Innovationen, Irrtümer und Druckfehler vorbehalten

67093-9_HB-TITELEI_RZ.indd 4 18.11.19 14:34

Page 5: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Warnhinweise

1. Für den Betrieb der in diesem Buch vorgestellten Schaltungen

dürfen nur geprüfte doppelt isolierte Sicherheitsnetz geräte ver-

wendet werden, da bei einem Isolationsfehler eines einfachen

Netzteils lebensgefährliche Spannungen an nicht isolierten Bau-

elementen anliegen können.

2. Autor und Verlag übernehmen keinerlei Haftung für Schäden, die

durch den Aufbau der beschriebenen Projekte entstehen.

3. Elektronische Schaltungen können elektromagnetische Störstrah-

lungen aussenden. Verlag und Autor haben keinen Einfluss auf die

technische Ausführung  der in diesem Buch vorgestellten Schal-

tungen. Der Anwender der Schaltung ist daher selbst für die Ein-

haltung der relevanten Emissionsgrenzwerte verantwortlich.

4. LEDs können Augenschäden verursachen. Niemals direkt in eine

LED blicken!

Page 6: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Inhalt

Warnhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Programmdownload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Materialliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1. Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Der ESP32 und das ESP-Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Ein erster Funktionstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Das ESP-Board im Stand-alone-Betrieb . . . . . . . . . . . . . . . . . . . . . . . . 20

2. Die Programmier- und Entwicklungs umgebung . . . . . . . . . . 22

Installation der Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . 22

Das ESP-Board in der Arduino-IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3. Bunte Licht spiele mit Leucht dioden . . . . . . . . . . . . . . . . . . . . . . 26

Warnblinker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Alarmblitzer im Einsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Nützlich für den Notfall: automatisches SOS-Signal . . . . . . . . . . . . 33

Bunte Mischung: Multicolor-LED im Einsatz . . . . . . . . . . . . . . . . . . . 35

Anschluss externer LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4. Für fließende Übergänge: Analogsignale . . . . . . . . . . . . . . . . . 38

Künstlicher Sonnenaufgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Mood-Light mit Multicolor-LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Echte Analogwerte mit dem DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Ausgabe von zeitabhängigen Spannungen . . . . . . . . . . . . . . . . . . . 45

Funktionsgenerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Page 7: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

7Inhalt

5. Messen und Wissen: Sensortechnik . . . . . . . . . . . . . . . . . . . . . . . 50

Erfassung von Mess- und Sensorwerten . . . . . . . . . . . . . . . . . . . . . . 50

Der ADC im Einsatz: Erfassung einer Potenziometer spannung . 53

Nichtlinearität des internen ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Linearisierung des ADC-Eingangs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Spannungsmessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Fallstricke und Nebenwirkungen in der Sensorik . . . . . . . . . . . . . . 64

Präzise Temperaturwerte mit dem TMP36 . . . . . . . . . . . . . . . . . . . . . 65

Optische Sensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Elektronisches Luxmeter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Optische Abstandsmessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Sensoren für optimales Raumklima . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Eine Bibliothek einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Magnetfelder mit dem Hallsensor erfassen . . . . . . . . . . . . . . . . . . . . 82

Magnetischer Alarmmelder für Fenster und Türen . . . . . . . . . . . . . 84

6. Praktisch und universell: Sieben-Segment-Displays . . . . . . 86

Für präzise Spannungsmessungen: das Digitalvoltmeter . . . . . . 96

Präzises Digitalthermometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Digitale Klimamessstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

7. Heimnetzwerke und das Internet of Things (IoT) . . . . . . . . . 104

Netzwerkscanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Verbindung zum WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Das ESP32-Board als Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Multicolor-Web-LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 8: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Inhalt8

Schalten externer LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Sensordaten über WLAN auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

WLAN-Thermometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Anzeige von HTML-Webseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

8. Daten ins Internet senden mit ThingSpeak . . . . . . . . . . . . . . . 130

Einrichtung der Datenbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Grafische Darstellung von Daten in ThingSpeak . . . . . . . . . . . . . . . 133

Raumüberwachung mit Lichtsensoren . . . . . . . . . . . . . . . . . . . . . . . . 134

9. Mit Bluetooth wird das Smartphone zur Steuerzentrale . . 138

Smartphone ruft ESP: Pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Kontaktaufnahme über Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Steuerung der RGB-LED via Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . 146

Drahtloses Bluetooth-Fernthermometer . . . . . . . . . . . . . . . . . . . . . . 150

Die Bluetooth-Thermometer-App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

10. Mikropower techniken und Sleep-Modi . . . . . . . . . . . . . . . . . . . 156

Low-Power-Techniken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Abschalten unnötiger Verbraucher . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

Anhang: Bauelemente und Breadboards . . . . . . . . . . . . . . . . . . . . 160

Breadboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Widerstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Leuchtdioden (LEDs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

Bezugsquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Page 9: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

9Programmdownload

ProgrammdownloadAlle Programme aus diesem Buch können unter www.buch.cd he-runter geladen werden. Bitte geben Sie hierzu den Code 67093-9 ein. Wenn ein Programm nicht identisch mit dem im Buch beschriebe-nen ist, sollte die Version aus dem Download verwendet werden, da sie aktueller ist.

MateriallisteFolgende Bauteile sind in diesem Maker Kit enthalten:

1 NODEESP-Board

1 Breadboard groß

6 220 Ohm

2 1 Kiloohm

2 10 Kiloohm

2 100 Kiloohm

3 LEDs rot

1 LED grün

1 LED gelb

2 LEDs weiß

1 DHT11-Temperatur-/Feuchtesensor

1 TMP36-Temperatursensor

1 PT331C-Fototransistor

1 Potenziometer 10 k mit Rändelrad

1 4x7-Segment-LED-Display Common Cathode (CC)

15 Jumperkabel male/female

1 Micro-USB-Kabel

2 Pinleisten, zwölfpolig

2 m Schaltdraht, isoliert

Page 10: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden

Einer der Vorteile des ESP-Boards besteht darin, dass es über eine integrierte Multicolor-LED verfügt, die zuerst zum Einsatz kommen soll. LEDs sind überall anzutreffen, wenn es um die Auswahl von Be-triebszuständen oder Gerätefunktionen etc. geht. An Rundfunkge-räten oder Stereoanlagen dienen sie als Anzeige für den gewählten Kanal oder als Bereitschaftsanzeige. In Fahrzeugen sind alle Warn-lämpchen für Ölstand oder Licht maschine seit Langem durch LEDs ersetzt worden. An Laptops oder Monitoren informieren sie ebenso über den Einschaltzustand wie an Tiefkühltruhen oder Spülmaschi-nen. Leuchtet eine LEDs kontinuierlich, erregt sie also keine beson-dere Aufmerksamkeit mehr. Sie dient daher meist der Anzeige eines Normalzustands.

Möchte man dagegen auf eine Fehlfunktion oder eine Sonder-situation aufmerksam machen, ist es besser, wenn man die LED blin-ken lässt. Ein typisches Beispiel ist die Kontroll-LED an einem Tiefkühl-gerät. Arbeitet die Truhe einwandfrei und hält sie in ihrem Inneren eine Temperatur im Bereich zweistelliger Minusgrade, wird dies häu-fig durch eine konstant leuchtende LED angezeigt. Ist die Kühlung dagegen ausgefallen, beginnt die LED zu blinken und zieht damit die Aufmerksamkeit des Besitzers der Truhe auf sich. Analog wird in Kraft-fahrzeugen, Zügen oder Flugzeugen verfahren. Blinkende Anzeigen deuten meist auf eine besondere, oftmals sogar kritische Situation hin.

Page 11: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

WarnblinkerIn einem Anwendungsbeispiel soll eine solche blinkende LED-Anzei-ge realisiert werden. Das Sketch dazu sieht so aus:

// Blink for NodeESP// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud// !!!PRESS boot-BUTTON until upload starts!!!

void setup()

{ // initialize digital pin BUILTIN LED as an output. pinMode(2, OUTPUT); digitalWrite(2, HIGH); // LED off! by making // the voltage LOW}

void loop() { digitalWrite(2, HIGH); // turn LED off! delay(1000); // wait for a second digitalWrite(2, LOW); // turn LED on! delay(1000); // wait for a second

}

Das Programm finden Sie im Downloadpaket unter Blink.ino. Um das Programm auf den Controller zu laden, wird in der IDE das ESP-Board ausgewählt:

Werkzeuge → Board → Node32s

Page 12: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden 28

Abb. 3.1: Auswahl des ESP-Boards

Die weiteren Parameter wählen Sie so, wie in der folgenden Abbil-dung dargestellt, soweit sie nicht bereits voreingestellt sind.

Abb. 3.2: Parameterliste

Als Port muss unter Werkzeuge → Port der aktuelle Port, der dem ESP32 zugewiesen wurde, gewählt werden. Dies ist meist der letzte Wert in der Liste. Im Zweifelsfall müssen Sie mehrere Werte testen.

Page 13: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

29Warnblinker

Es ist hilfreich, das Board vom USB-Port zu trennen. Dabei sollte eine COM- Portnummer verschwinden. Beim Wiederanschließen taucht diese Nummer erneut auf und ist damit als Portnummer des ESP-Boards erkennbar.

Nun kann der erste Sketch hochgeladen werden. Dazu wird er per Datei → Öffnen in die IDE geladen. Alle in diesem Maker Kit ver-wendeten Sketche finden Sie im Downloadpaket zum Kit. Es liegt als ZIP-Archiv vor und muss zunächst entpackt werden. Dann können die Programme in die IDE geladen werden.

Mit dem Hochladen-Pfeil wird das Programm übersetzt und auf das Board geladen. Alternativ kann die Anweisung Sketch → Hoch-laden oder der Shortcut (Strg)+(U) verwendet werden.

Abb. 3.3: Programmupload

Das Übersetzen (Kompilieren) des Sketchs kann einige Sekunden in Anspruch nehmen. Der Fortschritt bei diesem Vorgang kann im untersten IDE-Fenster mitverfolgt werden. Schließlich wird das Pro-gramm zum Chip übertragen. Abschließend erscheint die Meldung Hochladen abgeschlossen:

Abb. 3.4: Erfolgreicher Upload

Page 14: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden 30

Jetzt sollte der grüne Chip der RGB-LED im Sekundentakt blinken. Damit ist die erste Programmierung des ESP-Boards erfolgreich ab-geschlossen.

Das Programm ist leicht zu verstehen. In den ersten Programmzeilen stehen mehrere Kommentare:

// Blink for NodeESP// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud

// !!!PRESS boot-BUTTON until upload starts!!!

Kommentarzeilen beginnen stets mit dem Doppel-Slash //. Nachfolgende Texte und Zeichen werden vom Compiler nicht be-achtet. Sie dienen lediglich der besseren Lesbarkeit von Program-men. Mit Kommentaren sollte man nicht sparsam umgehen. Es zeigt sich immer wieder, dass Programme ohne ausreichende Kommentie-rung bereits nach kürzester Zeit nicht mehr nachvollzogen werden können.

Einerseits sollten Kommentare kurz gehalten werden, anderer-seits aber die Funktion eines Programmblocks gut verständlich wie-dergeben. Dabei muss nicht jede Programmzeile kommentiert wer-den, vielmehr ist es angebracht, bestimmte logische Einheiten eines Codes in Klartext zu erläutern. 

Der Kommentar // IDE 1.8.9 liefert einen Hinweis auf die verwen-dete IDE-Version. Dann folgen Hinweise auf die Einstellungsdaten der IDE. Der Kommentar

// !!!PRESS boot-BUTTON until upload starts!!!

weist darauf hin, dass eventuell die BOOT-Taste gedrückt werden kann, falls der Upload nicht vollständig automatisch abläuft.

Die nächste Anweisung, void setup(), ist eine Spezialität der Arduino- IDE. Hier wird unter anderem festgelegt, welche Aufgaben

Page 15: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

31Warnblinker

die einzelnen Pins auf dem jeweiligen Board erfüllen sollen. Diese setup-Anweisung ist in einem Arduino- Sketch immer erforderlich, selbst wenn sie keinen einzigen Befehl enthält. Durch den Aufruf von setup werden interne Abläufe gestartet, die die Arbeit mit dem Con-troller erst ermöglichen.

Die erste aktive Zeile pinMode(2, OUTPUT); definiert Pin 2 als Aus-gang. Die nächste Anweisung

digitalWrite(2, HIGH); // LED off! by making // the voltage HIGH

mag etwas überraschen. Hier wird Pin 2 auf HIGH, also einen „hohen“ Spannungswert, genauer gesagt 3,3 V, gesetzt. Trotzdem sorgt diese Anweisung dafür, dass die daran angeschlossene LED ausgeschaltet wird. Das liegt an der besonderen Verschaltung der LED. Darauf wird später noch näher eingegangen.

Der Start des Hauptprogramms erfolgt mit void loop(). In Mikro-controllern läuft das Hauptprogramm praktisch immer in einer End-losschleife (engl. „loop“) ab. Da Controller über keine eigenen Betriebs-systeme verfügen, darf die Hauptprogrammschleife nicht verlassen werden. Würde das Ende eines Programms erreicht, bliebe der Con-troller einfach stehen und könnte erst nach der Durchführung eines Resets die Arbeit wieder aufnehmen. Die End losschleife sorgt also dafür, dass der Prozessor so lange arbeitet, bis die Betriebsspannung abgeschaltet wird.

Mit digitalWrite(2, HIGH); erhält Pin 2 nochmals HIGH-Potenzial. Diese Anweisung hat beim ersten Schleifendurchlauf also noch keine Wirkung. Die LED bleibt ausgeschaltet.

Die Dauer dieses Zustands wird mit

delay(1000); // wait 1 sec = 1000 ms

festgelegt. Damit erhält der Prozessor den Auftrag, 1.000 ms = eine Sekunde zu warten.

Page 16: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden 32

Abschließend wird mit digitalWrite(2, LOW); die LED erstmals eingeschaltet, und bei leuchtender LED wird nochmals eine Pause von einer Sekunde eingelegt.

Dann beginnt der Blinkvorgang mit dem Ausschalten der LED wieder von vorne, da das Hauptprogramm ja in einer Endlosschleife abläuft. Die LED blinkt nun mit einer Periodendauer von zwei Sekun-den, was einer Frequenz von f = 1/(2s) = 0,5 Hz entspricht.

Alarmblitzer im EinsatzAls nächste Anwendung soll ein Alarmanlagensimulator aufgebaut werden. Derartige Geräte werden in verschiedenen Variationen durchaus auch in der Praxis eingesetzt. Sie bestehen aus einer LED, die in regelmäßigen Abständen kurz aufblitzt, und werden an ge-eigneter Stelle, beispielsweise in einem Fahrzeug, eingebaut. Sie sind von einer scharf geschalteten Alarmanlage nicht zu unterscheiden, und zumindest Gelegenheitsdiebe lassen sich damit von einem Ein-bruch abschrecken. Das zugehörige Programm finden Sie wieder im Programmpaket:

// Alarm simulator// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud// !!!PRESS boot-BUTTON until upload starts!!!

void setup() { // initialize digital pin BUILTIN LED as an output. pinMode(2, OUTPUT); digitalWrite(2, HIGH); // LED off! by making // the voltage LOW}

void loop() { digitalWrite(2, HIGH); // turn LED off! delay(1000); // wait for a second

Page 17: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

33Nützlich für den Notfall: automatisches SOS-Signal

digitalWrite(2, LOW); // turn LED on! delay(10); // wait for a second

}

Die Unterschiede zum Blink-Sketch bestehen in den folgenden Än-derungen:

1. Die Kommentarzeilen, die mit // beginnen, wurden angepasst.

2. Der Wert in der zweiten delay-Anweisung wurde von 1000 auf 10 geändert. Damit wird aus dem regelmäßigen Blinken ein kurzes Aufblitzen.

Wenn der neue Sketch geladen wird, blitzt die LED im Abstand von jeweils einer Sekunde kurz auf. Der Alarmanlagensimulator ist ein-satzbereit!

Nützlich für den Notfall: automatisches SOS-SignalEine weitere interessante Anwendung ist eine automatische SOS- Bake, die in Notsituationen sogar Leben retten könnte. Zum Aussen-den des bekannten SOS-Signals muss eine LED dreimal kurz, dann dreimal lang und schließlich wieder dreimal kurz aufblinken. Diese Signalfolge soll sich dauerhaft wiederholen.

Man sollte versuchen, den Code für den Alarmanlagensimulator so zu ändern, dass die LED das gewünschte Signal sendet. Anschlie-ßend kann die eigene Lösung mit dem folgenden Musterprogramm verglichen werden.

// SOS// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud// !!!PRESS boot-BUTTON until upload starts!!!

void setup() { pinMode(2, OUTPUT);

Page 18: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden 34

digitalWrite(2, HIGH); // LED off! by making // the voltage HIGH}

void loop() { digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(1000);

digitalWrite(2, LOW); delay(400); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(400); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(400); digitalWrite(2, HIGH); delay(1000);

digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(1000);

delay(2000);

}

Natürlich ist das nicht die eleganteste Methode, aber Sie sehen, dass so bereits ohne genaue Kenntnis der verwendeten Program-miersprache eigene Projekte realisierbar sind. In späteren Kapiteln wird noch genauer darauf eingegangen, wie man ein derartiges Pro-gramm wesentlich effizienter implementieren kann.

Dennoch erfüllt das Programm seinen Zweck. Verwendet man als LED einen besonders lichtstarken Typ, kann die Schaltung beispiels-weise in See- oder Bergnot durchaus nützlich sein.

Page 19: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

35Bunte Mischung: Multicolor-LED im Einsatz

Bunte Mischung: Multicolor-LED im EinsatzNachdem Anwendungen mit nur einer einzigen LED ausführlich dis-kutiert wurden, soll die Multicolor-LED des Boards mit ihrem ganzen Funktionsumfang genutzt werden. Zunächst kann ein Lauflicht- Sketch zum Einsatz kommen:

// Chaser_RGB.ino // NodeESP// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud

byte RGB_BLUE = 0;byte RGB_GREEN = 2;byte RGB_RED = 4;

void setup() { pinMode(RGB_BLUE, OUTPUT); pinMode(RGB_GREEN, OUTPUT); pinMode(RGB_RED, OUTPUT); digitalWrite(RGB_BLUE, HIGH); // OFF!!! digitalWrite(RGB_GREEN, HIGH); // OFF!!! digitalWrite(RGB_RED, HIGH); // OFF!!! delay(1000);}

void loop() { digitalWrite(RGB_BLUE, LOW); delay(100); digitalWrite(RGB_BLUE, HIGH); delay(1000); digitalWrite(RGB_GREEN, LOW); delay(100); digitalWrite(RGB_GREEN, HIGH); delay(1000);

digitalWrite(RGB_RED, LOW); delay(100); digitalWrite(RGB_RED, HIGH); delay(1000);

}

Page 20: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

3 Bunte Licht spiele mit Leucht dioden 36

Nach dem Laden des Sketchs blinken die einzelnen Chips der RGB-LED in den Farben Blau, Grün und Rot nacheinander auf.

In einer späteren Anwendung wird dafür gesorgt werden, dass die Übergänge fließend verlaufen, sodass eine sehr stimmungsvolle Raumbeleuchtung entsteht.

Anschluss externer LEDsBislang wurden nur die bereits auf dem ESP-Board vorhandenen LEDs angesteuert. Nun sollen auch externe Bauelemente zum Einsatz kommen. Zunächst wird eine einzelne LED angesteuert. Die folgende Abbildung zeigt den Aufbau:

Abb. 3.5: Externe LED am ESP32-Board

Achten Sie ist genau darauf, dass das Controllerboard korrekt ein-gesteckt ist. Die ersten beiden Lochreihen im Hauptsteckfeld müssen frei bleiben!

Im Anhang finden Sie einige nützliche Hinweise und Informatio-nen zum lötfreien Aufbau von elektronischen Schaltungen und zum Umgang mit elektronischen Bauelementen für den Fall, dass Sie noch keine Erfahrung auf diesem Gebiet haben. Speziellere Komponenten wie Sensoren oder Displays werden dagegen immer bei ihrem ersten Einsatz näher erläutert.

Ein sogenanntes „realistisches Schaltbild“ zu diesem Aufbau sieht so aus:

Page 21: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

37Anschluss externer LEDs

Abb. 3.6: Schaltbild zur externen LED am ESP32-Board

Der verwendete Widerstand hat den Wert 220 Ohm. Die zugehörige Farbringkombination ist: Rot – Rot – Braun – Gold.

Sollte die LED nicht blinken, ist sie eventuell falsch herum eingebaut. Die Leuchtdiode umzupolen löst das Problem.

Der entsprechende Sketch ist recht einfach:

// LED_external// IDE 1.8.9// Tools: Node32S// Flash Frequency 40 MHz// Upload Speed 115200 Baud// !!!PRESS boot-BUTTON until upload starts!!!

void setup() { pinMode(27, OUTPUT); digitalWrite(27, LOW); // LED off!}

void loop() { digitalWrite(27, HIGH); delay(1000); digitalWrite(27, LOW); delay(1000);

}

Nach dem Laden des Sketchs blinkt die an Port 27 angeschlossene Leuchtdiode anstelle der RGB-LED. Da die LED hier mit der Anode an den Port und mit der Kathode an Ground angeschlossen ist, leuchtet sie, wenn der Port auf HIGH-Potential, also auf 3,3 V, geschaltet wird.

Page 22: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge:

Analogsignale

Prinzipiell können Mikrocontrollerausgänge nur digitale Spannungs-werte annehmen. Da der ESP32 mit 3,3 V arbeitet, gilt hier:

yy LOW: 0 Vyy HIGH: 3,3 V

Allerdings ist die Welt nicht digital aufgebaut. Es existieren auch beliebige analoge Zwischenwerte. Bei einem Sonnenaufgang wird es nicht von einer Sekunde auf die andere hell. Vielmehr nimmt die Helligkeit langsam und allmählich zu. Häufig möchte man dies auch mit technischen Mitteln nachahmen. So ist es wesentlich angeneh-mer, wenn man von einem langsam heller werdenden Licht geweckt wird als von einer plötzlich aufleuchtenden Lampe.

Für die Erzeugung von Analogspannungen stehen mehrere Me-thoden zur Verfügung. Die beiden wichtigsten sind:

yy die Pulsweitenmodulation (PWM) undyy der Digital-Analog-Konverter (DAC, von engl. Digital zu Analog

Converter).

In diesem Kapitel werden beide Verfahren vorgestellt und ver-schiedene Anwendungen erläutert.

Page 23: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Künstlicher SonnenaufgangUm einen künstlichen Sonnenaufgang zu simulieren, kann die Me-thode der Pulsweitenmodulation eingesetzt werden. Dabei wird eine Spannung so schnell ein- und ausgeschaltet, dass das menschliche Auge dem Schaltvorgang nicht folgen kann. Ist die Spannung immer zu 50 % ein- und zu 50 % ausgeschaltet, liefert das PWM-Signal im zeitlichen Durchschnitt nur die halbe Maximalspannung, bei einer Versorgungsspannung von 3,3 V also 1,65 V. Entsprechendes gilt für die anderen Taktverhältnisse (siehe Abbildung).

Abb. 4.1: Erzeugung eines PWM-Signals

Für eine echte Analogspannung müsste die dabei entstehende „Rechteckschwingung“ noch elektronisch gefiltert werden. Hier kann aber auf eine Filterung verzichtet werden, da die Mittelung des Sig-nals beim Einsatz von LEDs im Auge des Betrachters stattfindet. Das schnelle Schalten der Leuchtdiode verschwimmt ab einer bestimm-ten Frequenz zu einem kontinuierlichen Helligkeitseindruck.

Page 24: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge: Analogsignale40

Das zugehörige Programm nutzt die LED-PWM-Funktion des ESP32, die aus 16 unabhängigen Kanälen besteht. Dazu müssen meh-rere Parameter konfiguriert werden:

yy 16 Kanäle von 0 bis 15 - int chyy Tastverhältnisse - int dutyyy Frequenzen und - int freqyy Auflösungen von 1 bis 16 Bit - int res

Die PWM-Setup-Funktion weist das folgende Format mit Integer- Parametern auf:

ledcSetup(ch, freq, res)

Nach dem Setup muss der GPIO-Pin, der als PWM-Ausgang ver-wendet werden soll, mit

ledcAttachPin(GPIO_pin, ch)

definiert werden. Das PWM-Signal wird dann über die Funktion

ledcWrite(ch, duty cycle)

an den ausgewählten GPIO-Pin ausgegeben.

Im folgenden Sketch wird die Frequenz auf 1.000 Hz eingestellt und Kanal 0 mit dem GPIO-Pin 4 verwendet. Dieser ist auf dem Board mit dem roten Kanal der RGB-LED verbunden. Die Auflösung ist auf 8 Bit festgelegt. Das bedeutet, dass Quasi- Analogwerte zwischen

0 und 2^8 - 1 = 255

eingestellt werden können. Das Tastverhältnis wird alle 50 ms (Milli-sekunden) in Fünferschritten von 0 bis 100 % geändert. Dadurch blendet die LED von 0 (das heißt, die LED ist dunkel) bis zur vollen Helligkeit von 100 % auf. Dann wartet das Programm 100 ms, an-schließend wird die LED in 5-%-Stufen alle 50 ms wieder dunkler.

Page 25: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

41Künstlicher Sonnenaufgang

// Sunrise

// IDE 1.8.9

byte RGB_BLUE = 0;

byte RGB_GREEN = 2;

byte RGB_RED = 4;

int frequency = 1000;

int resolution = 8;

int channel = 0;

void setup()

{ pinMode(RGB_BLUE, OUTPUT);

digitalWrite(RGB_BLUE, HIGH); // OFF!!!

pinMode(RGB_GREEN, OUTPUT);

digitalWrite(RGB_GREEN, HIGH); // OFF!!!

pinMode(RGB_RED, OUTPUT);

digitalWrite(RGB_RED, HIGH); // OFF!!!

ledcSetup(channel, frequency, resolution);

ledcAttachPin(RGB_RED, channel);

}

void loop()

{ for(int duty = 255; duty >= 0; duty -=5)

{ ledcWrite(channel, duty);

delay(50);

}

for(int duty = 0; duty < 255; duty +=5)

{ ledcWrite(channel, duty);

delay(50);

}

delay(100);

}

Page 26: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge: Analogsignale42

Mood-Light mit Multicolor-LEDDie PWM-Steuerung eignet sich gut für die Steuerung von soge-nannten Stimmungslichtern, die auch als „Mood-Lights“ in verschie-densten Varianten erhältlich sind. Mit der Multicolor-LED kann eine solche Beleuchtung leicht nachgebaut werden. Die LED wird hier so angesteuert, dass sie kontinuierlich ihre Farben ändert. Bei Verwen-dung der PWM-Steuerung sind Farbübergänge nicht abrupt, viel-mehr entstehen fließende Übergänge.

Der zugehörige Sketch sorgt dafür, dass nacheinander alle Ana-logausgänge langsam hoch- und wieder heruntergefahren werden. Durch die additive Farbmischung ergeben sich die unterschiedlichs-ten Farbnuancen, einschließlich nahezu weißer Farbtöne.

// Mood_light

// IDE 1.8.9

byte RGB_BLUE = 0;

byte RGB_GREEN = 2;

byte RGB_RED = 4;

int frequency = 1000;

int resolution = 8;

// int channel = 0;

void setup()

{ pinMode(RGB_BLUE, OUTPUT); digitalWrite(RGB_BLUE, HIGH);

// OFF!!!

pinMode(RGB_GREEN, OUTPUT); digitalWrite(RGB_GREEN, HIGH);

// OFF!!!

pinMode(RGB_RED, OUTPUT); digitalWrite(RGB_RED, HIGH);

// OFF!!!

ledcSetup(0, frequency, resolution); ledcAttachPin(RGB_RED, 0);

ledcSetup(1, frequency, resolution);

ledcAttachPin(RGB_GREEN, 1);

Page 27: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

43Mood-Light mit Multicolor-LED

ledcSetup(2, frequency, resolution);

ledcAttachPin(RGB_BLUE, 2);

}

void loop()

{ for(int duty = 255; duty >= 0; duty -=5)

{ ledcWrite(0, duty);

delay(50);

}

for(int duty = 255; duty >= 0; duty -=5)

{ ledcWrite(1, duty);

delay(50);

}

for(int duty = 255; duty >= 0; duty -=5)

{ ledcWrite(2, duty);

delay(50);

}

for(int duty = 0; duty < 255; duty +=5)

{ ledcWrite(0, duty);

delay(50);

}

for(int duty = 0; duty < 255; duty +=5)

{ ledcWrite(1, duty);

delay(50);

}

for(int duty = 0; duty < 255; duty +=5)

{ ledcWrite(2, duty);

delay(50);

}

}

Page 28: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge: Analogsignale44

Echte Analogwerte mit dem DACDie ESP32-Controller sind mit zwei 8-Bit-Digital-Analog-Konvertern, kurz DAC (Digital zu Analog Converter), ausgestattet. Anders als bei der PWM werden die Spannungen in diesem Fall als reale, stabile Spannungswerte ausgegeben und nicht als Effektivwerte eines be-stimmten Puls-Pause-Verhältnisses.

Die Anwendungen erstrecken sich von qualitativ hochwertigem Stereosound über High-Speed-Signalerzeugung bis hin zu Kalibrier-anwendungen. Dank dieser Ausstattung stoßen die ESP-Controller bereits bis in die Anwendungsbereiche einfacher digitaler Signalpro-zessoren (DSP) vor.

Die DACs des ESP32 sind die, die mit GPIO25 (Channel 1) und GPIO26 (Channel 2) verbunden sind. Der folgende Sketch gibt eine feste analoge Spannung an Pin 25 aus:

// DAC_voltage.ino

// IDE 1.8.9

// ESP32

#define AnalogOut 25

void setup()

{ pinMode(AnalogOut, ANALOG); // Configure pin as analog output

int DACval = 100;

dacWrite(AnalogOut, DACval);

}

void loop()

{ }

Der Spannungswert ergibt sich aus der folgenden Gleichung:

U = 3,3 V / 255 * DAC_val

Page 29: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

45Ausgabe von zeitabhängigen Spannungen

Im Sketch wird für DAC_val der Wert 100 eingesetzt. Damit ergibt sich:

U = 3,3 V / 255 * 100 = 1,294 V

Mit einem Digitalvoltmeter kann der ausgegebene Spannungs-wert nachgemessen werden.

Abb. 4.2: Analoge Spannungsausgabe

Der Wert stimmt innerhalb einer Fehlertoleranz von 1,5  % gut mit dem Sollwert überein.

Ausgabe von zeitabhängigen SpannungenNeben der Ausgabe von statischen Spannungswerten besteht die Aufgabe von DACs hauptsächlich darin, zeitabhängige Spannungs-verläufe zu erzeugen. Dazu werden die gewünschten Werte inner-halb einer for-Schleife an die DACs übergeben:

Page 30: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge: Analogsignale46

// DAC_sawtooth.ino

// IDE 1.8.5

// ESP32

#define AnalogOut 25

void setup()

{ pinMode(AnalogOut, ANALOG); // Configure pin as analog output

}

void loop()

{ for(int DACval = 0; DACval < 255; DACval++)

{ dacWrite(AnalogOut, DACval);

delayMicroseconds(1);

}

}

Abb. 4.3: Sägezahnspannung auf dem Oszilloskop

Auf diese Weise entsteht eine linear ansteigende Spannung, die nach dem Erreichen ihres Maximalwerts wieder auf null abfällt. Auf-grund der grafischen Ähnlichkeit eines solchen Spannungsverlaufs

Page 31: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

47Funktionsgenerator

mit den Zähnen einer Säge wird dieser Spannungsverlauf auch als Sägezahnspannung bezeichnet.

FunktionsgeneratorDer DAC kann auch komplexere Spannungsverläufe als eine Säge-zahnfunktion ausgeben. Im Beispielprogramm zu diesem Kapitel werden simultan eine Rechteckspannung und ein sinusförmiger Spannungsverlauf erzeugt.

Dazu wird im Array sinus[] eine Sinustabelle abgespeichert. An-schließend werden die Sinuswerte innerhalb einer Schleife an den DAC übergeben. Gleichzeitig wird über

// square signal:

if (sinus[DACval]>128) dacWrite(AnalogOutB, 255);

else dacWrite(AnalogOutB, 0);

eine Rechteckfunktion erzeugt. Der Sketch dazu sieht so aus:

// DAC_sinus_square.ino

// IDE 1.8.5

// ESP32

#define AnalogOutA 25

#define AnalogOutB 26

int sinus[] =

{ 128, 131, 134, 137, 141, 144, 147, 150, 153, 156, 159, 162,

165, 168, 171, 174,

177, 180, 183, 186, 189, 191, 194, 197, 199, 202, 205, 207,

209, 212, 214, 217,

219, 221, 223, 225, 227, 229, 231, 233, 235, 236, 238, 240,

241, 243, 244, 245,

246, 247, 248, 249, 250, 251, 252, 253, 253, 254, 254, 255,

255, 255, 255, 255,

Page 32: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

4 Für fließende Übergänge: Analogsignale48

255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 251,

250, 249, 248, 247,

246, 245, 243, 242, 240, 239, 237, 236, 234, 232, 230, 228,

226, 224, 222, 220,

218, 215, 213, 211, 208, 206, 203, 201, 198, 195, 193, 190,

187, 184, 181, 179,

176, 173, 170, 167, 164, 161, 158, 155, 152, 148, 145, 142,

139, 136, 133, 130,

126, 123, 120, 117, 114, 111, 108, 104, 101, 98, 95, 92, 89,

86, 83, 80,

77, 75, 72, 69, 66, 63, 61, 58, 55, 53, 50, 48, 45, 43, 41, 38,

36, 34, 32, 30, 28, 26, 24, 22, 20, 19, 17, 16, 14, 13, 11, 10,

9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0,

0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 10,

11, 12, 13, 15, 16, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, 37,

39, 42, 44, 47, 49, 51, 54, 57, 59, 62, 65, 67, 70, 73, 76, 79,

82, 85, 88, 91, 94, 97, 101, 103, 106, 109, 112, 115, 119, 122,

125

};

void setup()

{ pinMode(AnalogOutA, ANALOG); // Configure as analog output

pinMode(AnalogOutB, ANALOG); // Configure as analog output

}

void loop()

{ for (int DACval = 0; DACval < 255; DACval ++)

{ // sine signal:

dacWrite(AnalogOutA, sinus[DACval]);

delayMicroseconds(1);

Page 33: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

49Funktionsgenerator

// square signal:

if (sinus[DACval]>128) dacWrite(AnalogOutB, 255);

else dacWrite(AnalogOutB, 0);

}

}

Mit einem Oszilloskop können die beiden Spannungsverläufe an den Pins 25 und 26 sichtbar gemacht werden:

Abb. 4.4: Das Controllerboard als Funktionsgenerator

Damit können Sie vielfältige Anwendungen wie Audioausgaben, Tonerzeugung oder digitale Synthesizer realisieren.

Page 34: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

FehlersucheAuch wenn der Versuchsaufbau exakt so aussieht wie auf dem Schalt-bild oder dem Aufbaufoto, kann es vorkommen, dass die Schaltung nicht korrekt arbeitet. Deshalb sollen im Folgenden die häufigsten Fehlerursachen beschrieben werden. Wenn Sie sie nacheinander durchgehen und prüfen, ist die Wahrscheinlichkeit hoch, dass die Schaltung schließlich einwandfrei arbeitet.

1. Hardwareaufbau

yy Sind alle polaren Bauelemente richtig gepolt? Insbesondere LEDs und Displays prüfen!

yy Darauf achten, dass sich blanke Anschlussdrähte von Bauelementen nicht unbeabsichtigt berühren.

yy Sind alle Widerstände korrekt gewählt? Bei schlechten Licht-verhältnissen können die Farbringe (insbesondere Rot und Orange) leicht verwechselt werden.

yy „Reverse Engineering“: Wenn eine Schaltung einmal über-haupt nicht funktionieren will, kann es sehr sinnvoll sein, zu versuchen, gemäß dem Aufbaubild einen eigenen Schaltplan zu zeichnen. Dabei wird oft die Zuordnung der einzelnen Bauelemente klarer.

yy Ist das USB- bzw. Programmierkabel korrekt angeschlossen?

2. Programmierung

Falls die Fehlermeldung „Es ist ein schwerwiegender Fehler auf-getreten: Verbindung zu ESP32 fehlgeschlagen: Zeitüberschrei-tung ... Verbindung wird hergestellt ...“ auftritt, bedeutet das, dass sich der ESP32 nicht im Flash-/Uploadmodus befindet. In diesem Fall sollten Sie Folgendes tun:

Page 35: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

yy Prüfen, ob der korrekte Boardname und der richtige COM-Port gewählt wurden.

yy Dann die BOOT-Taste auf dem ESP32-Board drücken.

yy In der Arduino-IDE auf die Schaltfläche Hochladen klicken.

yy Wenn die Meldung Connecting... in der Arduino-IDE angezeigt wird, die BOOT-Taste loslassen

Dann sollte der Upload des aktuellen Sketchs starten.

BezugsquellenMöchte man das Bauteilesortiment des Kits ergänzen oder erwei-tern oder sollte einmal ein Bauteil verloren gehen oder nicht mehr funktionieren, können Sie bei den großen Elektronikversandhäusern Ersatzteile bestellen:

yy Reichelt Elektronik: www.reichelt.deyy Conrad Electronic Versand: www.conrad.deyy ELV-Elektronik AG: www.elv.deyy Elektor-Webshop: https://www.elektor.de/

Zudem bieten die bekannten Onlineshops wie Amazon und eBay in zunehmendem Maße elektronische Komponenten an. Dort erhält man zwar meist keine einzelnen Halbleiter, jedoch sind immer wie-der Sortimente oder Bündel mit verschiedenen interessanten Bau-elementen zu finden.

Page 36: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

LiteraturDas vorliegende Kit befasst sich intensiv mit dem ESP32-Modul sowie mit Sensoren und Schnittstellen. Die nachfolgend genannten Bücher und Lernpakete schließen an das Niveau des Buchs an und bieten weitere interessante Anregungen insbesondere zu den Themen Elek-tronik und Mikrocontroller. Leider sind einige der Titel nur noch anti-quarisch erhältlich.

yy AVR-Mikrocontroller in C programmieren, Franzis, 2010

yy C-Programmierung von AVR-Mikrocontrollern, Franzis, 2012, Lernpaket

yy Coole Projekte mit dem ArduinoTM Micro, Franzis, 2014

yy ArduinoTM-Projects, Franzis, 2014, Lernpaket

yy Praxiskurs Mikrocontroller ATXmega, Elektor, 2014

yy Lernpaket AVR-Mikrocontroller in C programmieren, Franzis 2012

yy Lernpaket Physical Computing, Franzis, 2015

yy Lernpaket Sensoren und Motoren am ArduinoTM, Franzis, 2016

yy Smart-Home- und IoT-Technik für den ArduinoTM, Elektor, 2017

yy Praxisprojekte mit dem RFID-Starterkit für ArduinoTM, Elektor, 2017

yy ArduinoTM – Schaltungsprojekte für Profis, 2. Auflage, Elektor, 2017

yy Mikrocontroller-Technik: Vom Einsteiger zum Aufsteiger, Elektor, 2018

Ergänzende Informationen zum Thema Elektronik im Allgemeinen sind in den folgenden E-Books zu finden. Diese Reihe wird kontinu-ierlich ergänzt und erweitert:

yy E-Book Elektronik! – Transistortechnik: http://www.amazon.de/dp/B00OXNCB02

yy E-book Elektronik! – Audiotechnik: https://www.amazon.de/dp/B013NSPPY6

yy E-book Elektronik! – Messtechnik: https://www.amazon.de/dp/B0753GXHVP

Page 37: Mach's einfach: Maker Kit für ESP32 - Leseprobe...EINFACH Handbuch für ESP32 MAKER KIT Handbuch für ESP32 MAKER KIT 67093-9_HB-TITELEI_RZ.indd 1 18.11.19 14:34 67093-9_HB-TITELEI_RZ.indd

Handbuch

HEUTE SCHON EXPERIMENTIERT?

Die ESP32-Chips der Firma Espressif Sys-tems haben die Maker-Szene im Sturm erobert. Sie sind das perfekte Werkzeug für Projekte aus dem Bereich Internet of Things und Heimautomatisierung. Starten Sie mit diesem Maker Kit in die Welt dieser leistungsstarken Wifi-Mikrocontroller und setzen Sie innerhalb kurzer Zeit eigene An-wendungen um. Ein ESP-Board und alle er-forderlichen Bauteile sind in diesem Kit ent-halten, es kann sofort losgehen!

Dieses Maker Kit enthält alles, was Sie für Ihren Einstieg in die Microcontrollertechnik mit dem ESP32 benötigen. Die beschrie-benen Projekte vermitteln nicht nur Wis-sen und Spaß, sondern inspirieren auch zu eigenen Hacks und Anwendungen.

⊲ Alarmblitzer im Einsatz⊲ Automatisches SOS-Signal⊲ Multicolor-LED im Einsatz⊲ Künstlicher Sonnenaufgang⊲ Mood-Light mit Multicolor-LED⊲ Präzise Temperaturwerte mit dem TMP36⊲ Elektronisches Luxmeter⊲ Optische Abstandsmessung⊲ Sensoren für optimales Raumklima⊲ Magnetfelder mit dem Hallsensor erfassen⊲ WLAN-Thermometer⊲ Präzises Digitalthermometer⊲ Digitale Klimamessstation⊲ Steuerung der RGB-LED via Bluetooth⊲ … und viele mehr

DIESE PROJEKTE FÜHREN SIE UNTER ANDEREM DURCH:

DIE BAUTEILE IM ÜBERBLICK:⊲ 1 x NODEESP-Board⊲ 1 x Breadboard groß⊲ 6 x Widerstand 220 Ohm⊲ 2 x Widerstand 1 kOhm⊲ 2 x Widerstand 10 kOhm⊲ 2 x Widerstand 100 kOhm⊲ 3 x LEDs rot⊲ 1 x LED grün⊲ 1 x LED gelb⊲ 2 x LEDs weiß⊲ 1 x DHT11-Temperatur-/Feuchtesensor⊲ 1 x TMP36-Temperatursensor⊲ 1 x PT331C-Fototransistor⊲ 1 x Potenziometer 10 kOhm mit Rändelrad⊲ 1 x 4-x-7-Segment-LED-Display⊲ 15 x Jumperkabel male/female⊲ 1 x Micro-USB-Kabel⊲ 2 x Pinleiste zwölfpolig⊲ 2 m Schaltdraht, isoliert

Für Kinder unter 14 Jahren nicht geeignet.

Besuchen Sie unsere Webseite:

www.franzis.de

© 2

020

FRAN

ZIS

Ver

lag

Gm

bH, R

ichar

d-Re

itzne

r-Alle

e 2,

D-8

5540

Haa

r, Ger

man

y20

20/0

1

MACH'S EINFACH

WEEE-Reg.-Nr. DE21445697

für ESP32 MAKER KIT

Zusätzlichempfohlen:

PC, USB- Kabel