WLAN na Arduino - priključite ESP8266-01 na Arduino in upravljajte NodeMCU Amica na daljavo s svojim pametnim telefonom
Arduino je ena najbolj znanih plošč za razvijalce. Na žalost v standardnih modelih ni nameščen čip Wi-Fi. Ta praktični nasvet vam prikazuje, kako povezati modul WLAN ESP8266-01 na Arduino in kako lahko na daljavo upravljate NodeMCU Amica s svojim pametnim telefonom.
S svojim pametnim telefonom upravljajte NodeMCU Amica
NodeMCU Amica ima različne zatiče, pa tudi vgrajen Wi-Fi čip ESP8266 in vtičnico microUSB. Zato je smiselno napravo uporabljati bolj kot samostojno napravo. Kako povezati "klasično" ploščo ESP8266 na Arduino, je opisano kasneje v članku.
- Če želite programirati čipe ESP, morate najprej prenesti in namestiti gonilnike za vse čipe CP210er iz Silicon Labs. Na srečo se to zgodi razmeroma hitro.
- Nato odprite Arduino IDE in pojdite na Nastavitve. Dodajte URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (brez narekovajev) dodatnim URL-jem skrbnika plošče. Nato zaženite skrbnika plošče, vnesite "ESP8266" in namestite paket.
- Pojdite tudi do upravitelja knjižnice, vnesite "Blynk" in namestite najnovejšo različico. Vse potrebne komponente so zdaj nameščene.
- Za upravljanje NodeMCU s svojim pametnim telefonom potrebujete aplikacijo Blynk. Če tega še niste storili, ustvarite tukaj nov račun ali se prijavite z obstoječim. Nato ustvarite nov projekt in izberite NodeMCU kot ploščo.
- Z vzorčnimi kodami v Arduino IDE najdite tudi kodo Blynk (→ "Boards_WiFi") na NodeMCU. Tukaj preprosto vnesite žeton Blynk svojega projekta, ki vam je bil samodejno poslan po e-pošti. Vnesite tudi svoj SSID in geslo.
- Če želite kodo naložiti na ploščo, jo morate seveda izbrati na zavihku "Orodja". V našem primeru je bilo treba izbrati "NodeMCU 1.0 (ESP12E modul)", frekvenco 80 MHz, velikost pomnilnika "4M (3M SPIFFS)" in hitrost prenosa 115200. Upoštevajte, da se lahko informacije razlikujejo glede na model.
- Nato lahko kodo preprosto naložite na ploščo in jo nadzorujete z aplikacijo Blynk. Tu lahko enostavno ustvarite različne pripomočke in na primer z gumbom upravljate LED.
Priključite WiFi na Arduino - ESP8266-01 na Arduino
Nato želimo povezati in uporabiti modul ESP8266-01 z Arduino.
- Če tablo obrnete tako, da bo kazala navzdol z zlato anteno, lahko v zgornjem levem kotu najdete zatič VCC, ki mora biti seveda nastavljen na VISOKO. Desno je zatič RST, ki ga običajno ne potrebujete uporabljati. CH_PD pin poleg njega mora biti znova nastavljen na HIGH. Zgoraj desno imamo pin TXD, ki oddaja signale, spodaj levo pa imamo RXD pin, ki sprejema signale, seveda. Na voljo imamo tudi GPIO0 in GPIO2, pa tudi klasični ozemljitveni zatič, ki se nahaja spodaj desno.
- Za uporabo modula na Arduinu je smiselno uporabljati SoftwareSerial, saj se HardwareSerial večinoma uporablja za komunikacijo med Arduino in osebnim računalnikom. V našem primeru pa modul uporablja 115200 kot hitrost prenosa, kar pomeni, da komunikacija med ESP in Arduino prek SoftwareSerial ni mogoča.
- Če želite spremeniti hitrost prenosa, mnogi uporabniki preprosto sprožijo novo strojno programsko opremo, ki omogoča drugačno hitrost prenosa. Vendar to ni nujno potrebno, saj lahko hitrost prenosa spremenite tudi z ukazom. Ta ukaz je "AT + UART_DEF". Na internetu lahko najdemo tudi druge ukaze, kot sta "AT + IPR" ali "AT + CIOBAUD", vendar to ni priporočljivo, saj lahko "AT + IPR" modul zruši tudi modul.
- Za pošiljanje ukaza na modul je priporočljivo, da ga povežete z osebnim računalnikom z USB-adapterjem, ki je ponavadi brezplačen ali pa ga v internetu najdete za približno en evro. Če nimate USB adapterja, lahko naročite enega prek spleta, kar je zelo priporočljivo, ali pa uporabite univerzalni adapter FTDI, ki je precej zapleten in pogosto ne deluje pravilno. Druga možnost je, da bomo pojasnili kasneje.
- Če ste modul povezovali z adapterjem na PC, lahko pošljete ukaz "AT + UART_DEF = 9600, 8, 1, 0, 0" s hitrostjo prenosa 115200 in CR + LF. Nato lahko ponovno povežete modul in pošljete ukaze s hitrostjo prenosa 9600.
- Nato morate programirati Arduino. Koda je razmeroma preprosta. Najprej določimo prazen niz z ukazom »String s =" ";«, uvozimo SoftwareSerial (»#include«) in ustvarimo nov program SoftwareSerial (»SoftwareSerial Serial_ESP (2, 3);«). V načinu nastavitve se začne povezava z ESP (»Serial_ESP.begin (9600);«) in povezava z osebnim računalnikom (»Serial.begin (9600);«). Če ESP pošlje signal, se ta doda nizu in niz nato izpelje v serijskem nadzorniku (»medtem ko (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). Nasprotno pa se signali, ki jih pošlje serijski monitor, to je računalnik, prenašajo tudi na ESP ("medtem ko (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}"). Vendar je zelo pomembno, da se celotna stvar pretvori v čar, saj ESP pošlje številke nazaj. Kodo lahko ponovno najdete v galeriji slik na koncu članka.
- Ko naložite kodo na Arduino, morate povezati ESP. Pozor! ESP namesto 5 V uporablja 3, 3 voltov. 5V to popolnoma prekinim. Ker pa Arduino deluje s 5V logiko, je treba napetost ustrezno prilagoditi.
- Teoretično lahko uporabljate delilnik napetosti z upori, vendar je v praksi celotna zadeva precej nenatančna in jo zlahka motite. Zato morate pretvornik logičnega nivoja preklopiti med Arduino in ESP.
- Priključite 5V pin Arduino na HV, to je visokonapetostni zatič na pretvorniku, in LV pin pretvornika na VCC pin ESP. Priključite tudi LV pin vzporedno s CH_PD pin ESP, tako da je čip tudi vklopljen. Da bi dobili dovolj toka, morate priključiti 3, 3V pin Arduino na LV pin pretvornika in s tem na VCC in CH_PD ESP. Zdaj priključite TX pin iz SoftwareSerial - v našem primeru pin 3 na Arduino - s HV 1, 2, 3 ali 4 in nasprotni LV pin z RXD zatičem na ESP. Ponovite ta korak tudi za RX zatič Arduino.
- Končno morate povezati tla. Če želite to narediti, priključite tla Arduino na tla na HV strani pretvornika. Nato priključite tla na LV strani na tla ESP. Končno morate povezati ozemljitev HV in NV ozemljitev.
- Zdaj lahko ukaze AT z računalnikom enostavno pošljete v ESP prek Arduino-ja. Arduino lahko preprosto povežete s svojim WiFi, ustvarite spletni strežnik in še veliko več. Preprosto dodajte ustrezne ukaze AT v kodo Arduino (v načinu nastavitve), ki jih je treba poslati ESP, kar lahko najdete tudi v "Naboru navodil AT".
- Če USB-adapter ni pripravljen, lahko z istim vezjem pošljete ukaz za spremembo hitrosti prenosa prek HardwareSerial z istim vezjem z Ardeino TX in RX zatiči, to je 0 in 1. Vendar ne pozabite ustrezno prilagoditi hitrosti prenosa v kodi.
V naslednjem praktičnem nasvetu vam bomo predstavili programski jezik Java.