Trådløs kommunikasjon mellom elektroniske enheter og moduler er veldig viktig for å gjøre dem "Fit" i World of Internet of Things. HTTP-protokoll og HTML-språk har gjort det mulig å overføre data hvor som helst i verden, over nettet. Vi har allerede dekket noen prosjekter som bruker Wi-Fi med Arduino, ta en titt på dem for å komme i gang:
- Sende e-post ved hjelp av Arduino og ESP8266 WiFi-modul
- WiFi-kontrollert robot ved hjelp av Arduino
- Kontrollerer RGB LED ved hjelp av Arduino og Wi-Fi
Nå i denne veiledningen bygger vi et program for å sende data til nettet ved hjelp av Arduino og Wi-Fi-modulen. For dette trenger vi først en IP-adresse til enten global eller lokal server, her for enkelhets skyld og demonstrasjonsformål bruker vi Local Server.
Nødvendige komponenter:
- Arduino UNO
- ESP8266 Wi-Fi-modul
- USB-kabel
- Koble ledninger
- Laptop
- Strømforsyning
Wi-Fi-modul ESP8266:
Kretsforbindelser:
Kretsdiagram for “Post Data fra Arduino til Web” er gitt nedenfor. Vi trenger hovedsakelig en Arduino og ESP8266 Wi-Fi-modul. ESP8266s Vcc- og GND-pinner er direkte koblet til 3.3V og GND av Arduino og CH_PD er også koblet til 3.3V. Tx- og Rx-pinner på ESP8266 er direkte koblet til pinne 2 og 3 på Arduino. Software Serial Library brukes til å tillate seriell kommunikasjon på pin 2 og 3 i Arduino. Vi har allerede dekket grensesnittet til ESP8266 Wi-Fi-modulen til Arduino i detalj.
Ved å bruke Software Serial Library her har vi tillatt seriell kommunikasjon på pin 2 og 3, og gjort dem til henholdsvis Rx og Tx. Som standard brukes pin 0 og 1 i Arduino til seriell kommunikasjon, men ved å bruke SoftwareSerial-biblioteket kan vi tillate seriell kommunikasjon på andre digitale pinner i Arduino.
Merk: For å se responsen fra ESP8266 på seriell skjerm, vennligst åpne Serial Monitor for Arduino IDE.
Arbeidsforklaring:
Først og fremst må vi koble Wi-Fi-modulen til Wi-Fi-ruteren for nettverkstilkobling. Deretter konfigurerer vi den lokale serveren, sender dataene til nettet og til slutt lukker tilkoblingen. Denne prosessen og kommandoene er forklart i trinnene nedenfor:
1. Først må vi teste Wi-Fi-modulen ved å sende AT- kommandoen, den vil tilbakestille et svar som inneholder OK .
2. Etter dette må vi velge modus ved hjelp av kommandoen AT + CWMODE = mode_id , vi har brukt Mode id = 3. Modus-ID-er:
1 = Stasjonsmodus (klient)
2 = AP-modus (vert)
3 = AP + Stasjonsmodus (Ja, ESP8266 har dobbel modus!)
3. Nå må vi koble Wi-Fi-modulen vår fra det tidligere tilkoblede Wi-Fi-nettverket, ved å bruke kommandoen AT + CWQAP, da ESP8266 er standard automatisk koblet til et hvilket som helst tilgjengelig Wi-Fi-nettverk
4. Etter det kan brukeren tilbakestille modulen med AT + RST- kommandoen. Dette trinnet er valgfritt.
5. Nå må vi koble ESP8266 til Wi-Fi-ruteren ved hjelp av gitt kommando
6. Få nå IP-adresse ved å bruke gitt kommando:
Den returnerer en IP-adresse.
7. Aktiver nå multiplex-modus ved å bruke AT + CIPMUX = 1 (1 for flere tilkoblinger og 0 for enkelt tilkoblinger)
8. Konfigurer nå ESP8266 som server ved å bruke AT + CIPSERVER = 1, port_no (port kan være 80). Nå er Wi-Fi-en din klar. Her brukes '1' til å opprette serveren og '0' for å slette serveren.
9. Nå ved å bruke gitt kommando kan brukeren sende data til lokal opprettet server:
Id = ID-nr. av sendeforbindelse
Lengde = Maksimal datalengde er 2 kb
10. Etter å ha sendt ID og lengde til serveren, må vi sende data som: Serial.println (“[email protected]”);
11. Etter at vi har sendt data, må vi lukke forbindelsen med kommandoen:
Nå er data overført til lokal server.
12. Skriv nå IP-adresse i adressefeltet i nettleseren og trykk enter. Nå kan brukeren se overførte data på nettsiden.
Sjekk videoen nedenfor for fullstendig prosess.
Fremgangsmåte for programmering:
1. Inkluder SoftwareSerial Library for å tillate seriell kommunikasjon på PIN 2 og 3 og erklære noen variabler og strenger.
#inkludere
2. Etter dette må vi definere noen funksjoner for å utføre de ønskede oppgavene.
I Setup () -funksjonen initialiserer vi innebygd seriell UART-kommunikasjon for ESP8266 som client.begin (9600); med overføringshastighet på 9600.
ugyldig oppsett () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("System Ready.."); }
3. I wifi_init () -funksjonen initialiserer vi wifi-modulen ved å sende noen kommandoer som tilbakestilling, innstillingsmodus, koble til ruteren, konfigurere tilkobling osv. Disse kommandoene er også forklart ovenfor i beskrivelsesdelen.
ugyldig 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 () -funksjonen sender vi kommandodata til ESP8266 og leser deretter svaret fra ESP8266 Wi-Fi-modulen.
ugyldig connect_wifi (streng cmd, int t) {int temp = 0, i = 0; mens (1) {Serial.println (cmd);…………………
5. sendwebdata () -funksjonen brukes til å sende data til lokal server eller webside.
ugyldig sendwebdata (String webPage) {int ii = 0; mens (1) {usignert int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. void send () -funksjonen brukes til å sende datastrenger til sendwebdata () -funksjonen. Dette vil bli sendt videre til websiden.
ugyldig sending () {webpage = "
Velkommen til Circuit Digest
"; sendwebdata (webside); webside = navn; webside + = dat;…………………7. get_ip () -funksjonen brukes til å få IP-adressen til den lokale opprettet serveren.
8. I void loop () -funksjonen sender vi instruksjoner til brukeren for å oppdatere siden og sjekker om serveren er koblet til ikke. Når brukeren oppdaterer eller ber om nettsiden, overføres data automatisk til samme IP-adresse.
ugyldig sløyfe () {k = 0; Serial.println ("Vennligst oppdater siden din"); mens (k <1000)………………
Vi kan vise alle data fra Arduino til websiden ved hjelp av denne prosessen, som romtemperatur og fuktighet, klokketid, GPS-koordinater, hjerterytme etc.