Arduino: Ethernet UDP Receive Data Switch LED
Code
#include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> const int ledPin = 4; // the pin that the LED is attached to // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 3); unsigned int localPort = 8888; // local port to listen on // An EthernetUDP instance to let us send and receive packets over UDP EthernetUDP Udp; char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet, void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // start the Ethernet and UDP: Ethernet.begin(mac,ip); Udp.begin(localPort); } void loop() { int packetSize = Udp.parsePacket(); if(packetSize) { Serial.print("Received packet of size "); Serial.println(packetSize); Serial.print("From "); IPAddress remote = Udp.remoteIP(); for (int i =0; i < 4; i++) { Serial.print(remote[i], DEC); if (i < 3) { Serial.print("."); } } Serial.print(", port "); Serial.println(Udp.remotePort()); // read the packet into packetBufffer Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); Serial.println("Contents:"); Serial.println(packetBuffer); // if it's a capital H (ASCII 72), turn on the LED: if (packetBuffer[0] == 'H') { digitalWrite(ledPin, HIGH); Serial.println("LED ON\n"); } // if it's an L (ASCII 76) turn off the LED: if (packetBuffer[0] == 'L') { digitalWrite(ledPin, LOW); Serial.println("LED OFF\n"); } } }
Client
nc -u 192.168.0.3 8888
- Ketik H untuk menyalakan LED
- Ketik L untuk mematikan LED