ESP8266 x Wifi アクセスポイント x LED


ESP8266を Wifiのアクセスポイントにしています。
なぜかLoopにはいると3回繰り返すため
ONが3回(計3秒ぐらい)つづくためOffにしたときカウンターつけて遠回しにしています。


ソースコード



#define PIN_LED  2      //esp-wroom-02 D4

#include 
const char *ap_ssid = "ESP8266";
const char *ap_password = "12345678";
#include 
ESP8266WebServer server(80);


int Kaiten = 0;

void setup() { 

 Serial.begin( 115200 );
 Serial.println("");
 Serial.println("start");


   pinMode(PIN_LED,OUTPUT);   //   
  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);
   server.on("/",onroot);
   server.on("/on/", LedOn);
   server.on("/off/", LedOff);

    server.begin();
    Serial.println("HTTP server started");
}
 

void loop() {

 server.handleClient();
 if(Kaiten == 1){
  digitalWrite(PIN_LED,HIGH);
 }else{
  digitalWrite(PIN_LED,LOW);
 }
 delay(1); 
}

int cnt = 0;
void onroot() {
    String msg ;
    msg += "LED Button";
msg += "";


    msg += "";
    msg += "";
    msg += "
"; msg += "

"; msg += ""; server.send(200, "text/html", msg); } void LedOn(){ if(Kaiten == 0){ Serial.println(" on "); Kaiten = 1; digitalWrite(4,HIGH); // Set Dir High → 回転方向をセット } delay(1); } void LedOff(){ //少しここめんどくさいことしています。なぜかLoop3回しているんです。 cnt++; Kaiten = 2; Serial.println(" stop "); if(cnt>2){ Kaiten = 0; Serial.println(" off "); } delay(1); }