Mainos
Wi-Fi on välttämätön paketti kaikille esineiden Internet (IoT) DIY -projekteille, mutta suosikki Arduinossa ei ole Wi-Fi: tä, ja lisäämällä Wi-Fi-suojaan kokonaiskustannukset voivat olla noin 40 dollaria. Entä jos sanoisin, että siellä on Arduino-yhteensopiva dev-levy, jossa on sisäänrakennettu Wi-Fi, alle 10 dollaria? No, siellä on.
Tapaa Arduino Killer: ESP8266. Oli vain ajan kysymys, ennen kuin kruunu varastettiin rakkaan Arduinon kehityslautakunnan kiiltävästä päästä. Onko mahdollista rakastua piirilevyyn?
Tarttuvia nimiä lukuun ottamatta ESP8266 (tunnetaan myös nimellä NodeMCU) markkinoitiin alun perin edullisena Wi-Fi-lisäosana Arduino-levyille, kunnes hakkeriyhteisö tajusi, että voit leikata Arduinon yhtälöstä täysin.
ESP8266 on alle vuoden kuluessa noussut suosioon, ja sitä on nyt tuettu ja kehitetty niin hyvin, että jos käytät tällä hetkellä Arduinoa, sinun on noustava ylös ja otettava huomioon. Osta nyt, seuraa tämän oppaan mukana ja aloita ESP8266: n ohjelmointi - kaikki tutusta Arduino IDE: stä.
Et ole rajoittunut tietysti Arduino IDE: n käyttöön - ne ovat myös yhteensopivia Luan kanssa (joka näyttää lieventyneeltä Pythonilta minun aloittelijoiden silmät), mutta koska käsittelemme tätä niiden ihmisten näkökulmasta, jotka olemme oppineet Arduinosta, niin katamme sen yksinomaan tänään.
ESP8266-malleja on nyt melko monia, mutta aion jatkaa ja suositella tätä: ESP-12E (tunnetaan myös nimellä NodeMCU 1.0 tai se on uusin sisar NodeMCU 2.0).
Se on hiukan kalliimpi kuin muut (6,50 dollaria verrattuna 4 dollariin!), Mutta sisältää sirun ohjelmointiin tarvittavan sarjaohjaimen, ja siinä on sisäänrakennettu virransäädin ja paljon IO-nastaa. Sitä tuetaan laajalti eikä se todella tarvitse mitään muuta kuin USB-liitäntää ohjelmointiin tai virrankäyttöön, joten sen kanssa on helpointa työskennellä. Jos ostat muunlaista ESP8266-korttia, saatat tarvita erillisen 3,3 voltin tehonsäätimen ja sopivan FTDI-liitännän ohjelmointiin.
ESP8266-12E: n ja Arduinon aloitusopas
Ensimmäinen, asenna sarjaohjaimet tälle hallitukselle. Saatat joutua tekemään poista KEXT-allekirjoittaminen käytöstä jos käytät El Capitania uusien turvajärjestelmien takia.
Seuraavaksi meidän on sallittava ESP8266-tuki Arduino IDE: n hallituksen päälliköltä. Avaa Asetukset ja kirjoita seuraava URL-osoite kohtaan Muut Board Manager-URL-osoitteet:

Paina OK, avaa sitten Taulukoiden johtaja alkaen Työkalut -> Lauta -valikosta, etsi esp8266 ja asenna alusta. Sinun pitäisi nyt nähdä valinta NodeMCU 1.0: lle.

Jätä CPU ja lähetysnopeus sellaisenaan ja valitse juuri asennettuna sarjaportti. Macissa tämä näkyy muodossa cu. SLAB_USBtoUART.
Ensimmäisenä ohjelmana ehdottaisin yksinkertaista Wi-Fi-skanneria - etsi se osoitteesta Tiedosto -> Esimerkit -> ESP8266WiFi -> WifiScan. Huomaa, että lähettäminen on melko hidasta, mutta lopulta sanotaan "lataus valmis" ja siinä vaiheessa (ei ennen tai murtat lähetysprosessin) voit avata Sarjamonitorin. Sinun pitäisi nähdä jotain tällaista:
Menestys! Yritetään nyt muodostaa yhteys yhteen.
Tässä on ehdottomasti yksinkertainen paljain luettelon koodi yhteyden muodostamiseksi Wi-Fi-verkkoon. Se ei tee mitään muuta kuin vain yhdistämistä, mutta se on jotain, jonka voit lisätä liian myöhemmin. Muista vain muuttaa YOUR_SSID ja YOUR_PASSWORD Wi-Fi-tietoihisi. Lataa, avaa sarjakonsoli ja sinun pitäisi nähdä sen olevan yhteydessä.
# sisällytä const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; tyhjä asetus () {Serial.begin (115200); Serial.print ("Yhdistäminen"); Serial.println (ssid); WiFi.begin (ssid, salasana); kun taas (WiFi.status ()! = WL_CONNECTED) {viive (500); Serial.print ( ""); } Serial.println (""); Serial.println ("WiFi kytketty"); Serial.println ("IP-osoite:"); Serial.println (WiFi.localIP ()); } tyhjä silmukka () {}
Eikö ole hienoa, kuinka naurettavan yksinkertainen se oli?
Ennen kuin jatkamme, tässä on nastakaavio - se saattaa olla hyödyllinen myöhemmin. Huomaa, että koodiin viitatut PIN-numerot ovat GPIO-numeroita, ei D0-16-tiedostoa, joka todennäköisesti kirjoitetaan kortin piirilevylle. Jos et todellakaan myönteisesti ymmärrä miksi anturi ei toimi, olet todennäköisesti sekoittanut nastat ylös.

Nopea Smart Home -anturi MQTT: llä ja DHT11: llä
Tässä on käytännöllinen esimerkki, jonka voit käyttää suoraan kotiisi seuraamiseen. Lisäämme DHT11-lämpötila- ja kosteusanturin ja ilmoitamme sitten arvot MQTT-protokollalla Wi-Fi-verkon kautta, tapauksessani OpenHAB DIY -automaatiojärjestelmään (jos ei, kannattaa ehkä lukea meidän aloittelijoille suunnattu OpenHAB-ohjelmiston käyttöönotto ja käyttö Raspberry Pi: llä Aloittaminen OpenHAB-kotiautomaatio-ohjelmalla Raspberry Pi: lläOpenHAB on kypsä, avoimen lähdekoodin kotiautomaatioalusta, joka toimii monella eri laitteistolla ja on Agnostic Protocol, mikä tarkoittaa, että se voi muodostaa yhteyden melkein mihin tahansa markkinoiden kotiautomaatiolaitteistoon tänään. Lue lisää , ja osa 2, joka käsittelee erityisesti MQTT-palvelimen asentaminen OpenHAB-aloittelijan opas, osa 2: ZWave, MQTT, säännöt ja kaaviotOpenHAB, avoimen lähdekoodin kotiautomaatio-ohjelmisto, ylittää huomattavasti muiden markkinoilla olevien kotiautomaatiojärjestelmien mahdollisuudet - mutta käyttöönotto ei ole helppoa. Itse asiassa se voi olla suoraan turhauttavaa. Lue lisää ).
Kytke johtimen puolella DHT-anturi GND, 3.3vja ~ D4 (tai GPIO 2). Se on kaikki mitä tarvitsemme nyt.
ladata nämä MQTT- ja DHT-kirjastot. Vaikka sinulla jo olisi niitä, lataa nämä muutenkin, varmuuskopioi mitä sinulla on ja korvaa ne. Adafruun uusin DHT11-kirjasto käyttää automaattista algoritmia nopeuden määrittämiseen tiedot luetaan anturista, mutta se on viallinen ESP8266: lla, ja 90% ajasta johtaa epäonnistumiseen lukemat.
Lataamani kirjaston vanhan version 1.0 kanssa voit muuttaa ajoitusta manuaalisesti: 11 toimii parhaiten näille ESP2866-levyille. Kävin myös useita kopioita MQTT-kirjastosta yrittäessään löytää niistä hyvää soita takaisin toiminto, laskeutuen lopulta mukana olevaan. Sinun on käynnistettävä Arduino IDE uudelleen, kun olet vaihtanut nämä.
Tässä on täydellinen koodi projektille. Yläosassa on kaikki muuttujat, joita sinun täytyy muuttaa, mukaan lukien Wi-Fi-tiedot, MQTT-palvelin (URL-osoitetta voidaan käyttää sijaan, jos käytät pilvipalvelinta, vaikka todentamista ei ole paikallaan) ja kanavia tietojen julkaisemiseksi.
Näin se toimii ja muutama muistiinpano:
- Yhdistämme ensin Wi-Fi-verkkoon, sitten MQTT-palvelimeen ja aloitamme sitten päätoiminnon silmukka ().
- Silmukka, kysymme DHT-anturin 60 sekunnin välein ja julkaisevat lukemat asianmukaisille MQTT-kanaville. Jälleen, jos löydät suurimman osan lukemista virheilmoituksen, sinulla on väärä DHT-kirjaston versio - alenna versioon 1.0.
- client.loop () siirtää ohjauksen MQTT-kirjastoon, jolloin se voi reagoida saapuviin viesteihin.
- Siellä viesti vastaanotettu() -toiminto, jossa käsittelemme saapuvia viestejä - tee vain yksinkertainen lausunto vertaaksesi hyötykuormaa odotettuasi viestiin. Voit käyttää tätä esimerkiksi releen aktivoimiseen.
- Käytettyäänni muutaman päivän, huomasin, että ne lopettaisivat satunnaisesti toimintansa - oletan, että tämä on jonkinlainen muistivuoto, mutta Minulla ei ole koodaustaitoa käsitellä sitä, ja se voi olla ydinkirjastojen kanssa, olen valinnut yksinkertaisen pehmeän nollauksen jokaisen päivä. Tarkalleen yhden päivän kuluttua siitä, kun anturisolmut aktivoidaan ensimmäisen kerran, ne käynnistyvät uudelleen.
- Kun virtalähteenä on näitä halpoja DHT11-moduuleja 3.3v: sta, kosteusarvot ovat paljon alhaisemmat kuin niiden pitäisi olla. Olen ratkaissut tämän yksinkertaisella kertolaskelmalla ja kalibroinut kaupallista anturia vastaan. Suosittelen, että vahvistat myös omalla tunnetulla lähteelläsi, ennen luottamista lukemiin. Vaihtoehtoisesti voimanlähde voi olla 5 V - mutta sinun on asetettava 5–3,3 v: n logiikan tasonsiirto datalinjan ja ESP8266: n väliin, tai muuten vaurioitit sitä.
Jos kaikki meni hyvin, sinun pitäisi nyt vastaanottaa anturin lukemat MQTT-välittäjässäsi ja voit jatkaa kytkemällä ne OpenHAB: iin, kuten kohdassa osa 2 aloittelijamme oppaasta OpenHAB-aloittelijan opas, osa 2: ZWave, MQTT, säännöt ja kaaviotOpenHAB, avoimen lähdekoodin kotiautomaatio-ohjelmisto, ylittää huomattavasti muiden markkinoilla olevien kotiautomaatiojärjestelmien mahdollisuudet - mutta käyttöönotto ei ole helppoa. Itse asiassa se voi olla suoraan turhauttavaa. Lue lisää , jossa näyttelin myös kuinka kaavioida tiedot.

Jäähyväiset Arduino, me rakastimme sinua niin. Vain leikkiä: kaikissa taloni tiloissa ei voi edes saada Wi-Fi-yhteyttä, joten silloin tarvitsen silti verkkoa Arduinon ja RF-vastaanottimien kanssa.
Katso hauska projekti kuinka luoda Wi-Fi-painike ESP8266: lla Kuinka luoda oma Wi-Fi-yhteyspainike ESP8266: n avullaTässä opetusohjelmassa opit luomaan Wi-Fi-yhteensopivan painikkeen NodeMCU: n ja IFTTT: n avulla. Lue lisää .
Mutta mitä teet ESP8266: lla? Jokainen ESP8266: ta käyttävä projekti, jonka haluat nähdä kirjoittavan MakeUseOfiin? Kerro meille kommenteista!
Jamesilla on teknisen älykunnan kandidaatin tutkinto ja hän on CompTIA A + ja Network + -sertifioitu. Hän on MakeUseOfin johtava kehittäjä ja viettää vapaa-aikansa pelaamalla VR-paintballia ja lautapelejä. Hän on rakennettu tietokoneita lapsuudestaan asti.