Mikrokontroller programozás esp-link segítségével

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Íme az Arduino Nano OTA:

https://www.youtube.com/watch?v=J2TYWlPKVUU

Nodemcu alól simán megy, csatlakozik, nyomom a kakaót Arduino IDE-ről, az avrdude hálózaton átjátssza, az Arduino meg felprogramozódik. Annyi a megkötés esp-link alatt, hogy ha a nano bootloadere 57600-on megy, akkor 57600-on kell adni az adatokat is, nem lehet 2 külön bitrátát megadni, egyet a futó programnak, egy másikat meg a bootloadernek.

Egyik leggagyibb Nodemcu-ra szerelt áramkörét látni a videón, annyira elszabtam, hogy a Nodemcu szélesebb, mint az elkészített panel. Szerencsére a 2cm-es tüskesor hajlékony, így nem kellett újracsinálni. Persze egyszer azért sikerült rosszul bekötni, de füst nélkül megúsztam.

Egyébként JY-MCU level convertert használok (Ebay), abban van AMS1117-33, többek között ezért nincs bekötve a 3V-os láb a sémán.

Próbanyákra is csinálok PCB rajzot, mert egyszerűbb, mint kockás papíron szívatni magam a kábelezéssel.
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Az esp-link konfigurálását csatoltam.

Az esp-link kezdetben saját action point-ként megy valami ESP_123ABC SSID-t használ első soros felprogramozás után. Kapcsolódsz, beírod: 192.168.4.1, utána rácsatlakoztatod a saját Wifi-dre.

ESP-01-gyel elvileg megy, csak a kis memória miatt nem lehet OTA-val frissíteni a szoftvert. Nekem nem sikerült működésre bírni, viszont a Nodemcu-val stabil.

Honlap:
https://github.com/jeelabs/esp-link
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Összefoglalód azért nem lett annyira alapos mint a ledszalag orgona.
Még szerencse hogy az esp link oldalon ezt bepótolták. :)
Videó viszont aranyos, még nem jöttem rá mennyivel ad többet így mozgó formában mintha egy képet tettél volna róla fel. :P
Régebben nézegettem, de ha már ennyire működik gondoltam kirpóbálom legalább ESP-vel.
Határozottan tetszik. Kellemes egyértelmű HTML oldalon lehet beállítani a wifi csatlakozást. Van külön kis terminál ablak ahol közvetlenül lehet üzeneteket küldeni ez ESP soros portjára kötött MCU-nak.

Eddig ez szép, kényelmes, és hasznos, de ettől még nem esünk hasra. :)
Ami szerintem nagy kérdés, hogy hogy muzsikál a REST rész. Azaz hogy lehet ezeket egymással, és akár egy web böngészőn futtatott vezérlő konzollal, folyamatos kommunikációra bírni.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Közben nem hagy nyugodni ez az esp link.
Web böngészőből Ajaxal küldök neki üzenetet.

Kód: Egész kijelölése

xhttp.open("POST", "http://192.168.xx.xx/console/send?text=(hello=1234)", true);
akkor a soros porton küldi az MCU felé ezt

Kód: Egész kijelölése

(hello=1234)744304> HTTP POST /console/send: 200, 5ms, h=19256
Ezzel tulajdonképp már megvan az MCU vezérlése, bár adat nem jön vissza.

Ha viszont adatokat szeretnék visszakapni az csak úgy megy eddig hogy meghívom a
192.168.xx.xx/console/text "oldalt" és erre vissza kapom mindazt összefűzve amit az MCU küldött addig a soros portra.

ha nem volt üzenet akkor

Kód: Egész kijelölése

{"len":0, "start":0, "text": ""}
a válasz

ha "A=1" és "B=2" -t küldött akkor

Kód: Egész kijelölése

{"len":6, "start":0, "text": "A=1B=2"}
a válasz

192.168.xx.xx/console/reset
ezzel pedig lehet törölni a tárolt üzeneteket

Azt érzem hogy nem a legfrappánsabb megoldás, de alakul. :)
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Fordítottál már esp-link-et? Igazából kódmódosítás nélkül lehet benne tárolni web-oldalakat.

A fordítás Linux alatt megbízhatóan megy, bár pepecs egy meló belőni.

Mindenesetre a projekt folyamatos fejlesztés alatt van, úgy látom hogy vannak pull request-ek is a github-on.

A web szerver része hiányzik nálam. Úgy képzelném el, hogy a web-es részre feltölteni is lehessen, ne csak letölteni.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Nyitottam egy issue-t, hogy az esp-link-ből web szervert csinálnék:

https://github.com/jeelabs/esp-link/issues/142

Meglátjuk, hogy tetszik-e a komának az elképzelés. Az esp adná a web-felületet, az MCU meg dolgozna.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

MCU OTA weboldalon keresztül az tényleg hasznos lenne. :)
ESP-n én is csak ezt használom.

Viszont a felhasználónak weboldalt biztosítani az nálam már kiesett a kosárból.
Eleinte nálam is volt egy alap wifi kapcsolati oldal mint az ESP-Linken, és az ESP vezérlő oldal(ak).
Aztán mikor már több egység működik egyszerre akkor rájöttem hogy nem akkora jó dolog minden egységnek külön oldalt létrehozni.
Hasznosabb ha egy közös különálló oldalon van mindaz ami egy csoportba tartozik. Attól függetlenül hogy ezt hány db wifire kötött egységet jelent a háttérben.
Nem beszélve arról hogy ha változtatom az oldal kinézetét, külön külön újra kell mind írni. Nagy munka és az eredmény sem felhasználó barát.
Ami nagyon bevált: Egy közös oldal, onnan mindent elér a felhasználó. Lehet csoportosítani ahogy szeretném. Vagy akár rendezhető oldal is lehet és akkor minden felhasználó magának állítja be, és a beállítást eltenni a készüléken. (ez még távolabbi terv) Úgyhogy, pont oda jutottam mint az ESP-linkesek.

Másik gond amivel esp-linkesek is küzdenek, hogy az egyszerre csak 4 nyitott kapcsolat lehet mert felzabálja a memóriát.
Hát erről sem tudok sokat. Pár hetes JavaScript és HTML tudásom igen korlátoz. :) Az viszont biztos hogy ennek utána kell nézni mert Ajax vagy WebSocket nélkül lehetetlen többfelhasználós kezelő felületet létrehozni.

Kíváncsian várom mik lesznek a válaszok a kérdéseidre. :)

ESP-link fordítása:
Mostanában divatos szóval mondva, ez a feladat jócskán kiesik a komfort zónámból. :)
Valamint ha magamnak fordítom lemondok az frissítésről, mert azt is folyton fordítgatnom kell.
És ugye ott van az az apró tény hogy egyenlőre nem is használom az esp-linket, csak készülök arra a pontra amikor kinövöm az esp lehetőségeit. :)
Addigra persze lehet hogy egyszerűbb lesz simán egy lib-et betenni a mostani kódomba ami felprogramozza az MCU-t. Az lenne ám a Kánaán.
Persze ha az ESP felhasználók táborát nézem lehet népszerűbb lesz az esp-link.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Az esp-link feladata a megjelenítés, az MCU meg JSON-ban küldi az adatokat.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Igen azt látom hogy nem vagy egyedül ezzel a esp-link-en üzemeltessük kezelőfelületet elgondolással. :)
Az MCU-JSON megoldást viszont mindketten használjuk majd.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: Robert »

Egy központi holmi, azon a config állományok, a kliens WiFi-k meg időnként lekérik, hogy változott-e...
Okosotthon kapcsán ezt mintha a MQTT-protokollal is össze lehetne hozni....
Vagy sima HTML-lekéréssel....
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Igen lehet, nem kis lehetőségek rejlenek benne. :)
Ez a téma is megérne egy jó kis kibeszélést, de egyenlőre erre várni kell pár napocskát ahogy látom. Pedig már aktuális mert MQTT használat és OTA frissítés már minden új fejlesztésnél alap ahogy látom. Csak hát be kell épülni a köztudatba.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: csabeszq »

Néhány gondolat, hogy mit szeretnék keresztül vinni az esp-linken.

- saját user HTTP oldalak feltöltése
- néhány változónak lehet belső állapota (firstname=nevem, vagy hasonlók)

HTML-be integrálás:

Kód: Egész kijelölése

<form method="post" action="valami">
  <input type="text" name="firstname" value="${firstname}"><br>
  <input type="text" name="lastname" value="${lastname}"><br>
  <input type="submit" value="Submit">
</form>
Szóval az esp-be rakni egy kulcs érték párt, ami frissítődik post-tal (megy MCU felé), vagy az MCU leküldi soros porton az értékét, a weboldal meg ${kulcs} alapon hivatkozik rá.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Hát nem vagyok nagy HTML guru, de erre az Ajaxot használják.
Rengeteg előnye van ehhez képest.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

ui.
Vagy te is így akatrad? :)
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Mikrokontroller programozás esp-link segítségével

Hozzászólás Szerző: SanyiSay »

Ma lassú vagyok.

Közben rájöttem hogy jquery-nél vannak efféle jelek, de ott még nem tartok. :)
Így viszont egy irányba keresgélünk csak nem egy nyelvet beszéltünk eddig.
Így pláne érdekel az eredmény.
Válasz küldése