WiFi-LED-Steuerung mit ESP8266

Das Beispiel zeigt, wie Sie mit Arduino Daten über die Website an das ESP8266-Modul senden. Das Programm steuert die an die Arduino-Platine angeschlossenen LEDs.

Das Beispiel verwendet die folgenden Elemente:

  • Ein Computer, der mit einer WiFi-Karte ausgestattet ist

Verbinden von ESP-01 mit Arduino

Die serielle UART-Schnittstelle wird für die Kommunikation zwischen dem WiFi-Modul auf Basis des ESP8226-Systems und dem Arduino-Board verwendet. In diesem Fall wird seine Softwareversion verwendet, der Hardware-UART, d. h. die Pins 1 und 0, bleiben dem Benutzer zur Verfügung. Die Systeme sollten z.B. mit Buchse-Stecker-Kabeln wie folgt verbunden werden:

Stift ESP8266 Arduino-Stift
Tx 2
Empfang 3
Vcc 3,3 V
CH_PD

3,3 V

Masse Masse

Die LEDs sollten über einen Widerstand, der den Diodenstrom begrenzt , mit den Pins 11, 12 und 13 des Arduino verbunden werden. Sein Wert bestimmt die Helligkeit der LED-Diode, ein zu niedriger Widerstand kann die Diode beschädigen, bei einem zu hohen Widerstand leuchtet sie nicht. Wir empfehlen einen Widerstandswert im Bereich von 220 Ω bis 1,5 kΩ zu wählen.

Programm für Arduino

Im Beispiel wurde folgender Code verwendet:

 

#include  // Aufnahme der Bibliothek zur Unterstützung der Software-UART-Schnittstelle
        
SoftwareSerial esp01 (2,3); // Software-UART-Schnittstelle initialisieren: 2-RX (mit ESP-Modul Tx verbinden); 3-TX (Verbindung zum Rx ESP-Modul)
    
Void-Setup ()
{
  Serial.begin (9600); // Initialisierung der Hardware-UART-Schnittstelle bei 9600 bps - für die Kommunikation mit dem Computer über USB
      esp01.begin (9600); // Initialisierung der Software-UART-Schnittstelle bei 9600 bps - für die Kommunikation mit dem ESP-Modul
      
  PinMode (11, AUSGANG); // Pin 11 als Eingang für LED Nr. 1 einstellen
  digitalWrite (11, NIEDRIG); // Pin 11 Low-Status geben - Diode 1 ist standardmäßig ausgeschaltet
      
  PinMode (12, AUSGANG); // Setzen des Pins 12 als Eingang für die LED Nr. 2
  digitalWrite (12, NIEDRIG); // Pin 12 Low-Status geben - Diode 2 ist standardmäßig ausgeschaltet
      
  PinMode (13, AUSGANG); // Setzen des Pins 13 als Eingang für die LED Nr. 3
  digitalWrite (13, NIEDRIG); // Pin 13 niedrigen Status geben - LED 3 ist standardmäßig ausgeschaltet
       
  // Initialisierungsbefehle für das ESP-Modul senden
  sendData ("AT + RSTrn", 2000); // Modul zurücksetzen
  sendData ("AT + CWMODE = 2yrn", 1000); // im Access Point-Modus eingerichtet
  sendData ("AT + CIFSRrn", 1000); // eine IP-Adresse erhalten (Standard 192.168.4.1)
  sendData ("AT + CIPMUX = 1rn", 1000); // Mehrfachverbindungsmodus aktivieren
  sendData ("AT + CIPSERVER = 1,80rn", 1000); // setze den Server auf Port 80} void loop () {if (esp01.available ()) // prüfe, ob das Modul die Daten empfangen hat {if (esp01.find ("+ IPD,")) {delay (1000) ; // warten, bis der Puffer mit Daten gefüllt ist // Verbindungs-ID lesen int connectionId = esp01.read () - 48; // ASCI-Wert lesen: 48 subtrahiert, weil read() ASCII-Dezimalwert an Position 48 zurückgibt esp01.find ("pin ="); // suchen Sie nach dem Ausdruck "pin =" und platzieren Sie den "Cursor" dort int pinNumber = (esp01.read () - 48) * 10; // erhalte die erste Ziffer, z. B. für Pin 13, die erste Ziffer ist 1, multipliziere sie mit 10 pinNumber + = (esp01.read () - 48); // holen Sie sich die zweite Ziffer, zB für Pin 13, die zweite Ziffer ist 3, addieren Sie sie zum vorherigen Ergebnis digitalWrite (pinNumber,! digitalRead (pinNumber)); // Status des ausgewählten Pins ändern // Verbindung schließen String closeCommand = "AT + CIPCLOSE ="; closeCommand + = Verbindungs-ID; // Verbindungs-ID zuerst lesen closeCommand + = "rn"; sendData (closeCommand, 1000); // sende den Verbindungsabbaubefehl}}} / * * Funktion, die Befehle an das ESP01-Modul sendet * Parameter: * Befehl - zu sendender Befehl * timeout - Zeitüberschreitung für die Antwort * / String sendData (String-Befehl, const int timeout) {String Antwort = ""; esp01.print (Befehl); // Befehl an ESP01 senden long int time = millis (); while ((time + timeout)> millis ()) {while (esp01.available ()) // Wenn Daten vom Modul vorhanden sind, werden sie gelesen {char c = esp01.read (); // die nächste Zeichenantwort lesen + = c; }} Serial.print (Antwort); Rückantwort; }

Holen Sie sich den Code für Arduino

HTML-Code zum Senden von Daten

Kopieren Sie den folgenden Code und verwenden Sie beispielsweise das System Notepad, speichern Sie ihn mit der Erweiterung .html.



LED-Steuerung über ESP8266












Laden Sie den HTML-Code herunter

Das Programm verwendet auch die JQuery-Bibliothek. Es sollte heruntergeladen und in dem Verzeichnis gespeichert werden, in dem sich die obige .html-Datei befindet.

Starten Sie das Programm

Zunächst müssen Sie sich mit dem Modul als Access Point verbinden (ähnlich wie z. B. ein WLAN-Router). Öffnen Sie nach dem Verbindungsaufbau die erstellte Website mit einem beliebigen Browser. Mit einer der drei Tasten können die LEDs ein- oder ausgeschaltet werden.

Wir freuen uns auf die Zusammenarbeit mit Ihnen!