Hirdetés

A Wi-Fi elengedhetetlen készlet minden tárgyak internetének (IoT) barkácsprojektekhez, de a kedvenc Arduino nem tartozik a Wi-Fi-hez, és a Wi-Fi pajzs hozzáadása a teljes költséget körülbelül 40 dollárra hozhatja. Mi lenne, ha azt mondanám neked, hogy van egy Arduino-kompatibilis fejlesztődeszka beépített Wi-Fi-vel kevesebb, mint 10 dollárért? Nos, van.

Ismerje meg az Arduino gyilkosát: ESP8266. Csak idő kérdése volt, mielőtt ellopták a koronát kedves Arduino fejlesztő testületünk fényes fejétől. Lehet beleszeretni az áramköri lapba?

A fülbemászó nevektől eltekintve, az ESP8266 (más néven NodeMCU néven ismert) eredetileg olcsó Wi-Fi-kiegészítőként került forgalomba. az Arduino táblákra, amíg a hackerek közössége rájött, hogy ki tudja vágni az Arduino-t az egyenletből teljesen.

Kevesebb, mint egy év alatt az ESP8266 roppant népszerűvé vált, és most olyan jól támogatott és fejlesztett, hogy ha jelenleg Arduino-t használja, fel kell állnia és figyelembe kell vennie. Vásároljon egyet most

instagram viewer
, majd kövesse ezt az útmutatót az ESP8266 programozásának megkezdéséhez - mindezt az ismerős Arduino IDE-n belül.

Természetesen nem korlátozódik az Arduino IDE használatára - ők is kompatibilisek a Lua-val (ami úgy néz ki, mint egy lecsillapított Python kezdő szemek), de mivel erre azoknak a szemszögéből foglalkozunk, akik Arduinóval tanultak, ezt fogjuk kizárólag lefedni Ma.

Az ESP8266-nak jelenleg nagyon sok modellje van, de megyek előre, és ezt ajánlom: ESP-12E (más néven NodeMCU 1.0, vagy legújabb testvére, NodeMCU 2.0).

Kicsit drágább, mint a többiek (6,50 dollár, szemben a 4 dollárral!), De magában foglalja a chip programozásához szükséges soros illesztőprogramot, beépített teljesítményszabályzóval, valamint sok IO érintkezővel. Széles körben támogatott, és valójában nincs szüksége semmire az USB-csatlakozáson kívül a programozáshoz vagy a tápellátáshoz, így a legkönnyebben használható. Ha bármilyen más ESP8266 kártyát vásárol, akkor külön programozásra van szüksége egy 3,3 V-os tápegység-szabályozóra és egy megfelelő FTDI csatlakozásra.

Az ESP8266-12E és az Arduino első lépései

Első, telepítse a soros illesztőprogramokat ehhez a fórumhoz. Lehet, hogy kell tiltsa le a KEXT aláírást ha az új biztonsági rendszerek miatt El Capitanot futtat.

Ezután engedélyeznünk kell az ESP8266 támogatását az Arduino IDE fórumkezelőjétől. Nyissa meg a Preferences elemet, és írja be a következő URL-t, ahova azt mondja További Board Manager URL-ek:

arduino fórumkezelő URL-címei

Hit OK, majd nyissa meg a Táblák kezelője tól től Szerszámok -> Fórum menüben keresse meg az esp8266 fájlt, és telepítse a platformot. Most meg kell választania a NodeMCU 1.0 verziót.

válassz fórumot

Hagyja a CPU-t és a feltöltési sebességet, ahogy van, és válassza ki az újonnan telepített soros portot. Mac rendszeren ez a következőként jelenik meg cu. SLAB_USBtoUART.

Első programként az egyszerű Wi-Fi szkennert javaslom - keresse meg Fájl -> Példák -> ESP8266WiFi -> WifiScan. Ne feledje, hogy a feltöltés elég lassú, de végül azt mondja: „feltöltődött”, és ezen a ponton (korábban nem, vagy megszakad a feltöltési folyamat) megnyithatja a soros monitort. Látnia kellene ehhez hasonlót:

wifi vizsgálat teszt esp8266
Siker! Próbáljuk meg most csatlakozni az egyikhez.

Íme egy abszolút egyszerű csontok kódja a Wi-Fi hálózathoz való csatlakozáshoz. Csak a csatlakozással jár, és csak később adhat hozzá. Ne felejtse el megváltoztatni a YOUR_SSID és a YOUR_PASSWORD fájlokat Wi-Fi adataira. Töltse fel, nyissa meg a soros konzolt, és látnia kell, hogy csatlakozik.

 #include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; érvénytelen beállítás () {Serial.begin (115200); Serial.print ("Csatlakozás"); Serial.println (ssid); WiFi.begin (ssid, jelszó); míg (WiFi.status ()! = WL_CONNECTED) {késleltetés (500); Serial.print ( ""); } Serial.println (""); Serial.println ("WiFi csatlakoztatva"); Serial.println ("IP cím:"); Serial.println (WiFi.localIP ()); } void loop () {}

Hát nem nagyszerű, milyen nevetségesen egyszerű volt?

Mielőtt folytatnánk, itt van egy pinout diagram - később hasznos lehet. Vegye figyelembe, hogy a kódban szereplő PIN-kódok a GPIO-számok, nem pedig a D0-16-ra valószínűleg a táblán lévő NYÁK-ra írva. Ha abszolút pozitívan nem tudja kitalálni, miért nem működik egy érzékelő, akkor valószínűleg összekeverte a PIN-kódot.

NodeMCU__v1.0_pinout

Gyors intelligens otthoni érzékelő MQTT-vel és DHT11-vel

Íme egy gyakorlati példa, amelyet azonnal felhasználhat otthonának megfigyelésére. Hozzáadunk egy DHT11 hőmérséklet- és páratartalom-érzékelőt, majd az értékeket az MQTT protokoll használatával jelenítjük meg a Wi-Fi hálózaton keresztül, esetemben egy OpenHAB DIY otthoni automatizálási rendszerre (ha nem, érdemes elolvasni mi kezdő útmutató az OpenHAB üzembe helyezéséhez és a Raspberry Pi futtatásához Az OpenHAB otthoni automatizálás első lépései a Raspberry Pi készülékenAz OpenHAB egy érett, nyílt forrású otthoni automatizálási platform, amely különféle hardverekkel működik és van Agnostic Protocol, azaz csatlakozhat szinte bármilyen otthoni automatizálási hardverhez a piacon Ma. Olvass tovább , és a 2. rész, amely kifejezetten foglalkozik telepít egy MQTT szervert OpenHAB kezdő útmutató, 2. rész: ZWave, MQTT, szabályok és diagramokAz OpenHAB, a nyílt forráskódú otthoni automatizálási szoftver messze meghaladja a piacon lévő más otthoni automatizálási rendszerek képességeit - de a telepítés nem könnyű. Valójában egyenesen frusztráló lehet. Olvass tovább ).

A kábelezés oldalán csatlakoztassa a DHT-érzékelőt GND, 3.3Vés ~ D4 (vagy GPIO 2). Ez minden, amire most szükségünk van.

Letöltés ezek az MQTT és DHT könyvtárak. Még akkor is, ha már rendelkezel velük, töltse le ezeket is, készítsen biztonsági másolatot a rendelkezésére, és felülírja ezeket. Az Adafruit legújabb DHT11 könyvtára automatikus algoritmust használ a sebesség meghatározására az adatok olvashatók az érzékelőből, de hibás az ESP8266-on, és az idő 90% -a eredménytelen olvasmányok.

A letöltött könyvtár régi 1.0 verziójával kézzel módosíthatja az időzítést: a 11 ezekhez az ESP2866 táblákhoz működik a legjobban. Átmentem az MQTT könyvtár sok példányán is, hogy megkíséreljék találni egyet visszahív funkció, végül leszállva a mellékelthez. A cseréje után újra kell indítania az Arduino IDE-t.

Itt van a a projekt teljes kódja. A tetején található az összes változtató, amelyet meg kell változtatni, beleértve a Wi-Fi részleteket, az MQTT szervert (az URL használható ehelyett, ha felhőkiszolgálót használ, bár nincs a helyén hitelesítés), és csatornákat, amelyekben adatokat közzétehetnek.

Íme, hogyan működik, és néhány megjegyzés:

  • Először csatlakozunk a Wi-Fi-hez, majd az MQTT szerverhez, majd kezdjük meg a fő alkalmazást hurok().
  • A hurokban 60 másodpercenként lekérdezzük a DHT-érzékelőt, és a méréseket közzétesszük a vonatkozó MQTT csatornákon. Ismét, ha a legtöbb olvasás hibaüzenetet eredményez, akkor a DHT könyvtár rossz verziója van - lejjebb v1.0-ra.
  • client.loop () átadja az irányítást az MQTT könyvtárnak, lehetővé téve a reagálást a bejövő üzenetekre.
  • Van egy messageReceived () funkció, ahol kezeljük a bejövő üzeneteket - egyszerűen csak tegyen egy egyszerű nyilatkozatot, hogy összehasonlítsa a hasznos terhet a várt üzenettel. Ezt felhasználhatja például relék aktiválására.
  • Miután ezeket néhány napig futtattam, rájöttem, hogy véletlenszerűen leállnak a működésük - feltételezem, hogy ez valamilyen memóriaszivárgás, de Nincs olyan kódolási képességem, hogy ezzel foglalkozzak, és lehet, hogy a központi könyvtárakkal, úgy döntöttem, hogy minden nap. Pontosan egy nappal az érzékelő csomópontok első aktiválása után újraindulnak.
  • Ezeknek az olcsó DHT11 moduloknak a 3.3 V-os tápellátása esetén a páratartalom értéke jóval alacsonyabb, mint amilyennek kellene lennie. Ezt egyszerû szorzóval oldottam meg, és egy kereskedelmi érzékelõvel kalibráltam. Azt tanácsolom, hogy erősítse meg a saját ismert forrásával is, mielőtt támaszkodna az olvasásra. Alternatívaként 5 V-os tápfeszültséggel táplálja őket, de helyezze el az 5–3,3 V logikai szintváltót az adatcsap és az ESP8266 közé, különben megsérül.

Ha minden jól ment, akkor most meg kell kapnia az érzékelők adatait az MQTT brókerjében, és folytathatja ezeket az OpenHAB-hoz való csatlakoztatással, a kezdő útmutatónk 2. része OpenHAB kezdő útmutató, 2. rész: ZWave, MQTT, szabályok és diagramokAz OpenHAB, a nyílt forráskódú otthoni automatizálási szoftver messze meghaladja a piacon lévő más otthoni automatizálási rendszerek képességeit - de a telepítés nem könnyű. Valójában egyenesen frusztráló lehet. Olvass tovább , ahol megmutattam, hogyan kell ábrázolni az adatokat.

az alázatosság grafikonja az openhab-ból

Búcsú Arduino, szeretünk téged. Csak vicceltem: a házamban nem mindenhol lehet Wi-Fi hozzáférés, tehát ezekhez a helyekhez továbbra is hálózati hálózatra van szükségem Arduino és RF vevőkkel.

Ha szórakoztató a projekt, nézd meg Hogyan készítsünk Wi-Fi gombot az ESP8266 segítségével Hogyan készítsen saját Wi-Fi-vel csatlakoztatott gombot az ESP8266 segítségévelEbben az oktatóanyagban megtanulja, hogyan hozhat létre egy Wi-Fi-kompatibilis gombot a NodeMCU és az IFTTT használatával. Olvass tovább .

De mit fog csinálni az ESP8266-val? Az ESP8266-at használó bármely olyan projektet, amelyet szeretne látni, a MakeUseOf-on írták? Tudassa velünk a megjegyzésekben!

James rendelkezik mesterséges intelligencia BSc-vel, CompTIA A + és Network + tanúsítvánnyal rendelkezik. A MakeUseOf vezető fejlesztője, és szabadidejét VR paintballon és társasjátékokon játszik. Gyerekkora óta épít PC-ket.