Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include <Ethernet.h>
- #include <EthernetUdp.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008
- #include <ICMPPing.h>
- byte mac[] = {0xDE, 0xAD, 0xBE, 0xDD, 0xFE, 0xED}; // mac address for ethernet shield
- byte ip[] = {192,168,0,177}; // ip address for ethernet shield
- byte pingAddr[] = {192,168,0,10}; // ip address to ping
- SOCKET pingSocket = 0;
- char buffer [256];
- int delayMS = 5 * 1000; // delay between successive pings (60 * 1000 = 60 seconds)
- #define serialOut 1
- #define ledOut 1
- #ifdef ledOut
- #define ledPing 2
- #define ledOk 3
- #define ledFail 4
- //udp stuff
- unsigned int localPort = 8888; // local port to listen on
- // buffers for receiving and sending data
- char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
- char ReplyBuffer[] = "acknowledged"; // a string to send back
- // An EthernetUDP instance to let us send and receive packets over UDP
- EthernetUDP Udp;
- //end udp stuff
- int val=0;
- bool connected = false;
- void setup()
- {
- #ifdef serialOut
- // start serial port:
- Serial.begin(9600);
- Serial.println("Starting ethernet connection");
- #endif
- //start Ethernet
- // if (Ethernet.begin(mac) == 0) {
- #ifdef serialOut
- // Serial.println("Failed to configure Ethernet using DHCP");
- #endif
- // DHCP failed, so use a fixed IP address:
- Ethernet.begin(mac, ip);
- // An EthernetUDP instance to let us send and receive packets over UDP
- EthernetUDP Udp;
- //end udp stuff
- }
- void startPing()
- {
- Serial.println("Ping begin");
- }
- void endPing()
- {
- Serial.println("Ping fin");
- }
- void pingSuccess()
- {
- Serial.println("Ping great success");
- Serial.println("Living Room - Sofa light ON");
- Udp.beginPacket("192.168.0.7", 9760);
- Udp.write("678,!R2D1F1|");
- Udp.endPacket();
- delay(5000);
- int val = random(300);
- }
- void pingFail()
- {
- Serial.println("Ping fail");
- Serial.println("Living Room - Sofa light OFF");
- Udp.beginPacket("192.168.0.7", 9760);
- Udp.write("678,!R2D1F0|");
- Udp.endPacket();
- delay(5000);
- int val = random(300);
- }
- #endif
- void loop()
- {
- bool pingRet; // pingRet stores the ping() success (true/false)
- #ifdef ledOut
- startPing();
- #endif
- ICMPPing ping(pingSocket);
- pingRet = ping(4, pingAddr, buffer);
- #ifdef ledOut
- delay(250);
- endPing();
- #endif
- Serial.println(buffer);
- #ifdef seriallOut
- Serial.println(buffer);
- #endif
- #ifdef ledOut
- if(pingRet) // Failure
- pingSuccess();
- else
- pingFail();
- #endif
- delay(delayMS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement