Outils pour utilisateurs

Outils du site


dev:esp:esp32:exemples:serveur-udp

Ceci est une ancienne révision du document !


esp32 dev udp

Serveur 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(); 
  }
}

Références

dev/esp/esp32/exemples/serveur-udp.1552761184.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)