ピッチ変換基板にハンダ付けし、ブレッドボードでテストを始める。WiFi接続を開始する。これも苦もなくつながった。遅いが、ちゃんとレスポンスを返してくる。にわかに信じられないがネットが通った。いやいやEdisonでも感激したけれど、このモジュールは¥500台で買えるのだ。調子に乗って、ATコマンドでTelnet端末にしてみる。これも問題なく動いた。実際にシリアルから送ったデータが、Telnet端末にしたPCのコンソールに出力されるのを見ていると、何か心の底から感動が盛り上がってくるのを抑えられない。この単体だけでアプリが開発できるというなら、以前(7年くらい前)作ったLANによるプリンター電源の遠隔操作などいとも簡単に出来てしまうということだ。あのときは、¥1000近いNICチップと、¥200以上するマイコンが必要で、Cソースは数百ステップ、しかも有線LANだった。ATコマンドインターフェースでネットとつながることに驚いているのはまだ早い。モジュールに用意されているUART以外のペリフェラルを活用すればもっと様々なことがネットを通じて行えるのだ。勇躍、次のステップに進むことにした。ジャンパーのかたまりでないまともなテスト基板を作る(12/5/2015)その前にやることがある。これまでのATコマンドを使ったテストは、スルーホールに差せる「ばね付き」ジャンパーで変換基板とミニブレッドボードをつないだ空中配線状態である。プルアップ抵抗などを載せたブレッドボードの上はジャンパーで盛り上がっている。動作モードの切り替えにはGPIOピンを操作する必要があるし、リセットすることもあるので、この先は今の状態では不安である。Xbeeのこともある。Xbeeに較べれば1/5の価格なのでそう神経質になる必要はないが誤操作で動かなくなったチップの回復に無駄な時間を使いたくない。アプリケーションを何にするか決めていないので、マザー基板を作るのをためらっていたが、このままではどうにもテストが進めにくい。ESP8266を使いこなすためにも、とりあえずはちゃんとした基板にマザー基板を作ることにした。定番の秋月のC基板を用意して、リセットスイッチや、ジャンパーピンをつけたマザー(テスト用)基板を作る。具体的な用途が決まっていないのでレイアウトに迷う。電源は、USBからとらずに独立した電源アダプターを付けることにする。サイト情報ではピークで100mA以上流れるので市販のシリアルのUSBに出ている3.3Vを使うのは無理なようだ。基本的なモジュールの結線がわかりにくい。書き込みモードの設定に必要なピンの数が2つなのか、3つなのかサイトによって違う。いくつかのサイトを渡り歩いて、何となく決めたが、これで本当に良いのか確信が持てない。3つとも指定通り出来るようピンヘッダーやスイッチをつけた。ESP8266も奥が深い。みんなが飛びつかないかわかった(12/14/2015)かたっぱしからESP8266関係のウェブサイトを覗いて情報を蒐集する。いやいやこれは奥が深い。ブレッドボードの実体配線を丁寧に写真で紹介し、操作手順をひとつひとつ説明するサイトが多いが、全体が見渡せていないので良く分からない。開発手法には、どうもいくつか種類があるようで、具体的な手順が示されても、それがどういうことなのか理解できない。言う「自分が今何をやっているのか理解できない」レベルである。ATコマンドをUART接続で別のArduinoから送って操作するところもあれば、単体そのものをArduinoのIDEでプログラム開発するところもある。思えば別のフラッシュローダーで直接ファームに出来合いのバイナリをロードしているところもある。アプリケーションも、LEDチカチカから、既存のATコマンドインタフェースにSSL(暗号化ソケット層)を追加するプログラム開発の高度な解説まで幅がやけに広い。何を参考にすればよいのか迷ってしまう。この状態では、初心者は記事に書かれたことは出来ても、その先は全く進めないだろう。わからないまま我慢して沢山の情報を浴びているうち、やっと何となく全体を理解することが出来た。これまでにわかったこと、何故これがわかりにくかったのかを以下にまとめてみた。WiFiインターフェースの裏に32ビットのマイコンが隠れており、この仕様が表に出て来ないのでわかりにくい。アプローチがいくつかあるが(ATコマンドなど)、それぞれがなるべく内部を知らなくても動かせるように設計されているので、初めての者には何が何やらさっぱりわからない。ATコマンドだけのインタフェースでも、別のマイコンをつないでUARTでおしゃべりすればWiFiを動かしてサーバーのようなこともできる。これと、ESP8266単体でのサーバー構築とは全く別になるのだが最初この違いが判らなかった。IDEで開発可能というが、ハードの仕様が表に出て来ないので見通しがつかない。スケッチライブラリは良く見れば沢山あるのだが、最初は、Arduinoでの開発という意味が良くわからなかった。こいつはマイコンなのだ。その後このあたりを明確に示したサイトが見つかり疑問は解けた。SPIフラッシュにファームを焼くフラッシュローダーが用意されているが、これを使いこなすのは容易ではない。技適に触れるような改造や改変が出来そうなところもあるようなので、触るのは少々勇気がいる。要するにウェブ上のほとんどの記事が何か単一の機能の実現の、しかも初心者向けの単方向の手順の解説が主なので、全体をつかめない。ブレッドボードの実体配線図とソースコードだけでは、このESP8266を理解することはとても無理だ。ファームの戻し方がわからないので手が出せない(12/24/2015)嵐のような忘年会ラッシュ(11月末から数えてみると6回)、法事で関西を往復、続いて年賀状の準備、お正月の買い出しなど12月は気ぜわしい日が続いた。ESP8266の方は、ATコマンドでの実験の次のテーマ、ArduinoのIDEで独自のファームをテストするステップに入ったが中々手が出ない。Arduinoでファームを書き換えると、出荷時についているATコマンドインターフェースは上書きされてしまう。万が一ファーム書き込みに失敗しても元へ戻すようにしておきたいが、この方法が良く見えないので、先に進めないのだ。ファームの書き換えは、複数のバイナリ―ファイルを所定のアドレスに正確に焼く必要がある。この直か打ちのアドレス値が、ハードのバージョンによって違うのが悩ましい。アプリの開発は超上流のコマンドベースで、ファーム書き換えは超下流のアドレス直か打ちという落差の激しい開発環境で目が白黒する。それでも、薄紙をはがすように段々ESP8266の全貌が見えてきた。これまでにお世話になったサイトのURLを、簡単なコメントとともにご紹介しておこう(勝手リンク失礼)。専門家向けhttp://bril-tech.blogspot.jp/2015/07/okiot.html要約を知りたかったら、これがわかりやすい。所長が感じたことと同じことが書いてある。http://einstlab.web.fc2.com/ESP/ESP.htmlファームの書き直しにお世話になる。ここでも「ねむいさん」が活躍していた。http://blog.boochow.com/article/424450970.html今回の見本にさせてもらったページ。ステップbyステップでやさしいhttp://deviceplus.jp/hobby/entry0032/丁寧なのだが、全体を見渡せない。https://tech-blog.cerevo.com/archives/859/リアルタイムクロックストリーミングをESP8266で実現。https://www.mgo-tec.com/blog-entry-50.htmlウェブサーバーからのLチカで本年の作業終了(12/30/2015)暮れも押し迫った30日、遂に目的のウェブサーバーからのLEDの点灯/消灯に成功した。いちいちURLを書き直さないと点滅しないが、曲がりなりにもArduinoによるサーバーの動作が出来るようになった。やれやれ、ファームの書き換えはいつものように冷や汗ものだった。サイトの説明には、MACアドレスは必ずメモして残しておけと注意されていたのだが、これを守っていないことを、ファームを書き換えた後に気づき青ざめる。ファームを書くローダーはチップを認識すると、そのMACアドレスを吐き、何の問題もなかった。先を急いでいるので、吟味もせずサイトにあるソースコードをコピペしてコンパイルする。