ESP8266環境向上委員会でやりとりされている情報をベースに、情報を自分なりにまとめた記事です。正しいかどうか保証できないので、ここ違うとかあればコメントしてもらえると嬉しいです。
ESP8266 is 何
kwsk
- 普通のWi-Fiモジュールは、Wi-Fiでの通信をして、送られてきたデータをUART(Serial)で流してくれる。
- 通信の窓口をするのが仕事。
- 他のロジック回りとか、あれこれはArduinoとか別のチップが担当していた。
- ESP8266は、それもできるし、ESP8266本体がロジック回りを担当することが出来る。
- 例えばセンサーを取り付けて、その値をサーバーとかに上げまくるとかがワンチップで出来る。
特筆すべき点
- AP+STAモードができる。
- つまり、Wi-Fi子機兼親機になれる。
- モジュール上でスクリプトを書けるので、作品をワンチップで完成させることができる。
- 結構安い。
- いわゆる技適に通っている(ものもある)。 => 日本で使える。
- 通っていないもの(マークが書いてないもの)は使ってはいけない。
- Arduino IDEで開発できる(後述)。
- Luaで開発できる(後述)。
- JavaScriptで開発できる(後述)。
- Pythonで開発できる(後述)。
利用について
ただのWi-Fiモジュールとしてつかう
- ATコマンドというのを使う。色々な通信機器と通信するための規格。XBeeとかでも使われている。
- ATコマンドを受けるファームウェアは、いくつかバージョンがある。
- 最初から入ってるのは、v0.22?(時期とかによって変わると思うけど)
- 現在最新のATファームウェアは、ESP IoT SDK v1.3.0に付属しているv0.40。
- esp_iot_sdk_v1.3.0_15_08_08 - ESP8266 Developer Zone
- ドキュメントは、簡単なものならGitHubのWikiに転がっている。
- SDKの中のdocumentディレクトリに、PDFが入っているので、それを読むのが確実かと。
Arduino IDEで開発する
- esp8266/Arduino · GitHub
- arduino.cc から落とした最新のArduinoに、Additional BoardとしてESP8266を入れればよい。
- 使い方はこれがくわしい。
- mDNS使ったり、Wi-Fiのアクセスポイントになったり、HTTP返したり、色々サンプルある
- ドキュメントはこれっぽい
- Arduinoで書き込んだら、ATコマンドとかではやりとりできない(?)
- 中のファームウェアが変わっているから、当然出来ないだろうという気がするけど
Luaで開発する
- NodeMCUを使う。
- ESP8266とNodeMCUをLuaでWi-Fi設定とLチカする - Qiita
- ESP8266環境向上委員会のスレ
- ここで好みの機能を追加してbuildできる。(すごい)
- ファームウェアの書き込みにはこれを使えば良い?
JavaScriptで開発する
- cesanta/smart.js · GitHubを使う。
- Cで書かれた組み込み用のJavascriptエンジンV7を使ってるらしい。
- JavaScript5.1らしい。
- ファームウェアの書き込みに使うFlashnchipsが便利そうなのだけれど、他のファームウェアの書き込みにも使えるかな?
- まだ発展途上感
Pythonで開発する
- 組み込み用のPython、MicroPythonを使って開発ができる。
- Adafruitのページが詳しい。
あまり調べていないこと
- ハードウェアにはいくつかバージョンがある。
- メモリの大きさが違うので、古いと新しいSDKが入らないとの噂がある。
- https://www.facebook.com/groups/927623023964478/permalink/927942893932491/
- ハードウェアの限界
買えるとこ
単品で買っても使いにくいので、ブレイクアウトボード(ブレッドボードとかに刺したり、開発用に使いやすくしたもの)を使ったほうがよい。
あとは色々あるはず…。探してください
資料まとめ
- 販売元の公式フォーラム
- SDK情報とかはここで拾える
- コミュニティのフォーラム
- カナダの人が作ったコミュニティらしくて活発
- コミュニティのWiki
- ↑のコミュニティが設置したWiki
- ESP8266環境向上委員会(Facebook Group)
- akitaさんが作った日本のコミュニティ間で情報を共有するFacebookグループです
- Qiita
- ちょくちょくある、azusa9さんの記事が丁寧でありがたい
- NodeMCU
- Luaで書く
- esp8266/Arduino · GitHub
- Arduinoで書く
- cesanta/smart.js · GitHub
- JavaScriptで書く
changelog
- 20150813: micropythonに関する記述を追加(今井 大介さんありがとうございます)