Exceptionは腑に落ちないけど、ひとまずコーディングはほぼ完成。
構造は非常に簡単。
特定のURLにアクセスしたら、それをトリガーに指定したピンから出力するだけ。
Lチカの延長線上だ。
というわけで、参考にならないかもしれないスケッチ公開。(後悔?
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#define OUT_PORT 14
#define PUSH_TIME 1000
const char* ssid = "※アクセスポイント名※";
const char* password = "※パスワード※";
ESP8266WebServer server(80);
void handleRoot() {
server.send(200, "text/html", "<h1>Root Page</h1>");
digitalWrite(OUT_PORT, LOW);
}
void ResetOn(){
server.send(200, "text/html", "<h1>Reset ON!</h1>");
digitalWrite(OUT_PORT, HIGH);
delay(PUSH_TIME);
digitalWrite(OUT_PORT, LOW);
}
void setup(void) {
Serial.begin(115200);
pinMode(OUT_PORT, OUTPUT);
// Connect to Wi-Fi network
WiFi.config(IPAddress(※IPアドレス※), IPAddress(※GWのIPアドレス※), IPAddress(※サブネットマスク※));
WiFi.begin(ssid, password);
WiFi.mode(WIFI_STA);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/on/", ResetOn);
// Start TCP (HTTP) server
server.begin();
Serial.println("TCP server started");
}
void loop(void) {
server.handleClient();
}
指定がない場合はDHCPになるけど、自宅で使うことを想定してIPを固定にする。
なおIPアドレスはピリオドではなくカンマ区切りなので注意。
×:192.168.1.123 ○:192, 168, 1, 123
これをボードに書き込めばhttp://※IPアドレス※/
で「Root Page」が表示されるはず。
http://※IPアドレス※/on/
にすると「Reset ON!」が表示されて
14番ピンから出力される。
こんな単純な構造だったらRootだけで良い気もするけど、まぁ その辺は勢いでw