Ethernet Ping s ENC28J60

Nefunguje mi to, chcem radu ako na to...
mclareniak
Príspevky: 6
Dátum registrácie: Utorok, 19. Júna 2018, 08:49

Ethernet Ping s ENC28J60

Príspevok od užívateľa mclareniak » Streda, 15. Mája 2019, 12:06

Ahojte.
Nechcem zakladat novu temu, tak pisem sem.
Som zaciatocnik, tak ma prosim hned neukamenujte. Dik
Chcem si vyrobit zariadenie, kde zadam svoju IP adresu a arduino ju bude pingat a napise cas pingu na display. Chcem aby sa dalo zvolit medzi DHCP, alebo statickou IP.
No trapim sa a nedokazem najst kniznicu co by dokazala pingat. Nasiel som kniznicu icmp_ping, no ta potrebuje kniznicu Ethernet. Bohuzial ta bola aktualizovana a z touto novou uz nevie icmp_ping spolupracovat.
Nieco sa pise napr. aj tu

Kód: Vybrať všetko

https://forum.arduino.cc/index.php?topic=161155.0
alebo aj tu

Kód: Vybrať všetko

https://forum.arduino.cc/index.php?topic=573949.0
Skusil som aj starsiu verziu ethernet kniznice a po nahrati
/*
Ping Example

This example sends an ICMP pings every 500 milliseconds, sends the human-readable
result over the serial port.

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13

created 30 Sep 2010
by Blake Foster

*/

#include <SPI.h>
#include <Ethernet.h>
#include <ICMPPing.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // max address for ethernet shield
byte ip[] = {192,1,2,80}; // ip address for ethernet shield
IPAddress pingAddr(192,1,2,51); // ip address to ping

SOCKET pingSocket = 0;

char buffer [256];
ICMPPing ping(pingSocket, (uint16_t)random(0, 255));

void setup()
{
// start Ethernet
Ethernet.begin(mac, ip);
Serial.begin(9600);
}

void loop()
{
ICMPEchoReply echoReply = ping(pingAddr, 4);
if (echoReply.status == SUCCESS)
{
sprintf(buffer,
"Reply[%d] from: %d.%d.%d.%d: bytes=%d time=%ldms TTL=%d",
echoReply.data.seq,
echoReply.addr[0],
echoReply.addr[1],
echoReply.addr[2],
echoReply.addr[3],
REQ_DATASIZE,
millis() - echoReply.data.time,
echoReply.ttl);
}
else
{
sprintf(buffer, "Echo request failed; %d", echoReply.status);
}
Serial.println(buffer);
delay(500);
}
Na seriovom monitore sa nic neobjavi.
Neviete poradit co dalej?
Dik

Napísať odpoveď