Langaton tiedonsiirto elektronisten laitteiden ja moduulien välillä on erittäin tärkeää, jotta niistä tulisi sopivia esineiden internetin maailmaan. HTTP-protokolla ja HTML-kieli ovat mahdollistaneet tietojen siirtämisen kaikkialle maailmaan, verkon kautta. Olemme jo käsitelleet joitain projekteja, jotka käyttävät Wi-Fi-yhteyttä Arduinon kanssa, tutustu niihin Aloitus:
- Sähköpostin lähettäminen Arduino- ja ESP8266 WiFi -moduulilla
- WiFi-ohjattu robotti, joka käyttää Arduinoa
- RGB-LEDien hallinta Arduinolla ja Wi-Fi: llä
Nyt tässä opetusohjelmassa rakennamme ohjelmaa tietojen lähettämiseksi Webiin Arduino- ja Wi-Fi-moduulien avulla. Tätä varten tarvitsemme ensin joko globaalin tai paikallisen palvelimen IP-osoitteen, tässä käytämme paikallista palvelinta helpottamiseksi ja esittelyä varten.
Vaaditut komponentit:
- Arduino UNO
- ESP8266 Wi-Fi -moduuli
- USB kaapeli
- Johtojen liittäminen
- Kannettava tietokone
- Virtalähde
Wi-Fi-moduuli ESP8266:
Piiriliitännät:
Piirikaavio “Lähetä tiedot Arduinosta verkkoon” on annettu alla. Tarvitsemme pääasiassa Arduino- ja ESP8266-Wi-Fi-moduulia. ESP8266: n Vcc- ja GND-nastat on kytketty suoraan 3,3 V: iin ja Arduinon GND ja CH_PD on myös kytketty 3,3 V: n jännitteisiin. ESP8266: n Tx- ja Rx-nastat on kytketty suoraan Arduinon nastoihin 2 ja 3. Ohjelmistosarjakirjastoa käytetään sallimaan sarjaliikenne Arduinon nastoilla 2 ja 3. Olemme jo käsitelleet ESP8266 Wi-Fi -moduulin liittämisen Arduinoon yksityiskohtaisesti.
Käyttämällä tässä ohjelmistosarjakirjastoa, olemme sallineet sarjaliikenteen pin 2 ja 3, ja tehneet niistä Rx ja Tx vastaavasti. Oletusarvoisesti Arduinon nastoja 0 ja 1 käytetään sarjaliikenteeseen, mutta käyttämällä SoftwareSerial-kirjastoa voimme sallia sarjaliikenteen muilla Arduinon digitaalisilla nastoilla.
Huomaa: Jos haluat katsella ESP8266: n vastausta sarjakuvaruudulla, avaa Serdu Monitor of Arduino IDE.
Työselitys:
Ensinnäkin meidän on liitettävä Wi-Fi-moduulimme Wi-Fi-reitittimeen verkkoyhteyttä varten. Sitten konfiguroimme paikallisen palvelimen, lähetämme tiedot verkkoon ja lopulta suljet yhteyden. Tämä prosessi ja komennot on selitetty alla olevissa vaiheissa:
1. Meidän on ensin testattava Wi-Fi-moduuli lähettämällä AT- komento, se palauttaa vastauksen, joka sisältää OK .
2. Tämän jälkeen meidän on valittava tila komennolla AT + CWMODE = mode_id , olemme käyttäneet Mode id = 3. Tilan tunnukset:
1 = Asematila (asiakas)
2 = AP-tila (isäntä)
3 = AP + Asematila (Kyllä, ESP8266: lla on kaksoistila!)
3. Meidän on nyt irrotettava Wi-Fi-moduulimme aiemmin yhdistetystä Wi-Fi-verkosta komento AT + CWQAP, koska ESP8266 on oletusarvoinen automaattinen yhteys mihin tahansa aiemmin käytettävissä olevaan Wi-Fi-verkkoon
4. Tämän jälkeen käyttäjä voi nollata moduulin AT + RST -komennolla. Tämä vaihe on valinnainen.
5. Nyt meidän on yhdistettävä ESP8266 Wi-Fi-reitittimeen käyttämällä annettua komentoa
6. Hanki nyt IP-osoite käyttämällä annettua komentoa:
Se palauttaa IP-osoitteen.
7. Ota nyt käyttöön multipleksitila käyttämällä AT + CIPMUX = 1 (1 usealle ja 0 yhdelle yhteydelle)
8. Määritä nyt ESP8266 palvelimeksi käyttämällä AT + CIPSERVER = 1, port_no (portti voi olla 80). Nyt Wi-Fi on valmis. Tässä '1' käytetään palvelimen luomiseen ja '0' palvelimen poistamiseen.
9. Käyttäjä voi nyt antaa tietyn komennon avulla tietoja paikalliselle luotulle palvelimelle:
Id = tunnusnumero lähetysyhteydestä
Pituus = Tiedon enimmäispituus on 2 kt
10. Lähetettyämme tunnuksen ja pituuden palvelimelle meidän on lähetettävä tietoja, kuten: Serial.println (“[email protected]”);
11. Tietojen lähettämisen jälkeen yhteys on suljettava annetulla komennolla:
Nyt tiedot on lähetetty paikalliselle palvelimelle.
12. Kirjoita nyt IP-osoite Web-selaimen osoiteriville ja paina Enter. Nyt käyttäjä voi nähdä lähetetyt tiedot verkkosivulla.
Tarkista alla oleva video loppuun.
Ohjelmoinnin vaiheet:
1. Sisällytä SoftwareSerial Library, jotta sarjaliikenne voidaan sallia PIN 2: lla ja 3: lla, ja ilmoita muuttujat ja merkkijonot.
#sisältää
2. Tämän jälkeen meidän on määriteltävä joitain toimintoja haluamiemme tehtävien suorittamiseksi.
In Setup () funktio, olemme alustaa sisäänrakennettu UART viestintään ESP8266 kuten client.begin (9600); baudinopeudella 9600.
void setup () {Sarja.alku (9600); asiakas.alku (9600); wifi_init (); Serial.println ("Järjestelmävalmis.."); }
3. Toiminnossa wifi_init () alustamme wifi-moduulin lähettämällä joitain komentoja, kuten nollaus, asetustila, yhteyden muodostaminen reitittimeen, yhteyden määrittäminen jne. Nämä komennot on myös selitetty yllä kuvausosassa.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Connect_wifi () -toiminnossa lähetämme komentotiedot ESP8266: lle ja luemme vastauksen ESP8266 Wi-Fi -moduulista.
void connect_wifi (Merkkijono cmd, int t) {int temp = 0, i = 0; kun taas (1) {Sarja.tulosln (cmd);…………………
5. sendwebdata () -toimintoa käytetään tietojen lähettämiseen paikalliselle palvelimelle tai verkkosivulle.
void sendwebdata (String webPage) {int ii = 0; while (1) {allekirjoittamaton int l = verkkosivun pituus [); Sarja.tulos ("AT + CIPSEND = 0"); client.print ("AT + CIPSEND = 0");…………………
6. void send () -toimintoa käytetään datajonojen lähettämiseen sendwebdata () -toimintoon. Se lähetetään edelleen verkkosivulle.
void Lähetä () {webpage = "
Tervetuloa Circuit Digestiin
"; sendwebdata (verkkosivu); webpage = nimi; webpage + = dat;…………………7. get_ip () -toimintoa käytetään paikallisen luodun palvelimen IP-osoitteen saamiseen.
8. Void loop () -toiminnossa lähetämme käyttäjälle ohjeet sivun päivittämiseksi ja tarkistamme, onko palvelin kytketty. Kun käyttäjä päivittää tai pyytää verkkosivua, tiedot lähetetään automaattisesti samaan IP-osoitteeseen.
tyhjä silmukka () {k = 0; Serial.println ("Päivitä sivu"); kun (k <1000)………………
Voimme näyttää kaikki tiedot Arduinosta verkkosivulle tällä prosessilla, kuten huonelämpötila ja kosteus, kelloaika, GPS-koordinaatit, syke jne.