To jako, že nastavíš pevnou ip arduinu a ono ji při dalším přihlášení nedostane? To se může stát jedině tehdy, když ji nastavíš v rozsahu adres přidělovaných DHCP. Pevné ip se musí dávat mimo tento rozsah.martinius96 píše: ↑24 črc 2018, 01:29Rekapitulácia:
Ethernet.begin() --> myslím, že najväčší problém si mal tu, napríklad ak vypršala adresa na DHCP, tak už to nedokázalo nastaviť adresu, zvyčajne sa adresa mení po 2 hodinách, ja som si napr všimol, že tá adresa, čo dávam Arduinu napevno, tak ju nie vždy má, niekedy mu to pridelí DHCP, ten proces sa deje zrejme niekde na pozadí.
Arduino klient - ovládanie z webu
Re: Arduino klient - ovládanie z webu
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: Arduino klient - ovládanie z webu
Takúto mám sieť...
Mám bránu na 192.168.2.20, pod ňou smerovače s IP 192.168.2.21 - 192.168.2.24
Maska je klasická 24 bit --> 255.255.255.0
DHCP prideľuje adresy od 192.168.2.30 do 192.168.2.50.
Ak Arduinu nastavím adresu 192.168.2.100 tak ju nemá vždy
Niekedy má z rozsahu 30-50. Neviem čím to je.
Mám bránu na 192.168.2.20, pod ňou smerovače s IP 192.168.2.21 - 192.168.2.24
Maska je klasická 24 bit --> 255.255.255.0
DHCP prideľuje adresy od 192.168.2.30 do 192.168.2.50.
Ak Arduinu nastavím adresu 192.168.2.100 tak ju nemá vždy
![Smile :)](./images/smilies/icon_e_smile.gif)
-
- Příspěvky: 17
- Registrován: 03 bře 2018, 21:38
- Reputation: 0
Re: Arduino klient - ovládanie z webu
Přesně kvůli tomu a radši nastavování IP na routeru, kde máš jistotu, že jí to přiřadí správně a vždy tomu zařízení.
Re: Arduino klient - ovládanie z webu
A které z těch zařízení je DHCP server?
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: Arduino klient - ovládanie z webu
192.168.2.20 je router vrátane DHCP služby
Re: Arduino klient - ovládanie z webu
Ty další směrovače jsou jen switche? Abysme si rozuměli směrovač je router, ale možná je to jen česko-slovenský rozdíl.
Pokud jsou to routry je v nich DHCP vypnuté? Může být jen jeden dhcp v subnetu. Jinak mne ještě napadlo, jestli se wifi modul toho arduina nemůže přihlásit do sítě po restartu sám dřív než mu arduino předá parametry.
Pokud jsou to routry je v nich DHCP vypnuté? Může být jen jeden dhcp v subnetu. Jinak mne ještě napadlo, jestli se wifi modul toho arduina nemůže přihlásit do sítě po restartu sám dřív než mu arduino předá parametry.
Re: Arduino klient - ovládanie z webu
Fúú.. na mňa trochu veľa info ![Smile :)](./images/smilies/icon_e_smile.gif)
Ale skúsim to zhrnúť:
(asi som to nedopatrením odstránil, lebo v starších zálohách kódu to mám)
2. reštart by som riešil ako popisuje martinius
+ podmienkou na zavolanie by bolo práve zlyhanie pripojenia
Kam to zakonponovať, aby to aj fungovalo a ako to viem otestovať doma? - ako som spomínal doma všetko funguje bez problémov (podľa toho čo som čítal vo vaších príspevkoch problém bude v sieti/infraštruktúre na chalupe, nižšie vysvetlím..)
Reset by som nakódoval až keď overím na chalupe že je to potrebné..
3. Nastavím v routry pevnú IP pre moje zariadenie tak, aby nebola z rozsahu určeného pre automatické prideľovanie. Rozumiem dobre, že na pevno nastavená IP v routry = IP v kóde arduina?
4. Vopred sa ospravedlňujem, ak je tento bod mimo tému.. Asi bude potrebné prejsť/nastaviť celú sieť na chalupe (v týchto veciach tiež nie som zbehlý).
a) doma mám internet privedený káblom + router od poskytovateľa. Do routra nemám administrátorsky, resp. žiadny prístup. Odtiaľ je pripojený NB cez kábel, a cez WIFI TV a pod. Tu mi moje arduino zariadenie pripojené káblom cez ethernet shield funguje bezproblémovo.
b) na chalupe je to ale zložitejšie - od poskytovateľa je na komíne rodinného domu tuším 5GHz anténa s POE napájaním a zapojená do routru č.1 (D-link), ktorý poskytovateľ nastavil a do neho mám prístup, odtiaľ je napojený domáci PC + 2,4 Ghz WIFI je cez smerovú anténu namierené na moju chalupu (cca 120 m s priamou viditeľnosťou) - na chalupe je myslím Tp-link 7210 s POE a napojený do routru č.2 (D-link) ku ktorému sa pripája IP kamera cez kábel (v 1s intervaloch posiela snímky na server, funguje bez problémov) a moje arduino tak isto cez kábel, ktoré ako som spomínal sa po určitom čase zasekne. Na dvore pri chalupe v pohode chytám wifi z routru č.1 a samozrejme aj z č.2.
Som si vedomý toho, že takáto "infraštruktúra" by sa dala optimalizovať, zároveň ale dodávam , že ide o hobby projekt vyskladaný z dostupných vecí typu "čo šuflík dal"..
Takže otázka znie: Mohlo by pre fungovanie (nezasekávanie) arduina stačiť nastavenie pevnej IP na poslednom routry? Alebo bude potrebné nastaviť všetky zariadenia tak, aby IP prideľovalo len jedno? - toto je už určite mimo tému fóra, ale budem vďačný, ak ma aspoň nasmerujete.
5. k napájaniu
![Smile :)](./images/smilies/icon_e_smile.gif)
Ale skúsim to zhrnúť:
1. doplním do podmienkyMichalCzEJ píše: ↑23 črc 2018, 23:11...Něco ověříš, ale nic nevykonáš?Kód: Vybrat vše
if (Ethernet.begin(mac) == 0) { //V PRIPADE ZLYHANIA NASTAVENIA MAC ADRESY VYPIŠ }
...
Kód: Vybrat vše
Ethernet.begin(mac, ip);
2. reštart by som riešil ako popisuje martinius
Kód: Vybrat vše
void softReset(){
asm volatile (" jmp 0"); //ak sa zavola, kod skoci na zaciatok za bootloader cast na tzv. aplikacnu (takto som to pochopil)
}
Kód: Vybrat vše
if (Ethernet.begin(mac) == 0) {
softReset();
}
Reset by som nakódoval až keď overím na chalupe že je to potrebné..
3. Nastavím v routry pevnú IP pre moje zariadenie tak, aby nebola z rozsahu určeného pre automatické prideľovanie. Rozumiem dobre, že na pevno nastavená IP v routry = IP v kóde arduina?
4. Vopred sa ospravedlňujem, ak je tento bod mimo tému.. Asi bude potrebné prejsť/nastaviť celú sieť na chalupe (v týchto veciach tiež nie som zbehlý).
a) doma mám internet privedený káblom + router od poskytovateľa. Do routra nemám administrátorsky, resp. žiadny prístup. Odtiaľ je pripojený NB cez kábel, a cez WIFI TV a pod. Tu mi moje arduino zariadenie pripojené káblom cez ethernet shield funguje bezproblémovo.
b) na chalupe je to ale zložitejšie - od poskytovateľa je na komíne rodinného domu tuším 5GHz anténa s POE napájaním a zapojená do routru č.1 (D-link), ktorý poskytovateľ nastavil a do neho mám prístup, odtiaľ je napojený domáci PC + 2,4 Ghz WIFI je cez smerovú anténu namierené na moju chalupu (cca 120 m s priamou viditeľnosťou) - na chalupe je myslím Tp-link 7210 s POE a napojený do routru č.2 (D-link) ku ktorému sa pripája IP kamera cez kábel (v 1s intervaloch posiela snímky na server, funguje bez problémov) a moje arduino tak isto cez kábel, ktoré ako som spomínal sa po určitom čase zasekne. Na dvore pri chalupe v pohode chytám wifi z routru č.1 a samozrejme aj z č.2.
Som si vedomý toho, že takáto "infraštruktúra" by sa dala optimalizovať, zároveň ale dodávam , že ide o hobby projekt vyskladaný z dostupných vecí typu "čo šuflík dal"..
Takže otázka znie: Mohlo by pre fungovanie (nezasekávanie) arduina stačiť nastavenie pevnej IP na poslednom routry? Alebo bude potrebné nastaviť všetky zariadenia tak, aby IP prideľovalo len jedno? - toto je už určite mimo tému fóra, ale budem vďačný, ak ma aspoň nasmerujete.
5. k napájaniu
Normálne tam mám spínaný zdroj 7,5 V/2A (alebo 1A, to je asi jedno..) napojené priamo na piny Vin. napájanie mi napadlo tiež, keď to celú noc bežalo spolu s NB predpokladal som že to napájal práve NB. Skúsil lom pôvodný zdroj odpojiť a použil som 9V/500mA trafo napojené na vonk. konektor ale výsledok bol rovnaký - arduino sa zasekávalo. Doma to beži od pondelka na toto trafo a funguje.. Preto som napájane ďalej neriešil.MichalCzEJ píše: ↑23 črc 2018, 23:11...
//edit: a ještě jedna věc, z čeho máš napájené to arduino? Jestli není náhodou chyba v napájení.
-
- Příspěvky: 17
- Registrován: 03 bře 2018, 21:38
- Reputation: 0
Re: Arduino klient - ovládanie z webu
Pokud nastavíš statickou IP adresu na routeru, čili že DHCP bude přiřazovat IP 192.168.1.5 na MAC adresu 90:A2:DA:00:9C:B7, tak už ji pak nemusíš nastavovat staticky na Arduinu, ale vždy ti tento router přiřadí tuhle IP. Pokud ji máš staticky i na Arduinu, tak to máš 2x ošetřené a mělo by to pak jet v pohodě.
Pevnou IP nastavuješ na routeru, který je připojený k té IP kameře a Arduinu, takže druhý D-Link.
Ta infrastruktura sítě na chalupě, no dalo by se to udělat lepší, ale jestli tam nemáš vysokou odezvu a stačí ti takové pásmo Download/Upload, tak bych to neměnil.
Napadá mě ještě jedna taková "super" věc. Ošetři si celý program výstupy na serial port, a jakmile se to zasekne, zkus přes seriovou linku RX,TX,GND, jestli to Arduino jede, nebo jestli spadne celé. Jestli by jelo dál, tak je to na 99% chyba v nastavení síťě a hledáš chybu tam.
Nejlepší ale ovšem je USB->Serial (případně pokud máš nějaký COM port na NB, což ale asi nemáš), tak to nechat připojené jen RX,TX,GND, tím to vše pojede z toho trafa a ty jen budeš číst co se tam děje a zjistíš, kde se zasekne.
Případně zapisovat stav na SD kartu, nebo na nějaký server posílat aktuální stav a poslední stav = místo, kde se sekne program.
Pevnou IP nastavuješ na routeru, který je připojený k té IP kameře a Arduinu, takže druhý D-Link.
Ta infrastruktura sítě na chalupě, no dalo by se to udělat lepší, ale jestli tam nemáš vysokou odezvu a stačí ti takové pásmo Download/Upload, tak bych to neměnil.
Napadá mě ještě jedna taková "super" věc. Ošetři si celý program výstupy na serial port, a jakmile se to zasekne, zkus přes seriovou linku RX,TX,GND, jestli to Arduino jede, nebo jestli spadne celé. Jestli by jelo dál, tak je to na 99% chyba v nastavení síťě a hledáš chybu tam.
Nejlepší ale ovšem je USB->Serial (případně pokud máš nějaký COM port na NB, což ale asi nemáš), tak to nechat připojené jen RX,TX,GND, tím to vše pojede z toho trafa a ty jen budeš číst co se tam děje a zjistíš, kde se zasekne.
Případně zapisovat stav na SD kartu, nebo na nějaký server posílat aktuální stav a poslední stav = místo, kde se sekne program.
Re: Arduino klient - ovládanie z webu
OK, kód som doplnil, ešte skúsim nastavenie IP na routry. Na chalupe budem až cez víkend, ak to po týchto úpravách nebude fungovať vyskúšam odsledovať cez výpisy, resp. doplním reset, takže uvidíme budúci týždeň..
Inak sériové výpisy som tam mal, ale kód už zaberal cez 75% pamäte a v niektorých prípadoch to už UNO nezvládalo, tak som výpisy postupne zredukoval len na časti, ktoré som potreboval vyladiť a v "produkčnej" verzii kódu ich už nemám vôbec.. Ak bude potrebné, skúsim dorobiť zápis stavu na server.
Vrátim sa ešte k otázke ohľadom millis(), pre nastavenie rozdielnych časových intervalov pre rôzne časti kódu používam toto porovnávanie:
Čo sa stane pri pretečení millis()?
Teoreticky, ak sa v premennej cas_preMs uloží max. hodnota potom podmienka cas_aktMs - cas_preMs > 1800000 už nikdy nenastane, pretože cas_aktMs - cas_preMs bude vždy záporný, alebo rovný nule. Prosím opravte ma, ak uvažujem zle.
Inak sériové výpisy som tam mal, ale kód už zaberal cez 75% pamäte a v niektorých prípadoch to už UNO nezvládalo, tak som výpisy postupne zredukoval len na časti, ktoré som potreboval vyladiť a v "produkčnej" verzii kódu ich už nemám vôbec.. Ak bude potrebné, skúsim dorobiť zápis stavu na server.
Vrátim sa ešte k otázke ohľadom millis(), pre nastavenie rozdielnych časových intervalov pre rôzne časti kódu používam toto porovnávanie:
Kód: Vybrat vše
cas_aktMs = millis();
if(cas_aktMs - cas_preMs > 1800000) {
cas_preMs = cas_aktMs;
//... odoslanie dát (vonk. teplota, vlhkosť, atm. tlak, vnút. teplota)
}
Teoreticky, ak sa v premennej cas_preMs uloží max. hodnota potom podmienka cas_aktMs - cas_preMs > 1800000 už nikdy nenastane, pretože cas_aktMs - cas_preMs bude vždy záporný, alebo rovný nule. Prosím opravte ma, ak uvažujem zle.
Re: Arduino klient - ovládanie z webu
Jak jsem psal výše, je důležité aby tam nebyly dva dhcp v jednom subnetu. Intetni subnet je predposledni oktet v ip adrese. Všechno co má stejné predposledni cislo musi byt pridelovano jen jednim dhcp a ve vsech ostatnich zarizenich musi byt dhcp vypnut. Tam se pak nastavi ip brány a pevna ip toho zarizeni mimo rozsah automaticky pridelovanych adres.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů