ESP32 UDP Command Code Packet Sender Scheme

ESP32-Steuerung über Windows-Anwendung durch Senden von Datagrammen

  • Software zur einfachen Ausgabesteuerung auf Benutzerwunsch
  • Die Schnittstelle zum Senden von Befehlen ist ein UDP-Client, der eine UDP-Nachricht senden kann - ein Datagramm, z. B. Packet Sender unter Windows.
  • Der Paketsender erfordert eine Konfigurationsänderung für das gültige Senden von UDP-Datagrammen. Wählen Sie die Option zum Hinzufügen einer 500-ms-Pause (langsamer Modus).
  • Paket-Absender-Konfiguration - Fügen Sie eine Pause für langsame Geräte hinzu
  • Das Einrichten des Paketsenders ist einfach. Dazu muss die IP-Adresse eingegeben werden, an die die Daten gesendet werden, einschließlich des Ports. (ESP32-IP-Adresse - verfügbar in der Liste der seriellen Leitungen - UART)
  • Liste der seriellen Monitore - Enthält die ESP32-IP-Adresse im LAN Packet Sender - Benutzeroberfläche, Tabelle der empfangenen und gesendeten Datagramme
  • UDP garantiert nicht die Zustellung von Nachrichten. Aus diesem Grund sendet der ESP32 beim Empfang der Nachricht eine Nachricht an den Absender über den Erfolg der Übertragung (ZAP / VYP). (Der Absender kann die Nachricht jedoch verwerfen oder nicht erhalten.)
  • Dadurch ist es möglich, den Ausgang auf Anfrage entweder als Diode oder als Relais mit dem Schalten von Leistungsverbrauchern zu steuern.
  • Ein interessantes Feature ist die Verwendung der asynchronen Bibliothek für ESP32, bei der die Funktionalität im Hintergrund ausgeführt wird, ohne dass die Übertragungselemente des Systems programmiert werden müssen.
  • Packet Sender kann heruntergeladen werden unter: https://packetsender.com/
  • ESP32 program - UDP CONTROL (via Packet Sender)

    /*|----------------------------------------------------------------------------|*/
    /*|SKETCH PRE UDP OVLADANIE ESP32 PROSTREDNICTVOM PROGRAMU PACKET SENDER       |*/
    /*|VYHOTOVIL: MARTIN CHLEBOVEC                                                 |*/
    /*|Web: https://arduino.php5.sk/udp-control-esp32.php                          |*/
    /*|Doska: ESP32 DevkitC v4 / ESP32 Devkit v1                                   |*/
    /*|----------------------------------------------------------------------------|*/
     
    #include "WiFi.h"
    #include "AsyncUDP.h"
    const char* ssid = "WIFI_MENO";
    const char* pass = "WIFI_HESLO";
    const int led = 2; //D pin (Build-in LED pre Devkit V1)
    AsyncUDP udp;
     
    void setup()
    {
      Serial.begin(115200);
      pinMode(led, OUTPUT);
      WiFi.disconnect(true);
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, pass);
     
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
     
      if (udp.listen(4444)) {
        Serial.print("UDP server na IP: ");
        Serial.print(WiFi.localIP());
        Serial.println(" port: 4444");
        udp.onPacket([](AsyncUDPPacket packet) {
          Serial.print("Typ UDP datagramu: ");
          Serial.print(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast");
          Serial.print(", Odosielatel: ");
          Serial.print(packet.remoteIP());
          Serial.print(":");
          Serial.print(packet.remotePort());
          Serial.print(", Prijimatel: ");
          Serial.print(packet.localIP());
          Serial.print(":");
          Serial.print(packet.localPort());
          Serial.print(", Dlzka spravy: ");
          Serial.print(packet.length()); //dlzka spravy
          Serial.print(", Payload: ");
          Serial.write(packet.data(), packet.length());
          Serial.println();
          String myString = (const char*)packet.data();
          if (myString.startsWith("ZAP")) {
            Serial.println("Akcia: Zapinam rele");
            digitalWrite(led, HIGH);
          } else if (myString.startsWith("VYP")) {
            Serial.println("Akcia: Vypinam rele");
            digitalWrite(led, LOW);
          }
          packet.printf("ESP32 prijalo %u bajty dat", packet.length()); //odpoved odosielatelovi
        });
      }
    }
     
    void loop()
    {
      delay(1000); //nutny delay, UDP sprava sa nestiha nacitat
    }
    

    Schaltplan für ESP32 mit UDP-Befehlssteuerung

    UDP ovládanie ESP32 - schéma zapojenia