Puffer, hogyan??

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
fodisoft
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2020. március 14. szombat, 13:38

Re: Puffer, hogyan??

HozzászólásSzerző: fodisoft » 2020. április 19. vasárnap, 18:47

Áttettem megára, de valamiért amíg az ethernet shield csatlakoztatva van , a serial nem működik, és feltölteni sem lehet rá. Próbáltam külön táppal is, de hiába.
Az unón ezzel nem volt baj.
Miért lehet? Megán is ugyanott van a soros port pedig.

Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 150
Csatlakozott: 2012. január 22. vasárnap, 7:00
Tartózkodási hely: Budapest

Re: Puffer, hogyan??

HozzászólásSzerző: aaszabo » 2020. április 20. hétfő, 14:39

fodisoft írta:"SD kártyával a megszakításos működés annyiban lehet problémás, ha egyszerre akarja írni is és olvasni is a fájlt a program."
Az sd kiírást a loop végzi, ahogy a webes kiszolgálást is ,, más esetben pedig nem kell a kártyát olvasni-írni.
A megszakítás az éppen aktuális puffert írogatja.
Vagy nem jól látom?


Jól látod. Az általam javasolt megoldás esetén nincs ilyen probléma.
Arra az esetre gondoltam, hogy problémás, ha vegyesen használod a loopban és a megszakításban az SD kártya írást és olvasást. Tehát ha két folyamat egyszerre fordulhat az SD kártyához és nincs semmi mechanizmus, ami ezt megakadályozza.

Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 150
Csatlakozott: 2012. január 22. vasárnap, 7:00
Tartózkodási hely: Budapest

Re: Puffer, hogyan??

HozzászólásSzerző: aaszabo » 2020. április 20. hétfő, 16:06

Az Arduino Mega + Ethernet shielddel + SD kártyával is működő megoldás lehet.
De nekem egy kicsit macerás és szerintem sok komponenst tartalmaz feleslegesen ez a megoldás.

Én konkrétan az ESP32-re gondoltam. A másik, amit Róbert említett az ESP8266 sem rossz, de az ESP32 az újabb és erősebb. Tulajdonképpen mindent tud, amit az ESP8266 és még sok mást is. Nem utolsó sorban több memória is van rajta.
Arduino környezetben is kényelmesen programozható.

Ha az ESP32-höz hozzá tudod kötni az Arduino Ethernet shield lábait, akkor szerintem az Ethernet könyvtárak is működnek rajta Arduino környezetben. Legfeljebb a lábakat át kell nevezni, hogy a könyvtárban kezelt lábak stimmeljenek. Nem ismerem az Ethernet könyvtárat, hogy mit és hogyan használ, de működnie kell. Persze nem fog elsőre működni és kell időt szánni, mire összejön. Szerintem hetekben lehet mérni ezt az időt.
Másik megoldás lehet, ha ESP32-hez nézel esetleg Ethernet shield-et. De gondolom ez sem olcsó és akkor még a leprogramozás továbbra is ott van feladatnak.

Én viszont megszabadulnék az SD kártyától és az Ethernet shieldtől és egy sokkal egyszerűbb megoldást választanék:
  • ESP32 - van rajta Wifi, és memória. Nem kell SD kártya shield és Ethernet shield. AZ ESP32 wifi csatlakoztatása gyerekjáték. Az ESP mintaprogramok között ez olyan, mint az Arduino-nél a LED villogtatás.
  • Ha veszel egy Ethernet-Wifi adaptert (5eFt alatt kapható), akkor nem kell időt fordítanod az Ethernet csatlakozás problémára. Ha rádugod a WiFi Ethernet adatptert az Ethernet hálóra és az ESP32-ve csatlakozol az adapter WiFi-jére, akkor mindenki el tudja érni az eszközt akár Etherneten, akár WiFI-n. Sőt nagyon egyszerűen tudsz olyan funkciót írni (néhány sor) a Wifi-s ESP32-vel, hogy telefonról is meg tudd nézni az állapotot, vagy le tudd tölteni az adatokat.
  • Költségben is olcsóbb vagy és rengeteg időt is megtakarítasz.
  • És hasznos új dolgokat is tanultál, ami szintén nem utolsó szempont :)


Szóval ESP32-es modult 2-4eFt-ért kapsz Róbertnál is: ESP32 keresés Tavir Shop-ban. Ezek bármelyikén van 1-4 Mega memória, ami neked bőven elég. Így nem kell SD kártya programozással foglalkozni és SD foglalatot és shieldet sem kell venned. Persze az ESP32 fájl kezelésnek (ESP32 állandó memóriaterületére fájlt létrehozni és abba írni, illetve azt visszaadni) utána kell nézned. De ami neked kell az alapeset és erre kész példákat fogsz találni. És még mindig sokkal egyszerűbb, mint az SD kártyás megoldás.
Egy Ethernet Wifi átalakító 5e alatt: Ethernet WiFi adapter
és heteket spóroltál

fodisoft
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2020. március 14. szombat, 13:38

Re: Puffer, hogyan??

HozzászólásSzerző: fodisoft » 2020. április 20. hétfő, 18:10

Időközben rájöttem a temanyitóban említett probléma okára. Egy rosszul érintkező ellenállás volt a zavar forrása. Most rendben működik a cucc.
Viszont nagyon köszönöm az ötleteket! :)
Ismerem az esp8266 ot csináltam vele okos kapcsolót tasmota firmware el. Másra még nem nagyon használtam, csak a drónok wifis programozására.
Most felcsigáztál, így valószínűleg megírom esp 32 re is valahogy a progit, kihagyva az SD kártyát.
Arra gondoltam, hogy 2 napig kb. Elég visszamenőleg látni az adatokat és ez újabb kérdést vet fel.
Hogyan lenne a legegyszerűbb megoldani a felülírást?
Ahogy a dvr ek is teszik. Mondjuk nyissak új fájlt óránként, és fáljnyitáskor töröljem a legrégebbit?
Mégegyszer köszönöm a jó ötleteket!

Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 150
Csatlakozott: 2012. január 22. vasárnap, 7:00
Tartózkodási hely: Budapest

Re: Puffer, hogyan??

HozzászólásSzerző: aaszabo » 2020. április 21. kedd, 20:37

Itt felmerül egy kérdés: Letörölheted azt, amit még nem töltöttek le?

Ha ezzel nem kell törődni, akkor én napi fájlokat csinálnék heti ciklusban.
Az aktuális napon a múlt hetit törölném és újat hoznék létre helyette.
A fájl nevébe a dátumot és a nap nevét is beleraknám: Rele-20200421-kedd.log

fodisoft
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2020. március 14. szombat, 13:38

Re: Puffer, hogyan??

HozzászólásSzerző: fodisoft » 2020. április 21. kedd, 21:14

Elég 2 nap. Ez igazából egy hibakereső eszköz lesz. (A relay a hibás, vagy a relével vezérelt eszköz.)
Ha esemény ( hibás működés ) van akkor kell csak megnézni, ezt viszont aznap megtetszik, legkésőbb másnap. Végülis amit "letöltenek" azt nem mentik maguknak, csak a böngésző megjeleníti nekik, átnézik, és ennyi. Tehát az adat csak eseménynél fontos. Ezért van az óra is szinkronizálva. A napi fájl elképzelhető, hogy nagyon meghízna nem? Na meg törlésekor egy napi adatot vesztek. Akkor 3 napnyi hely kell. Ezt teszttel lehetne csak nagyjából lemérni, mennyi egy napi adatmennyiség, mert random a működés. Bár a legrosszabb eset úgy gondolom relénként kb. átlag 4-5 percenként 2 bejegyzés. Az mondjuk nem nagy fájl méret, ha 30 karakteren tárolom. Kb 10k. Ha esetleg mégis sok lenne, változtatni lehet a tárolás formátumát, csak akkor kell írni megjelenő rutint is. Na az az unoban már tuti nem férne el, tuti esp kellene, vagy legalább mega. A megával viszont gondom akadt. Ha ráteszem az eth shieldet, megszűnik a soros port. Ez nem normális működés, és még nem jöttem rá, miért van. Unonál ezzel semmi gond, ugyanazzal a progival.

Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 150
Csatlakozott: 2012. január 22. vasárnap, 7:00
Tartózkodási hely: Budapest

Re: Puffer, hogyan??

HozzászólásSzerző: aaszabo » 2020. április 22. szerda, 16:16

Elvileg az Ethernet shield UNO és MEGA lapon is működnie kell.
Olvastam valahol, hogy voltak gondok MEGA-val, de nem találtam a fórumot. Ha kitartóan keresel, biztos találsz megoldást.
Esetleg a lábak elnevezése más? Már nem emlékszem.
De lehet, hogy csak nem jó helyre tetted a shieldet :) Ekkor mondjuk semmi nem működik, nem csak a soros port.
A MEGA első (felső) részre, ahol az USB és a táp csatlakozó van ugyan úgy néz ki mint az UNO a csatlakozó lábak szempontjából. Ebbe kell tenni. Bocs, ha ez egyértelmű volt.

A menete azonos a logirásnak minden logikával.
írás előtt ellenőrzöd, hogy a logikád szerint kell-e új fájlt nyitni és régit törölni. Megteszed amit kell. Megnyitod az aktuális fájlt és beleírsz.
A logika lehet az általam javasolt napi. De ha az információ könnyebben kezelhető órás csomagokban, akkor lehet órás alapú, vagy méret alapú is. De akár vegyes is lehet.

fodisoft
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2020. március 14. szombat, 13:38

Re: Puffer, hogyan??

HozzászólásSzerző: fodisoft » 2020. április 22. szerda, 18:35

Olvasgattam én a mega gondokról, igen, más a nevük számuk a lábaknak természetesen, de ugyanott foglalnak helyet, és a fordító állítólag lekezeli ezt, ha megára fordítasz. Írták, hogy a soros port lábait hajlítsam ki, nem ok. Azt is írták, hogy a reset lábat kell kihajtani, az sem ok. Ugyanúgy kell állítólag kiválasztani a chipet, mindkét lapon. Tehát egyenlőre még zsákutca. Természetesen jól dugtam bele, ezt tuti biztos. Én úgy gondolom, hogy a kínai barátaink verziót váltottak, amit talán a fordító még nem követett. Frissítettem egyébként a lapokat a fordítóban.
Az érdekes az, hogy ha shield nélkül töltök rá, simán működik, és a serial monitor is.

Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 150
Csatlakozott: 2012. január 22. vasárnap, 7:00
Tartózkodási hely: Budapest

Re: Puffer, hogyan??

HozzászólásSzerző: aaszabo » 2020. április 23. csütörtök, 21:53

Debuggolni?
Én még sose csináltam HW környezetben, de elvileg lehet. Itt már a többiek segítségére lenne szükség.
Az is lehet, hogy akármit próbálsz nem fog menni, ahogy te is írod valami kompatibilitási probléma lehet.

Ha nem megy a megával akkor ezek az opciók:
  • Meggyőzni a felhasználót a WiFis elérésről és ESP32-vel megcsinálni - Szerintem ez a legegyszerűbb, leggyorsabb
  • Ha mindenképpen kell az Ethernet, akkor ESP32 és Ethernet adatpter, ahogy fentebb írtam
  • UNO-ba valahogy belegyömöszölni a kódot. Talán nem lehetetlen.
  • Másik mega kártya és imádkozni, hogy azzal működjön.

Írd majd meg melyiket választottad, ha tudok segítek benne.


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég