Von Jeremy Cook
Das Herstellen einer Verbindung zu einem Mikrocontroller über ein WLAN-Netzwerk für einen Arduino-Webserver galt einst als ziemlich exotische Sache. Heute kann man einen lokalen ESP32-Webserver in wenigen Minuten mit einer ESP32-Entwicklerplatine und dem Arduino IDE in Betrieb bringen.
Für diese Demonstration benötigen Sie einen Adafruit ESP32 Feather sowie Zugang zu einem WLAN-Netzwerk mit 2,4 GHz. Wir programmieren den ESP32 mit einer Arduino 2.0 IDE. Ein Magnet, eine LED und ein Widerstand werden ebenfalls verwendet, sind aber optional.
Vorbereitung der ESP32-Server-Software
Beginnen Sie die Einrichtung des ESP32-Webservers mit der Installation der Arduino 2.0 IDE. Damit dieser mit ESP32-Geräten funktionieren kann, öffnen Sie den Dialog „Arduino IDE > Preferences“ und fügen Sie diese Zeile in das Feld „Additional boards manager URLs“ ein:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Navigieren Sie zu „Tools > Board Manager“ und suchen Sie nach „esp32“. Installieren Sie die angezeigte Platinendefinition „esp32 by Espressif Systems“. Jetzt können Sie ESP32-Platinen programmieren und erhalten Zugriff auf eine Reihe von Beispielen.
LED-Serversteuerung
Verbinden Sie Ihre ESP32 Feather-Entwicklerplatine per USB mit Ihrem Computer und wählen Sie einen geeigneten Port aus dem Dropdown-Menü rechts vom Debugging-Symbol aus. Nach der Auswahl wird Ihnen eine Auswahl von Platinen angezeigt. Geben Sie in diesem Fall „Adafruit esp32“ ein und wählen Sie die angezeigte Option „Adafruit ESP32 Feather“ aus.
Navigieren Sie zu „File > Examples > WiFi“ und laden Sie „SimpleWiFiServer“. Modifizieren Sie die Codezeilen 30 und 31 so, dass sie Ihre SSID und Ihr Passwort enthalten. Achten Sie darauf, dass Sie bei verschiedenen Optionen auf ein 2,4-GHz-Netzwerk zugreifen. Betätigen Sie die Schaltfläche „Upload“. Das Programm wird kompiliert und an Ihre Platine gesendet.
Nach der Programmierung versucht der ESP32 Feather, eine Verbindung zu Ihrem Netzwerk herzustellen. Öffnen Sie den seriellen Monitor in dem Arduino IDE (Symbol oben rechts) und legen Sie ihn auf 115.200 Baud fest. Es wird eine IP-Adresse für den Zugriff angezeigt, möglicherweise müssen Sie dazu aber auch die Anzeige zurücksetzen oder nach unten scrollen. Navigieren Sie in Ihrem Browser zu der aufgelisteten IP-Adresse; Sie sehen dann zwei Zeilen mit Text und Links, die Sie auffordern, Pin 5 zu aktivieren oder zu deaktivieren.
Sie können eine LED/einen Widerstand mit Pin 5 verbinden (wie auf dem ersten Bild gezeigt), um den Code so arbeiten zu lassen, wie er ist. Sie können ihn aber auch auf die integrierte LED einstellen, um diese geringfügige Hardwarekomplikation zu umgehen. Ersetzen Sie dazu [Pin] 5 in den Zeilen 38, 103 und 106 durch LED_BUILTIN. Die LED leuchtet ganz ohne externe Hardware. Sie können auch auf den Zeilen 87 und 88 „LED on pin 5“ in „builtin LED“ ändern, um eine korrekte Benutzerschnittstelle zu erhalten. Führen Sie einen erneuten Upload durch, damit die Änderungen wirksam werden.
Halleffektgeber für Ihren ESP32-Webserver
Eine Fernsteuerung ist eine hervorragende Sache, aber was soll Ihr ESP32-Webserver an einem entfernten Standort erkennen? Hier nutzen wir die Vorteile des integrierten Halleffektgebers des ESP32-WROOM-32E-Moduls, um uns die Magnetfelder in der Nähe zu zeigen.
Fügen Sie die folgenden Codezeilen direkt unter der client.print-Funktion auf Zeile 88 hinzu:
int val = 0;
val = hallRead();
client.print("magnet status ");
client.print(val);
Dieser Code etabliert die Variable „val“, in der die Halleffekt-Werte gespeichert werden. Der integrierte Halleffektgeber wird ausgelesen und die Ergebnisse werden im Webbrowser des Clients angezeigt. Dies ist ein analoger Wert, der von der Feldrichtung abhängt, wie in diesem Artikel zum Vergleich von Halleffektgebern und Reed-Schaltern beschrieben.
Bild von Jeremy Cook
Laden Sie zum Testen den Code auf Ihren ESP32 Feather und steuern Sie mit Ihrem Browser die korrekte IP-Adresse an. Sie sehen dann eine dritte Zeile mit den Magnetfeld-Messwerten.
Legen Sie einen Magneten auf das ESP32-WROOM-32E-Modul und aktualisieren Sie die Browseranzeige. Dieser Wert wird gemäß dem vorhandenen Magnetfeld aktualisiert. Sie können weiterhin die Lampen ein- und ausschalten, indem Sie den Seitenlinks folgen oder einfach zu den jeweiligen Adressen navigieren, dadurch wird aber auch immer der Magnetfeldwert aktualisiert.
Weitere Möglichkeiten mit ESP32
Dieser Artikel erläutert, wie Sie mit Arduino unter Verwendung einer ESP32-Entwicklerplatine und eines WLAN-Netzwerks einen sehr einfachen Webserver einrichten können. Die WLAN-Fähigkeiten des ESP32 ermöglichen bei korrekter Einrichtung den Zugang zur Cloud und zum allgemeinen Internet. Dieses Modul kann in einer breiten Palette von Verbraucher-, DIY- und Prototyping-Anwendungen eingesetzt werden.
Bevor Sie Ihren ESP32-Webserver in Arduino IDE erstellen, sollten Sie sich die riesige Produktauswahl von branchenführenden Herstellern auf Arrow.de ansehen, etwa die unten gezeigten.