Oglas

Wi-Fi je bitni dio opreme za bilo koji DIY projekat Interneta stvari (IoT), ali naš omiljeni Arduino ne dolazi s Wi-Fi-om, a dodavanjem Wi-Fi štita može ukupni trošak iznositi oko 40 USD. Što ako vam kažem da postoji arduino kompatibilna dev ploča s ugrađenim Wi-Fi-jem za manje od 10 dolara? Pa, postoji.

Upoznajte Arduino ubojicu: ESP8266. Bilo je samo pitanje vremena kad će vijenac ukrasti sjajnu glavu našeg dragog Arduinovog razvojnog odbora. Je li moguće zaljubiti se u sklopnu ploču?

Na stranu lijepa imena, ESP8266 (poznat i kao NodeMCU) prvotno je plasiran kao Wi-Fi dodatak s niskim cijenama za Arduino ploče, sve dok hakerska zajednica nije shvatila da možete Arduino izrezati iz jednadžbe u cijelosti.

Za manje od godinu dana, ESP8266 je brzo stekao popularnost i sada je tako dobro podržan i razvijen da ako trenutno koristite Arduino, trebate ustati i zabilježiti se. Kupite ga sada, slijedite ovaj vodič kako biste započeli s programiranjem vašeg ESP8266 - i to sve iz poznate Arduino IDE.

instagram viewer

Nisi ograničena samo na upotrebu Arduino IDE-a - oni su kompatibilni i sa Luaom (što liči na spušteni Python do mog novakinje oči), ali pošto to rješavamo iz perspektive onih koji smo naučili na Arduinu, to ćemo isključivo pokriti danas.

Trenutno ima dosta modela ESP8266, ali nastavit ću preporučiti ovaj: ESP-12E (poznata i pod nazivom NodeMCU 1.0 ili je to najnoviji brat NodeMCU 2.0).

Nešto je skuplje od ostalih (6,50 USD u odnosu na 4 $!), Ali uključuje serijski upravljački program potreban za programiranje čipa i ima ugrađeni regulator snage, kao i puno IO igle. Široko je podržana i stvarno ne treba ništa osim USB veze za programiranje ili napajanje, tako da je s njima najlakše raditi. Ako kupujete bilo koju drugu vrstu ESP8266 ploče, možda će vam trebati zasebni 3,3V regulator napajanja i odgovarajući FTDI priključak za programiranje.

Početak rada s ESP8266-12E i Arduinom

Prvi, instalirajte serijske upravljačke programe za ovu ploču. Možda ćete trebati onemogućivanje potpisivanja KEXT-a ako pokrećete El Capitan zbog novih sigurnosnih sustava.

Zatim moramo omogućiti podršku za ESP8266 od upravitelja odbora Arduino IDE. Otvorite postavke i unesite sljedeći URL gdje piše Dodatni URL-ovi upravitelja odbora:

URL-ovi upravitelja ploče arduino

Pritisnite OK, a zatim otvorite Upravitelj odbora iz Alati -> Ploča izbornika, potražite esp8266 i instalirajte platformu. Sada bi trebali vidjeti izbor za NodeMCU 1.0.

odaberite ploču

Ostavite CPU i prenesite brzinu kakva je, i odaberite svoj novoinstalirani serijski ulaz. Na Macu se ovo čini kao cu. SLAB_USBtoUART.

Kao prvi program predložio bih jednostavan Wi-Fi skener - pronađite ga Datoteka -> Primjeri -> ESP8266WiFi -> WifiScan. Imajte na umu da je prijenos prilično spor, ali na kraju će reći "dovršeno učitavanje" i u tom trenutku (ne prije ili ćete prekinuti postupak prijenosa) možete otvoriti serijski monitor. Trebali biste vidjeti nešto slično ovome:

wifi testiranje esp8266
Uspjeh! A sad, pokušajmo se povezati s jednim.

Evo apsolutno jednostavnog kôda bez baze za spajanje na Wi-Fi mrežu. To ne radi ništa drugo nego samo spajanje, ali to je nešto što možete dodati kasnije. Ne zaboravite da promijenite YOUR_SSID i YOUR_PASSWORD u svoje podatke o Wi-Fi-u. Učitajte, otvorite serijsku konzolu i vidjeli biste da se spaja.

 #include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; void setup () {Serial.begin (115200); Serial.print ("Spajanje na"); Serijski.println (ssid); WiFi.begin (ssid, lozinka); dok (WiFi.status ()! = WL_CONNECTED) {kašnjenje (500); Serial.print ( ""); } Serial.println (""); Serial.println ("WiFi spojen"); Serial.println ("IP adresa:"); Serijski.println (WiFi.localIP ()); } void petlja () {}

Nije li sjajno koliko je to bilo smiješno?

Prije nego što nastavimo, evo dijagrama dijagrama - možda će nam biti korisno kasnije. Imajte na umu da su brojevi pinova navedeni u kodu GPIO brojevi, a ne D0-16 koji su vjerojatno napisani na PCB ploči. Ako apsolutno ne možete shvatiti zašto senzor ne radi, vjerojatno ste pomiješali brojeve iglica.

NodeMCU__v1.0_pinout

Brzi senzor Smart Home s MQTT i DHT11

Evo praktičnog primjera koji možete odmah koristiti za nadgledanje svog doma. Dodavat ćemo DHT11 senzor temperature i vlažnosti, a zatim izvijestiti vrijednosti pomoću MQTT protokola preko Wi-Fi mreže, u mom slučaju do OpenHAB DIY sustava za automatizaciju domova (ako ne, možda ćete htjeti pročitati naše početnici vodič za pokretanje i pokretanje OpenHAB-a na Raspberry Pi Prvi koraci s OpenHAB kućnom automatizacijom na Raspberry PiOpenHAB je zrela platforma za kućnu automatizaciju otvorenog koda koja radi na različitim hardverima i jest protokol agnostički, što znači da se može povezati s gotovo svim hardverom kućne automatizacije na tržištu danas. Čitaj više i 2. dio koji se posebno bavi instaliranje MQTT poslužitelja OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i grafikoniOpenHAB, softver otvorenog koda za automatizaciju kuća, daleko nadmašuje mogućnosti drugih sustava za automatizaciju kućnih automata na tržištu - ali nije lako postaviti to. U stvari, to može biti ravno frustrirajuće. Čitaj više ).

Na strani ožičenja priključite DHT senzor GND, 3.3V, i -D4 (ili GPIO 2). To je sve što nam treba za sada.

preuzimanje datoteka ove MQTT i DHT knjižnice. Čak i ako ih već imate, ionako ih preuzmite, sigurnosno kopirajte sve što imate i prebrisati s tim. Najnovija biblioteka DHT11 tvrtke Adafruit koristi automatski algoritam za određivanje brzine kojom podaci se čitaju s senzora, ali to je gadno na ESP8266 i 90% vremena rezultira neuspjehom čitanja.

Sa starom verzijom biblioteke 1.0 koju sam uključio u preuzimanje možete ručno promijeniti vremenski raspored: 11 najbolje radi za ove ESP2866 ploče. Prošao sam i mnogo primjeraka MQTT biblioteke pokušavajući pronaći jedan dobar uzvratiti poziv funkcija, konačno slijetanje na uključenu. Nakon što ih zamijenite, morat ćete ponovo pokrenuti Arduino IDE.

Evo potpuni kod projekta. Na vrhu su sve varijable koje morate promijeniti, uključujući detalje Wi-Fi-ja, MQTT poslužitelja (može se koristiti URL umjesto toga koristite oblačni poslužitelj, iako nema provjeru autentičnosti) i kanale za objavljivanje podataka.

Evo kako to funkcionira i nekoliko napomena:

  • Prvo se povezujemo na Wi-Fi, zatim na MQTT poslužitelj, a zatim započinjemo glavni petlja().
  • U petlji anketiramo DHT senzor svakih 60 sekundi i objavimo očitanja na relevantnim MQTT kanalima. Ponovno, ako vam većina čitanja rezultira porukom neuspjeha, imate pogrešnu verziju DHT knjižnice - nadogradite je na v1.0.
  • client.loop () prosljeđuje kontrolu biblioteci MQTT, omogućujući joj da reagira na dolazne poruke.
  • Tamo je messageReceived () funkcija u kojoj obrađujemo dolazne poruke - učinite jednostavnu if izjavu da biste uporedili korisni teret s porukom koju očekujete. Na primjer, to možete koristiti za aktiviranje releja.
  • Nakon nekoliko dana, otkrio sam da će nasumično prestati raditi - pretpostavljam da je to neka vrsta curenja memorije, ali s obzirom Nemam vještinu kodiranja kako bih se bavio time, a možda je to i sa osnovnim bibliotekama, odlučio sam se za jednostavno softversko resetiranje svake dan. Točno dan nakon što se čvorovi prvi put aktiviraju, oni će se ponovo pokrenuti.
  • Prilikom napajanja ovih jeftinih DHT11 modula od 3,3 V, vrijednosti vlage su daleko niže nego što bi trebale biti. To sam riješio jednostavnim množenjem i kalibriran u odnosu na komercijalni senzor. Savjetujem vam da se potvrdite i protiv vlastitog poznatog izvora prije nego se oslonite na čitanja. Alternativno, napajajte ih 5V - ali morate postaviti razvodnik logičke razine 5v-3.3v između podatkovnog pina i ESP8266, ili ćete ga oštetiti.

Ako je sve prošlo dobro, sada biste trebali primati očitanja senzora u vašem MQTT brokeru i možete nastaviti s povezivanjem istih u OpenHAB kao što je detaljnije u dio 2 našeg vodiča za početnike OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i grafikoniOpenHAB, softver otvorenog koda za automatizaciju kuća, daleko nadmašuje mogućnosti drugih sustava za automatizaciju kućnih automata na tržištu - ali nije lako postaviti to. U stvari, to može biti ravno frustrirajuće. Čitaj više , gdje sam vam također pokazao kako graficirati podatke.

graf vlažnosti iz openhaba

Zbogom Arduino, tako smo te voljeli. Šalim se: nije svugdje u mojoj kući moguće dobiti čak ni Wi-Fi, pa će mi za te spotove trebati mrežna mreža s Arduino i RF prijemnicima.

Za zabavan projekt pogledajte kako napraviti gumb Wi-Fi s ESP8266 Kako napraviti svoj vlastiti gumb spojen na Wi-Fi pomoću ESP8266U ovom ćete vodiču naučiti kako stvoriti gumb s omogućenom Wi-Fi mrežom pomoću NodeMCU i IFTTT. Čitaj više .

Ali što ćete napraviti s ESP8266? Bilo koji projekat koji koristi ESP8266 želite vidjeti napisan u MakeUseOf? Javite nam u komentarima!

James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.