Die drahtlose Kommunikation zwischen elektronischen Geräten und Modulen ist sehr wichtig, damit sie in die Welt des Internets der Dinge passen. Das HTTP-Protokoll und die HTML-Sprache haben es ermöglicht, die Daten überall auf der Welt über das Web zu übertragen. Wir haben bereits einige Projekte behandelt, die Wi-Fi mit Arduino verwenden. Schauen Sie sich diese an, um loszulegen:
- Senden von E-Mails mit dem Arduino- und ESP8266-WLAN-Modul
- WiFi-gesteuerter Roboter mit Arduino
- Steuerung der RGB-LED mit Arduino und Wi-Fi
In diesem Tutorial erstellen wir ein Programm zum Senden von Daten an das Web mithilfe des Arduino- und Wi-Fi-Moduls. Dazu benötigen wir zunächst eine IP-Adresse des globalen oder des lokalen Servers. Hier verwenden wir zur Vereinfachung und Demonstration den lokalen Server.
Erforderliche Komponenten:
- Arduino UNO
- ESP8266 Wi-Fi-Modul
- USB-Kabel
- Kabel anschließen
- Laptop
- Energieversorgung
Wi-Fi-Modul ESP8266:
Schaltungsanschlüsse:
Das Schaltbild für "Post-Daten von Arduino ins Web" ist unten angegeben. Wir benötigen hauptsächlich ein Arduino- und ESP8266-WLAN-Modul. Die Vcc- und GND-Pins des ESP8266 sind direkt mit 3,3 V verbunden, und GND von Arduino und CH_PD sind ebenfalls mit 3,3 V verbunden. Die Tx- und Rx-Pins von ESP8266 sind direkt mit Pin 2 und 3 von Arduino verbunden. Die Software Serial Library ermöglicht die serielle Kommunikation an Pin 2 und 3 von Arduino. Wir haben die Schnittstelle des ESP8266-Wi-Fi-Moduls zu Arduino bereits ausführlich behandelt.
Durch die Verwendung der Software Serial Library haben wir die serielle Kommunikation an Pin 2 und 3 zugelassen und sie auf Rx bzw. Tx eingestellt. Standardmäßig werden Pin 0 und 1 von Arduino für die serielle Kommunikation verwendet. Mithilfe der SoftwareSerial-Bibliothek können wir jedoch die serielle Kommunikation an anderen digitalen Pins des Arduino zulassen.
Hinweis: Um die Reaktion von ESP8266 auf dem seriellen Monitor zu sehen, öffnen Sie bitte den seriellen Monitor der Arduino IDE.
Arbeitserklärung:
Zunächst müssen wir unser Wi-Fi-Modul für die Netzwerkkonnektivität mit dem Wi-Fi-Router verbinden. Dann konfigurieren wir den lokalen Server, senden die Daten an das Web und schließen schließlich die Verbindung. Dieser Vorgang und die Befehle wurden in den folgenden Schritten erläutert:
1. Zuerst müssen wir das Wi-Fi-Modul testen, indem wir den AT- Befehl senden. Dadurch wird eine Antwort mit OK zurückgesetzt .
2. Danach müssen wir den Modus mit dem Befehl AT + CWMODE = mode_id auswählen . Wir haben Mode id = 3 verwendet. Modus-IDs:
1 = Stationsmodus (Client)
2 = AP-Modus (Host)
3 = AP + Stationsmodus (Ja, ESP8266 hat einen Dual-Modus!)
3. Jetzt müssen wir unser Wi-Fi-Modul mithilfe des Befehls AT + CWQAP vom zuvor verbundenen Wi-Fi-Netzwerk trennen, da ESP8266 standardmäßig automatisch mit einem zuvor verfügbaren Wi-Fi-Netzwerk verbunden ist
4. Danach kann der Benutzer das Modul mit dem Befehl AT + RST zurücksetzen. Dieser Schritt ist optional.
5. Jetzt müssen wir den ESP8266 mit dem angegebenen Befehl mit dem WLAN-Router verbinden
6. Holen Sie sich jetzt die IP-Adresse mit dem angegebenen Befehl:
Es wird eine IP-Adresse zurückgegeben.
7. Aktivieren Sie nun den Multiplexmodus mit AT + CIPMUX = 1 (1 für Mehrfachverbindung und 0 für Einzelverbindung).
8. Konfigurieren Sie nun ESP8266 als Server mit AT + CIPSERVER = 1, port_no (Port kann 80 sein). Jetzt ist Ihr WLAN bereit. Hier wird '1' verwendet, um den Server zu erstellen, und '0', um den Server zu löschen.
9. Mit dem angegebenen Befehl kann der Benutzer nun Daten an den lokal erstellten Server senden:
Id = ID-Nr. der Sendeverbindung
Länge = Die maximale Datenlänge beträgt 2 kb
10. Nachdem wir ID und Länge an den Server gesendet haben, müssen wir Daten senden wie: Serial.println ("[email protected]");
11. Nach dem Senden der Daten müssen wir die Verbindung mit dem folgenden Befehl schließen:
Jetzt wurden Daten an den lokalen Server übertragen.
12. Geben Sie nun die IP-Adresse in die Adressleiste des Webbrowsers ein und drücken Sie die Eingabetaste. Jetzt kann der Benutzer die übertragenen Daten auf der Webseite sehen.
Überprüfen Sie das Video unten für den vollständigen Vorgang.
Schritte zur Programmierung:
1. Fügen Sie die SoftwareSerial Library hinzu, um die serielle Kommunikation über PIN 2 und 3 zu ermöglichen, und deklarieren Sie einige Variablen und Zeichenfolgen.
#einschließen
2. Danach müssen wir einige Funktionen definieren, um unsere gewünschten Aufgaben auszuführen.
In der Setup () - Funktion initialisieren wir die eingebaute serielle UART-Kommunikation für ESP8266 als client.begin (9600). mit der Baudrate von 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("System Ready.."); }}
3. In der Funktion wifi_init () initialisieren wir das WLAN-Modul, indem wir einige Befehle wie Zurücksetzen, Einstellen des Modus, Herstellen einer Verbindung zum Router, Konfigurieren der Verbindung usw. senden. Diese Befehle wurden auch oben im Beschreibungsteil erläutert.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. In der Funktion connect_wifi () senden wir Befehlsdaten an ESP8266 und lesen dann die Antwort vom ESP8266-Wi-Fi-Modul.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; während (1) {Serial.println (cmd);…………………
5. Die Funktion sendwebdata () wird zum Senden von Daten an den lokalen Server oder die Webseite verwendet.
void sendwebdata (String webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0"); client.print ("AT + CIPSEND = 0,");…………………
6. Die Funktion void send () wird zum Senden von Datenzeichenfolgen an die Funktion sendwebdata () verwendet. Das wird weiter an die Webseite gesendet.
void Send () {webpage = "
Willkommen bei Circuit Digest
"; sendwebdata (Webseite); Webseite = Name; Webseite + = Datum;…………………7. Die Funktion get_ip () wird zum Abrufen der IP-Adresse des lokal erstellten Servers verwendet.
8. In der Funktion void loop () senden wir dem Benutzer Anweisungen zum Aktualisieren der Seite und prüfen, ob der Server verbunden ist oder nicht. Wenn der Benutzer die Webseite aktualisiert oder anfordert, werden die Daten automatisch an dieselbe IP-Adresse übertragen.
void loop () {k = 0; Serial.println ("Bitte aktualisieren Sie Ihre Seite"); während (k <1000)………………
Mit diesem Verfahren können wir alle Daten von Arduino zur Webseite anzeigen, z. B. Raumtemperatur und Luftfeuchtigkeit, Uhrzeit, GPS-Koordinaten, Herzschlagfrequenz usw.