Bezdrôtová komunikácia medzi elektronickými zariadeniami a modulmi je veľmi dôležitá, aby boli „fit“ vo svete internetu vecí. Protokol HTTP a jazyk HTML umožnili prenos údajov kamkoľvek na svete, cez web. Niektoré projekty, ktoré používajú Wi-Fi, sme sa už zaoberali pomocou Arduina, pozrite si ich v úvodnej časti:
- Posielanie e-mailov pomocou modulu Arduino a modulu WiFi ESP8266
- WiFi riadený robot pomocou Arduina
- Ovládanie RGB LED pomocou Arduina a Wi-Fi
Teraz v tomto výučbe budujeme program na odosielanie údajov na web pomocou modulu Arduino a Wi-Fi. K tomu najskôr potrebujeme IP adresu globálneho alebo lokálneho servera, tu pre ľahkosť a demonštračné účely používame lokálny server.
Požadované komponenty:
- Arduino UNO
- Modul Wi-Fi ESP8266
- USB kábel
- Pripojovacie vodiče
- Notebook
- Zdroj
Modul Wi-Fi ESP8266:
Pripojenie obvodu:
Schéma zapojenia „Zverejňovanie údajov z Arduina na web“ je uvedená nižšie. Potrebujeme hlavne modul Arduino a Wi-Fi ESP8266. Kolíky Vcc a GND ESP8266 sú priamo pripojené k 3,3 V a GND Arduina a CH_PD je tiež pripojené k 3,3 V. Kolíky Tx a Rx ESP8266 sú priamo pripojené k pinom 2 a 3 Arduina. Softvérová sériová knižnica sa používa na umožnenie sériovej komunikácie na pinoch 2 a 3 Arduina. Prepojenie Wi-Fi modulu ESP8266 na Arduino sme už podrobne pokryli.
Použitím softvérovej sériovej knižnice tu sme povolili sériovú komunikáciu na pinoch 2 a 3 a vytvorili sme z nich Rx a Tx. V predvolenom nastavení sa pin 0 a 1 Arduina používajú na sériovú komunikáciu, ale pomocou knižnice SoftwareSerial môžeme povoliť sériovú komunikáciu na iných digitálnych pinoch Arduina.
Poznámka: Ak chcete sledovať odozvu ESP8266 na sériovom monitore, otvorte Serial Monitor Arduino IDE.
Pracovné vysvetlenie:
Najskôr musíme pripojiť náš modul Wi-Fi k smerovaču Wi-Fi, aby bolo možné sieťové pripojenie. Potom nakonfigurujeme lokálny server, pošleme údaje na web a nakoniec ukončíme pripojenie. Tento proces a príkazy boli vysvetlené v nasledujúcich krokoch:
1. Najprv musíme otestovať modul Wi-Fi zaslaním príkazu AT , vráti späť odpoveď obsahujúcu OK .
2. Potom musíme zvoliť režim pomocou príkazu AT + CWMODE = mode_id , použili sme Mode id = 3. ID režimu:
1 = režim stanice (klient)
2 = režim AP (hostiteľ)
3 = režim AP + stanica (áno, ESP8266 má duálny režim!)
3. Teraz musíme odpojiť náš modul Wi-Fi od predtým pripojenej siete Wi-Fi pomocou príkazu AT + CWQAP, pretože ESP8266 je predvolene automaticky pripojený k akejkoľvek predtým dostupnej sieti Wi-Fi.
4. Potom môže užívateľ resetovať modul príkazom AT + RST . Tento krok je voliteľný.
5. Teraz musíme pomocou zadaného príkazu pripojiť ESP8266 k Wi-Fi routeru
6. Teraz pomocou zadaného príkazu získajte IP adresu:
Vráti adresu IP.
7. Teraz povoľte režim multiplex pomocou AT + CIPMUX = 1 (1 pre viacnásobné pripojenie a 0 pre jednoduché pripojenie)
8. Teraz nakonfigurujte ESP8266 ako server pomocou AT + CIPSERVER = 1, port_no (port môže byť 80). Teraz je vaša Wi-Fi pripravená. Tu sa na vytvorenie servera používa „1“ a na vymazanie servera „0“.
9. Teraz pomocou zadaného príkazu môže užívateľ posielať dáta na lokálny server:
Id = IČO. prenosového spojenia
Dĺžka = maximálna dĺžka dát je 2 kb
10. Po odoslaní ID a dĺžky na server musíme odoslať údaje ako: Serial.println („[email protected]“);
11. Po odoslaní údajov potrebujeme ukončiť spojenie daným príkazom:
Teraz boli dáta prenesené na lokálny server.
12. Teraz zadajte adresu IP do panela s adresou vo webovom prehliadači a stlačte kláves Enter. Teraz môže používateľ vidieť prenesené údaje na webovej stránke.
Celý proces nájdete na videu nižšie.
Kroky programovania:
1. Zahrňte softvérovú knižnicu softvéru, ktorá umožňuje sériovú komunikáciu na PIN 2 a 3, a deklarujte niektoré premenné a reťazce.
#include
2. Potom musíme definovať niektoré funkcie na vykonávanie požadovaných úloh.
Vo funkcii Setup () inicializujeme zabudovanú sériovú komunikáciu UART pre ESP8266 ako client.begin (9600); pri prenosovej rýchlosti 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Systém pripravený.."); }
3. Vo funkcii wifi_init () inicializujeme modul wifi zaslaním niektorých príkazov ako reset, nastavenie režimu, pripojenie k routeru, konfigurácia pripojenia atď. Tieto príkazy boli tiež vysvetlené vyššie v časti s popisom.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5 000);…………………
4. Vo funkcii connect_wifi () odosielame údaje príkazov na ESP8266 a potom načítame odpoveď z modulu Wi-Fi ESP8266.
void connect_wifi (reťazec cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. funkcia sendwebdata () sa používa na odosielanie údajov na miestny server alebo webovú stránku.
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. funkcia void send () sa používa na zasielanie dátových reťazcov do funkcie sendwebdata () . To sa ďalej odošle na webovú stránku.
void Send () {webpage = "
Vitajte v prehľade okruhov
"; sendwebdata (webová stránka); webová stránka = meno; webová stránka + = údaje;…………………7. funkcia get_ip () slúži na získanie IP adresy lokálne vytvoreného servera.
8. Vo funkcii void loop () pošleme používateľovi inštrukciu na obnovenie stránky a skontrolujeme, či je server pripojený alebo nie. Keď používateľ obnoví alebo požiada o webovú stránku, údaje sa automaticky prenesú na rovnakú adresu IP.
neplatná slučka () {k = 0; Serial.println ("Obnovte stránku"); while (k <1000)………………
Pomocou tohto procesu môžeme zobraziť akékoľvek údaje z Arduina na webovú stránku, ako napríklad teplota a vlhkosť v miestnosti, čas, GPS súradnice, tepová frekvencia atď.