Mrznutie arduina

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Mrznutie arduina

Příspěvek od dzooky » 16 zář 2019, 13:36

Ahojte vsetci

Mam nasledujuci problem,,
Robim "arduino siet" a zatial mam oziveneho mastra a 1 slave.

Master je Arduino Mega
Zatial na mastrovi je rozbhane pripojenie do ethernetu cez enc28j60 cez uipe spolu s ovladanim cez aplikaciu Blynk
Master komunikuje so slave cez RS485
Zatial je na neho pripojene tlacidlo na otvaranie brany a rele ktorym otvara branu
Potom bezkontaktne spinace na zistenie polohy brany a led ktora zobrazuje stav brany

Slave 1 - Arduino nano
Na neho mam pripojenu rfid citacku MFRC522 a prachovy senzor PMS5003

Komunikacia RS485
Master v pravidelne pozaduje data od slave 1.
Data dostane len ak je prilozeny spravny kluc alebo ak prachovy senzor ma nove data co je kazde 3 minuty inak neposiela data

Komunikacia do ethernetu
Master vzdy urobi post do DB ak ma nove prachove data od slave .

A teraz kde je problem.
Po case den/dnoch master zamrzne neraguje musim ho restartnut.
Takze otazka ko zistim kde master skapal a na com?
Ked ho pripojim k pc master sa restartne a neviem na com ztvrdol, viete mi poradit ako rozluskat co robi problem?


Nateraz som odpojil slave ci ho komunikacia dajak nezakilluje ale nemyslim si.
Je to dost problematicke odsledovat kedy do zdochne lebo kape to po dni ci dnoch a nemozem to mat tak dlho zavesene na notase.

Tak na zaciatok tolko,
Vieme ze je z prvych odpovedi bude daj sem kod ale nemam ho tu a master ma vyse 1000 riadkov.
Ked tak potom dohodim.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Mrznutie arduina

Příspěvek od KamilV » 16 zář 2019, 17:39

Udělej si v té DB i logovací tabulku a do ní loguj aktivitu mastera. Minimálně tím vypozoruješ, zda se to vždy zahaltuje ve stejném místě, nebo pokaždé někde jinde.

Nejrychlejší by bylo logovat na serial, ale když píšeš, že to tak dlouho nemůže být připojené k PC, tak ne... IMHO nechat běžet PC pár dní (třeba s vypnutým monitorem) není tak hrozné, ale neznám situaci, možná to nemáš "na stole".

Terminologicky je trochu zavádějící, že se master připojuje na slave, tady bych ještě popřemýšlel nad návrhem, čekal bych, že když přiložím RFID ke slave, tak ten mi pošle request na master.

Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Re: Mrznutie arduina

Příspěvek od dzooky » 16 zář 2019, 20:06

No bohuzial uz je to osadene dole v garazi a jediny laptop co mam je pracovny a ten nosim do prace.
Potom mam len workstation co je strasne neprakticke.

Ten napad s logovanim do DB je fajn skusim nejako aplikovat.
Teraz ked som dal slave prec zdochlo to za par hodin.

Co sa tyka terminologie Master/Slave
No pokial dobre viem a chapem RS485 tak na sieti je master len jeden ostatni su slave a master je ten co posiela.
U seba som dane arduino nazval master lebo ten toho tam robi najviac a je pripojeny do siete (ethernet).
Master ma u mna fungovat tak ze vzdy kontaktuje vsetkych slavov za radom a vyzaduje od nich data.
Ked slave data ma odpovie ked nema neodpoveda.
Kedze zatial je funkcny iba jeden slave, master kontaktuje iba jeho.
Slave nemoze poslat data vtedy ked nacita kartu lebo taky isty slave bude este jeden a co ked budu mat obaja data naraz? Co sice nehrozi ale.
V podstate slave nacita kartu, drzi message ze ma spravnu kartu a ked ho master vyziada ci zachytil kartu odpovie mu.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Mrznutie arduina

Příspěvek od AstroMiK » 16 zář 2019, 20:52

Se zamrzáním neporadím, ale na trvalé logování sériové komunikace se dá použít třeba tohle:
https://www.ebay.com/itm/282713844996

Je to OpenSource a dá se to postavit i na Arduinu (Já jsem si to zbastlil na Arduinu Mini Pro s držákem paměťové karty).
https://github.com/sparkfun/OpenLog

Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Re: Mrznutie arduina

Příspěvek od dzooky » 16 zář 2019, 21:25

Vyzera to fajn kym to pride z ciny najrychlesie zatial skusim dajake post do DB
AKurat zistujem ze ked mam vypnuteho slave, podstatne skor to skape.

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Mrznutie arduina

Příspěvek od gilhad » 17 zář 2019, 02:45

Takhle se taky projevuje to, kdyz program nekde alokuje pamet a pak ji neuvolni a alokuje znovu, tak mu po case proste dojde volna pamet a je zle.

dalsi zpusob je, kdyz alokujes a dealokujes na stridacku ruzne velke bloky pameti ((coz se stane snadno treba u retezcu), tak sice muzes mit volne pameti relativne dost, ale v malych blocich.

A kdyz se nepodari kontaktovat klienta, tak je docela mozne, ze to zkousi nekolikrat po sobe a tim padem tu pamet ztraci rychleji.

Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Re: Mrznutie arduina

Příspěvek od dzooky » 17 zář 2019, 15:22

Tak tu som sa uplne stratil :D

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Mrznutie arduina

Příspěvek od gilhad » 17 zář 2019, 18:48

Kód: Vybrat vše

int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
Tahle funkce ( viz napr. https://playground.arduino.cc/Code/AvailableMemory/ ) vraci volnou pamet (jako rozdil od vrcholu haldy, nikoli jako soucect volnych bloku).

kdyz si ji pridas do programu a budes si nekde vypisivat, jakou hodnotu vraci, tak jsou dve moznosti - bud se po chvili (rekneme prvnich dvou pokusech o spojeni a predani dat) ta hodnota zastavi na nejake nenulove urovni (a pak nemas problem s pameti), nebo bude postupne s kazdym dalsim spojenim ci pokusem o nej) klesat - a pak vyse zmineny problem mas.

Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Re: Mrznutie arduina

Příspěvek od dzooky » 17 zář 2019, 23:33

@gilhad
Dikes za typ

Akurat poobede som zistil ze nemam zakomentovane funkcie, ktore obsluhuju periferie ktore aktualne nemam pripojene RTC DS3231 aj LCD obe na I2C
Mozno to sposobovalo to uvidime, zatial to bezi. Uvidime ako po case

Uživatelský avatar
dzooky
Příspěvky: 124
Registrován: 03 úno 2018, 01:09
Reputation: 0
Bydliště: Fintice
Kontaktovat uživatele:

Re: Mrznutie arduina

Příspěvek od dzooky » 19 zář 2019, 17:52

No skusil som cekovat tu pamat stale to iste cislo hadzalo, cislo trosku vacsie ako 5000.
Teraz ma napadlo ci to nebude napajanim.

K zariadeniam mam dotiahnutych 5 a12V teda taky je zdroj.
Na konci vedenia pri nich je dakus menej kvoli ubytku napatia.
Slave je arduino nano, ktory vobec nebavi na 5V.
Aby bezal musi ist na 12V

Master som napajal s 5V kvoli tomu ze sa na nom regulator pre 5V strasne hrial
Teraz ked som ho dal na 12V vydiet ze aj ledky svietia uz poriadne, asi tak ako by mali a uvidim ci teraz zdochne.
No len sa bojim ze sa odpecie ten regulator :(

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů