Upoznajte Arduino Killer ESP8266

  • Mark Lucas
  • 0
  • 3350
  • 322
Oglas

Wi-Fi je bitni dio opreme za bilo koji DIY projekat Interneta stvari (IoT), ali naš omiljeni Arduino ne dolazi s Wi-Fi-jem, a dodavanje Wi-Fi štit može dovesti do ukupnih troškova oko 40 USD. Što ako vam kažem da postoji Arduino kompatibilna 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 da se zaljubite u sklopnu ploču?

Na stranu lažna imena, ESP8266 (poznat i kao NodeMCU) prvobitno je plasiran kao dodatak Wi-Fi za jeftine Wi-Fi uređaje 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 raširivao svoju popularnost, a sada je tako dobro podržan i razvijen da ako trenutno koristite Arduino, morate ustati i zabilježiti se. Kupite ga sada, a zatim slijedite ovaj vodič kako biste započeli s programiranjem vašeg ESP8266 - i to sve iz poznatog Arduino IDE-a.

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

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

Nešto je skuplje od ostalih (6,50 dolara u odnosu na 4 dolara!), Ali uključuje serijski upravljački program potreban za programiranje čipa, i ima ugrađeni regulator snage, kao i puno IO pinova. Š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,3 V regulator i odgovarajući FTDI priključak za programiranje.

Početak rada s ESP8266-12E i Arduinom

Prvo, instalirajte serijske upravljačke programe za ovu ploču. Možda ćete trebati onemogućiti potpisivanje 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:

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.

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 vam 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 “gotov prijenos” i u tom trenutku (ne prije, ili ćete prekinuti postupak prijenosa), možete otvoriti serijski monitor. Trebali biste vidjeti nešto slično ovome:


Uspjeh! Pokušajmo se povezati s jednim.

Evo apsolutno jednostavnog kôda bez baze za povezivanje s Wi-Fi mrežom. 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"); Serial.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:"); Serial.println (WiFi.localIP ());  void petlja () 

Zar nije sjajno koliko je to bilo smiješno?

Prije nego što nastavimo, evo sheme dijagrama - on će možda biti koristan 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, vjerovatno ste izmiješali brojeve iglica.

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 o vrijednostima pomoću MQTT protokola preko Wi-Fi mreže, u mom slučaju u sustavu kućne automatizacije OpenHAB DIY (ako ne, možda biste željeli pročitati naš vodič za početnike na početak OpenHAB-a i rad na Raspberry Pi Uvod u OpenHAB Home Automation na Raspberry Pi Uvod u OpenHAB Home Automation na Raspberry Pi OpenHAB je zrela platforma za kućnu automatizaciju otvorenog koda koja se izvodi na različitim hardverima i protokolarna je, što znači može se povezati s gotovo svim hardverom za kućnu automatizaciju na tržištu danas., i 2. dio, koji se posebno bavi instaliranjem MQTT poslužitelja OpenHAB Vodič za početnike 2. dio: ZWave, MQTT, Pravila i crtanje OpenHAB Vodiča za početnike 2. dio: ZWave, MQTT, Pravila i grafički priručnik OpenHAB, softver otvorenog koda za automatizaciju domova, daleko nadmašuje mogućnosti ostalih sustava za automatizaciju domova na tržištu - ali to nije lako postaviti. U stvari, to je c biti ravno frustrirajuć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.

Preuzmite ove MQTT i DHT knjižnice. Čak i ako ih već imate, preuzmite ih svejedno, napravite sigurnosnu kopiju onoga što imate i prebrisati s tim. Najnovija biblioteka DHT11 iz Adafruit koristi automatski algoritam za određivanje brzine kojom se podaci očitavaju sa senzora, ali to je buka na ESP8266 i 90% vremena rezultira neuspjelim očitanjem.

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 potpunog koda za projekt. Na vrhu su sve varijable koje morate promijeniti, uključujući detalje o Wi-Fi-u, MQTT poslužitelj (URL se umjesto toga može koristiti ako koristite oblačni poslužitelj, premda nema provjere autentičnosti) i kanale za objavljivanje podataka na.

Evo kako to djeluje 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 objavljujemo 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 što sam ih izveo nekoliko dana, otkrio sam da će nasumično prestati raditi - pretpostavljam da je to neka vrsta propuštanja memorije, ali s obzirom da nemam vještinu kodiranja kako bih se nosio s tim i to bi moglo biti sa osnovnim bibliotekama, Odlučio sam se za jednostavno meko resetiranje svakog dana. Točno dan nakon što se čvorovi senzora 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 svom MQTT brokeru i možete nastaviti s povezivanjem njih na OpenHAB kao što je detaljno opisano u 2. dijelu našeg vodiča za početnike OpenHAB vodič za početnike 2. dio: ZWave, MQTT, Pravila i crtanje OpenHAB početnika Vodič 2. dio: ZWave, MQTT, Pravila i grafikoni OpenHAB, softver za automatizaciju kuća otvorenog koda, daleko nadmašuje mogućnosti ostalih sustava za automatizaciju domova na tržištu - ali nije ih lako postaviti. U stvari, to može biti ravno frustrirajuće. , gdje sam vam također pokazao kako graficirati podatke.

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 zabavni projekt, pogledajte kako napraviti gumb Wi-Fi pomoću ESP8266 Kako napraviti svoj vlastiti gumb spojen na Wi-Fi pomoću ESP8266 Kako napraviti svoj vlastiti gumb spojen na Wi-Fi pomoću ESP8266 U ovom ćete vodiču naučiti kako stvoriti gumb s omogućenom Wi-Fi mrežom pomoću NodeMCU i IFTTT. .

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




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.