Ceci est une ancienne révision du document !
esp32 dev udp
L'ESP se connecte au WiFi et écoute en UDP. Il attend une commande on/off et allume en ou eteind en fonction la LED intégrée sur le port 2
/* * This sketch sends random data over UDP on a ESP32 device * */ #include <WiFi.h> #include <WiFiUdp.h> // WiFi network name and password: const char * networkName = "Livebox-414f"; const char * networkPswd = "E9E7A12A127AF1C83614610715"; char packetBuffer[255]; const char * msg_error = "Commande invalide"; //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.1.18"; const unsigned 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); //listen on udpPort udp.begin(udpPort); } void loop(){ //only control data when connected if(connected){ int packetSize = udp.parsePacket(); if(packetSize) { int data_len = udp.read(packetBuffer, 255); if(data_len > 0) { packetBuffer[data_len]=0; } if(packetBuffer == "on") { Serial.println(packetBuffer); } else { Serial.println(msg_error); } } } //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; } } //ToDo //Sending data void sendData() { if(connected){ //Send a packet udp.beginPacket(udpAddress,udpPort); udp.printf("Seconds since boot: %u", millis()/1000); udp.endPacket(); } }