Trådlös kommunikation mellan elektroniska enheter och moduler är mycket viktigt för att göra dem "passande" i World of Internet of Things. HTTP-protokoll och HTML-språk har gjort det möjligt att överföra data var som helst i världen, över webben. Vi har redan täckt några projekt som använder Wi-Fi med Arduino, ta en titt på dem till Komma igång:
- Skicka e-post med Arduino och ESP8266 WiFi-modul
- WiFi-kontrollerad robot med Arduino
- Styr RGB-LED med Arduino och Wi-Fi
Nu i denna handledning bygger vi ett program för att skicka data till webben med Arduino och Wi-Fi-modulen. För detta behöver vi först en IP-adress till antingen global eller lokal server, här för enkelhetens och demonstrationssyfte använder vi Local Server.
Komponenter som krävs:
- Arduino UNO
- ESP8266 Wi-Fi-modul
- USB-kabel
- Anslutande ledningar
- Bärbar dator
- Strömförsörjning
Wi-Fi-modul ESP8266:
Kretsanslutningar:
Kretsschema för ”Skicka data från Arduino till webben” ges nedan. Vi behöver främst en Arduino och ESP8266 Wi-Fi-modul. ESP8266: s Vcc- och GND-stift är direkt anslutna till 3.3V och GND för Arduino och CH_PD är också ansluten till 3.3V. Tx- och Rx-stiften på ESP8266 är direkt anslutna till stift 2 och 3 på Arduino. Software Serial Library används för att tillåta seriell kommunikation på pin 2 och 3 i Arduino. Vi har redan täckt gränssnittet mellan ESP8266 Wi-Fi-modulen och Arduino i detalj.
Genom att använda Software Serial Library här har vi tillåtit seriekommunikation på stift 2 och 3 och gjort dem till Rx respektive Tx. Som standard används stift 0 och 1 i Arduino för seriell kommunikation men med hjälp av SoftwareSerial-biblioteket kan vi tillåta seriell kommunikation på andra digitala stift i Arduino.
Obs! För att se svaret från ESP8266 på seriell bildskärm, vänligen öppna Serial Monitor för Arduino IDE.
Arbetsförklaring:
Först och främst behöver vi ansluta vår Wi-Fi-modul till Wi-Fi-router för nätverksanslutning. Sedan konfigurerar vi den lokala servern, skickar data till webben och slutligen stänger anslutningen. Denna process och kommandon har förklarats i nedanstående steg:
1. Först måste vi testa Wi-Fi-modulen genom att skicka AT- kommandot, det kommer att återställa ett svar som innehåller OK .
2. Efter detta måste vi välja läge med kommandot AT + CWMODE = mode_id , vi har använt Mode id = 3. Läges-ID: er
1 = Stationsläge (klient)
2 = AP-läge (värd)
3 = AP + Stationsläge (Ja, ESP8266 har dubbelt läge!)
3. Nu måste vi koppla bort vår Wi-Fi-modul från det tidigare anslutna Wi-Fi-nätverket genom att använda kommandot AT + CWQAP, eftersom ESP8266 är standardautomatisk ansluten till alla tidigare tillgängliga Wi-Fi-nätverk
4. Därefter kan användaren återställa modulen med AT + RST- kommandot. Detta steg är valfritt.
5. Nu måste vi ansluta ESP8266 till Wi-Fi-routern med det givna kommandot
6. Få nu IP-adress med det givna kommandot:
Den returnerar en IP-adress.
7. Aktivera nu multiplexläget med AT + CIPMUX = 1 (1 för multipel anslutning och 0 för enkel anslutning)
8. Konfigurera nu ESP8266 som server med AT + CIPSERVER = 1, port_no (port kan vara 80). Nu är ditt Wi-Fi klart. Här används '1' för att skapa servern och '0' för att radera servern.
9. Nu kan användaren skicka data till den lokala skapade servern genom att använda ett visst kommando:
Id = ID-nr. av sändningsanslutning
Längd = Max längd på data är 2 kb
10. Efter att ha skickat ID och längd till servern måste vi skicka data som: Serial.println (“[email protected]”);
11. Efter att ha skickat data måste vi stänga anslutningen med ett givet kommando:
Nu har data överförts till den lokala servern.
12. Skriv nu IP-adress i adressfältet i webbläsaren och tryck enter. Nu kan användaren se överförda data på webbsidan.
Kontrollera videon nedan för fullständig process.
Steg för programmering:
1. Inkludera SoftwareSerial Library för att tillåta seriell kommunikation på PIN 2 & 3 och deklarera några variabler och strängar.
#omfatta
2. Efter detta måste vi definiera några funktioner för att utföra våra önskade uppgifter.
I funktionen Setup () initierar vi inbyggd seriell UART-kommunikation för ESP8266 som client.begin (9600); med överföringshastighet 9600.
ogiltig installation () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("System Ready.."); }
3. I wifi_init () -funktionen initialiserar vi wifi-modulen genom att skicka några kommandon som återställning, inställningsläge, ansluta till router, konfigurera anslutning etc. Dessa kommandon har också förklarats ovan i beskrivningsdelen.
ogiltig wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. I connect_wifi () -funktionen skickar vi kommandodata till ESP8266 och läser sedan svaret från ESP8266 Wi-Fi-modulen.
ogiltig connect_wifi (String cmd, int t) {int temp = 0, i = 0; medan (1) {Serial.println (cmd);…………………
5. funktionen sendwebdata () används för att skicka data till Local Server eller webbsida.
ogiltig sendwebdata (String webPage) {int ii = 0; medan (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. void send () -funktionen används för att skicka datasträngar till funktionen sendwebdata () . Det skickas vidare till webbsidan.
ogiltigt Skicka () {webpage = "
Välkommen till Circuit Digest
"; sendwebdata (webpage); webpage = name; webpage + = dat;…………………7. Get_ip () -funktionen används för att få IP-adressen till den lokalt skapade servern.
8. I void loop () -funktionen skickar vi instruktioner till användaren för att uppdatera sidan och kontrollera om servern är ansluten till inte. När användaren uppdaterar eller begär webbsidan överförs data automatiskt till samma IP-adress.
ogiltig slinga () {k = 0; Serial.println ("Uppdatera din sida"); medan (k <1000)………………
Vi kan visa alla data från Arduino till webbsidan med den här processen, som rumstemperatur och luftfuktighet, klocktid, GPS-koordinater, hjärtrytm etc.