Bežična komunikacija između elektroničkih uređaja i modula vrlo je važna kako bi ih učinili "uklapajućima" u svijet interneta stvari. HTTP protokol i HTML jezik omogućili su prijenos podataka bilo gdje u svijetu, putem weba. Već smo obradili neke projekte koji koriste Wi-Fi s Arduinom, pogledajte ih u Početak:
- Slanje e-pošte pomoću Arduina i ESP8266 WiFi modula
- WiFi kontrolirani robot koji koristi Arduino
- Upravljanje RGB LED-om pomoću Arduina i Wi-Fi mreže
Sada u ovom vodiču gradimo program za slanje podataka na web pomoću Arduina i Wi-Fi modula. Za to nam je prvo potrebna IP adresa bilo globalnog ili lokalnog poslužitelja, ovdje zbog jednostavnosti i demonstracije koristimo lokalni poslužitelj.
Potrebne komponente:
- Arduino UNO
- ESP8266 Wi-Fi modul
- USB kabl
- Spajanje žica
- Laptop
- Napajanje
Wi-Fi modul ESP8266:

Kružne veze:
Kružni dijagram za "Objavljivanje podataka s Arduina na web" dat je u nastavku. Uglavnom nam trebaju Arduino i ESP8266 Wi-Fi modul. Vcc i GND pinovi ESP8266 izravno su povezani s 3,3 V, a GND Arduina, a CH_PD je također povezan s 3,3 V. Tx i Rx pinovi ESP8266 izravno su povezani s pinovima 2 i 3 Arduina. Softverska serijska knjižnica koristi se za omogućavanje serijske komunikacije na pinovima 2 i 3 Arduina. Već smo detaljno obradili povezivanje Wi-Fi modula ESP8266 s Arduinom.

Korištenjem softverske serijske biblioteke ovdje omogućili smo serijsku komunikaciju na pinovima 2 i 3 i postavili ih Rx odnosno Tx. Prema zadanim postavkama pin 0 i 1 Arduina koriste se za serijsku komunikaciju, ali pomoću biblioteke SoftwareSerial možemo dopustiti serijsku komunikaciju na drugim digitalnim pinovima Arduina.
Napomena: Da biste gledali odgovor ESP8266 na serijskom monitoru, otvorite Serial Monitor Arduino IDE-a.
Radno objašnjenje:
Prije svega moramo povezati naš Wi-Fi modul s Wi-Fi usmjerivačem radi mrežne povezanosti. Tada ćemo konfigurirati lokalni poslužitelj, poslati podatke na web i na kraju zatvoriti vezu. Ovaj postupak i naredbe objašnjeni su u sljedećim koracima:
1. Prvo moramo testirati Wi-Fi modul slanjem AT naredbe, vratit će natrag odgovor koji sadrži OK .
2. Nakon toga, moramo odabrati način rada pomoću naredbe AT + CWMODE = mode_id , koristili smo način id = 3. ID-ovi načina:
1 = Način stanice (klijent)
2 = Način AP (domaćin)
3 = AP + Način stanice (Da, ESP8266 ima dvostruki način rada)
3. Sada moramo odspojiti naš Wi-Fi modul od prethodno povezane Wi-Fi mreže, pomoću naredbe AT + CWQAP, jer je ESP8266 zadani automatski povezan s bilo kojom prethodno dostupnom Wi-Fi mrežom
4. Nakon toga, korisnik može resetirati modul pomoću naredbe AT + RST . Ovaj korak nije obavezan.
5. Sada moramo povezati ESP8266 s Wi-Fi usmjerivačem pomoću zadane naredbe
6. Sada nabavite IP adresu pomoću zadane naredbe:
Vratit će IP adresu.
7. Sada omogućite multipleks način korištenjem AT + CIPMUX = 1 (1 za višestruku vezu i 0 za jednu vezu)
8. Sada konfigurirajte ESP8266 kao poslužitelj pomoću AT + CIPSERVER = 1, port_no (port može biti 80). Sada je vaš Wi-Fi spreman. Ovdje se '1' koristi za stvaranje poslužitelja, a '0' za brisanje poslužitelja.
9. Sada pomoću zadane naredbe korisnik može slati podatke na lokalni stvoreni poslužitelj:
Id = ID br. prijenosne veze
Duljina = Maksimalna duljina podataka je 2 kb
10. Nakon slanja ID-a i dužine na poslužitelj, trebamo poslati podatke poput: Serial.println (“[email protected]”);
11. Nakon slanja podataka trebamo zatvoriti vezu zadanom naredbom:
Sada su podaci preneseni na lokalni poslužitelj.
12. Sada upišite IP adresu u adresnu traku u web pregledniku i pritisnite Enter. Sada korisnik može vidjeti prenesene podatke na web stranici.
Potpuni postupak potražite u videozapisu u nastavku.
Koraci za programiranje:
1. Uključite softversku biblioteku SoftwareSerial za omogućavanje serijske komunikacije na PIN-u 2 i 3 i prijavite neke varijable i nizove.
#include
2. Nakon toga, moramo definirati neke funkcije za izvršavanje željenih zadataka.
U funkciji Setup () inicijaliziramo ugrađenu serijsku UART komunikaciju za ESP8266 kao client.begin (9600); brzinom prijenosa od 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Sustav spreman.."); }
3. U funkciji wifi_init () inicijaliziramo wifi modul slanjem nekih naredbi poput resetiranja, postavljanja načina rada, povezivanja s usmjerivačem, konfiguriranja veze itd. Ove naredbe su također gore objašnjene u dijelu opisa.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. U funkciji connect_wifi () šaljemo podatke o naredbama na ESP8266, a zatim čitamo odgovor s Wi-Fi modula ESP8266.
nevažeće connect_wifi (Niz cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. funkcija sendwebdata () koristi se za slanje podataka na lokalni poslužitelj ili web stranicu.
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. void send () funkcija koristi se za slanje podatkovnih nizova u funkciju sendwebdata () . To će se dalje poslati na web stranicu.
void Pošalji () {webpage = "
Dobrodošli u Circuit Digest
"; sendwebdata (web stranica); web stranica = ime; web stranica + = dat;…………………7. funkcija get_ip () koristi se za dobivanje IP adrese lokalno stvorenog poslužitelja.
8. U void loop () funkciji, korisniku šaljemo upute za osvježavanje stranice i provjeravamo je li poslužitelj povezan. Kada korisnik osvježi ili zatraži web stranicu, podaci se automatski prenose na istu IP adresu.
petlja void () {k = 0; Serial.println ("Osvježite stranicu"); dok (k <1000)………………
Pomoću ovog postupka možemo prikazati sve podatke s Arduina na web stranicu, poput sobne temperature i vlažnosti, vremena sata, GPS koordinata, brzine otkucaja srca itd.
