Bezvadu sakari starp elektroniskām ierīcēm un moduļiem ir ļoti svarīgi, lai tie būtu piemēroti lietiskā interneta pasaulē. HTTP protokols un HTML valoda ir ļāvusi datus tiešsaistē pārsūtīt jebkur pasaulē. Mēs jau esam apskatījuši dažus projektus, kas izmanto Wi-Fi ar Arduino, apskatiet tos, lai sāktu darbu:
- E-pasta ziņojumu sūtīšana, izmantojot Arduino un ESP8266 WiFi moduli
- WiFi vadāms robots, izmantojot Arduino
- RGB LED vadība, izmantojot Arduino un Wi-Fi
Tagad šajā apmācībā mēs veidojam programmu datu nosūtīšanai tīmeklim, izmantojot Arduino un Wi-Fi moduli. Lai to izdarītu, mums vispirms ir nepieciešama globālā vai lokālā servera IP adrese, lai izmantotu vietējo serveri, ērtības un demonstrēšanas nolūkos.
Nepieciešamās sastāvdaļas:
- Arduino UNO
- ESP8266 Wi-Fi modulis
- USB kabelis
- Savienojošie vadi
- Klēpjdators
- Enerģijas padeve
Wi-Fi modulis ESP8266:
Ķēdes savienojumi:
Shēmas “Post dati no Arduino uz Web” shēma ir dota zemāk. Mums galvenokārt vajadzīgs Arduino un ESP8266 Wi-Fi modulis. ESP8266 Vcc un GND tapas ir tieši savienotas ar 3.3V, un Arduino GND un CH_PD ir savienotas arī ar 3.3V. ESP8266 Tx un Rx tapas ir tieši savienotas ar Arduino 2. un 3. tapu. Programmatūras sērijas bibliotēka tiek izmantota, lai atļautu sērijveida saziņu Arduino 2. un 3. tapā. Mēs jau detalizēti aplūkojām Wi-Fi moduļa ESP8266 saskarni ar Arduino.
Šeit izmantojot programmatūras sērijas bibliotēku, mēs esam atļāvuši sērijveida saziņu 2. un 3. tapā un attiecīgi padarījām tos par Rx un Tx. Pēc noklusējuma Arduino 0 un 1 tapas tiek izmantotas sērijveida saziņai, taču, izmantojot SoftwareSerial bibliotēku, mēs varam atļaut seriālu saziņu ar citām Arduino digitālajām tapām.
Piezīme. Lai sērijveida monitorā skatītos ESP8266 atbildi, lūdzu, atveriet Arduino IDE sērijas monitoru.
Darba skaidrojums:
Vispirms mums ir jāpievieno mūsu Wi-Fi modulis Wi-Fi maršrutētājam, lai izveidotu savienojumu ar tīklu. Tad mēs konfigurēsim vietējo serveri, nosūtīsim datus uz Web un visbeidzot aizveriet savienojumu. Šis process un komandas ir izskaidrotas šādās darbībās:
1. Vispirms mums jāpārbauda Wi-Fi modulis, nosūtot komandu AT , tas atgriezīs atbildi ar OK .
2. Pēc tam mums jāizvēlas režīms, izmantojot komandu AT + CWMODE = mode_id , mēs esam izmantojuši Mode id = 3. Režīmu ID:
1 = stacijas režīms (klients)
2 = AP režīms (resursdators)
3 = AP + stacijas režīms (jā, ESP8266 ir divējāds režīms!)
3. Tagad mums ir jāatvieno Wi-Fi modulis no iepriekš pievienotā Wi-Fi tīkla, izmantojot komandu AT + CWQAP, jo ESP8266 ir noklusējuma automātiskais savienojums ar jebkuru iepriekš pieejamo Wi-Fi tīklu.
4. Pēc tam lietotājs var atiestatīt moduli ar komandu AT + RST . Šis solis nav obligāts.
5. Tagad mums ir jāpieslēdz ESP8266 Wi-Fi maršrutētājam, izmantojot norādīto komandu
6. Tagad iegūstiet IP adresi, izmantojot norādīto komandu:
Tas atgriezīs IP adresi.
7. Tagad iespējojiet multipleksu režīmu, izmantojot AT + CIPMUX = 1 (1 vairākiem savienojumiem un 0 vienam savienojumam)
8. Tagad konfigurējiet ESP8266 kā serveri, izmantojot AT + CIPSERVER = 1, port_no (ports var būt 80). Tagad jūsu Wi-Fi ir gatavs. Šeit "1" tiek izmantots, lai izveidotu serveri, un "0", lai izdzēstu serveri.
9. Tagad, izmantojot doto komandu, lietotājs var nosūtīt datus uz vietējo izveidoto serveri:
Id = ID nr. pārraides savienojuma
Garums = Maksimālais datu garums ir 2 kb
10. Pēc ID un garuma nosūtīšanas uz serveri mums jānosūta šādi dati: Serial.println (“[email protected]”);
11. Pēc datu nosūtīšanas mums ir jāaizver savienojums ar norādīto komandu:
Tagad dati ir pārsūtīti uz vietējo serveri.
12. Tagad tīmekļa pārlūkprogrammas adreses joslā ierakstiet IP adrese un nospiediet taustiņu Enter. Tagad lietotājs var redzēt pārsūtītos datus tīmekļa vietnē.
Lai pabeigtu procesu, pārbaudiet tālāk redzamo videoklipu.
Programmēšanas soļi:
1. Iekļaujiet SoftwareSerial Library, lai atļautu sērijveida saziņu ar PIN 2 un 3 un deklarētu dažus mainīgos un virknes.
# iekļaut
2. Pēc tam mums ir jādefinē dažas funkcijas vēlamo uzdevumu veikšanai.
In Setup () funkciju, mēs inicializētu iebūvēts sērijas UART sakarus ESP8266 kā client.begin (9600); ar pārraides ātrumu 9600.
void setup () {Sērijas.sākt (9600); klients. sākums (9600); wifi_init (); Serial.println ("Sistēma gatava.."); }
3. Funkcijā wifi_init () mēs inicializējam wifi moduli, nosūtot dažas komandas, piemēram, atiestatīšana, iestatīšanas režīms, savienojuma izveide ar maršrutētāju, konfigurēšanas savienojums utt. Šīs komandas ir arī paskaidrotas iepriekš aprakstā.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Funkcijā connect_wifi () mēs nosūtīt komandu datus uz ESP8266 un pēc tam nolasīt atbildi no ESP8266 Wi-Fi moduļa.
void connect_wifi (virkne cmd, int t) {int temp = 0, i = 0; kamēr (1) {Serial.println (cmd);…………………
5. Sendwebdata () funkcija tiek izmantota datu nosūtīšanai uz vietējo serveri vai vietni.
void sendwebdata (String webPage) {int ii = 0; while (1) {neparakstīts int l = webPage.length (); Serial.print ("AT + CIPSEND = 0"); client.print ("AT + CIPSEND = 0,");…………………
6. funkcija void send () tiek izmantota datu virkņu sūtīšanai uz sendwebdata () funkciju. Tas tiks tālāk nosūtīts uz tīmekļa vietni.
void Sūtīt () {webpage = "
Laipni lūdzam Circuit Digest
"; sendwebdata (webpage); webpage = name; webpage + = dat;…………………7. get_ip () funkcija tiek izmantota vietējā izveidotā servera IP adreses iegūšanai.
8. Funkcijā void loop () mēs nosūtām instrukcijas lietotājam par lapas atsvaidzināšanu un pārbaudām, vai serveris nav savienots. Kad lietotājs atsvaidzina vai pieprasa vietni, dati automātiski tiek pārsūtīti uz to pašu IP adresi.
tukšuma cilpa () {k = 0; Serial.println ("Lūdzu, atsvaidziniet savu lapu"); kamēr (k <1000)………………
Izmantojot šo procesu, mēs varam parādīt visus datus no Arduino uz vietni, piemēram, istabas temperatūra un mitrums, pulksteņa laiks, GPS koordinātas, sirdsdarbības ātrums utt.