Arduino Nano ESP32 Web-Steuerung digitaler Pins mit DIYables ESP32 WebApps-Bibliothek
Übersicht
Dieses Tutorial behandelt die DIYablesWebDigitalPinsPage-Klasse aus der DIYables ESP32 WebApps-Bibliothek. Die Seite präsentiert jeden registrierten Pin als Schaltfläche im Browser. Ausgabepins können umgeschaltet werden; Eingabepins zeigen ihren aktuellen Status an. Die Pin-Konfiguration erfolgt vollständig im Sketch – der Browser reflektiert, welchen Modus der Sketch definiert.

Was dieses Tutorial abdeckt
- Aktivierung einzelner Pins als WEB_PIN_OUTPUT oder WEB_PIN_INPUT
- Lesen von Ausgabestatusänderungen vom Browser über einen Callback
- Bereitstellung von Eingabe-Pin-Werten für den Browser über einen Lese-Callback
- Pushen von Statusaktualisierungen von dem Sketch zu verbundenen Browsern
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn Sie zum ersten Mal Arduino Nano ESP32 verwenden, lesen Sie das Tutorial zum Einrichten der Arduino Nano ESP32 Entwicklungsumgebung.
- Verbinden Sie das Arduino Nano ESP32-Board mit Ihrem Computer über ein USB-Kabel.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das entsprechende Board (z. B. Arduino Nano ESP32) und den COM-Port aus.
- Navigieren Sie zum Libraries-Symbol in der linken Leiste der Arduino IDE.
- Suchen Sie "DIYables ESP32 WebApps", dann finden Sie die DIYables ESP32 WebApps-Bibliothek von DIYables
- Klicken Sie auf die Schaltfläche Install, um die Bibliothek zu installieren.
- Search for DIYables ESP32 WebApps created by DIYables and click the Install button.
- Sie werden aufgefordert, einige andere Bibliotheksabhängigkeiten zu installieren
- Klicken Sie auf die Schaltfläche Install All, um alle Bibliotheksabhängigkeiten zu installieren.
- Gehen Sie in der Arduino IDE zu File Examples DIYables ESP32 WebApps WebDigitalPins oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
- Aktualisieren Sie die WiFi-Anmeldedaten im Sketch:
- Klicken Sie auf die Schaltfläche Upload in der Arduino IDE, um den Code auf Arduino Nano ESP32 hochzuladen
- Öffnen Sie den Serial Monitor
- Die Ausgabe des Serial Monitor sollte folgende Ausgabe ähneln:
- Wenn nichts angezeigt wird, drücken Sie die Reset-Taste auf dem Board.
- Geben Sie die IP-Adresse aus dem Serial Monitor in einen Browser im selben Netzwerk ein.
- Beispiel: http://192.168.0.2
- Die Startseite zeigt eine Karte für die Web-Digital-Pins-Anwendung an:

- Wählen Sie die Karte "Digital Pins", um die Pin-Steuerungsseite zu öffnen:

- Die Seite ist auch direkt unter http://192.168.0.2/web-digital-pins erreichbar.
- Schalten Sie Ausgabepins um, indem Sie auf die entsprechenden Schaltflächen klicken. Pin 13 (integrierte LED) sollte sofort reagieren.
Pin-Konfigurationsmethoden
Pins müssen registriert werden, bevor webAppsServer.begin() aufgerufen wird. Drei Muster werden unterstützt:
Einzelne Pins aktivieren
Aktivierung eines Bereichs von Ausgabepins
Alle Pins aktivieren
Callbacks
Schreib-Callback (Ausgabepins)
Wird aufgerufen, wenn der Browser einen Ausgabepin umschaltet:
Lese-Callback (Eingabepins)
Wird aufgerufen, wenn der Browser den aktuellen Status eines Eingabepins anfordert:
Status vom Sketch aus pushen
Wenn sich ein Eingang außerhalb einer Browser-Anfrage ändert, pushen Sie die Aktualisierung manuell:
Web-Schnittstellen-Steuerelemente
- Pin-Schaltfläche: Klicken Sie, um einen Ausgabepin HIGH oder LOW umzuschalten. Grün zeigt HIGH an; rot zeigt LOW an.
- All ON: Setzt alle registrierten Ausgabepins auf HIGH.
- All OFF: Setzt alle registrierten Ausgabepins auf LOW.
- Toggle All: Invertiert den aktuellen Status aller Ausgabepins.
Eingabepins zeigen ihren aktuellen Status ohne eine Umschalttaste an – der Browser aktualisiert sie regelmäßig über WebSocket.
Fehlerbehebung
Pin-Status ändert sich nicht beim Anklicken
- Überprüfen Sie, ob der onPinWrite-Callback vor webAppsServer.begin() registriert ist
- Bestätigen Sie, dass der Pin mit WEB_PIN_OUTPUT registriert ist
- Überprüfen Sie den Serial Monitor auf eingehende WebSocket-Nachrichten
Eingabepin zeigt falschen Status
- Bestätigen Sie, dass der onPinRead-Callback registriert ist
- Fügen Sie einen Pull-up oder Pull-down Widerstand hinzu, um schwebende Eingänge zu vermeiden
- Überprüfen Sie, ob digitalRead() den erwarteten Wert im Callback zurückgibt
Seite nicht erreichbar
- Überprüfen Sie die IP-Adresse, die im Serial Monitor gedruckt ist
- Stellen Sie sicher, dass Port 80 im Netzwerk offen ist
- Das Board und das Browser-Gerät müssen sich im selben 2,4-GHz-WiFi-Netzwerk befinden