Bütyköltem

Néha mindenféle érdekes dolgokat rakok össze otthon, melyek egy része talán másokat is érdekelhet.

TIVEDA

  • Így előzd meg a büntetést!Ti megszoktátok már a VÉDA kapukat az utakon? Hogy jövet-menet figyelik mindent jól csináltok-e, nem telefonáltok, nem érintitek a záróvonalat, és azonnal megálltok, ha sárgára vált a jelzőlámpa? Hogy...
  • Így működik a TIVEDAMivel a TIVEDA-ban használt ESP8266 összesen 96Kbyte rammal rendelkezik, aminek nagy részét az alap rendszer elfoglalja, ezért az iGO-val vagy a Waze-el ellentétben nem volt lehetőségem arra, hogy...
  • Kijelzőt a TIVEDáraTegnap kaptam ezt a kis videót, ahol egyik olvasóm mutatja meg, hogy kis átalakítással akár egy OLED kijelző is ráköthető a TIVEDára, ami így már a pontos sebességet és időt is ki tudja jelezni. A...
  • TIVEDA firmware feltöltésElkészültem végre az ígért videóval a TIVEDA szoftver feltöltéséről. A Wemos D1 mini a CH340 meghajtót igényli. Ezt windowshoz itt találjuk meg, ha telepítettük, akkor csatlakoztatás után egy új COM...
  • TIVEDA beépítéseAmikor az elkészült TIVEDA-t szeretnénk fixen beszerelni egy járműbe, az első probléma, amit meg kell oldani, az az, hogy a jármű áramellátása általában 12 voltos (ritkábban 6), a mi vezérlőnk viszont...
  • Ti küldtétekAz elmúlt napokban egyre több visszajelzést kapok olyanoktól, akik a korábbi cikkem alapján megépítették saját TIVEDA készüléküket. Ezekből osztanék meg párat veletek, háthat lesznek olyanok, akik...

Friss topikok

Linkajánló

Okmányiroda, kormányablak időpontfoglalás térképen. Ha hivatali ügyet kell intézned, érdemes itt kezdened.

Ha kiváncsi vagy melyik izzót éri meg megvenni, akkor próbáld ki a másik oldalamat is!

Also check out my light cost calculator site!

Csináld magad IoT: ESP8266

2016.07.27. 11:00 Mr. Big

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.

esp8266_wi-fi_module11.jpgEhhez 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.jpg

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.jpg

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.jpg

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.

nodemcu-v2.jpg

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.

mini_v2.jpg

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.

esplorer.png

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.

esp-01-arduino-ide.png

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.

ssd1306.jpg

Ö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.

5 komment

Címkék: programozás elektronika diy esp8266 nodemcu

A bejegyzés trackback címe:

https://butykoltem.blog.hu/api/trackback/id/tr738704258

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

ern0 · http://linkbroker.hu/ 2016.08.25. 22:17:06

Már elég régóta figyel egy LUA-s verzió otthon, aztán átköltöztettem a rendszergazdám asztalára, hogy majd együtt előbb faragunk valamit belőle. Engedd meg, hogy pár kérdéssel fárasszalak:

1. Az Arduino libek, ha jól értem, meg vannak rá írva szépen. A WiFi használatában sincs eltérés? (Mivel technikailag, gondolom, ESP-n van valami IP stack, valószínűleg az lwIP, arra van ráhúzva az Arduino WiFi interface, míg Arduino vason külön eszköz a WiFi vagy az Ethernet, és azokon van saját firmware, ami SPI-jal vagy mivel kommunikál a fő géppel.)

2. Lehet UDP-t küldeni-fogadni vele?

3. Muszáj az Arduino IDE-t használni, vagy van valami CLI tool (compile, upload)?

4. Van valami más "oprsz" is rá, mondjuk FreeRTOS, vagy netán valami ESP-specifikus?

Mr. Big 2016.08.25. 22:55:16

Szia!
1) Igen, alapvetően minden megvan, itt:
esp8266.github.io/Arduino/versions/2.3.0/
Az Arduino IDE-be pár kattintással telepíthető az egész. Az IP stack ha jól értem hardwareben van (vagy valami mikro kernelben). Legalábbis az Espressif ad egy low level API-t, de már abban is azok a hívások szerepelnek, amik az Arduinoban is megjelennek

2) van udp is, itt egy demo www.arduino.cc/en/Tutorial/WiFiSendReceiveUDPString (megnéztem, az espre is implementálták)

3) nem muszáj :) PlatformIO most a buzzword, ez elvileg egy teljes toolchaint ad. Próbálni még nem próbáltam, inkább ajánlok leírást:
blog.squix.org/2016/01/esp8266-arduino-ide-alternative.html

4) oprendszert nem tudok, van az ESP saját alap libraryja. Az arduino project csak egy proxy ezelé.

A lua-ásat bármikor felülírhatod a saját arduino kódoddal. Nekem kb 4x gyorsabb volt és kétszer annyi szabad ram maradt.

ern0 · http://linkbroker.hu/ 2016.08.31. 16:29:05

A PlatformIO-t már installtam, és ki is fogom próbálni, nem láttam még ehhez foghatót.

Apropó, Arduino proxy: megcsináltam Unix rendszerekre egy használható részhalmazát az Arduino API-nak: github.com/ern0/posixino - Arduino prgmot le tudsz fordítani destkop gépre (Linux és Mac OS X).

Én az a fajta vagyok, aki minden két sor prg megírása után kompilálok és kipróbálom, illetve ennek a segítségével már tudsz unit testeket írni.

Más: van egy témába vágó meetup, de nem az, ami a LogMeIn-eseknél van, hanem az IoT Creativity Meetup, gyere el egyeszer: www.meetup.com/Budapest-IoT-Creativity-Meetup/events/230141161/ - az előadások változó színvonalúak szoktak lenni, viszont az oda járók nem ilyen startupos buzik, hanem rendes embedded prgmozók, műszerészek stb.

Beerhead 2016.09.01. 11:54:52

@ern0:
3-4: A gyártó honlapján (espressif.com) elérhető egy saját RTOS rá, angol dokumentációval, valamint az RTOS nélküli firmware készítéséhez való toolchain is.
De amúgy én maradtam a lua-s verziónál (nodemcu firmware). Nekem tökéletesen stabil és gyors minden alkalmazás, amit csináltam eddig.

chris-v 2016.09.20. 12:53:08

Jó ez a kis időjárás állomás, meg a repülő infós is amit a cikk végén említesz. Simán összekombinálnám a két kis kijelzőt egy helyre. De ahogy nézelődök kész dobozkák nem nagyon vannak, szóval 3D nyomtató nélkül nem sok mindbe lehetne belefaragni.
süti beállítások módosítása