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