木曜西む03b「メカざざむし」で参加してました。
西む03bでお待ちしております() pic.twitter.com/YYjUvil2mR
— たかしすきー@木西む03b (@takashiski) 2016年12月29日
まにあいました( ◠‿◠ ) pic.twitter.com/01YaCWS5Dg
— ぷらは🎍1日目西む03b (@PLHX) 2016年12月29日
私は「ESP8266のなんか」というタイトルでESP8266でWiFi接続する際のめんどくさい部分をなくすための行為をまとめたコピー本(36ページ)を出しました。ただし後半15ページくらいは付録のソースコードです。あとおまけで怪しいコースター用意してました。おこったぞう完売!
備忘録&後始末を兼ねて「ESP8266のなんか」でやったことをまとめておきます。
「WiFi接続する際のめんどくさい部分」と私が呼称しましたのは「SSIDの設定」です。ESP8266で検索をかけて見つかるコードの大半は、SSID/パスワードをハードコーディングしています。そのためAPが変更される場合は、ソースコードを書き換え、ESP8266にプログラムを書き込み直す必要があります。自宅で常にPCが起動している状態であればさほど手間に感じないかもしれません。しかし、別のAPに接続する必要がある場合(出先や友人宅など)、SSID書き換えるためだけにノートPCとシリアル変換器持ち歩くのは非常に面倒です。
SSID変更問題に関して、ESP8266の機能を確認します。ESP8266にはWiFi子機としてのSTAモードのほかにWiFi親機となるAPモードがあります。APモードにすることで、ほかのWiFiデバイス、例えばスマートフォンなどから接続をすることができるようになります。APモード状態でWEBサーバを立て、ブラウザから操作することでSSIDを書き換えられるようすることで追加の機材がスマートフォンのみでSSIDの変更ができそうです。しかし、WEBサーバから操作にも問題点があります。電源がオフになったときのデータの退避です。通常再度電源がONになるとすべて初期化されてしまいます。再度機能を確認しますと、ESP8266はフラッシュメモリをもっていますので、この問題は解決されます。
やること自体は日本語で数文でかけるのですが、これらを実現するために知らなければならないこと大雑把に分割すると以下のようになります。
- WiFiに接続する方法
- WiFiに接続されているかを確認する方法
- (オプション:SSIDのリストから接続可能なAPを探す方法)
- WiFIモード(AP/STA)を切り替える方法
- WEBサーバを立てる方法
- フラッシュメモリ上のファイルを読み書きする方法
- ESP8266でPOSTリクエストをする方法
- deepSleepに入る方法
以上の内容の、単体動作を(たぶんする)サンプルソースコードとその簡単な解説を書きました。
まだまだ技術を文書にすることに慣れてなく不手際が多かったので、C92にうかれば、ほかの書きたいことも含め第二段を出すことになると思います。まだ、「ESP8266のなにか」はkindle unlimitedあたりで出すかもしれません。ESP8266に興味がある方はご覧ください。
おまけ
コルクコースターに関しては、C90で@sameziさんに委託をした、こはくちゃんずコースターを再度用意する予定でした。しかし、LEDレーザーに故障があったため、急きょCO2レーザーのセットアップを友人の助けを受けながら行いました。そして、@toraneko38さんの書かれた「おこったぞう」とその他非常に怪しいコースターを作成し持ち込みました。LEDレーザーの故障はモーターを支えるアクリル台座の破損ですので、CO2レーザーの調整をして代替パーツを用意する予定です。CO2だと逆にコルクコースターが厳しいことがわかりましたので、次回はちょっと手間かけて作りたいと思います。
以上です。