diff --git a/libraries/WiFi/examples/WiFiUDPClient/WiFiUDPClient.ino b/libraries/WiFi/examples/WiFiUDPClient/WiFiUDPClient.ino new file mode 100644 index 00000000000..04d4effd0a8 --- /dev/null +++ b/libraries/WiFi/examples/WiFiUDPClient/WiFiUDPClient.ino @@ -0,0 +1,75 @@ +/* + * This sketch sends random data over UDP on a ESP32 device + * + */ +#include +#include + +// WiFi network name and password: +const char * networkName = "your-ssid"; +const char * networkPswd = "your-password"; + +//IP address to send UDP data to: +// either use the ip address of the server or +// a network broadcast address +const char * udpAddress = "192.168.0.255"; +const int udpPort = 3333; + +//Are we currently connected? +boolean connected = false; + +//The udp library class +WiFiUDP udp; + +void setup(){ + // Initilize hardware serial: + Serial.begin(115200); + + //Connect to the WiFi network + connectToWiFi(networkName, networkPswd); +} + +void loop(){ + //only send data when connected + if(connected){ + //Send a packet + udp.beginPacket(udpAddress,udpPort); + udp.printf("Seconds since boot: %u", millis()/1000); + udp.endPacket(); + } + //Wait for 1 second + delay(1000); +} + +void connectToWiFi(const char * ssid, const char * pwd){ + Serial.println("Connecting to WiFi network: " + String(ssid)); + + // delete old config + WiFi.disconnect(true); + //register event handler + WiFi.onEvent(WiFiEvent); + + //Initiate connection + WiFi.begin(ssid, pwd); + + Serial.println("Waiting for WIFI connection..."); +} + +//wifi event handler +void WiFiEvent(WiFiEvent_t event){ + switch(event) { + case SYSTEM_EVENT_STA_GOT_IP: + //When connected set + Serial.print("WiFi connected! IP address: "); + Serial.println(WiFi.localIP()); + //initializes the UDP state + //This initializes the transfer buffer + udp.begin(WiFi.localIP(),udpPort); + connected = true; + break; + case SYSTEM_EVENT_STA_DISCONNECTED: + Serial.println("WiFi lost connection"); + connected = false; + break; + } +} diff --git a/libraries/WiFi/examples/WiFiUDPClient/udp_server.py b/libraries/WiFi/examples/WiFiUDPClient/udp_server.py new file mode 100644 index 00000000000..90272353ac1 --- /dev/null +++ b/libraries/WiFi/examples/WiFiUDPClient/udp_server.py @@ -0,0 +1,30 @@ +# This python script listens on UDP port 3333 +# for messages from the ESP32 board and prints them +import socket +import sys + +try : + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +except socket.error, msg : + print 'Failed to create socket. Error Code : ' + str(msg[0]) + ' Message ' + msg[1] + sys.exit() + +try: + s.bind(('', 3333)) +except socket.error , msg: + print 'Bind failed. Error: ' + str(msg[0]) + ': ' + msg[1] + sys.exit() + +print 'Server listening' + +while 1: + d = s.recvfrom(1024) + data = d[0] + + if not data: + break + + print data.strip() + +s.close() \ No newline at end of file diff --git a/libraries/WiFi/examples/WiFiUDPClient/udp_server.rb b/libraries/WiFi/examples/WiFiUDPClient/udp_server.rb new file mode 100644 index 00000000000..50e241d4bcf --- /dev/null +++ b/libraries/WiFi/examples/WiFiUDPClient/udp_server.rb @@ -0,0 +1,16 @@ +# This ruby script listens on UDP port 3333 +# for messages from the ESP32 board and prints them + +require 'socket' +include Socket::Constants + +udp_socket = UDPSocket.new(AF_INET) + +#bind +udp_socket.bind("", 3333) +puts 'Server listening' + +while true do + message, sender = udp_socket.recvfrom(1024) + puts message +end \ No newline at end of file