Elemzők szerint a következő évek az internetre kapcsolódó eszközök robbanás szerű terjedéséről fognak szólni. Nevezik a dolgok internetének is, én kis apró, eldobható eszközökre asszociálnék.
Ehhez képes a gyártók még mindig inkább a nagy dolgokra koncentrálnak: okos tv, okos hűtő, okos autó, okos lakás stb. Láthatóan küzdenek azzal is, hogy eltalálják a valós felhasználói igényeket. Nem lesz egyszerű dolguk: az otthoni igények mindegyikére van már jobb-rosszabb megoldás a fűtés szabályozástól kezdve az önműködő kapukon keresztül a riasztó rendszerekig. Ezért igazán sikeres a jövőben az tud majd lenni, aki lehetővé teszi, hogy ezek az eszközök összekapcsolódva, személyre szabott megoldásokkal növeljék a kényelmünket.
Azoknak akik hozzám hasonlóan szeretnek a saját igényeiknek megfelelő megoldásokat összeállítani hihetetlenül hasznos eszközt ad az ESP8266 platform.
Összefoglalva egy kis wifi képes rendszerről van szó, mely egyetlen apró lapkán elfér. A kínai Espressiff kezdte el fejleszteni, elsőnek 2014 környékén kezdték el arra használni, hogy Arduinókkal használják wifi elérésre.
Elterjedését sokáig nehezítette, hogy minden dokumentáció kínaiul volt elérhető, az is meglehetősen hiányosan. Emiatt időbe tellett, amíg a közösség lefordította angolra, és elkezdték felfedezni az eszköz valódi képességeit.
Kiderült, hogy egyszerűen újraprogramozható, képességei pedig több szempontból is vetekednek az amúgy méltán népszerű Arduinoval.
Arduino (uno/nano stb) | ESP8266 | |
CPU frekvencia | 16Mhz | 80/160Mhz |
Architektúra | 8bit AVR | 32bit RISC |
Tápfeszültség | 5V | 3,3V |
RAM | 2kByte | 64kByte utasítás + 96 kByte adat |
Flash | 32kByte | 1-4MByte (általában 4, vagy 2) |
EEPROM | 1kByte | - |
Digital IO lábak száma | 14 | 8-16 |
Analóg lábak száma | 6 | 1 10bites |
WiFi | nincs | van |
Mint a táblázatból kiderűl lényegesen erősebb processzorral és több RAM-mal rendelkezik, amikre a WiFi miatt szüksége is van. Egy ilyen olcsó eszköztől kifejezetten szép teljesítmény, hogy a nagyobb számítási kapacitás révén WPA titkosítást használó hálózatokhoz is tud csatlakozni.
Mivel a fejlesztése töretlen, több különböző formában is megjelent, amik méreten túl leginkább a ki/bemeneti lábak számában különböznek egymástól. A teljes listát itt lehet áttekinteni, én most csak a népszerűbbeket emelném ki:
ESP-01: ez legelső modell. Csak két szabadon használható kimenettel rendelkezik, ugyanakkor ez az egyetlen változat, ami breadboardon is használható. Nem mellékes az sem, hogy akár már 800Ft körül hozzájuthatunk.
ESP-07: ezt a változatot azért említeném meg külön, mert ez az egyetlen, amelyikre külső antennát is csatlakoztatni lehet. Ára szintén hasonló.
ESP-12(E): jelenleg ez számít a legnépszerűbbnek: kicsi, ugyanakkor 4MB flashel érkezik és sok lába is van. Talán a népszerűsége lehet az oka annak, hogy még valamivel olcsóbb is tud lenni a régebbi változatoknál.
A kis raszter méret, valamint az USB csatlakozó hiánya miatt ugyanakkor otthoni bütykölésre az ESP-01-et leszámítva nehezen alkalmazhatóak. Itt jönnek képbe a fejlesztői modulok, ahol valamelyik verziót egy másik gyártó elhelyezi egy panelen, ami pótolja ezeket a hiányosságokat: kivezetik a lábakat a szabványos 2.54mm-es raszterméretű csatlakozókra.
A legelterjedtebb ezek közül a nodemcu illetve annak klónjai. Jelenlegi (második generációs) változatai 1800Ft körül mozognak, érdemes ebből is többet venni egyszerre, mert akkor jelentős kedvezményeket kaphatunk. Ügyelni kell azonban arra, hogy létezik egy régebbi változata, ami szélesebb, ezért a szokványos breadboardokon csak nehezen használható. Kapható ugyanakkor több építőkészlet, ami viszont pont ezzel a verzióval kompatibilis.
Személyes kedvencem a d1 mini, nem csak azért mert olcsóbb a nodemcu méretű moduloknál, hanem mert a kisebb mérete miatt több helyen elfér, valamint a csatlakoztatás módjáról is a felhasználó dönthet. Képességeiben ugyanakkor szinte ugyanazt hozza, mint a nodemcu. Kaphatóak hozzá különböző boardok is, hasonlóan az arduinóhoz, azonban ezek lényegesen kissebbek.
Programozás
A modulok felsorolásakor nem véletlenül kezdtem a NodeMCU-val. Ez ugyanis nem csak egy modult takar, de a hozzá készített firmware-t is. Egy open source beágyazott Lua interpretert kapunk, így gyakorlatilag azonnal elkezdhetjük a programozást. A Lua nyelv nagyon egyszerű, nagyjából mintha a BASIC-et kevertük volna össze javascripttel: pár példa átfutása után eddig mindenki el tudott kezdeni vele dolgozni.
Egy helyről beszerezhető moduljai a legtöbb népszerű komponenshez könnyű használatot biztosítanak. Kapunk fájl és gpio műveleteket, pwm szabályzást motorokhoz, hálózati kliens és szerver, valamint http kliens és szerver funkciókat, dht11, és ds18s20 hőmérő szenzor támogatást, de van a most méltán népszerű MQTT szabványhoz is kliens.A teljes referencia itt található.
Mivel a nodemcu egy firmwaret jelent, amely az eszköz bootolása során indul el, és folyamatosan fut is, ezért akár úgy is programozhatjuk, az usb csatlakoztatása után a megfelelő soros portra csatlakozunk egy terminál alkalmazással, és begépeljük a parancsokat.
Ennél azonban valamivel szofisztikáltabb környezetet ad az ESPlorer nevű java alkalmazás, ami kezdetleges ugyan, de azért elég jól el lehet dolgozgatni vele.
A nodemcu legnagyobb hátránya, hogy az interpreter framework sok memóriát eszik, valamint az alkalmazás végrehajtása is lassú. Ezért akinek fontos a performancia, jobban jár, ha az Arduino környezetet használja, amihez ezt a csomagot érdemes telepíteni. Ekkor az Arduinoval már megismert C/++ nyelvet használhatjuk fejlesztésre. A létrejött program a ESP8266 processzorán natív alkalmazásként fut, ami lényegesen gyorsabban is fut, valamint közel négyszer annyi memória áll az alkalmazásunk rendelkezésére, mint nodemcu esetében.
Sajnos azonban ennek a dokumentációja szerintem kicsit gyengébb, valamint a modul támogatás is valamivel szegényesebb, cserébe a legtöbb arduino könyvtár felhasználható.
Felhasználása
A leggyakoribb felhasználási terület szenzorok, vezérlők építése otthonunk körül. Gyakoriak például a meteorológiai állomások, a legjobban kidolgozott szerintem ez a projekt. A blogot egyébként is ajánlom, több más érdekes projekt is található ott, kedvencem most ez a kis eszköz, ami a fejünk felett elrepülő repülőgépekről ad információt.
Ötletek után érdemes még böngészgetni ezt a fórumot: itt rendszeresen tartanak versenyt esp8266 alapú projekteknek. jobbnál jobb nevezőkkel.