Identifikace Arduina v LAN

Odpovědět
PetrB
Příspěvky: 141
Registrován: 20 čer 2018, 13:39
Reputation: 0

Identifikace Arduina v LAN

Příspěvek od PetrB » 18 čer 2023, 12:51

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.

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

Re: Identifikace Arduina v LAN

Příspěvek od KamilV » 21 čer 2023, 09:14

Nechej na ardu IP z DHCP a pak v routeru ji jen dej jako vyhrazenou, něco jako "make static" nebo "static lease".

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Identifikace Arduina v LAN

Příspěvek od kiRRow » 21 čer 2023, 10:49

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 ...

PetrB
Příspěvky: 141
Registrován: 20 čer 2018, 13:39
Reputation: 0

Re: Identifikace Arduina v LAN

Příspěvek od PetrB » 25 čer 2023, 22:56

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

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Identifikace Arduina v LAN

Příspěvek od kiRRow » 26 čer 2023, 21:09

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.

PetrB
Příspěvky: 141
Registrován: 20 čer 2018, 13:39
Reputation: 0

Re: Identifikace Arduina v LAN

Příspěvek od PetrB » 27 čer 2023, 23:29

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.

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Identifikace Arduina v LAN

Příspěvek od kiRRow » 28 čer 2023, 16:22

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í).

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: Identifikace Arduina v LAN

Příspěvek od peterple » 28 čer 2023, 17:53

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

Kód: Vybrat vše

arp -a
a ak tam nie je tak zadaj

Kód: Vybrat vše

ping IP_adresaArduina
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.

Odpovědět

Kdo je online

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