Sikerélmény: LUA helyett Arduino

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Sikerélmény: LUA helyett Arduino

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

Egy kis sikerélmény beszámoló.
Arduinoval önmagukban is szépen programozhatóak az ESP modulok.
NodeMCU LUA megette az összes memóriát 32Kb ból alig maradt 10Kb és már folyton újraindult a memória hiány miatt. Ugyanaz a kód Arduinóval fordítva 4Kb-on elfért.
Még itt is vannak megoldatlan kérdések memóriával, de nem mennek a stabilitás és fejlesztés rovására.
Kód ugyan nem bonyolult, eddig egy Webszerver amin keresztül böngészőről lehet kapcsolgatni a GPIO lábakat, config dolgokat beállítani + Google szerverről időleszedés, az időzített kikapcsolás lehetősége miatt. ADC lábon ellenállásorral 4 kapcsoló beolvasása. Kis alap dolgok, de eddig hibátlan. Hithű Bascomos lévén kicsit tartottam az Arduino nyelvtől, de hiba volt már látom. :)

Aztán jött a kommunikáljanak egymással a modulok probléma. Elsőre a MQTT be futottam bele, de ahogy olvastam kell hozzá egy MQTT broker amit folyton futtatnom kellene a NAS-on vagy bármi eszközön, ezért ezt elvetettem, és sima server kliens kapcsolattal küldök üzenetet az egyik modultól a másiknak. Aztán ha lesz 10 vagy több esp modul beépítve lehet az én módszerem már nem lesz a legfrappánsabb.

Gyorsan kipróbáltam a WS2812B had villogjon. Még az ultrahangos távolsgmérő lesz beépítve, de gondolom az is menni fog mert lua alatt is ment.

Aztán jó lenne némi ota frissítés. Lua alatt viszonylag egyszerű volt mert külön fájlokat kellett másolgatni sima fájlrendszerbe, de Arduino alatt nem így van.
Elvileg menne itt is a fájlrendszer kezelés, ami jó lenne a weboldalakhoz is de az is még hátra van. Utána egy érintő képernyő rá és ha ez is megvan, többet elértem mint vártam ettől a kis vacaktól. :D
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Most, hogy már ilyen szépen szét lettek válogatva a témák, kicsit részletezném hátha valaki kedvet kapna az ESP-Arduino val való programozásához.
Miért érdemes kis időt szánni rá, és hogy miért emlegetik páran az ESP modulokat az arduino utódjának az egy másik fórum témája lesz pld.
viewtopic.php?f=46&t=1760.
Valamint a net és a Youtube tele van a benne rejlő lehetőségekkel.

Amit nekünk tennünk kell hogy programozhassuk, vegyük fel az Arduino-ban, Boards manager-alá az ESP8266 os modult.
Ezt a következő képpen tehetjük meg:
https://learn.sparkfun.com/tutorials/es ... uino-addon
A hozzá való linket pedig a következő oldalon találjuk.
https://github.com/esp8266/Arduino
Ezután természetesen a szükséges Library-k következnek.

Arduinohoz még nem nagyon értek így én ezt töltöttem le, ottani fórumok ajánlása alapján.
https://github.com/esp8266/Arduino/pull ... -155905800
Board verzióból pedig a 2.0.0-rc2 verziót használom.
Régebbivel nem működött pld, az OTA frissítés.

Teszteltem az Eclips Arduinot- is de ott az Arduino verziószám kötött, így nem használható.

Miután maradtam a sima Arduinonál, jött a következő probléma.
Több ESP modult programozok egyszerre (egyenlőre a lakás, aztán remélem a világ több pontján :) ), ráadásul különböző USB csatolókkal, valamint wifin keresztül is amikor az ESP modul IP címe van portnak beállítva (OTA frissítés), és mind különböző paraméterekkel.
Arduino-ban nem lehet a kódban rögzíteni ezeket a beállításokat, a preferences.txt pedig elmozdíthtatlan.
Rátaláltam az Arduino Portable készítésre.
http://www.esp8266-projects.com/2015/06 ... table.html
Bitang egyszerű csak egy Portable mappát kell létrehozni.

Nem túl szép a módszer, de most van minden ESP modulhoz egy Arduino mappám mindegyik külön board beállításokkal.
Azokról egy egy indító parancsikonnal, és amelyik modulra akarom küldeni a kódot arra húzom rá.
Persze mivel többnyire minden egységnek külön programja van jobb lenne mindezt a kódban rögzíteni, de találtam már 2012 ből lévő bejegyzést is ennek hiányára az Arduino oldalon, így nekik ez nem annyira létkérdés ahogy látom.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Közben annyit még hozzátennék a Windows/Portable Arduino készítéshez, hogy a beállítások menüben a Vázlatfüzet útvonalát is érdemes
..\Portable\sketchbook -ra változtatni, és létrehozni sketchbook mappán bellül egy Arduino mappát. Így már teljesen egy mappából használható lett a program.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

https://onedrive.live.com/?authkey=%21A ... EE0158403F

Ide feltettem egy kis alaprogramot, hátha valakinek pont ez a löket hiányzik.

Ahogy kinéz:
STA módban csatlakozik wifire a kódban megadott név,jelszóval.
beállít magának egy fix IP címet
böngészővel elösször a nyitó oldalt érjük el ahol
-GPIO lábakat tudjuk 1/0 állásba kapcsolgatni a port értéke a gombon megjelenik a név melett.
-gombal átléphetünk a config oldalra
-gombal átléphetünk a timer oldalra
Config oldalon a gombok neveit, a wifijelszót stb lehet megváltoztatni.
-elmenteni EEpromba
-vagy az alapértelmezett EEprom tartalmat visszaállítja
Timer oldalon a Google szerverről letöltött időt látjuk.

Mindez egy satu egyszerűségével minden csillivilli nélkül.
HTML tudásom csak Arduinos ismereteimmel vetekszik, így nem feltétlen a legszebb program. :)
Inkább csak egy kód gyüjtemény amiből látszik, hogy hogy jönnek mennek az adatok.

Amit tud:
A rajta futtatott weboldalon tudunk adatokat megjeleníteni, onnan akár űrlapokon keresztül adatokat visszaküldeni az ESP modulnak.
Mindez platformfüggetlen, mert minden olyan eszközzel tudjuk vezérelni amin képes böngésző futtatására.
Ha netán még is ragaszkodnánk vezérlő célalkalmazásokhoz, ara is van mód.
https://play.google.com/store/apps/deta ... r.button16
Itt csak egyszerűen beállítjuk az IP címet és minden gombhoz beállítjuk azt az üzenetet ami tulajdonképpen a böngésző címsorába kerülne. Innentől kezdve már meg is van a vezérlő alkalmazás.
Persze ha több modult szeretnénk vezérelni akkor vagy egy központi szervermodult csinálunk ami csak továbbítja az üzenetet a megfelelő modul felé, vagy olyan alkalmazást választunk ami több IP címmel is elbír.
https://play.google.com/store/apps/deta ... zetaremote
Természetesen tudjuk vezérelni egy másik ESP modullal is, olyankor ugyanúgy küldjük az adatokat a megcímzett szerver ESP felé mint ahogy a Google szerverre küldés történt a pontos idő miatt.
Ezután jön a hogy ne akadjanak össze az adatok, ha mindenki kommunikál mindenkivel.
Ilyenkor jöhet be a MQTT.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

https://onedrive.live.com/?authkey=%21A ... EE0158403F
Töltögetem ide az alapprogramokat. Többnyire Arduino Példák között is megtalálhatóak viszont az ottani változat gyakorta hiányos.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

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

FSBrowser mintaprogram átdolgozása.
ESP8266WebServer.h könytár tesztelése.
Ami nagyon jó hogy használja az ESP SPIFFS fájlrendszerét, így sima böngészőn keresztül lehet feltölteni fájlokat az ESP modulra. (nem kell Arduino hozzá)
Ami egyébként itt található:
http://esp8266.github.io/Arduino/versio ... ystem.html
Ahogy a videóban is látszik, nem kell kódban megírnunk a HTML oldalt elég a *.htm fájlokat felölteni ESP-re és a szerver onnan jeleníti meg.
Előnye hogy bonyolultabb oldalak megoldása is lehetséges könnyedén, akár képekkel, külső szerkesztővel.(ott mondjuk vigyázni kell, mert a WEB szerkesztők szeretik pazarolni a memóriát) Hátránya hogy addig még a kódból soronként töltöttünk fel egy oldalt, közben változó értékekkel is elláthattuk. Most az oldalt kell aktívvá tenni, hogy fogadni tudja az adatokat a szerver felől.

A színkereső oldal szín elemeit http://www.rapidtables.com/web/color/Web_Color.htm ebből az oldalból vettem ki (ez volt az első a keresőbe :) ), kis módosítás után, már nem csak választani lehetett de vissza is küldte színt a szervernek, ami soros porton a PC-re küldte hogy lássuk. Get/Post metódus használatára lett 2 Form. Ezzel az új könyvtárral ezek is könnyebben elérhetőek.

HTML és JavaScript tudásom kb ennyi ami ezekben van. Így kissé lassan haladok, de szerencsére ezekről már minden megtalálható, valamint ha valaki kijavítana mikor butaságokat írok, nem sértődnék meg. :)

Mátrix orgona szempontjából a HTML színszerkesztő elemei működnek. :)

Kódot feltettem OneDrive-omra. ( FSBrowser.zip )

Ezt a két szerkesztőt használom HTML oldalak szerkesztésére és ellenőrzésére.
http://www.html.am/html-editors/online-html-editor.cfm
http://htmledit.squarefree.com/
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Belekóstoltam a JavaScript lehetőségeibe is.
Gondolom aki használta már annak természetes, ám nekem hú de csudi jó. :)
Kliens oldalon mennyi mindent meg lehet oldani. Kezdetnek csináltam az effekt szerkesztőt, hát nem kellet megszakadni a tanulásba.
Persze nem érzem magam webmesternek :P , viszont már így is sok problémát levesz a vállamról.
Majd nyitok egy topikot hogy Arduino helyett JavaScript. (csak vicceltem) :)

Minta index2.htm fájlt feltettem OneDrive/ESP8266/Arduino Ide/Examples mappába.
Simán böngészővel megnyitható. Legalább is Chrome alatt fut. Többit nem teszteltem, ott még nem tartunk.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

ESP Arduinos programozásáhz nem kell Firmware mert közvetlenül azt írod, és az Arduino fordító már azt tölti fel az ESP re.
FTDI illesztővel szokott olyan probléma lenni Hogy nem stabil a kapcsolata. Nálam még nem fordult elő de Csabeszq fórumtárs panaszkodott rá.
Wifi AP-STA mód beállítása macerás lehet: Arra összeszedem a gondolataim mielőtt süketségeket írnék. Ott az sem mindegy milyen verziókat használsz ESP8266 board ként. Van stabil, és fejlesztői verió, és ha jó verziót használsz akkor is ki kell kapcsolni az AP módot külön hogy abba hagyja nem elég csak váltani. Igen ragaszkodó.

Amikor nem NodeMCUt- ESP-12 vagy egyéb modult használsz akkor pár felhúzó ellenállás és kondi nem árt a modul mellé mert alapdól nem tartalmazza és instabilitást okozhat.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Javascriptben is lehet a ESP-t programozni - nem csak master/weblap felől:)
De ez külön téma legyen: ESPruino (és smart.js)

WebOldal felől nézd még meg az AJAX-ot.
De lassan ez is külön témát jelent...
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Lehet rosszul fogalmaztam.
Nem az ESP-t hanem csak a Weblapot programozom. Viszont minden olyan feladatot amihez nem kell az ESP feltétlen rá lehet bízni a Weboldalra. Mondjuk az én esetemben a tárolandó tömb kialakítás, és mondjuk a színek átkonvertálása ESP számára elérhető formára. De ha visszatérünk a több reflektoros projektre ott akár a reflektorok vezérlésének komplett algoritmusa is mehet rajra. Persze akkor már erősen érzékeny arra a készülékre amin a weboldalt megjelenítik.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Ajax? Simán.
ESP, JS, Ajax. Nem sok ez a meló nekünk Tibi? :mrgreen:
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

AP/STA csatlakozásra Feltettem a mintáim közé a "wifi_ap_sta" mappába.
Setup részben kell kommentbe tenni ami nem kell.
Sajnos azt nem sikerült elérni hogy egymás után még programon bellül lehessen váltani wifi módot, restart nélkül.
AP név is szépen változik.
Egy baja van hogy kizárólag 2.0.0-ás ESP board verzióval fut az új fejlesztés alatt állóval nem. (2.0.0-rc2/)
Ha mégis elkerülhetetlen a rc2 használata akkor a WiFiManager.h-t kell használni. Azt is teszteltem megy.
happy555
Biztosítékgyilkos
Hozzászólások: 51
Csatlakozott: 2013. augusztus 16. péntek, 12:45

Re: Sikerélmény: LUA helyett Arduino

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

Nekem az _alap_esp feltöltése után egy végtelen ámokfutásba kedz a sorosporton:
https://www.dropbox.com/s/jjiukon027lpy ... 9.png?dl=0
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Hát az nem kizárt, neve ellenére az nem egy alap program. Szerintem le is veszem.
Abban sok minden volt amit előtte nem árt külön külön tesztelni.
Kép alapján az eeprom résznél lehet némi címzés probléma. legalább is nálam akkor hozta ezt a képet.
Az eeprom kezelés is egy külön fejezet. Arduino Minták között nézelődj próbálkozz.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sikerélmény: LUA helyett Arduino

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

Aztán vannak olyan összeakadási problémák is hogy mikor a kód elején felhasznált a könyvtárakat felsorolod, azoknak a sorrendje sem mindegy, és a setup fügvényben ugyanez a helyzet. Ha előbb inicializálod a fájlrendszert és utána a webszervert hibát nem okoz de nem működik. Ez lehet Arduinos betegség de lehet ESP fordító hiba is, ezt nem tudom.
Emellet még amire rá akadtam, ha már fájlrendszer, hogy bizonyos verzióknál ráírhat az eeprom területére, és hát akkor pici gubanc van. Mondjuk most ebből egyik sem valószínű. Szerintem a minta program lett vacak. Ezek a problémák folyamatosan javítva vannak állítólag, de sajnos pár hónapos topikokban olvastam róluk.
Válasz küldése