Trådløs kommunikation mellem elektroniske enheder og moduler er meget vigtig for at gøre dem 'Fit' i World of Internet of Things. HTTP-protokol og HTML-sprog har gjort det muligt at overføre dataene overalt i verden over internettet. Vi har allerede dækket nogle projekter, der bruger Wi-Fi med Arduino, se dem til Kom godt i gang:
- Afsendelse af e-mail ved hjælp af Arduino og ESP8266 WiFi-modul
- WiFi-styret robot ved hjælp af Arduino
- Styring af RGB LED ved hjælp af Arduino og Wi-Fi
Nu i denne vejledning bygger vi et program til at sende data til internettet ved hjælp af Arduino og Wi-Fi-modulet. Til dette har vi først brug for en IP-adresse på enten global eller lokal server, her for at gøre det let og demonstrationsformål bruger vi Local Server.
Nødvendige komponenter:
- Arduino UNO
- ESP8266 Wi-Fi-modul
- USB-kabel
- Tilslutning af ledninger
- Bærbar
- Strømforsyning
Wi-Fi-modul ESP8266:
Kredsløbstilslutninger:
Kredsløbsdiagram for "Send data fra Arduino til internettet" er angivet nedenfor. Vi har hovedsageligt brug for et Arduino og ESP8266 Wi-Fi-modul. ESP8266's Vcc- og GND-ben er direkte forbundet til 3.3V, og GND af Arduino og CH_PD er også forbundet med 3.3V. Tx- og Rx-stifter på ESP8266 er direkte forbundet til pin 2 og 3 i Arduino. Software Serial Library bruges til at tillade seriel kommunikation på pin 2 og 3 i Arduino. Vi har allerede dækket interfacing af ESP8266 Wi-Fi-modul til Arduino i detaljer.
Ved at bruge Software Serial Library her har vi tilladt seriel kommunikation på pin 2 og 3 og gjort dem henholdsvis Rx og Tx. Som standard bruges pin 0 og 1 i Arduino til seriel kommunikation, men ved hjælp af SoftwareSerial-biblioteket kan vi tillade seriel kommunikation på andre digitale pins i Arduino.
Bemærk: For at se svaret fra ESP8266 på seriel skærm skal du åbne Serial Monitor af Arduino IDE.
Arbejdsforklaring:
Først og fremmest skal vi forbinde vores Wi-Fi-modul til Wi-Fi-router for netværksforbindelse. Derefter konfigurerer vi den lokale server, sender dataene til internettet og til sidst lukker forbindelsen. Denne proces og kommandoer er forklaret i nedenstående trin:
1. Først skal vi teste Wi-Fi-modulet ved at sende AT- kommandoen, det vil vende tilbage et svar, der indeholder OK .
2. Herefter skal vi vælge tilstand ved hjælp af kommandoen AT + CWMODE = mode_id , vi har brugt Mode id = 3. Mode-id'er:
1 = Stationstilstand (klient)
2 = AP-tilstand (vært)
3 = AP + Stationtilstand (Ja, ESP8266 har en dobbelt tilstand!)
3. Nu skal vi afbryde vores Wi-Fi-modul fra det tidligere tilsluttede Wi-Fi-netværk ved hjælp af kommandoen AT + CWQAP, da ESP8266 er standardautomatisk forbundet med ethvert tidligere tilgængeligt Wi-Fi-netværk
4. Derefter kan brugeren nulstille modulet med AT + RST- kommandoen. Dette trin er valgfrit.
5. Nu skal vi forbinde ESP8266 til Wi-Fi-router ved hjælp af den givne kommando
6. Få nu IP-adresse ved hjælp af den givne kommando:
Det returnerer en IP-adresse.
7. Aktiver nu multiplex-tilstand ved hjælp af AT + CIPMUX = 1 (1 til flere forbindelser og 0 til enkelt forbindelser)
8. Konfigurer nu ESP8266 som server ved hjælp af AT + CIPSERVER = 1, port_no (port kan være 80). Nu er din Wi-Fi klar. Her bruges '1' til at oprette serveren og '0' til at slette serveren.
9. Nu ved hjælp af en given kommando kan brugeren sende data til den lokale oprettede server:
Id = ID-nr. af sendeforbindelse
Længde = Maks. Længde på data er 2 kb
10. Efter at have sendt ID og længde til serveren skal vi sende data som: Serial.println (“[email protected]”);
11. Efter afsendelse af data skal vi lukke forbindelsen med en given kommando:
Nu er data overført til den lokale server.
12. Skriv nu IP-adresse i adresselinjen i webbrowseren, og tryk på Enter. Nu kan brugeren se transmitterede data på websiden.
Tjek videoen nedenfor for fuldstændig proces.
Trin til programmering:
1. Inkluder SoftwareSerial Library for at tillade seriel kommunikation på PIN 2 & 3 og erklære nogle variabler og strenge.
#omfatte
2. Herefter skal vi definere nogle funktioner til at udføre vores ønskede opgaver.
I funktionen Setup () initialiserer vi indbygget seriel UART-kommunikation til ESP8266 som client.begin (9600); med baudhastigheden på 9600.
ugyldig opsætning () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("System Ready.."); }
3. I wifi_init () -funktionen initialiserer vi wifi-modulet ved at sende nogle kommandoer som reset, set-mode, oprette forbindelse til routeren, konfigurere forbindelse osv. Disse kommandoer er også forklaret ovenfor i beskrivelsesdelen.
ugyldigt 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 sender vi kommandodata til ESP8266 og læser derefter svar fra ESP8266 Wi-Fi-modul.
ugyldig connect_wifi (String cmd, int t) {int temp = 0, i = 0; mens (1) {Serial.println (cmd);…………………
5. sendwebdata () funktion bruges til at sende data til Local Server eller webside.
ugyldig sendwebdata (String webPage) {int ii = 0; mens (1) {usigneret int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. ugyldig send () -funktion bruges til at sende datastrenge til sendwebdata () -funktionen. Dette vil blive sendt videre til websiden.
ugyldig Send () {webpage = "
Velkommen til Circuit Digest
"; sendwebdata (webside); webside = navn; webside + = dat;…………………7. get_ip () -funktion bruges til at hente IP-adresse på den lokale oprettede server.
8. I void loop () -funktionen sender vi instruktioner til brugeren for at opdatere siden og kontrollere, om serveren ikke er tilsluttet. Når brugeren opdaterer eller anmoder om websiden, transmitteres data automatisk til den samme IP-adresse.
ugyldig sløjfe () {k = 0; Serial.println ("Opdater venligst din side"); mens (k <1000)………………
Vi kan vise alle data fra Arduino til websiden ved hjælp af denne proces, såsom stuetemperatur og fugtighed, urtid, GPS-koordinater, hjerterytme osv.