EspOS

Gondoltad volna hogy ez egy webszerver?  Mindez 5$ körüli áron.  Egy micro USB-s telefontöltőn kívül másra nincs is szükség hozzá.

Ez így majdnem igaz. Hiányzik még egy jó firmware. Ezek a modulok gyárilag átlag felhasználó számára nem használhatók semmire. Sok  firmware található hozzá a neten. Sok használhatatlan közülük, sok játszani jó, másra nem igazán. Van pár nagyon jól sikerült, amihez komoly előképzettség szükséges, pilótavizsgával okos-otthon vezérlést lehet vele csinálni. Sokat keresgéltem, de egy igazán jól használhatót se találtam, ezért döntöttem úgy, hogy készítek egyet. Ez lett az EspOS. Van webes admin felülete, fájlkezelője. A modul belső tárhelye ~3Mb. Ide lehet feltölteni a megosztani kívánt weblapot. PHP-t sajnos nem tud futtatni, ezért készítettem egy parancsértelmezőt. JavaScript segítségével lehet számokat, sztringeket tárolni rajta, amit a többi kapcsolódott böngésző le tud kérdezni, módosítani. Ahogy a képen is látszik, vannak kivezetései a modulnak, amit a parancsértelmezővel lehet vezérelni. Egyszerre több telefon/laptop/bármi tud rá csatlakozni, a tárolt adatok mindenkinél valós időben frissülnek.

Telepítés

Jobb felső sarokban a DOWNLOAD-ra kattintva letölthető a firmware a szükséges egyéb dolgokkal együtt. Csomagold ki az espos.zip fájlt valahova. WeMos D1 mini panelra készült a firmware, de valószínű minden ESP12 modullal szerelt eszközön működik. Máson nem próbáltam. Még… Ennek megfelelően a CH341SER drivert kell telepíteni Windows alá. Benne van a kicsomagolt cuccban. Elvileg kaptunk egy virtual COM portot.

Most lehet indítani a Flash_firmware.exe programot. EspOS_vxxx.bin (xxx=verziószám) kiválaszt, COM port kiválaszt, mehet a Flash gomb.


Ha végigment a százalék, utána kis idő múlva kigyullad a led, ez jelzi a tárhely formattálását. Utána villog, ez a boot folyamat. Ha elaludt, használatra kész.

A termite.exe segítségével figyelhetők az események. COM port sebessége 57600 baud, a flash 100% után szabad futtatni. Ezt a szoftvert a www.compuphase.com készítette, köszönet érte.

Update: Az hercules.exe soros terminálja hibázott, kihagyott karaktereket. Kicseréltem.

Admin menü

Telepítés után AccessPoint módban indul a kütyü. Létrehoz egy EspOS nevű wifi hálózatot. Csatlakozzunk rá valami wifi képes eszközzel. Gyári beállításban be van kapcsolva a CaptivePortal mód, ilyenkor az eszköz feldob valami bejelentkezés a hálózatba üzenetet, rá kattintva az index.html weboldalon vagyunk. Az Unregistred Device üzenet egy kis támogatással eltüntethető. Egyéb korlátozás nincs, teljes értékű a firmware adakozás nélkül is. Ha esetleg nem kapunk bejelentkezés üzenetet, a böngésző címsorába írva a 8.8.8.8 IP címet, megkapjuk az index.html-t. Belépés az admin menübe: IP/login (8.8.8.8/login). A gyári index.html oldalon van login gomb. Jelszó nincs (enter).

Még mielőtt valaki belém állna az IP cím miatt,  elmondom miért a 8.8.8.8-at választottam. Ez a project egy Captive portálnak indult, aminél fontos hogy a telefonok automatikusan megnyissák az intex.html-t. Ez egyes telefonokon csak úgy működött, hogy ez volt a modul IP címe. Ezt azóta elvileg javítottam, de nincs lehetőségem mindenféle telefonnal tesztelni, ezért meghagytam. Setup menüben átírható szabványosra. Pl: 192.168.4.1

Setup menü

Itt végezhetők el a hálózati, kommunikációs beállítások.

Itt állítható be az admin menü jelszava.
AccessPoint, kliens, extender módok közül lehet választani.
HTML port esetleg ha szükséges, megváltoztatható.
MAC cím hekkelés is jó tud lenni bizonyos esetekben, itt megoldható.
IDIP a távoli eléréshez kell, erről később.

A system/www a konfigurációs fájl helye. Ezt azért tettem választhatóvá, hogy példák/kész alkalmazások egyszerűen feltölthetőek legyenek. Ha van feltöltve setup.txt akkor az lesz a beállítás, ha nincs akkor használja a mentettet. Érdemes egy setup.txt feltöltése (és újraindítás) után belépni  a Setup menübe, elmenteni system módban, utána törölni a browser-ben  a setup.txt-t.

AccessPoint mód

Ez az alapértelmezett beállítás, ilyenkor lehet telefonnal, tablettel, laptoppal csatlakozni rá. SSID, WPA jelszó állítható, lehet CaptivePortal módba tenni, illetve elrejteni a hálózatot. A redirect mezőbe írt URL fog megjelenni a böngésző címsorában. Ilyenkor minden címsorba írt http:// kezdetű URL megnyitására ez jelenik meg. Így például egy bár itallapja egyszerűen elérhetővé tehető a vendégek számára. Csak a fantázia szab határt a felhasználásra.

Kliens mód

Ebben a módban egy wifi hálózatra csatlakozik a kütyü. DHCP nincs. IP Address a kütyü IP címe, ezen érhető el az index.html. Gateway a router IP címe, amire csatlakozik. Így lehet kapunyitót, termosztátot, hasonló dolgokat csinálni vele. Ha nem tud csatlakozni a hálózatra, akkor AccessPoint módba megy át, így lehet módosítani a beállításokat.

Extender mód


Megnöveli egy wifi hálózat hatótávját. Router SSID, password a hosszabbítandó hálózat, ide csatlakozik a kütyü, a New SSID, password a létrehozott hálózat, a router hatótávján kívül eső eszközzel ehhez kell csatlakozni. Egyszerre max 4 klienst tud kiszolgálni. Ez a mód azt a problémát orvosolja például, hogy a laptopnak nincs wifi a kertben levő asztalon. Ha nem tud csatlakozni a hálózatra, akkor AccessPoint módba megy át, így lehet módosítani a beállításokat. Az IP beállítások az új hálózatra vonatkoznak, a hosszabítandó routerre DHCP-vel csatlakozik.

 

Communication menü

A Setup menü alsó panelja. Itt állítható be a parancsértelmező.


StdIn, StdOut
Ez a beállítás dönti el, hogy milyen bejövő csatornákon fogadhat a parancsértelmező utasításokat,
illetve milyen csatornákra küldheti a beérkezett parancs a kimenetét.

WS
Websocket
A WebSocket internetes technológia, ami kétirányú, duplex kommunikációs csatornák kiépítését teszi lehetővé.
Kifejlesztésének fő motivációja volt, hogy a webböngészőben futó alkalmazás képes legyen a szerverrel való kétirányú kommunikációra. Nem igényel saját portot, a HTTP portot használja (default: 80). Az EspOS által WebSocket-en küldött adatot az összes csatlakozott kliens megkapja. Gyakorlati használata megnézhető a LED parancs példa HTML forráskódjában. (Source pipa, HTML1, HTML2 gomb)

USB
Ez valójában az esp8266 chip TXD, RXD lába. Minden panel USB SERIAL átalakítóval csatlakozik a számítógéphez, ezért lett USB a neve ennek a csatornának.

UDP
WiFi hálózaton keresztül kommunikál UDP protokoll használatával. Paraméterei itt állíthatók be.
A készülő Android alkalmazás is ezt fogja használni 🙂

SER
Soros port. SER parancshoz konfigurálható tetszőleges GPIO lábak. TXT, RXD.

LoRa
433MHz rádó modul, 10km áthidalható távolsággal. Ha lesz felesleges pénzem két modulra, akkor belekerül az OS-be.

Line end characters
USB/UDP/SER/LoRa csatornákra kiküldött üzenet utolsó karakterei, amit az OS ad a sztring végéhez. Hexadedimális formában kell megadni. Több is lehet. Pl: 0D0A (CrLf)

DEBUG
USB-n keresztül kiküldi az eseményeket.

Bridge
Különböző csatornák között biztosít átjárást. Kétirányú. Itt lehet beállítani, másra nincs szükség a működéshez.
PL: SER=UDP
A GPIO lábakra beállított soros portra kötött GSM modul WiFi-n keresztül vezérelhető UDP protokollal.

LED
A LED parancshoz tartozó GPIO láb. A led másik lába beállítható Vcc/GND bekötéshez.

 

Websocket Console



Nagyon nem szeretném részletezni, magáért beszél. Itt lehet kipróbálni a parancsokat, megismerni a szintaktikát. A demó kódokhoz használt GPIO konfiguráció a Board gombon nézhető meg. Ahhoz, hogy ezzel egy működő cuccot reszelj, minimális HTML & JavaScript ismeret szükséges. A példák forráskódját megnézve nem bonyolult. Tudom ajánlani a https://www.w3schools.com/ weboldalt. Én is itt kezdtem…

 

GPIO

A modul rendelkezik 9db digitális szabadon felhasználható lábbal.  Mindegyik lehet bemenet, kimenet, PWM (kvázi analóg kimenet). Ezen kívül rendelkezésre áll még egy analóg bemenet. A Websocket konzol példái az alábbi bekötéshez készültek.

boot.txt

A boot.txt fájlba írt parancsok a bootolás után végrehajtódnak. Célszerű konfigutációs parancsokat tenni bele.
Ehhez nem kell WiFi kapcsolat se. Így a modul egy egyszerű mikrokontroller, aminek a programja a boot.txt.
Egyszerű feladatok programozói tudás nélkül is megoldhatóak.
Példa: Gombnyomásra egy relé behúz három másodpercre.
TIMER[0]CS=GPIO[D1]H
TIMER[0]CE=GPIO[D1]L
GPIO[D5]CL=TIMER[0]3s
GPIO[D5]INP

Távoli elérés

Hogy kapcsolom be hazafelé a légkondit?

Jobb felső sarokban klikk a MyDevice gombra. Ide bepötyög a DeviceID, (Admin/Info) és máris teszi a dolgát a légkondi. Működése: Az idip könyvtár felelős ezért. Ez van fent az www.esp8266.org oldalon is a root mappában. Setup menüben ez van alapértelmezetten megadva. A telepítő csomagban benne is van, ez bármilyen PHP képes tárhelyre feltölthető, Setup menüben az idip sorba beírni pl: http://tarhelyem.hu/idip. Az OS a myip.php segítségével lekéri a public IP-t, a saveip.php meg elmenti a tárhelyre a modul  DeviceID számával társítva. Turpiszság nincs, WireShark programmal ellenőrizhető. Routerban a HTTP portot, és/vagy az UDP portot ki kell nyitni, hogy elérhető legyen a modul.

Példák

Az examples mappában találhatóak. Jelenleg egy van. Ez egy kérdőív, amit telefonnal lehet kitölteni. Menti az állást. Admin menüben a Delete gombbal lehet nullázni. Index.html, question.txt feltölt, beállítás: AccessPoint, Captive. Question.txt szerkesztésével lehet a kérdéseket beállítani. Enter nem lehet a kérdések között.

Fórum

Elvileg működik a fórum, lehet regisztrálni. Felhasználónév, jelszó kell, emailcímet kér, de nincs semmire használva. Regisztráció után azonnal lehet írni. Nem igazán egyértelmű még nekem ez a fórummotor, de majd kialakul. Hajrá!

Támogatás

Több mint fél év munkám van ebben a projektben, eddig csak kiadásom volt vele kapcsolatban. Örömmel csinálom, nagyon megtetszett ez a modul. Szeretném szélesebb körben használhatóvá tenni mint amire kitalálták. Evés, ivás, lakás, egyéb ilyen szociális tevékenységet én is végzek, ami pénzbe kerül. Ahhoz, hogy tovább tudjam fejleszteni a fórumon felmerülő értelmes igények szerint az OS-t, hibákat javítgassak, ahhoz kell a támogatás. Támogatásért cserébe aktiváló kódot küldök, amit a bejelentkező jelszó mezőbe kell beírni. Hogy ezt tudjam küldeni, egy általad választott összeg kell, meg a modulod DeviceID-je. Ezt PayPal megjegyzés rovatába tudod írni, vagy WISE utalás esetén annak a megjegyzés rovatába. Támogatás nélkül is teljes értékű a firmware. Az unregistred device pár másodperces várakoztatást azért raktam bele, hogy más ne csináljon belőle üzletet úgy, hogy én nem részesedek belőle.

PayPal Donate

WISE
Ez egy sokpénznemű fintech pénzintézet. Adnak HUF, EUR, USD, GBP bankszámlaszámot, dombornyomott bankkártyát, filléreket számolnak a különböző pénznemek közötti váltásra. Teljesen ingyen van a számlavezetés, a kártyának sincs éves díja. Csak ajánlani tudom mindenkinek. Nem, nem az ügynökük vagyok, csak egy megelégedett ügyfél. Email címre lehet utalni (peter.hakkel.79@gmail.com), így iszom a kávét. Ha még nincs Wise számlád, kérlek IDE kattintva regisztrálj. Ezen a linken regisztrált komoly ügyfelek után elvileg én is kapok egy kis aptót, ami jól jönne.

Az aktiváló kódot fórumon adom privátban.

Köszönöm.