使用機材
ESP-WROOM-02 > ユニバーサル基板実装
borg sensor systemにおいてセンサー(WR1側)と反対側(WR2)との通信の構築について検討中。
Qiita投稿にあるESP8266自身がAPになる実例が分かりやすかったので、勉強もかねて試してみた。
コード
コードは以下のようにした。
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
static const char *kSsid = "esp8266";
static const char *kPassword = "12345678";
ESP8266WebServer myServer(80);
void handleRoot() {
myServer.send(200, "text/html", "<h1>You are connected</h1>");
}
void setup() {
pinMode(4,OUTPUT);
delay(1000);
Serial.begin(115200);
Serial.println();
Serial.print("Configuring access point...");
WiFi.softAP(kSsid, kPassword);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
myServer.on("/", handleRoot);
myServer.begin();
Serial.println("HTTP server started");
}
void loop() {
myServer.handleClient();
}
はまった点
現在の自分の環境は2.4GHzでの混線が生じることがある。
それに気づかずにAPへの接続をしようとして「タイムアウト:接続できませんでした」となってはまった。
対応策としては、ESP8266を動かす場所をいくつか試して、受かりやすい場所を見つけるようにした。
一旦接続した後は、pingで応答時間を表示しながら、場所を代えてどれほど通信状況が変わるか確認できた。応答時間が1000msecになる場所もあり、この時はhttp接続でタイムアウトになってしまった。
正常な通信時はだいたいpingの応答時間が3msec以内、時々(混線によるものか)200msecが上限となった。