Arduino ethernet socket komunikacia

David Obdrzalek David.Obdrzalek na mff.cuni.cz
Neděle Září 22 09:27:17 CEST 2019


Aha, takže malý AVR na straně Arduina a o řád chytřejší kontroler na Eth, se kterým 
si AVR povídá přes SPi. Podle popisu by to měl být W5500:
https://wizwiki.net/wiki/doku.php?id=products:w5500:start

Tady je nějaký generický příklad:
https://navody.arduino-shop.cz/navody-k-produktum/arduino-ethernet-modul-w5500.html

Když to pingá a socket 5025 je otevřený, tak to asi MAC, IP, GW a subnet budou 
nastavené použitelně, čili se mi jeví, že problém bude ze strany AVR zjistit, že 
vůbec něco přišlo a dostat ty data z W5500 do AVR bude až druhý krok.

Příklad z dokumentace https://www.arduino.cc/en/Reference/EthernetServer je asi 
nejjednodušší možný, telnet loopback. To ti teda funguje? Jestli jo, tak si to 
otevři místo na portu 23 na tom tvém a znova zkus přes telnet, ale na tenhle vyšší 
port (snad každý telnet klient může port nastavit). 
A taky bych to pak případně zkusil i na portu 80 a z prohlížeče, to už bude potřeba 
http obálka viz ten český návod (z hlediska AVR to je jen pár stringů navíc). A taky 
bych se podíval do té knihovny, co tam vlastně dělaj, jakkoli bych u téhle knihovny 
nečekal typický Arduino problém "funguje, ale jen v tom mém ukázkovém příkladu, a 
samotná bez jiných knihoven".

D.O.

On 22 Sep 2019 at 8:37, balu wrote:
> Ahoj,
> 
> je to Arduino Nano a Ethernet shield ASX00006
> https://store.arduino.cc/mkr-eth-shield
> 
> Z telnetu to uz funguje (dakujem za radu), ale nie raw socket na port 
> 5025 ako som spominal
> https://www.mathworks.com/help/instrument/tcpip.html
> 
> tato komunikacia z Matlabu funguje so vsetkymi ostatnymi pristrojmi od 
> roznych vyrobcov, takze uplne zle to asi nebude.
> 
> b.
> 
> 
> 
> 
> On 22/09/2019 08:06, David Obdrzalek wrote:
> > Na kterem konkretnim Arduinu a s jakym konkretne ethernet shieldem?
> > 
> > D.O.
> > 
> > On 19 Sep 2019 at 22:08, balu wrote:
> >> zdravim osadenstvo,
> >>
> >> asi by som potreboval pomoct s implementaciou komunikacie do arduina,
> >> teraz naozaj arduina s pouzitim arduino prostredia.
> >>
> >> Rad by som postavil pristroj, ktory bude pocuvat na porte 5025 (ako
> >> vsetky ostatne pristroje), poslem mu prikaz MEAS:VOLT:DC?\n a on odpovie
> >> 1.23456.
> >>
> >> Pouzivam uplne najzakladnejsi priklad
> >> https://www.arduino.cc/en/Reference/EthernetServer
> >>
> >> modul pinga a je zivy.
> >> Posielam standardnu spravu z Matlabu (funguje so vsetkymi pristrojmi)
> >>
> >> PowerMeter = tcpip('128.141.157.182', 5025, 'Terminator', 10);
> >> PowerMeter.InputBufferSize = 100;
> >> fopen(PowerMeter);
> >> fprintf(PowerMeter, 'MEAS:VOLT:DC?\n');
> >>
> >> ked scanujem porty tak 5025 je otvoreny. Kod v mikrokontroleri sa ale
> >> nikdy sa nedostane cez
> >>
> >>    EthernetClient client = server.available();
> >>     if (client == true) {
> >>
> >> Dokumentaciu som si samozrejme pozrel
> >> https://www.arduino.cc/en/Reference/EthernetServer
> >> https://www.arduino.cc/en/Reference/ServerAvailable
> >>
> >> u available v dokumentacii pisu
> >>
> >> available()
> >>
> >> Description
> >>
> >> Gets a client that is connected to the server and has data available for
> >> reading.
> >>
> >> ale vzdy je to false, takze bud neprijme nic, alebo mozno prijme moj
> >> packet, ale nevie ze sa uz skoncil a teda asi nie je available.
> >>
> >> mate s tym niekto skusenosti, pripadne funkcny program? Uz mam spokoro
> >> vyklbeny mozog, ale neviem to stale rozchodit.
> >>
> >> dakujem,
> >>
> >> b.




Další informace o konferenci Hw-list