ebook img

Make: ESP32 SPECIAL inkl. ESP32 NodeMCU Entwicklerboard PDF

68 Pages·2019·28.056 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Make: ESP32 SPECIAL inkl. ESP32 NodeMCU Entwicklerboard

c't ESP32A�L� - -�:=::::= --------------� ru n i�g�� sP e :::=:=:=:c =-=--1 G d • Softwasrceh neeliln richten • Digital-Analog-sWtaenudelrenr • Hardware-Funktvieornsetne hen• T ouch-Eingäanugsel esen t ESP32i nsW LAN bringen • Hallsensonruetnz �n I· • PerB luetooDtaht ena ustausche• BnA SIC-Interpfrreetiesrc halten ! 2019 €24,95 =,.... 0 PROJEKTE -...... =ll"\ Mini-Webserver mit Temperaturmessung _-�o- • ==�N Bluetooth-Sensoren Funktionsgenerator -iill"\iiiöiiiiiiiii� • • --Cl =o �0' Piano mit Toucheingabe Türüberwachung =..- • � -·-·······------······----------· www.make-magazin.de Arduino-Projekte für Fortgeschrittene: Digital als PDF Auch erhältlich: Teil 1 für Einsteiger Hardware � pROJEKTE �..:=:;:.��u:e.�er ·- l'J Heise www.make-magazin.de Inhalt 4 Schnelleinstieg: DasB estzew eieWre lten 10 Hardware: Hardware-Interna 18 WLAN: 50 FlinkFeurn kwellenreiter TürsenmsioCtrl oud-Anbindung 30 Bluetooth: Durch die KombinatiOn des integrierten Hall�ensors mit externen StrahlendblFauunekre nflug Magneten wird der ESP32 zur Cloud-fähigen Fernüberwachung 44 Funktionsgenerator: von Türen und Fenstern. Signalerzeumgiutdn egm ESP2 50 Hall-Sensor: Magnetfelmdeesrs en 56 Berührungssensoren: Touchm e! 61 Impressum 62 Ba sie: Wiei na lteZne iten 56 Wackelpudding-Piano Die Touch-Eingänge des ESP32 machen den Anschluss teurer Tasten überflüssig. Acht Puddingbecher dienen als Tastatur für ESP32 ThermomE X + - D . das Jelly-Piano, dessen Töne der Mikrocontroller intern erzeugt. ... {9�1 » Temperatur "" 40 i<·. Luftfeuchti it 80 ; 18 4 4 ESP3a2l WsL AN-Server Funktionsgenerator Mit wenigen Zeilen Code wird der ESP32 zum Dank seiner zwei Digital-/A nalog-Konverter kann der ESP32 Sinus-, · Webserver, der per WLAN die aktuelle Temperatur Dreieck-, Sägezahn-und Rechtecksignale bis in den Kilohertz­ und Luftfeuchtigkeit im Browser anzeigt. Bereich erzeugen, die sich für Experimente nutzen lassen. 3 Make: ESP32 special2019l �-----1----------- SCHNELLEINSTlEG DasBeste zw i r Welt n e e e Wer auf den ESP32 setzt, kommt nicht nur in den Genuss leistungsstarker Alles zum Artikel und günstiger Hardware, sondern kann auch von der intuitiven Arduino­ I im Web unter . Entwicklungsumgebung profitieren. • make-magazin.de/xrtn von Maik Schmidt Zur Programmierung des ESP32 und des Andocken Unter Linux kann man im Terminal prü­ ESP8266 gibt es viele Alternativen. fen, ob das Board erkannt wurde. Dazu gibt Neben der Entwicklung mittels C/C++ auf Bevor ein ESP32-Board mit der Arduino-IDE man, bevor das Board angeschlossen Basis des IoT Development Framework verbunden wird, muss es an den PC oder den wurde1das Kommando L s I dev I t ty. *ein. (ESP-IDF) gibt es auch die Möglichkeit, den Mac angeschlossen w�rden. Das erfolgt über Dann schli�ßt man das Board an und führt Chip in Lua, JavaScript; MicroPython oder einen USB-Anschluss, der das Board mit Strom das Kommando erneut aus. Der Eintrag, der gar BASIC zu programmieren. und neuer Software versorgen kann. Wie alle neu hinzugekommen ist, verweist auf das Sonderlich einsteigerfreundlich sind USB-Geräte benötigen die Boards einen Be­ ESP32-Board. Unter Ubuntu kann das ein diese Kandidaten aus verschiedenen Grün­ triebssystem-Treiber. ln dies.em Fall für den Eintrag wie z_um Beispiel ldevl_ttyltty­ den alle. nicht und zum Erfolg des ESP32 CP21 02"Chip des Herstellers SiL ab, derdie se­ usso sein. und des ESP8266 hat maßgeblich, beigetra­ rielle Kommunikation erledigt. Ähnlich läuft es unter macOS. Nur gibt gen, dass sich beide mit der Arduino-IDE Windows 10, Linux und aktuelle Versio­ man hier das .Kommando LIS ldevlcu.* programmieren lassen.Die hat sich ü�er die nen von macOS bringen den Treiber in ein, bevor und nachdem man das Board an- letzten Jahre zu einemfast konkurrenzlosen der Regel bereits mit. Auf der Seite des Her­ · gestöpselt hat. Typischerweise heißt der Werkzeug für Elektronik-Einsteiger entwi­ stellers (https://www.silabs.com/products/ neue Eintrag ldevlcu. SLAB_USBtoUART. ckelt und erfreut sich auch unter ESP32- development-tools/software/usb-to-uart­ Fans wachsender Beliebtheit, bridge-vcp-drivers) gibt es ihn bei Bedarf Her mit der IDE! Prinzipiell kann die Arduino-IDE schon aber auch als kostenlosen Down Ioad. lange mit einer ganzen Reihe unterschied­ Wenn man das ESP32-Board an einen Zur Installation der Arduiilo-IDE bietet lieber Boards umgehen, aber von Haus Windows-Rechner mit dem richtigen Treiber die Webseite des Arduino-Projekts aus erkennt sie die ESP32-Boards nicht. anschließt, sollte im Geräte-Manager ein (https:// www .a rd u i no.cc/ en/Mai n/Softwa re) Das lässt sich aber mit wenigen Handgriffen neuer Eintrag unt� ,9em Punkt Anschlüsse er­ je nach Betriebssystem unterschiedliche ändern. scheinen. Möglichkeiten. Für Windows steht zum Bei- ' 41 Make: ESP32 special 2019 spiel neben einem klassischen Setup auch � Gerä-tMeanager - D X eine ZIP-Datei zur Verfügung. Die muss man DateiA ktionA nsicht lediglich auspacken, ohne die Anwendung ? $J •IrEli�I6 1Iilli[J;11 lt X @ zLi installieren. Darüber hinaus ist die � IDE kostenlos im Microsoft App Store v DESKTOP-18D6BMQ � Akkus (https:// www.microsoft.com/de-de/p/arduino­ > Ii ide/9nblggh4rsd8) erhältlich. Für macOS und v iAn schlü(CsOsMe .& lPT) SilicLoanbC sP 210xU SBt oU ART Brid(gCeO M3) Linux stehen auf der Arduino-Seite ebenfalls aJ Audoi,V ideo undG amecontroelrl > . Installationspakete bereit. Audoieingngäeu nd- ausgänge ) Der erste Start der Arduino-IDE ist nicht > = Computer sonderlich spektakulär, denn die Software > li=i!,3 Druckwacrthelsaneng DVD/OD-ROM-Laufwerke wirkt etwas schlicht. Den oberen Bereich > jjW Eingabege(Hruämtaen I nterfaDcevei ces) > dominieren eine Menüleiste mit sechs gro­ Grafikkarten ) ßen Knöpfen und ein Text-Editor. Im unte­ "" IDEA TA!ATAPIC-onrtollre > ren Bereich gibt es einen Bereich für Ausga­ > _fl Laufwerke Mäusuen da nderZee igegeräte ben der IDE. > Monitore Die sechs Knöpfe bieten schnellen Zugriff > - Netzwerkadapter . auf die wichtigsten Kommandos. Ganz links > C Prozesens or ' > I steht der Knopf zur Überprüfung des aktuel­ Softwa<egeräte > � len Programms. Wird er betätigt, werden die > Speicehrcont-lerlro Quelltexte, die im aktuellen Fenster geöffnet > _ Systemgerä1 te sind, übersetzt und auf Syntaxfehler über­ > �i TUa> .BtS-atCuro etnrno elrl > prüft. Etwaige Fehler werden im Text-Editor gekennzeichnet und im unteren Ausgabe­ Wurde der Treiber erfolgreich installiert, erscheint der ESP32 so im Geräte-Manager. fenster vermerkt. Eine ähnliche Funktion bietet der zweite Knopf. Allerdings übersetzt er das aktuelle G ske1i:ch_octt14a,l Arduin.o 1.,8J6 D X Programm nicht nur, sondern überträgt es auch auf das angeschlossene Mikrocontrol­ ler-Board. Selbstverständlich nur, wenn das Programm keine Syntaxfehler enthält und das Board korrekt angeschlossen und konfi­ guriert ist. Weniger spektakulär sind die nächsten drei Knöpfe. Mit ihnen kann man neue Program­ me anlegen, bestehende Programme öffnen 2 I I put. your se�up oo·de hell!e, -co run ·onoe: und das aktuelle Programm speichern. 3 Schließlich gibt es ganz rechts noch einen 4 vermeintlichen Außenseiter, der aber zu den 5 wichtigsten Funktionen der IDE gehört. Hin­ l,o.op() { ter ihm verbirgt sich nämlich ein serieller Mo­ 6 void put. nitor, mit dem man bequem mit dem ange­ 7 ll your main oo-de hell!e,, ;oo. run ll!ep.eat.edl·:!ir: schlossenen Board kommunizieren kann. ::: Zwar gibt es einige gute und frei verfügbare 9 serielle Terminals, aber die Integration in die IDEvereinfacht die tägliche Arbeit enorm. Kein ESP32 weit und breit Die Arduino-IDE wirkt spartanisch, kann aber eine ganze Menge. Bevor man ein erstes Programm schreiben und aufs ESP32-Board laden kann, muss das Board in der IDE konfiguriert werden. Die Ar­ duino-IDE unterstütztbereits eine große An­ zahl unterschiedlicher Boards, die im Menü Werkzeuge> Board ausgevJählt werden kön­ nen. Ein erster Blick sorgt erst einmal für Er­ Überprüfen nüchterung, denn ein ESP32-Board ist hier nirgendwo zu sehen. Offenbar unterstützt die Standard-Installation längst nicht alle möglichen Produkte. Öffnen Viele Boards lassen sich mittlerweile über den Boardverwalter im Menü Werkzeuge > Boardverwalter installieren, aber der ESP32 Für die wichtigsten Kommandos gibt es große Knöpfe. 15 Make: ESP32 special2019 I SCHNELLEINSTIEG I-------------- gehört per Voreinstellung noch nicht dazu. ohne Code-Änderungen hinzuzufügen. Voreinstellung die Liste der unterstützten Um ihn zu integrieren, bedarf es ein wenig ·Diesmal achteten die Entwickler auf Erwei­ Boards in den offiziellen Arduino-Quellen, Handarbeit. Dabei hilft es zu verstehen, wie terbarkeit, sodass sogar Boards unterstützt aber die enthalten zurzeit den ESP32 noch die Unterstützung verschiedener Boards in werden können, die nicht vom Arduino­ nicht. Wie den meisten Paket-Managern der Arduino-IDE funktioniert. Team stammen. kann man dem Boardverwalter aber zusätz­ ln den Anfängen des Arduino-Projekts Davon machen mittlerweile einige Her­ liche Quellen für Board-KonfigurCJtionen konnte niemand dessen Erfolg vorausahnen steller Gebrauch und die Firma Espressif, die hinzufügen. und so verlief die Entwicklung zunächst den ESP32 entwickelt hat, bildet keine Aus­ Die zusätzlichen Quellen werden über recht hemdsärmlig. Wichtig war in erster nahme. Auf Github (https://github.com/ das Menü Datei > Voreinstellungen festge­ Linie, dass alles irgendwie funktionierte und espressif/arduino-esp32) hat sie zu diesem legt. Für den ESP32 fügt man hier unter über etwaige Erweiterungen dachte nie­ Zweck das Projekt .,Arduino Core for ESP32" dem Punkt .,Zusätzliche Boardll'erwalter­ mand nach. veröffentlicht. URLS" die URL https://dl.espressif.com/ Dieser Ansatz lief lange Zeit gut, stieß dl/package_esp32_index.json hinzu:Bei Be­ aber an Grenzen, als nicht mehr alle Arduino-' Fremdgänger darf lassen sich auch weitere Quellen hinzu­ Boards auf derselben Mikrocontroller­ fügen. Die werden jeweils durch ein Komma Architektur basierten. Neben den AVR-Chips Der Code auf Github nützt nicht viel, so­ getrennt. mussten plötzlich auch ARM-Geräte mit der lange er der Arduino-IDE nicht hinzugefügt Wenn man den Dialog für Voreinstellun­ IDE funktionieren. wurde. Die einfachste Möglichkeit, Unter­ gen ohnehin schon geöffnet hat, ist es eine Zu diesem Zeitpunkt wurde die IDE um stützung für neue Boards zu installieren, ist gute Idee, die Kontrollkästchen für die aus­ die Möglichkeit erweitert, neue Hardware der Boardverwalter der IDE. Der sucht per führliche Ausgabe bei der Kompilierung und beim Hochladen zu aktivieren. Das wird sich im weiteren Verlauf noch als nützlich erweisen. 0 Nachdem die neue URL hinzugefügt wurde, erscheint bei der Suche nach dem StrgT+ ESP32 im Boardverwalter ein neuer Eintrag. Sketacrhc ivhieren Ein Klick auf den Installieren-Knopf lädt die Kodierkuonrgr igi&e ilreeuln a den passende Konfiguration herunter und in­ Bibliotvheerwkaelentn ... StrUgm+s chalt+l stalliert sie sogleich. Serie,lMloenri tor Strg+Umschalt+M SeriePllotlteerr Strg+Usmchalt+L Es lebt! Der obligatorische Funktionstest für jedes ArduinoAVR·Board• Mikrocontroller-Board ist es, eine LED zum Boardinforml!tionen holen Blinken zu bringen. Eine solche Anwendung Programm"eArV.R ImSkPl" l Arduino/GeUnnuoi·n o stiftet zwar nur wenig Sinn, stellt aber sicher, ArduiDnuoe milanoovrDe i ecimila Bootleadberre nnen dass die gesamte Entwicklungsumgebung ArduiNnaon o mcdi:�ie::2i 3er.:·.2 0lf Ardui/GneonuiMneog ao rM ega25 60 so funktioniert, wie sie soll. t:; h.::tur;. Gua:d.alu·r:i Die meisten Boards verfügen zumindest ArduiMneog aA DK mcdi!ied 3 S�p 2•HC: über eine Power-LED. Die lässt sich in der ty :clby Ue\o"ma:'l Arduilneoo nardo Thu example cc<ie l.5 in theu bplic cdmain. AArrdduuii/LGnneoeoon nuoai rMnETHdioc ro uRengde lel aubcehtre nti cnhutr p dearn Sno, fwtwenanre d kaosn Btoroalrldie mreint httr:: "-"',.. . ard.Ul:lC. cc '+::-n.'Tut�rial /Blink ArduiEsnpol ora Strom versorgt wird. Darüber hinaus spen­ ArduiMnion i dieren viele Hersteller ihren Produkten II the �etup functoin runso ncew heny ou press reseto r power the ArduiEntoh ernet mindestens eine weitere LED, die sich in ei­ void setup( ) { ArduinoFio genen Programmen beliebig verwenden II init ialized iqit al pin LEO_ BUIL!IN as an outpu.t ArduiBnTo lässt. pinMode( LED_BOJLTIN,O UTPUT): LilyPAarddu inUoS B Beim mitgelieferten Board ist das der Fall · llyPiadA rduoi n und Listing Blink.ino lässt die eingebaute II the loop tunction runso ver and over againf orever ArduiPnrooo rP roM ini Status-LED im Sekundentakt blinken. void loop() { ArduiNnGoo ro lder diqitalWrite(LED_BUIL!IN, HIGH); II turnt he LE.O on (RIGH is ArduiRnoobo tC ontrol Für einen ersten Test muss das Board der ddeiqliaty(allWOrOiOt):e( LED_BUIL!NI, LOW): IIII wtauirt.n t fohre aLE sDe ocofntd b y making ArduiRnoob oMto tor Arduino-IDE bekannt gemacht werden. Dazu delay(lOOO): II wait for a second ArduiGneom ma wählt man im Menü Werkzeuge> Board den AdafrCuiitr cPulita yground Eintrag .,ESP32 Dev Module". Anschließend ArduiYnUon M ini wählt man unter Werkzeuge > Port den seri­ Arduilnnod us1t0r1i al ellen Port, über den das ESP32-Board mit LinionOne dem Rechner verbunden ist. Schließlich muss man noch die .,Flash Frequency" auf 80MHz und .,Upload Speed" auf 115200 set­ zen. Diese und alle weiteren Parameter wer­ den im folgenden noch ausführlich erklärt. · Ein Klick auf den Upload-Knopf übersetzt Ohne Hilfsmittel unterstützt die Arduino-IDE den ESP32 nicht. das Programm und überträgt es anschlie� 61 Make: ESP32 special 2019 ßend aufs ESP32-Board. Die Übertragung VoreinsteHungen :X dauert ein paar Sekunden und den aktuellen EinstneglelnNu etzwerk Status zeigt das Ausgabefenster der Ardu­ ino-IDE an. Auf manchen ESP32-Boards zei­ Sktdlboeok -Speicherort: gen separate LEDs Aktivität auf der seriellen �lc:lj.J�sers�'lnai�kljlocum�entsl,tl�rdui==no ========� --�I I Durchsuchen Schnittstelle an. Das heißt, diese LEDs blin­ Editor-Sprache: 1'-ys-t."-s_em._ De_faU___t � _____ __v I___,--( erfo--rdNee--ruts tavroAntr duino) ken beim Senden und Empfangen von Editor-Textgröß�e: Daten. Das mitgelieferte Board hat solche Oberflächen-Zoomstufe·: !;21 Automatisch1 00 ; Yo (erforNdeeurstvt oaArnrduino) t LEDs nicht. Nachdem das Programm übertra­ Thema: lstandardtherna v I (erforNdeeurstvt onaA rrtd uino) gen wurde, sollte aber die blaue Status-LED Aufuhrliehse Ausgwaäbher e0n Kdompifi:er ung 0 Hochladen im Sekundentakt blinken. Compiler-Warnungen:! Keinve j , Das Blink-Programm ist einfach aufge­ '- 0 Zeilennaunmzmeerni gen baut. Im Wesentlichen besteht es aus den Funktionen setup() und Loop< ). Das ist 0 Code.faltuankgtivier en eine Konvention, der alle Arduino-Program­ 0 Code,ndaechmHochlade n überprüfen me gehorchen. Die s e tup <)-Funktion wird 0 ExternenE divtoerr wenden einmalig aufgerufen, wenn der Mikrocon­ 0 KompiliertenK ern aw-eszwischsienspeivch ern troller startet und ist der perfekte Ort, .um 0 Beim Starnta chUpda tes suchen lnitialisierungen vorzunehmen. Die L oop < )­ 0 Sketbeimche Speicher n au<fi neuee Dateierweiteruankgtuaisier en (.pde -> .ino) Funktion enthält die tatsächliche Pro­ 0 Speichern beim überprüfen oder Hochladen gramm-Logik und wird vom Mikrocontroller ZusätzlichBeo ardverwaltlehrt-uRI.stp:s ://dl.espressife.spc3o2mi /nddle/packagxe. json I � in einer Endlosschleife immer wieder auf­ Mehr Voreinste11ungen können direkt in der Da�ei bearbeitet werden gerufen. C: lj.Jsers'lnaik\Apap!)ta lj.ocal\flrduino lS'!Jreferences. txt (nur bearbeiten, weM Arduino nicht läuft) Vor den beiden Funktionen definiert das Blink-Programm eine/,. Konstante namens LED_PIN, welche die Nummer des Pins ent­ hält, der mit der Status-LED des Boards ver­ Das Hinzufügen neuer Quellen für den Boardverwalter ist einfach. bunden ist. Beim mitgelieferten Board ist das der Pin mit der Nummer 2. Bei anderen Boards ist es mit hoher Wahrscheinlichkeit e Boardverwalter X ein anderer Pin und manche Geräte haben [Ale- überhaupt keine Status.-LED.Im Zweifel hilft Typ ein Blick ins Datenblatt des Herstellers. eIsnpd 3i'2e bsye EmPs pareskeetsifn Styhstaelmtse ne Boards: , Die setup()-Funktion nutzt die pin­ ESP32D evM oduleW,E MO.S LoLin32. Mor@i nf� Mode <>"Funktion, um den LED-Pin in den I Ausgabemodus zu schalten. Die L oop <)­ Instaleren Funktion versetzt anschließend mittels digitaLWrite<> den Pin in den Zustand HIGH. Dadurch liegen am Pin 3,3V an und Den ESP32 kann man leicht über den Boardverwalter installieren. die LED leuchtet. Die Funktion d e Lay <) wartet 1000 Millisekunden und ein weiterer Aufrufvon di gi ta LWri te<) mit dem Argu­ ment LOW schaltet die LED wieder aus. Nach 0 einer weiteren Pause von einer Sekunde be­ B l i nk. i no n ginnt das Spiel von vorn, weil die Loop()­ ' Funktion automatisch wieder aufgerufen 1 const uint8_t LED_PIN = 2; 2 wird. Damit blinkt die LED im Sekundentakt n 3 void setup() { Beim Code ist zu beachten, dass Funktio­ 4 pinMode(LED_PIN, OUTPUT); nen, w[e zum Beispiel se t up <), p i nMode C) 5. oder Loop<) durch die Arduino-Umgebung 6 ' 7 void Loop() { definiert werden. Das gilt auch für das Ver- 8 digitalWrite(LED_PIN� HIGH); ' halten, also zum Beispiel dafür, dass die 9 delay(1000); setup<> -Funktion automatisch beim Start 10 digitaLWrite(LED_PIN, LOW); 11 delay(1000l; des Mikrocontrollers aufgerufen wird. ln an­ 12 deren Entwicklungsumgebungen würde ein Programm, das eine LED zum Blinken bringt, gänzlich anders aussehen. Leider ist clie Arduino-Umgebung nicht vollständig kompatibel mit allen ESP32- den Arduino-Boards enthält. Für viele sich leicht umschiffen und für spezielle Boards und wird es vermutlich auch nie sein. ESP32-Boards ist diese Konstante nicht qefi­ Boards sogar lösen. Es gibt aber auch schwer­ Beispielsweise definiert die Umgebung eine niert und das wäre auch schwierig, weil der wiegendere Mängel. Beispielsweise ist die Konstante namens LED_BUILTIN, die die Wert für unterschiedliche ESP32-Boards un­ Funktion .analogWri te() zurzeit noch nicht Pin-Nummer der eingebauten LED auf terschiedlich sein kann. Dieses Problem lässt implementiert. 17 Make: ESP32 special2019 I SCHNELLEINSTIEG t--- ---------- schiedlichen Speichergrößen daher, son­ dern variieren unter anderem auch in der Strg+T Lese- und Schreibgeschwindigkeit. Daher Sketch archWieren bietet die Arduino-IDE Einstellmöglichkeiten Kodierung korrigieren & neu laden für die wichtigsten Flash-Parameter. Bibliotheken verwalten... Strg+Umschaft+l .,Flash mode" legt die Geschwindigkeit Serieller Monitor Strg+Umschaft+M des Flash fest. Genauer gesagt legt diese Serieller Plotter Strg+Umschalt+l Option fest, über wie viele Leitungen und Boardverwafter ... auf welche Art der ESP32 mit dem Flash per SPI kommuniziert. Anders als etwa beim Ar­ J. Arduino Gemma duino ist der Flash-Speicher zur Aufnahme Boardinformationen holen Adafruit Circuit Playground der Programme nicht im Mikrocontroller­ Arduino YUn Mini Chip enthalten, sodass die Hersteller einen Programmer: "AVRISP mkll" Arduino lndustrial101 Extra-Chip extern anschließen und ihn an­ Bootloade r brennen by ScottF itzger��-a ------'-------------1 Linino One steuern müssen. modifud 2 Sep 20lf Arduino Uno WiFi Der schnellste Modus zur Kommunika­ by ArturGou adalupi ESP32 Arduino modifü:de S�::p 2016 tion mit dem externen Flash ist QIO (Quad i)y Colby Nf::Yo1llan TIGO LoRa32-0LED Vl 1/0 Fast Read) und knapp dahinter kommt ESP32 Dev Module This examplec ode is in the publicd omain. QOUT (Quad Output Fast Read). An dritter XinaBox CW02 http:J i.."Yll.-1. arduino.c c/en/Tutorial/lBink ESP32 Wrover Module Stelle steht DIO (Duall/0 Fast Read) und das 'l ESP32 Pico Kit Schlusslicht bildet DOUT (Dual Output Fast SparkFun ESP32 Thing Read). Während die ersten beiden Verfahren vI Io itdh see :=�teutp(u )p f{ unction runs once when you rpess reseto r power the u-blox NINA-WlO series (ESP32) vierSPI-Pins einsetzen, benötigen die letz­ I I initilaize digitla pin LED_BUILTIN as an outpu't. WidoraAIR ten beiden nur zwei. Nicht alle Bausteine pinMode(LED_BUILTIN, OUTPUT); Electronic SweetPeas-ESP320 kommen mit allen Verfahren zurecht, aber· Nano32 das mitgelieferte Board versteht QIO. I I the loop function urns over and over again forever LOUN 032 Die Option .,Flash frequency" spezifiziert void loop() I LOUN D32PRO diqitlaWrite(LED_BUILTIN, HIGH); //turn the LED on WEMO S LOLIN32 die Taktfrequenz für Zugriffe auf das Flash. dela(ylOOO); Mit 40MHz sollten die meisten Bausteine ar­ Oongsen Tech Pocket 32 "WeMos" WiFi&Biuetooth Battery beiten können, aber 80MHz können zu einer ESPea32 deutlichen Beschleunigung führen. Auf Um­ Noduino Quantum gebungen, die mit 80MHz nicht arbeiten Node32s können, führt diese Einstellung schnell zu Hornbill ESP32 Dev Abstürzen. Hornbill ESP32 Minima Schließlich definiert .,Flash size" die Größe des externen Flash-Bausteins. Mögli­ Nach der Installation stehen viele verschiedene ESP32-Boarils zur Verfügung. che Größen für den ausgewählten Board­ Typen sind 2MB oder 4MB (die Größen in Klammern geben die Kapazität in Megabit AutomatiFsocrhem atierungS trg+ Viele Stellschrauben an). Ein zu groß gewählter Wert würde· T Sketcahr chivieren dafür sorgen, dass der Bootloader des Kodierkuonrgr igienreeuln a den Ganz egal, auf welche Weise die ESP32-Un­ ESP32 einen falschen Speicherbereich liest & Bibliothveerwkaelnt .e.n. StrgU+m schalt+) terstützung installiert wurde, am Ende kann · und das gespeicherte Programm würde SerieMlolneirt or StrgU+m schaMl t+ man über das Menü Werkzeuge> Board aus nicht .starten. SeriePllloetrt er StrgU+m schalLt + einer Fülle von ESP32-Boards wählen. Für Für einige Anwendungen reicht selbst das mitgelieferte Board ist .,ESP32 Dev Mo­ das vergleichsweise üppige RAM auf dem WiFi1F0i1r mwaUrped ater dule" die richtige Wahl, weil dieser Board­ ESP32 nicht aus. Manche Boards haben Boar"dE:S P3D2ev Modul"e Typ einige Freiheitsgrade lässt und somit an daher zusätzliches PSRAM (pseudostatisches FlasMho de":Q IO" eine Vielzahl von ESP32-Boards angepasst RAM). das man mit der entsprechenden FlasFhr equen"cByMO;H z" werden kann. Menüoption namens PSRAM aktivieren be­ Bei den ESP32-Boards herrscht nämlich ziehungsweise deaktivieren kann. FlasShi z"e4:M B( 32M)"b ein ziemlicher Wildwuchs und so funktio­ Im Vergleich zum Hauptspeicher ist ein PSRAM":D isab"l ed niert die Konfiguration mit der Bezeichnung Flash oft recht groß und wie bei Festplatten PartiStcihoenm e"S:t and"a rd .,ESP32 Dev Module" prinzipiell für einen ist es sinnvoll, den Speicher zu partitionie­ UploaSdp ee"d9:2 16"0 0 ganzen Zoo von Geräten. Wie schon zuvor ren, also aufzuteilen. Auf diese Weise kann CorDee buLge ve"lVe:rb os"e bemerkt, haben zum Beispiel nicht alle das Flash parallel mehrere Anwendungen Port":C OM6" Boards eine Status-LED und falls sie doch und die dazugehörigen Daten beherber­ Boardinformahtolieonn. e n eine haben, ist sie nicht immer mit demsel­ gen. Prinzipiell kann die Partitionierung auf Programm"eAVrR.I SmPk l"l ben Pin verbunden. Gravierendere Unter­ fast beliebige Weise erfolgen, aber die Ar­ Boot)oabdreern nen schiede gibt es in anderen Bereichen und so duino-IDE bietet unter der Option .,Partition finden sich in unterschiedlichen Produkten Scheme" die gängigsten Modelle an. Für Für viele ESP32-Boards kennt das Werkzeuge­ verschiedene Ausprägungen von Flash­ erste Experimente ist der Wert .,Standard" Menü viele Einstellungen. Speichern. Die kommen nicht nur mit unter- sinnvoll. 81 Make: ESP32 special2019 ----------- ---------------------------------------- Wenig überraschend definiert die Option (_) " "Upload Speed , mit welcher Geschwindig­ keit Daten von der Arduino-IDE zum Board 0 LogBe i spi e l • 1 n o übertragen werden. Nicht alle Boards kom­ 1 void setup() { men mit allen Übertragungsgeschwindig­ 2 Serial.begin(115200L); keiten klar und es empfiehlt sich, mit 0 3 } 115D.2ie0 0le Btzatued O zput bioeng iinstn "eCno. re Debug Level" 0 465 voiLdo g_Loeo(.p"E(r)r o{ r"); und die steuert die Geschwätzigkeit von 0 7 Log_w("Warning"); Log-Ausgaben auf dem Board. Sowohl wäh­ 8 Log_i("Info"); () 9 Log_d("Debug"); rend der Entwicklung als auch während des 10 Log_v("Verbose"l;t Betriebs einer Anwendung helfen Log-Aus­ () 11 delay(1000); gaben auf der seriellen Schnittstelle. Mit 12 n ihrer Hilfe lässt sich der aktuelle Zustand des Systems ermitteln oder ein Fehler einkrei­ Fazit sen. Allerdings haben Log-Ausgaben ihren sehe Code-Komplettierung oder einen Preis und so ist es sinnvoll, während des re­ Debugger. gulären Betriebs deutlich weniger Log-Aus­ Die Arduino-IDE ist längst nicht das einzige Trotzdem-otlergerade deswegen-ist sie gaben über die serielle Schnittstelle zu sen­ Werkzeug, mit dem Entwickler Software für für erste Experimente und kleinere Projekte den, als zum Beispiel während einer Debug­ den ESP32 erstellen können und auf den optimal. Sie überfrachtet und überfordert den ging-Sitzung. ersten Blick hat sie einige Unzulänglichkei­ Einsteiger nicht mit Funktionen, die sich erst Zu diesem Zweck können Log-Ausgaben ten. Sie bietet weder Zugang zu allen origi­ mit mehr Erfahrung als nützlich erweisen. Fer­ mit einer Dringlichkeitsstufe (Level) versehen nären ESP32-Funktionen noch zu allen des ner nimmt sie ihren Anwendern genau die werden. Auf dem ESP32 gibt es -nach Dring­ Arduino-Universums. Darüber hinaus hat Handgriffe ab, die bei Anfängern erfahrungs­ lichkeit geordnet -die Stufen Error (Fehler). sie auch keine Features wie eine automati- gemäß zu viel Frustration führen. -dab Warn (Warnung), Info (lnform.ation). Debug (Fehlersuche) und Verbose (wortreich). Listing $)COM6 - LogBeispiel.ino zeigt die Verwendung der da­ 0 X zugehörigen Log-Funktionen. I II Senden I Die se t up <)-Funktion startet die Kom­ .... [il][L ogExamp1eo.:i7n] 1oop(]: Warning munikation auf der seriellen Schnittstelle [E][L ogExamp1e.ino:6] 1oop(]E:r ror mit einer Geschwindigkeit von 115.200 Baud. [il][ LogExamp1e.ino:71]o op(]: Warning . [E][L ogExamp1e.o:i6n] 1oop(:] Error in der LoopO-Funktion erzeugen dann [il][ LogExamp1e.ino:7]1 oop(]: Warning L og_e <), L og_w <) und so weiter im Sekun­ [E][L ogExamp1oe:.6i]n 1oop(]E:r ror [il{]L ogExamp1e.oi:n7]1 oop(]:W arning dentakt Nachrichten der verschiedenen Stu­ [EI L[ogExamp1ei.no :6 ] 1oop(]E:r ror fen. Per Voreinstellung werden allerdings [il][ LogExamp1e.i:7n]o 1oop(]W:a rning [E][ LogExamp1e.in1oo:o6p]( ]E:r ror keine Log-Ausgaben auf die serielle Schnitt­ [il][ LogExampe1.ino:7]1 oop(]: Warning stelle gesendet. Davon kann man sich über­ [E][L ogExamp1eo.:i6n] 1oop(]E:r ror zeugen, indem man das Programm aufs [il][ LogExamp1e.io:n7] 1oop(:] Warning [E][L ogExamp1ien.o:6] 1oop(]E:r ror Board lädt, den seriellen Monitor startet [il][L ogExamp1e.oi:n7] 1oop(]W:ar ning und die Übertragungsgeschwindigkeit auf V 115.200 Baud setzt. Die Ausgabe im seriellen 0 Autoscroll D Zeitstempel anzeigen I Neue Zeile v 11115200 Baud "II Ausgabe Kisdlen I Monitor bleibt leer. Setzt man die Option "Core Debug So werden nur Warnungen und Fehler ausgegeben. " Level hingegen auf Warn und schiebt das Programm erneut aufs Board, werden die $)COM6 - Ausgaben der Stufen Fehler und Warnung 0 X kontinuierlich ausgegeben. Neben dem I I� Nachrichtentext enthält jede Zeile eine Ab­ .... [E][L ogBeispienlo.:6i] 1oop(]: Error " kürzung der Stufe (in diesem Fall "E und [il][L ogBeispiienol:.7 ] loop( ): Warning "W"). die Nummer der Programmzeile, in [I][L ogBeispieol:.8]i n1oop(]I:n-f o [D][ LogBeispiel.in1oo:o9p](: ] Debug der die Ausgabe erzeugt wurde und den [V][L ogBeispiineoL: 1 0]1 oop(]: Verbose Namen der Funktion, aus der die Ausgabe [E][ LogBeispieo:l6.]i 1noop(]E:r ror [W][L ogBeispiel.]i n1ooo:p7(:] Warning stammt. Das sind wertvolle Informationen [I][L ogBeiopie1o.:i8]n 1oop(]I:n fo bei einer Fehlersuche. [D][ LoBgeiopie.il no9:] 1oop(]D:e buq " [V][L ogBeiopieilno.: 1 0]l oo(p) : Verbose Setzt man schließlich "Core Debug Level [E][L ogBeispiienoL:6 ] 1oop(]: ErZ:.or auf Verbose, werden nach einem erneuten [il][L ogBeispiienol:.7 ] loo(p) : Warning Upload alle Meldungen ausgegeben. [II [ LogBeiopieilno.: 8 ] 1oop(]: Info r [D][ LogBsepiiel.in:o9]1 oop(]D:e buq Festzuhalten ist noch, dassalldiese Para­ [V)[ LogBeiopiel.inlooo:p(1 )0: ] V erbose meter nicht für jedes ESP32-Board konfigu­ V riert werden können. Die Einträge im Werk­ 0 Autoscroll 0 Zeitstempel anzeigen I Neue Zeile v I ll!SZOO Baud. vll Ausgabe löschen I zeuge-Menü variieren daher von Board zu Board. Hier sind alle Log-Ausgaben zu sehen. 19 Make: ESP32 special2019 ��-------------- ------- HARDWARE -------- Hardware-Interna Für ein paar Euros bietet der ESP32 Konnektivität und Rechenleistung satt. Auf dem Chip gibt es aber noch viel mehr Nützliches zu entdecken und wer das Maximum aus dem ESP32 herausholen möchte, sollte alle seine Eigenschaften kennen. von Maik Schmidt Alles zum Artikel I im Web unter • make-magazin.de/xnxr

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.