Reklaam
WiFi on mis tahes asjade Interneti (DI) DIY-projektide jaoks hädavajalik komplekt, kuid meie lemmik Arduino ei kuulu WiFi-le ja Wi-Fi-kilpi lisamine võib tuua selle kogumaksumuse umbes 40 dollarini. Mis siis, kui ma ütleksin teile, et seal on sisseehitatud WiFi-ga Arduino-ühilduv arendusplaat vähem kui 10 dollari eest? Noh, on olemas.
Tutvuge Arduino tapjaga: ESP8266. Oli ainult aja küsimus, enne kui kroon varastati meie armsa Arduino arenduskogu läikivalt peast. Kas trükkplaati on võimalik armuda?
Haaravate nimede kõrval turustati ESP8266 (tuntud ka kui NodeMCU) algselt odava WiFi lisandmoodulina Arduino plaatide jaoks, kuni häkkerikogukond sai aru, et võite Arduino võrrandist välja lõigata täielikult.
Vähem kui aasta pärast on ESP8266 populaarsus tõusnud ning seda on nüüd nii hästi toetatud ja arendatud, et kui kasutate praegu Arduinot, peate püsti tõusma ja sellega arvestama. Osta kohe, siis järgige seda juhendit ESP8266 programmeerimise alustamiseks - seda kõike tuttava Arduino IDE-st.
Te ei piirdu muidugi ainult Arduino IDE kasutamisega - need ühilduvad ka Luaga (mis näeb välja nagu minu jaoks vähenenud Python algajad silmad), aga kuna me tegeleme sellega nende inimeste vaatevinklist, kes oleme Arduino kohta õppinud, siis see on see, mida me käsitleme eranditult täna.
ESP8266 on praegu üsna palju mudeleid, kuid ma lähen edasi ja soovitan seda: ESP-12E (tuntud ka kui NodeMCU 1.0 või see on uusim õde-vend) NodeMCU 2.0).
See on teistest pisut kallim (6,50 dollarit võrreldes 4 dollariga!), Kuid sisaldab kiibi programmeerimiseks vajalikku jadadraiverit ning sellel on sisseehitatud toiteregulaator ja palju IO-tihvte. Seda toetatakse laialdaselt ja see ei vaja programmeerimiseks ega toite jaoks midagi peale USB-ühenduse, nii et sellega on kõige lihtsam töötada. Kui ostate muud tüüpi ESP8266 tahvli, peate võib-olla vaja eraldi 3.3v voolu regulaatorit ja programmeerimiseks sobivat FTDI-ühendust.
ESP8266-12E ja Arduino kasutamise alustamine
Esiteks installige seeria draiverid selle juhatuse jaoks. Võimalik, et peate seda tegema keela KEXT allkirjastamine kui juhite El Capitanit uute turvasüsteemide tõttu.
Järgmisena peame lubama ESP8266 toe Arduino IDE juhatuse halduril. Avage Eelistused ja sisestage järgmine URL sinna, kuhu see ütleb Täiendavad juhatuse halduri URL-id:
![arduino juhatuse halduri URL-id](/f/4d1908fee68f67a8e63ef9866c1a2f67.png)
Vajutage nuppu OK, seejärel avage Laudade haldur alates Tööriistad -> juhatus menüüst otsige esp8266 ja installige platvorm. Nüüd peaksite nägema valikut NodeMCU 1.0 jaoks.
![vali juhatus](/f/a353162cefcc6b65f8b2eebb81a61b0e.png)
Jätke CPU ja üleslaadimiskiirus selliseks, nagu see on, ja valige oma värskelt installitud jadaport. Macis kuvatakse see kujul cu. SLAB_USBtoUART.
Esimese programmina soovitaksin lihtsat WiFi-skannerit - leidke see siit Fail -> Näited -> ESP8266WiFi -> WifiScan. Pange tähele, et üleslaadimine on üsna aeglane, kuid lõpuks öeldakse öelda, et üleslaadimine on lõpule viidud ja sel hetkel (mitte varem, või siis katkestate üleslaadimisprotsessi) saate avada jadamonitori. Peaksite nägema midagi sarnast:
Edu! Proovime nüüd ühega ühenduse luua.
Siin on absoluutselt lihtne paljukloonide kood WiFi-võrguga ühenduse loomiseks. See ei tee muud kui lihtsalt ühendamist, kuid see on midagi, mille saate ka hiljem lisada. Pidage ainult meeles, et muutke YOUR_SSID ja YOUR_PASSWORD oma Wi-Fi üksikasjadeks. Laadige üles, avage jadakonsool ja te peaksite seda ühendama.
#include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; kehtetu seadistamine () {Serial.begin (115200); Serial.print ("Ühenduse loomine"); Serial.println (ssid); WiFi.begin (ssid, parool); while (WiFi.status ()! = WL_CONNECTED) {viivitus (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi ühendatud"); Serial.println ("IP-aadress:"); Serial.println (WiFi.localIP ()); } tühine silmus () {}
Kas pole tore, kui naeruväärselt lihtne see oli?
Enne jätkamist on siin pinoutskeem - see võib hiljem kasuks tulla. Pange tähele, et koodis viidatud PIN-koodid on GPIO-numbrid, mitte D0-16, mis on tõenäoliselt kirjutatud teie tahvli PCB-le. Kui te ei saa absoluutselt positiivselt aru, miks andur ei tööta, olete tõenäoliselt seganud PIN-koodid.
![NodeMCU__v1.0_pinout](/f/000674c99d96bcefb2b5130402830395.jpg)
Kiire nutikas koduandur koos MQTT ja DHT11-ga
Siin on praktiline näide, mille saate kohe oma kodu jälgimiseks kasutada. Lisame DHT11 temperatuuri- ja niiskuseanduri, seejärel edastame väärtused MQTT-protokolli abil WiFi-võrgu kaudu, minu puhul OpenHAB DIY koduautomaatikasüsteemi (kui ei, siis võiksite lugeda meie algajatele mõeldud juhend OpenHABi üles ehitamiseks ja Raspberry Pi-ga töötamiseks Alustamine OpenHAB-i koduautomaatikast Raspberry Pi-lOpenHAB on küps, avatud lähtekoodiga koduautomaatika platvorm, mis töötab mitmesugusel riistvaral ja on Agnostic Protocol, mis tähendab, et see saab ühendada peaaegu kõigi turul pakutavate kodus kasutatavate automaatika riistvaraga täna. Loe rohkem ja 2. osa, mis käsitleb konkreetselt MQTT-serveri installimine OpenHABi algajate juhend, 2. osa: ZWave, MQTT, reeglid ja diagrammidAvatud lähtekoodiga kodutehnika automatiseerimistarkvara OpenHAB ületab kaugelt teiste turul olevate koduautomaatikasüsteemide võimalusi - kuid selle seadistamine pole lihtne. Tegelikult võib see olla täiesti pettumust valmistav. Loe rohkem ).
Juhtmete poolel ühendage DHT-andur GND, 3,3vja ~ D4 (või GPIO 2). See on kõik, mida me praegu vajame.
Lae alla need MQTT ja DHT teegid. Isegi kui teil need juba olemas on, laadige need igal juhul alla, varundage olemasolev ja kirjutage need üle. Adafruudi uusim DHT11 raamatukogu kasutab automaatse algoritmi kiiruse määramiseks andmeid loetakse andurilt, kuid see on ESP8266-l vigane ja 90% ajast põhjustab ebaõnnestumine näidud.
Selle teegi vana versiooni 1.0 abil, mille olen alla laadinud, saate ajastus käsitsi muuta: 11 töötab nende ESP2866 tahvlite jaoks kõige paremini. Samuti käisin läbi mitu MQTT-i raamatukogu eksemplari, püüdes leida üht kaupa helista tagasi funktsiooni, laskudes lõpuks sellele, mis kuulub komplekti. Pärast nende asendamist peate Arduino IDE taaskäivitama.
Siin on projekti täielik kood. Ülaosas on kõik muutujad, mida peate muutma, sealhulgas Wi-Fi üksikasjad, MQTT-server (URL-i saab kasutada kui kasutate pilveserverit, ehkki autentimist pole veel olemas) ja kanaleid, kus andmeid avaldada.
Siit saate teada, kuidas see töötab, ja mõned märkused:
- Esmalt ühendame ühenduse WiFi-ga, seejärel MQTT-serveriga, seejärel alustame peamist silmus ().
- Ahelas küsitleme DHT-andurit iga 60 sekundi tagant ja avaldame näidud vastavatele MQTT-kanalitele. Jällegi, kui leiate suurema osa näitude tulemustest tõrketeate, on teil DHT teegi vale versioon - alandage versiooniks v1.0.
- klient.loop () suunab juhtimise MQTT-i teeki, võimaldades sellel sissetulevatele teadetele reageerida.
- Seal on sõnum vastu võetud () funktsiooni, kus käsitleme saabuvaid sõnumeid - tehke lihtsalt lihtne avaldus, et võrrelda kasulikku koormust teie oodatava sõnumiga. Seda saate kasutada näiteks relee aktiveerimiseks.
- Pärast nende mõnepäevast käitamist leidsin, et nad lõpetavad juhuslikult töötamise - ma eeldan, et see on mingi mälulekke, kuid arvestades Mul ei ole kodeerimisoskust sellega tegelemiseks ja see võib olla tuumikraamatukogudes, olen valinud lihtsa pehme lähtestamise iga päev. Täpselt üks päev pärast andurite sõlmede esmakordset aktiveerimist taaskäivituvad nad ise.
- Nende odavate DHT11 moodulite toites voolutugevusest 3,3v on õhuniiskuse väärtused palju madalamad kui peaksid. Olen selle lahendanud lihtsa korrutamisega ja kalibreerinud kommertsanduri suhtes. Enne lugemistele tuginemist soovitaksin teil kinnitada ka oma teadaolevate allikate põhjal. Teise võimalusena saate neid toita 5 V - kuid peate andmetihvti ja ESP8266 vahele asetama 5–3,3 v loogika nihke, vastasel juhul kahjustate seda.
Kui kõik läks hästi, peaksite andurite näitu saama nüüd oma MQTT maakleris ja saate neid ühendada OpenHAB-iga, nagu on üksikasjalikult kirjeldatud meie algajate juhendi 2. osa OpenHABi algajate juhend, 2. osa: ZWave, MQTT, reeglid ja diagrammidAvatud lähtekoodiga kodutehnika automatiseerimistarkvara OpenHAB ületab kaugelt teiste turul olevate koduautomaatikasüsteemide võimalusi - kuid selle seadistamine pole lihtne. Tegelikult võib see olla täiesti pettumust valmistav. Loe rohkem , kus näitasin teile ka andmete graafikut.
![alandlikkuse graafik openhabist](/f/dd2be2dbfa3184fefb40df6fd3c0abbe.png)
Hüvasti Arduino, me armastasime sind nii. Naljaga pooleks: mitte kõikjal mu majades pole isegi WiFi-ühendust võimalik saada, seega vajan nende kohtade jaoks ikkagi võrku Arduino ja RF-vastuvõtjatega.
Lõbusa projekti jaoks vaadake kuidas teha ESP8266 abil WiFi-nuppu Kuidas luua omaenda WiFi-nupuga nupp ESP8266 abilSelles õpetuses saate teada, kuidas luua Wi-Fi-toega nuppu, kasutades NodeMCU ja IFTTT. Loe rohkem .
Kuid mida teete ESP8266-ga? Kas mõni ESP8266 kasutav projekt on teile MakeUseOfis üles kirjutatud? Andke meile kommentaarides teada!
Jamesil on tehisintellekti BSc ning ta on CompTIA A + ja Network + sertifikaadiga. Ta on MakeUseOfi juhtiv arendaja ja veedab oma vaba aega VR-i paintballi ja lauamänge mängides. Ta on lapsest peale arvutit ehitanud.