Skelbimas

„Wi-Fi“ yra būtinas rinkinys bet kokiems daiktų interneto (IoT) „pasidaryk pats“ projektams, tačiau mūsų mėgstamiausiame „Arduino“ nėra „Wi-Fi“, o pridedant „Wi-Fi“ skydą bendrosios išlaidos gali sudaryti apie 40 USD. O kas, jei aš jums pasakyčiau, kad yra „Arduino“ suderinama „dev“ plokštė su įmontuotu „Wi-Fi“ už mažiau nei 10 USD? Na, yra.

Susipažinkite su Arduino žudiku: ESP8266. Buvo tik laiko klausimas, kada vainikas buvo pavogtas iš blizgančios mūsų brangios Arduino plėtros tarybos galvos. Ar įmanoma įsimylėti plokštę?

Neįdomūs pavadinimai, ESP8266 (dar žinomas kaip „NodeMCU“) iš pradžių buvo parduodamas kaip nebrangus „Wi-Fi“ priedas Arduino lentoms, kol įsilaužėlių bendruomenė suprato, kad Arduino galite išbraukti iš lygties visiškai.

Per mažiau nei metus ESP8266 išpopuliarėjo ir dabar yra taip gerai palaikomas ir tobulinamas, kad jei šiuo metu naudojatės Arduino, turite atsistoti ir įsidėmėti. Pirkite dabar, tada vadovaukitės šiuo vadovu ir pradėkite programuoti savo ESP8266 - visa tai galite padaryti pažįstamame Arduino IDE.

instagram viewer

Žinoma, jūs ne tik naudojate „Arduino IDE“ - jie suderinami ir su „Lua“ (kuris mano pradedantiesiems akimis), bet kadangi mes į tai žiūrime iš tų, kurie sužinojome apie Arduino, perspektyvos, tai bus tai, ką mes aprėpsime išskirtinai šiandien.

Šiuo metu yra nemažai ESP8266 modelių, tačiau aš einu į priekį ir rekomenduoju šį: ESP-12E (dar žinomas kaip „NodeMCU 1.0“ arba tai yra naujausias brolis ir sesuo „NodeMCU 2.0“).

Jis yra šiek tiek brangesnis nei kiti (6,50 USD, palyginti su 4 USD!), Tačiau jame yra serijinė tvarkyklė, reikalinga lustui programuoti, ji turi įmontuotą galios reguliatorių, taip pat daug IO kaiščių. Jis yra plačiai palaikomas ir jam nereikia nieko, išskyrus USB jungtį, kad galėtumėte programuoti ar maitinti, todėl su juo lengviausia dirbti. Jei perkate kokio nors kito tipo ESP8266 plokštę, jums gali prireikti atskiro 3.3v galios reguliatoriaus ir tinkamo FTDI jungties programavimui.

Darbo su ESP8266-12E ir Arduino pradžia

Pirmas, įdiekite nuoseklias tvarkykles už šią lentą. Jums gali tekti išjungti KEXT pasirašymą jei naudojate „El Capitan“ dėl naujų apsaugos sistemų.

Toliau turime įjungti „Arduino IDE“ valdybos vadovo palaikymą ESP8266. Atidarykite „Preferences“ ir įveskite šį URL ten, kur sakoma Papildomi valdybos valdytojo URL:

arduino lentos valdytojo URL

Paspauskite Gerai, tada atidarykite Lentų valdytojas nuo Įrankiai -> Lenta meniu, ieškokite esp8266 ir įdiekite platformą. Dabar turėtumėte pamatyti „NodeMCU 1.0“ pasirinkimą.

pasirinkite lentą

Palikite CPU ir įkėlimo greitį tokį, koks yra, ir pasirinkite naujai įdiegtą nuoseklųjį prievadą. „Mac“ sistemoje tai atrodo kaip cu. „SLAB_USBtoUART“.

Kaip pirmąją programą siūlyčiau paprastą „Wi-Fi“ skaitytuvą - raskite jį iš Failas -> Pavyzdžiai -> ESP8266WiFi -> „WifiScan“. Atminkite, kad įkelti yra gana lėtai, tačiau galų gale sakysite „atlikta įkėlimas“ ir tada (ne anksčiau, nes sulaužysite įkėlimo proceso) galėsite atidaryti nuoseklųjį monitorių. Turėtumėte pamatyti kažką panašaus į tai:

„wifi“ nuskaitymo bandymas esp8266
Sėkmė! Pabandykime prisijungti prie vieno.

Čia pateiktas visiškai paprastas „neapsaugotų kaulų“ kodas, skirtas prisijungti prie „Wi-Fi“ tinklo. Tai nedaroma nieko kito, kaip tik prisijungti, bet tai yra kažkas, ką galite pridėti ir vėliau. Tiesiog nepamirškite pakeisti YOUR_SSID ir YOUR_PASSWORD į „Wi-Fi“ informaciją. Įkelkite, atidarykite nuoseklųjį pultą ir turėtumėte pamatyti, kaip jis jungiasi.

 #include const char * ssid = "YOUR_SSID"; const char * slaptažodis = "YOUR_PASSWORD"; „WiFiClient“ „WiFiClient“; negaliojanti sąranka () {Serial.begin (115200); „Serial.print“ („Prisijungimas prie“); Serial.println (ssid); „WiFi.begin“ (ssid, slaptažodis); tuo tarpu (WiFi.status ()! = WL_CONNECTED) {vėlavimas (500); Serial.print („.“); } Serial.println (""); „Serial.println“ („WiFi prijungtas“); „Serial.println“ („IP adresas:“); „Serial.println“ („WiFi.localIP ()“); } tuščia kilpa () {}

Argi ne puiku, koks juokingai paprastas tai buvo?

Prieš tęsdami darbą, pateikiame pakabinimo schemą - ji gali būti naudinga vėliau. Atminkite, kad kodo nurodyti PIN kodai yra GPIO numeriai, o ne D0-16, greičiausiai užrašyti ant plokštės PCB. Jei visiškai teigiamai negalite išsiaiškinti, kodėl jutiklis neveikia, tikriausiai sumaišėte PIN kodus.

„NodeMCU__v1.0_pinout“

Greitas išmanusis namų jutiklis su MQTT ir DHT11

Štai praktinis pavyzdys, kurį galite nedelsdami naudoti savo namų stebėjimui. Pridėsime DHT11 temperatūros ir drėgmės jutiklį, tada reikšmes pateiksime naudodami MQTT protokolą per „Wi-Fi“ tinklą, mano atveju, į namų automatikos sistemą „OpenHAB DIY“ (jei ne, galbūt norėsite perskaityti mūsų pradedantiesiems skirtas „OpenHAB“ paruošimo ir paleidimo „Raspberry Pi“ vadovas Darbo su „OpenHAB Home Automation“ pradžia naudojant „Raspberry Pi“„OpenHAB“ yra brandi, atviro kodo namų automatikos platforma, veikianti įvairia aparatine įranga ir tokia Agnostic Protocol, ty jis gali prisijungti prie beveik bet kurios rinkoje esančios namų automatikos aparatūros šiandien. Skaityti daugiau ir 2 dalis, kurioje konkrečiai kalbama apie diegiant MQTT serverį „OpenHAB“ vadovas pradedantiesiems 2 dalis: „ZWave“, MQTT, taisyklės ir diagramos„OpenHAB“, atvirojo kodo namų automatikos programinė įranga, žymiai viršija kitų rinkoje esančių namų automatikos sistemų galimybes, tačiau ją nustatyti nėra lengva. Tiesą sakant, tai gali būti visiškai gąsdinanti. Skaityti daugiau ).

Laidų pusėje prijunkite DHT jutiklį prie GND, 3.3vir ~ D4 (arba GPIO 2). Tai viskas, ko mums dabar reikia.

parsisiųsti šios MQTT ir DHT bibliotekos. Net jei jūs juos jau turite, bet kokiu atveju atsisiųskite šiuos failus, sukurkite atsarginę kopiją turimų duomenų ir perrašykite juos. Naujausioje „Adafruit“ DHT11 bibliotekoje naudojamas automatinis algoritmas greičio nustatymui duomenys yra nuskaitomi iš jutiklio, tačiau jie klaidingi naudojant ESP8266 ir 90% atvejų sugenda skaitymai.

Turėdami senąją bibliotekos, kurią įtraukiau į atsisiųstą versiją, 1.0 versiją, galite rankiniu būdu pakeisti laiką: 11 geriausiai tinka šioms ESP2866 plokštėms. Taip pat perėjau daugybę „MQTT“ bibliotekos egzempliorių, bandydamas rasti vieną prekę perskambink funkciją, pagaliau nusileis ant įtraukto. Pakeisdami juos, turėsite iš naujo paleisti „Arduino IDE“.

Štai visas projekto kodas. Viršuje yra visi kintamieji, kuriuos turite pakeisti, įskaitant „Wi-Fi“ informaciją, MQTT serverį (URL gali būti naudojamas vietoj to, jei naudojate „debesies“ serverį, nors jo vietoje nėra autentifikavimo) ir kanalus duomenims skelbti.

Štai kaip tai veikia, ir kelios pastabos:

  • Pirmiausia mes prisijungiame prie „Wi-Fi“, tada prie MQTT serverio, tada pradedame pagrindinį kilpa ().
  • Kilpoje apklausame DHT jutiklį kas 60 sekundžių ir skelbiame rodmenis atitinkamais MQTT kanalais. Vėlgi, jei radote daugumą skaitymo klaidų pranešimų, turite neteisingą DHT bibliotekos versiją - pakeiskite versiją iki v1.0.
  • klientas.loop () perduoda valdymą MQTT bibliotekai, leisdama jai reaguoti į gaunamus pranešimus.
  • Ten yra žinutė gauta () funkcija, kurioje tvarkome gaunamus pranešimus - atlikite paprastą pareiškimą, jei norite palyginti naudingą krovinį su jūsų tikėtinu pranešimu. Galite tai panaudoti, pavyzdžiui, relės suaktyvinimui.
  • Paleidęs šias keletą dienų radau, kad jie atsitiktinai nustos veikti - manau, kad tai yra tam tikras atminties nutekėjimas, bet atsižvelgiant Aš neturiu kodavimo įgūdžių, kad galėčiau su tuo susidoroti, ir tai gali būti pagrindinės bibliotekos. Aš pasirinkau paprastą minkštą atkurti kas dieną. Praėjus lygiai vienai dienai po to, kai pirmą kartą suaktyvinti jutiklių mazgai, jie vėl įsijungs.
  • Kai maitinate šiuos pigius DHT11 modulius nuo 3,3 V, drėgmės vertės yra daug mažesnės nei turėtų būti. Aš išsprendžiau tai paprastu daugyba ir kalibravau pagal komercinį jutiklį. Aš patarčiau prieš pasikliaujant rodmenimis patvirtinti ir savo žinomą šaltinį. Arba maitinkite juos 5 V - bet tarp duomenų kaiščio ir ESP8266 turite įdėti 5–3,3 V loginio lygio perjungiklį, kitaip jį sugadinsite.

Jei viskas sekėsi gerai, dabar turėtumėte gauti jutiklių rodmenis savo „MQTT“ brokeryje ir galėsite tęsti prijungimą prie „OpenHAB“, kaip aprašyta mūsų pradedančiojo vadovo 2 dalis „OpenHAB“ vadovas pradedantiesiems 2 dalis: „ZWave“, MQTT, taisyklės ir diagramos„OpenHAB“, atvirojo kodo namų automatikos programinė įranga, žymiai viršija kitų rinkoje esančių namų automatikos sistemų galimybes, tačiau ją nustatyti nėra lengva. Tiesą sakant, tai gali būti visiškai gąsdinanti. Skaityti daugiau , kur aš taip pat parodžiau, kaip grafikuoti duomenis.

nuolankumo grafikas iš „openhab“

Atsisveikinimas Arduino, mes tave taip mylėjome. Tik juokauju: ne visur mano namuose galima gauti net „Wi-Fi“ ryšį, todėl toms vietoms vis tiek man reikės tinklo tinklo su „Arduino“ ir RF imtuvais.

Norėdami pamatyti įdomų projektą, pasidomėkite kaip padaryti „Wi-Fi“ mygtuką naudojant ESP8266 Kaip susikurti savo „Wi-Fi“ prijungtą mygtuką naudojant ESP8266Šiame vadove sužinosite, kaip sukurti „Wi-Fi“ įgalintą mygtuką naudojant „NodeMCU“ ir „IFTTT“. Skaityti daugiau .

Bet ką pagaminsi su ESP8266? Visi projektai, naudojantys ESP8266, kuriuos norėtumėte pamatyti, yra užrašyti „MakeUseOf“? Praneškite mums komentaruose!

Jamesas yra dirbtinio intelekto bakalauras ir yra CompTIA A + bei Network + sertifikuotas. Jis yra pagrindinis „MakeUseOf“ kūrėjas ir laisvalaikį praleidžia žaisdamas VR dažasvydį ir stalo žaidimus. Nuo mažens jis statė kompiuterius.