Mit ESP32 und Arduino eine LED blinken lassen…

Ich möchte für mich dokumentieren wie das ganze so grob funktioniert, und vielleicht hilft es anderen auch dabei.

Der ESP32 ist eine kostengünstige und mit geringem Leistungsbedarf ausgeführte 32-Bit-Mikrocontrollerfamilie der chinesischen Firma Espressif, die im Jahr 2016 vorgestellt wurde. Die Mikrocontroller ermöglichen durch ihre offene Bauweise den Aufbau und die Vernetzung von netzwerkbasierten Aktuatoren und Sensoren.

Wikipedia

Arduino ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Beide Komponenten sind quelloffen. Die Hardware besteht aus einem einfachen E/A-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen.

Wikipedia


Bisher hatte ich nur mit Swift und Xcode kleinere Sachen programmiert, und bei Arduino benutzt man C/C++. Von daher waren die Beispiele die in Arduino zu finden sind ganz hilfreich um erstmal zu schauen wie das ganze aufgebaut ist.
Ein solches Beispiel war das BasicOTA (over the Air), bei dem man dem ESP32 Wlan und das flashen über Wlan beibringt.

Das BasicOTA mach ich als als Standart mit auf den ESP32 weil man so auch einfach beim verbauten (z.B im Forrest Habitat) einfach über Wlan Änderungen am Code machen kann.

Im BasicOTA muss man dann noch das Wlan eintragen unter:
const char* ssid = „den Wlan Namen“
const char* password = „das Passwort“

Und dem ESP32 einen Namen geben:
In dem BasicOTA gibt es im void setup() ein paar Zeilen die mit // auskommentiert sind unter denen ist auch
ArduinoOTA.setHostname(„steffiesp32“);
zu finden in die „“ kann man dem ESP32 einen Namen geben, der dann auch als Port in den Netzwerk-Schnittstellen angezeigt wird.

Ich mach dann immer ganz gerne noch eine LED an den ESP32 um zu schauen ob das ganze auch geht und lass die blinken.

Dazu muss man die LED mit einem Pin verbinden.
Man braucht auch einen Vorwiderstand mit 220-330Ω, weil die LED sonst so viel Strom zieht wie verfügbar ist, aber den Strom nicht selbst begrenzen kann, und dann Überhitzen würde.
Also verbinde ich den Widerstand mit dem Pin 16, und das lange Beinchen der LED mit dem Pin, weil vom langen Beinchen(Anode +) in das kurze Beinchen (Kathode -) der Strom fliest.
An das kurze Beinchen der LED muss noch die Masse (GND) verbunden werden.
Man muss darauf achten welche Pins benutzt werden weil sie verschiedene Funktionen haben. Unter https://randomnerdtutorials.com/esp32-pinout-reference-gpios/ gibt es eine gute Übersicht.
Wir benutzen am besten die Pins die Input und Output können und nicht noch andere Eigenschaften haben. (4, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33)


Und jetzt muss man natürlich noch im Arduino die LED blinken lassen.
Als erstes muss man die Pin der LED zuordnen.
Unter dem Wlan Namen/Passwort fügen wir eine weitere konstante hinzu
const int grueneLED = 16;
damit sagen wir das der Pin 16 die gruene LED ist.
Und im void setup() kommt noch ein
pinMode (grueneLED, OUTPUT);
rein um den Digitalpin 16 als Outputpin zu setzen.
Zu guter Letzt sagen wir im Loop noch was mit der LED passieren soll:
Also kommt ins void loop()
digitalWrite (grueneLED, HIGH);
delay(500);
digitalWrite (grueneLED, LOW);
delay(500);

damit schalten wir die LED auf AN warten 500ms und dann auf AUS und warten wieder 500ms und schon blinkt unsere LED.




Sound mit dem ESP32

Es sollte also auch Sound in das Regal mit dem DIY Häusern.
Da für ein anderes Projekt bereits kleine Lautsprecher und SD Kartenleser vorhanden war hab ich das ganze gleich zwei mal gebaut.
Einmal natürlich für mein Regal was ich über ein Node-RED Dashboard steuern will.
Und zum anderen wollten wir einen Japanischen Convenience Store Sound beim betreten der Vorratskammer haben.
Bewegungsmelder sind schon vorhanden um das Licht anzuschalten beim Betreten und damit soll auch der Sound gestartet werden.

Nach löten und wieder im Arduino rausfinden wie man denn jetzt MP3 abspielt hier das Ergebnis. Außerdem das Dashboard für die Steuerung der verschiednen Sounds vom Regal.

Dann noch das ganze in Boxen eingebaut damit man es auch unauffällig in eine Ecke des Regals bzw. der Vorratskammer stellen kann.
Der Convenience Store Sound kommt immer zufällig (immer ein anderer der 3 bekanntesten Ketten) beim Betreten und dann ein japanischer Supermarkt Hintergrund Sound.

Forest Habitat

Ein neues Bastel Projekt, mit sehr vielen Einzelteilen.

Die mitgelieferten LED´s sind ok, allerdings lässt die Steuerung mit nur an/aus und AAA Batterie Box doch Wünsche offen.
Deshalb sollen die Vorhandenen LED´s mit einem ESP32 verbunden werden um alle LED´s einzeln steuern zu können und auch flackern zu lassen.

Zuerst die Widerstände mit Hilfe einer Platine an die Pins (16, 17, 18, 19, 21, 22, 23, 25 und 26) anschließen.
Weil die LED´s schon beim zusammenbauen des Hauses verlegt wurden war das anschließen an den ESP32 ein wenig fummelig.

Dann ging das Programmieren im Arduino wieder los „flackern“ lassen klingt einfach…
Außerdem soll das ganze ja auch steuerbar sein, und so wurde mit Hilfe von MQTT (das zum Glück vorhanden ist, unter anderem für die Steuerung des „echten“ Hauses) und NodeRed noch mehr neues dazu gelernt.

Der erste Switch schaltet das jeweilige Licht aus/an und der zweite Switch lässt das jeweilige Licht flackern.
Und damit das ganze auch vom Handy aus steuerbar ist gibts auch noch ein Node-RED Dashboard dazu.

Beim ersten Starten gehen die Lichter nacheinander an und man kann jetzt jedes Licht einzeln Steuern und flackern lassen.
Als ich das Video für das Haus geschnitten habe, habe ich einen Forest Sound in den Hintergrund gemacht… Und dabei kam mir die Idee das ich ja auch einen ESP32 mit Sound in das Regal, in dem die Häuser stehen einbauen könnte das verschiedene Sounds abspielt…

Beleuchtung für den Modell Bahnhof mit einem ESP32

Ich habe mir in den letzten Jahren aus dem Japan Urlaub immer das eine oder andere DIY Billy Handmade Dollhouse Kit mitgebracht… nachdem der letzte Urlaub leider schon etwas her ist und ich alle mitgebrachten Häuser fertig hatte, habe ich mir Nachschub bestellt, bei dem neuen Haus war auch Beleuchtung dabei in Form von LED´s, was bei den mitgebrachten Häusern fehlte, und so sollen jetzt nach und nach weitere Häuser auch Beleuchtung bekommen.

Dazu will ich einen ESP32 benutzen und LED´s, aber erst einmal die Frage „Wie geht das ganze überhaupt?“.
Mit viel Hilfe von der besseren Hälfte 😉 und erstmal verstehen was da überhaupt in so einem Teil passiert.
Auch muss ich dem ESP32 in Arduino sagen was er machen soll, damit am Ende die LED´s leuchten und auch noch verschiedene Sachen machen …
Alles gar nicht so einfach…

Nach langem testen und ausprobieren stand also der „Entwurf“.
6x weiße LED`s für die allgemeine Beleuchtung und 6x gelbe LED´s um den Bahnsteig mit einem Lauflicht zu beleuchten.

Dann habe ich das ganze erstmal auf einem Steckboard aufgebaut.
Nach langer Zeit und viel neues lernen im Arduino, leuchtet und blickt alles wie gewünscht.
Außerdem bekommt der ESP32 auch noch eine Verlängerung zum USB damit der ESP komplett im Bahnhof verschwinden kann und nur der Stromanschluss unten zugänglich ist.

Der Plan steht also:
An die Pins 16, 17, 18, 19, 21 und 22 kommt das Lauflicht mit den gelben LED´s.
Und an die Pins 14, 27, 26, 25, 33 und 32 kommt die allgemeine Beleuchtung mit den weißen LED´s.

An die LED´s habe ich zwei Kabel gelötet, einmal Masse und das andere wird mit dem jeweiligen Pin verbunden.
Zwischen dem Pin und der LED muss noch ein Widerstand (330R) den habe ich mit Hilfe einer Platine direkt an den ESP angebracht.

Nachdem alles gelötet war leuchtet das ganze auch noch wie erhofft.
Damit die doch recht dünnen Kabel an den Lötstellen nicht brechen habe ich noch Isolierband drüber geklebt.

Als alle Löcher gebohrt waren habe ich das Lauflicht und die restliche Beleuchtung eingebaut.
Und hier das fertige Ergebnis:


blah 2

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.