Identifikace Arduina v LAN
Identifikace Arduina v LAN
Ahoj,
mám jednoduchý web server (v podstatě dle jednoho z mnoha příkladů na netu), který mi běží na Arduino Uno.
Server je pověšený na portu 80 a má pevnou IP adresu.
To funguje dle očekávání.
Zajímalo by mne, jak by měl být ten server nastavený, aby o něm věděl router a měl ho v seznamu klientů. Na jaký protokol by měl odpovídat? Když dám Ping, tak se mi odpověď vrátí.
Díky.
mám jednoduchý web server (v podstatě dle jednoho z mnoha příkladů na netu), který mi běží na Arduino Uno.
Server je pověšený na portu 80 a má pevnou IP adresu.
To funguje dle očekávání.
Zajímalo by mne, jak by měl být ten server nastavený, aby o něm věděl router a měl ho v seznamu klientů. Na jaký protokol by měl odpovídat? Když dám Ping, tak se mi odpověď vrátí.
Díky.
Re: Identifikace Arduina v LAN
Nechej na ardu IP z DHCP a pak v routeru ji jen dej jako vyhrazenou, něco jako "make static" nebo "static lease".
Re: Identifikace Arduina v LAN
Pokud chceš, aby ti router na arduino nastavil vždy tu stejnou IP adresu, tak musíš v nastavení DHCP v routeru najít rezervační tabulku a v ní přiřadit že MAC adresa arduina FF-EE-DD-CC-BB-AA má vždy rezervovanou adresu 192.168.0.2 ... například
Pokud budeš chtít na arduino přistupovat i z venku, tak musíš na routeru nastavit i směrování portů a musíš mít pevnou IP adresu od poskytovatele internetu ... a tomu se nadává Port Forwarding, nebo Virtual Server ... tam zadáš, že cokoliv co jde z venku na určitý port, tak je směrováno na vnitřní IP:PORT ...
Pokud budeš chtít na arduino přistupovat i z venku, tak musíš na routeru nastavit i směrování portů a musíš mít pevnou IP adresu od poskytovatele internetu ... a tomu se nadává Port Forwarding, nebo Virtual Server ... tam zadáš, že cokoliv co jde z venku na určitý port, tak je směrováno na vnitřní IP:PORT ...
Re: Identifikace Arduina v LAN
Ahoj, tak to v podstatě mám nastavené, komunikace běhá, ale router mi Ard nepíše v seznamu.
Mám následující situaci:
1) Arduino s LAN modulem, kde je definovaná pevná IP a nějaká MAC - přes prohlížeč se na něj dostanu a web "server" odpovídá
2) Jiné zařízení, které má také lan připojení, svou MAC a pevnou IP - funguje dle očekávání
No a teď se podívám na router, do seznamu klientů a vidím tam svá PC v síti i to zmiňované zařízení (u něj je poznámka Fixní IP - mám nový router a to zařízení má FIx IP daleko déle, takže router ji nějak zjistil), ale arduino tam nevidím.
Takže moje domněnka je, že router posílá nějaký Broadcast, na který mu všechna zařízení na kabelu definovaným způsobem odpoví. A to moje Ard neumí, protože si chytá jenom HTTP a ještě k tomu pouze přesně definované požadavky. Někde jsem našel, že by to mohla řešit odpověď na UDP broadcast, ale nevím, jestli to je opravdu ono.
Je moje domněnka správná?
Díky
Mám následující situaci:
1) Arduino s LAN modulem, kde je definovaná pevná IP a nějaká MAC - přes prohlížeč se na něj dostanu a web "server" odpovídá
2) Jiné zařízení, které má také lan připojení, svou MAC a pevnou IP - funguje dle očekávání
No a teď se podívám na router, do seznamu klientů a vidím tam svá PC v síti i to zmiňované zařízení (u něj je poznámka Fixní IP - mám nový router a to zařízení má FIx IP daleko déle, takže router ji nějak zjistil), ale arduino tam nevidím.
Takže moje domněnka je, že router posílá nějaký Broadcast, na který mu všechna zařízení na kabelu definovaným způsobem odpoví. A to moje Ard neumí, protože si chytá jenom HTTP a ještě k tomu pouze přesně definované požadavky. Někde jsem našel, že by to mohla řešit odpověď na UDP broadcast, ale nevím, jestli to je opravdu ono.
Je moje domněnka správná?
Díky
Re: Identifikace Arduina v LAN
Ano doměnka je správná ... akorát ten broadcast neposílá router, ale arduino ... v podstatě křičí na celou síť " je tam někdo kdo by mi dal IP ??? " ... a DHCP server poslouchá broadcast a odpoví jo nastav se takhle a takhle a já si tě zapíšu do arp tabulky.
Ale tohle už je otázka knihovny a používaného hardware.
Ale tohle už je otázka knihovny a používaného hardware.
Re: Identifikace Arduina v LAN
Aha, takže by bylo ideální, kdyby po restartu arduino zařvalo na všechna nádraží "jsem tady, mám tuhle pevnou IP a tuhle MAC".
Díky
Kouknu na to.
Díky
Kouknu na to.
Re: Identifikace Arduina v LAN
Pokud má arduino napevno svou IP, tak má pak i napevno zbytek nastavení sítě, takže rovnou přeskočí proces zjišťování kdo je tady DHCP server, který mi přidelí konfiguraci sítě a snaží se komunikovat s bránou sítě na své adrese. Pokud ale chceš opravdu zjistit co se tam děje, tak buď důkladně prostudovat knihovnu a datasheety, nebo pomocí programu WireShark a HUB rozbočovače (se switchem to nejde, musí to být HUB co vše co příjde na jeden port, tak pošle na ostatní).
Re: Identifikace Arduina v LAN
To že máš v routeri nejaké uzly tak to je vďaka ARP protokolu. Neviem si ale predstaviť že by arduino nevedelo odpovedať na ARP broadcast. To by si nikto v sieti nevedel zistit jeho MAC adresu na základe ktorej je možná komunikácia na linkovej (ethernetovej) vrstve. Router má ale v tabulke iba tie uzly s ktorými komunikoval. Ak s arduinom nekomunikoval tak nemá prečo ho zobrazovať.
Skúsil by som v prvom rade či ho máš v ARP tabulke na stroji kde ten web prezeráš. V príkazovom riadku zadaj
a ak tam nie je tak zadaj
Potom znova predošlý príkaz.
Ak je tam IP a MAC adresa arduino servera zobrazená tak arduino robí to čo má. Ak ho router nevidí, tak len preto že s ním nemá žiadnu potrebu komunikovať.
V takom prípade daj ping z routera a potom by sa mal objaviť aj v arp tabuľke routera.
Skúsil by som v prvom rade či ho máš v ARP tabulke na stroji kde ten web prezeráš. V príkazovom riadku zadaj
Kód: Vybrat vše
arp -a
Kód: Vybrat vše
ping IP_adresaArduina
Ak je tam IP a MAC adresa arduino servera zobrazená tak arduino robí to čo má. Ak ho router nevidí, tak len preto že s ním nemá žiadnu potrebu komunikovať.
V takom prípade daj ping z routera a potom by sa mal objaviť aj v arp tabuľke routera.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti