ESP8266 x UDP


ESP8266 で UDP からの受信に対応させます 
IO 4 16 にLEDをつけています。
SSID ESP8266 パスワード 12345678 のwifiアクセスポイントとして起動します
接続後 iPhoneアプリで通常192.168.4.1 ポート 8888 でアクセスします

iPhone用のUDPアクセスアプリはこちらから


ソースコード


動画ダウンロード



#include 
#include 


WiFiUDP UDP;
unsigned int localPort = 8888;

const char* ssid = "ssid";
const char* password = "password";

const char *ap_ssid = "ESP8266";
const char *ap_password = "12345678";

char packetBuffer[255];
static const char *udpReturnAddr = "1.1.1.1";
static const int udpReturnPort = 8889;
void setup() {
    
    Serial.begin(115200);
    Serial.println(""); // to separate line
    /*
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
        Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println(WiFi.localIP());
 */
   WiFi.mode(WIFI_AP);  // モード設定

  WiFi.softAP(ap_ssid, ap_password);  // APのSSID・パスワード設定
  IPAddress myIP = WiFi.softAPIP();   // APとしてのIPアドレスを取得。デフォルトは  192.168.4.1 ?
  Serial.println("AP IP address: ");
  Serial.println(myIP);
  
    UDP.begin(localPort);
pinMode(4, OUTPUT);
pinMode(16, OUTPUT);

}

void loop()
{
    int packetSize = UDP.parsePacket();
    
    if (packetSize) {
        
        int len = UDP.read(packetBuffer, packetSize);
        //終端文字設定
        if (len > 0) packetBuffer[len] = '\0';
        
        Serial.print(UDP.remoteIP());
        Serial.print(" / ");
        Serial.println(packetBuffer);
         digitalWrite(4,LOW); 
         digitalWrite(16,LOW); 
  String s;
  s = packetBuffer;
  if(s == "1"){  
    Serial.println(" get 1 ");
     digitalWrite(4, HIGH); 
  }else if(s == "2"){
      Serial.println(" get 2 ");
 digitalWrite(16, HIGH); 
    }else{
         digitalWrite(4,LOW); 
         digitalWrite(16,LOW); 
    }
    

        UDP.beginPacket(udpReturnAddr, udpReturnPort);
        UDP.write("ok");
        UDP.endPacket();
        
    }
    
    
    delay(3000);
}