{"id":2974,"date":"2022-08-31T12:19:27","date_gmt":"2022-08-31T11:19:27","guid":{"rendered":"https:\/\/dressler-hassloch.de\/?p=2974"},"modified":"2023-07-31T14:51:38","modified_gmt":"2023-07-31T13:51:38","slug":"esp32-wifi-oled","status":"publish","type":"post","link":"https:\/\/dressler-hassloch.de\/?p=2974","title":{"rendered":"ESP32 (WiFi, OLED)"},"content":{"rendered":"\n<p>\u00dcber mein Interesse f\u00fcr Funk-Wetterstationen kam ich zu einem ESP32 Microcontroller mit WiFi-F\u00e4higkeiten auf einem kompakten Entwicklerboard von Heltec (WiFi kit 32). Kaufpreis unter 30 Euro incl. dem OLED-Display (0,9&#8243;). Abmessung des Boards insgesamt ca. 50mm x 25mm<\/p>\n\n\n\n<p>Das wichtigste auf dem Board ist nat\u00fcrlich der ESP32 mit ca. 500KB RAM, 4MB Flash-Speicher. Dann kommen verschiedene externe Bauteile dazu, der USB-Anschluss, 2 Taster (Reset, Prog),  eine LED und das OLED-Mini-Display. Nat\u00fcrlich auch eine winzige Antenne und eben die GPIOs. Das ist deutlich mehr als mein Arduino hatte. <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"672\" data-id=\"3001\" src=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-1024x672.jpg\" alt=\"\" class=\"wp-image-3001\" srcset=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-1024x672.jpg 1024w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-300x197.jpg 300w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-768x504.jpg 768w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-1536x1008.jpg 1536w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z-624x410.jpg 624w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091747175_z.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-rotated.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"768\" data-id=\"3002\" src=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-1024x768.jpg\" alt=\"\" class=\"wp-image-3002\" srcset=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-1024x768.jpg 1024w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-300x225.jpg 300w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-768x576.jpg 768w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-1536x1152.jpg 1536w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-624x468.jpg 624w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20220204_091633090_z-rotated.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Als erstes bekam das Board von einem Freund seine Pfosten angel\u00f6tet, dann kam es auf ein kleines Breadboard (Steckbrett) mit ausreichend Kontakten zum bequemen experimentieren. Dort ist es noch heute.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"768\" src=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-1024x768.jpg\" alt=\"\" class=\"wp-image-2993\" srcset=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-1024x768.jpg 1024w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-300x225.jpg 300w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-768x576.jpg 768w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-1536x1152.jpg 1536w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W-624x468.jpg 624w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/IMG_ESP32_W.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>So sieht meine spartanische Experimentierumgebung heute aus: als Unterbau das Breadboard mit seinen vielen L\u00f6chern, darauf steckt des &#8220;Wifi-Kit&#8221; mit seinem Display, darauf links meine 3 L\u00e4mpchen und links oben der BME680. Rechts das dicke schwarze Kabel ist der USB-Anschluss, links ist das orange Antennen-Schw\u00e4nzchen und unten der blaue Draht ist mein Kontaktsensor. Alles in Breadboard-Technik ohne L\u00f6ten.<\/p>\n\n\n\n<p>Der &#8220;nackte&#8221; ESP32 hat wohl nur einen besseren Bootloader, alles andere bekommt er von einer passenden Entwicklungsumgebung. Eine ist angelehnt an den Arduino, die andere nennt sich &#8220;MicroPython&#8221; und ist so eine Art Mini-Betriebssystem mit einem abgespeckten Python-Interpreter und einem Dateisystem auf dem Flash-Speicher, welches man von einer geeigneten Entwicklungsumgebung auf den ESP32 installiert. Als Entwicklungsystem auf dem PC empfiehlt sich Thonny. Ich habe mich f\u00fcr die MicroPython-Umgebung entschieden.<\/p>\n\n\n\n<p>Erkundet habe ich das System mit einem Youtube-Kurs &#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/youtu.be\/RUcm45J5mcg\" data-type=\"URL\" data-id=\"https:\/\/youtu.be\/RUcm45J5mcg\" target=\"_blank\">Der Hobbyelektroniker \/ ESP32<\/a>&#8220;, der viele gut gemachte Beitr\u00e4ge zum Thema &#8220;MicroPython&#8221; und &#8220;ESP32&#8221; anbietet. Zus\u00e4tzlich gab es eine Doku mit den Python-Codes. Am Anfang bin ich auch brav dem Kurs gefolgt, sp\u00e4ter habe ich etwas freier gearbeitet.<\/p>\n\n\n\n<p>Mein erstes Projekt dient dazu, mich mit dem ESP32, dem MicroPython und Thonny anzufreunden.  &#8220;print&#8221; und &#8220;input&#8221; wurden ausprobiert. Dann programmierte ich ein bischen mit dem Timer, der eingebauten LED und dem eingebauten Taster. Blinken tat es schon mal. Ich konnte auch den Taster durch einen &#8220;kapazitiven&#8221; Draht ersetzen. Danach kamen das OLED-Display und meine vorhandenen Neopixel-L\u00e4mpchen hinzu. Das belegte dann schon einige Pins auf dem Breadboard. Die Anf\u00e4nge einer sich fortschreibenden log-Datei auf dem Flash-Speicher wurden auch realisiert.<\/p>\n\n\n\n<p>Im zweiten Projekt ging es dann um den Umweltsensor &#8220;BME680&#8221; (Preis ca. 25 Euro), der Temperatur, Feuchtigkeit, Luftdruck und einen &#8220;G\u00fctewert der Luft&#8221; misst. Das Programm schreibt diese Daten kontinuierlich in eine Datei und zeigt die Daten auch auf dem Display an. Zus\u00e4tzlich ist auch das Internet via WLAN aktiviert, um von einem Zeitserver die UTC-Zeit zu beziehen. Hier macht dann auch das Festlegen eines Python-Programms als Auto-Start-Programm Sinn. Dann kann man auch ohne PC messen und aufzeichnen. Die Stromversorgung erfolgt \u00fcber ein USB-Ladeger\u00e4t, meine Powerbank funktionierte nicht, die schaltet bei so geringen Str\u00f6men einfach ab.<\/p>\n\n\n\n<p>Die Daten konnte ich dann zeitversetzt auf den PC \u00fcbertragen und mit Jupyter \/ Pandas bequem visualisieren bzw. auswerten.<\/p>\n\n\n\n<p>Im 3. Projekt wollte ich die Daten des BME680 im Web (im lokalen IP-Bereich hinter der Fritz-Box) anzeigen, also einen kleinen Web-Server auf dem ESP32 laufen lassen. Dank der vorhandenen Libraries war das kein Problem. <\/p>\n\n\n\n<p>Allerdings ist das WLAN anscheinend sehr instabil, mit einem St\u00fcckchen Draht als Antennenverst\u00e4rkung funktionierte es meist besser. Manchmal scheitert schon die Verbindung zum Netzwerk, manchmal liefert der Ping extrem unterschiedliche Ergebnisse. Auch unser Fritz-Mesh-WLAN scheint st\u00f6rend.<\/p>\n\n\n\n<p>Das 4. Projekt war nicht so typisch f\u00fcr den ESP32, sondern eher Python allgemein. Ich wollte per API-Zugang die aktuellen Wetterdaten f\u00fcr Ha\u00dfloch aus dem Web beziehen und dann via ESP32 anzeigen. Dazu habe ich mir bei &#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/openweathermap.org\/\" data-type=\"URL\" data-id=\"https:\/\/openweathermap.org\/\" target=\"_blank\">OpenWeatherMap.org<\/a>&#8221; ein (kostenloses) Benutzerkonto angelegt. Dann bekam ich einen API-Key, der mich zum Bezug der Daten berechtigt. Nebenbei lernte ich so auch das Datenformat JSON kennen. Und sehe immer, wie warm es aktuell in Ha\u00dfloch ist &#8230;.<\/p>\n\n\n\n<p>Das 5. Projekt erlaubt die Fernsteuerung von LED-L\u00e4mpchen auf dem ESP32 von einem beliebigen Browser aus via WLAN. Auf dem ESP32 l\u00e4uft ein kleiner Web-Server mit Aus- und Eingabem\u00f6glichkeiten. Also eher eine allgemeine Web-Anwendung in Python.<\/p>\n\n\n\n<p>Zur Hardwareausr\u00fcstung des ESP32 kam noch ein Fotosensor (LDR), der durch einen Spannungsabfall die Helligkeit anzeigt. Dann noch eine rote externe LED und ein &#8220;passiver&#8221; Buzzer, dem man per PWM-Funktion die H\u00f6he des zu erzeugenden Tons vorgibt. Der einfache Fotosensor wurde mittlerweile durch ein TEMT6000 ersetzt.<\/p>\n\n\n\n<p>Anfang 2023 habe ich das Heltec-Board &#8220;WiFi kit 32&#8221; durch ein Heltec &#8220;LoRa 32&#8221; ersetzt. Das hat eine kleine Wendelantenne <img decoding=\"async\" loading=\"lazy\" width=\"2520\" height=\"1740\" class=\"wp-image-3061\" style=\"width: 150px;\" src=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1.jpg\" alt=\"\" srcset=\"https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1.jpg 2520w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-300x207.jpg 300w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-1024x707.jpg 1024w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-768x530.jpg 768w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-1536x1061.jpg 1536w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-2048x1414.jpg 2048w, https:\/\/dressler-hassloch.de\/wp-content\/uploads\/PXL_20230116_135022396-1-624x431.jpg 624w\" sizes=\"(max-width: 2520px) 100vw, 2520px\" \/>f\u00fcr das WiFi und erzeugt damit ein deutlich besseres Signal. Der dort verbaute ESP32 S3 hat allerdings eine etwas andere Pinbelegung und deswegen waren einige \u00c4nderungen in meinen Python-Programmen n\u00f6tig. <\/p>\n\n\n\n<p>Die Besch\u00e4ftigung mit BlueTooth \/ BLE hat mir nicht viel gebracht. Ich konnte BLE-Ger\u00e4te in der Umgebung erkennen und konnte via BLE auch gesehen werden. Ein- und Ausschalten eines L\u00e4mpchens hat auch funktioniert. Meine Gegenstation war die &#8220;nRF Connect&#8221;-App von Nordic auf meinem Smartphone.<\/p>\n\n\n\n<p>Mit dem LoRa-Teil habe ich mich noch nicht besch\u00e4ftigt. Die speziell f\u00fcr LoRa notwendige Antenne ist aber schon im Kit vorhanden.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00dcber mein Interesse f\u00fcr Funk-Wetterstationen kam ich zu einem ESP32 Microcontroller mit WiFi-F\u00e4higkeiten auf einem kompakten Entwicklerboard von Heltec (WiFi kit 32). Kaufpreis unter 30 Euro incl. dem OLED-Display (0,9&#8243;). Abmessung des Boards insgesamt ca. 50mm x 25mm Das wichtigste auf dem Board ist nat\u00fcrlich der ESP32 mit ca. 500KB RAM, 4MB Flash-Speicher. Dann kommen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,3],"tags":[],"_links":{"self":[{"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/posts\/2974"}],"collection":[{"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2974"}],"version-history":[{"count":4,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/posts\/2974\/revisions"}],"predecessor-version":[{"id":3107,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=\/wp\/v2\/posts\/2974\/revisions\/3107"}],"wp:attachment":[{"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dressler-hassloch.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}