2016年末に買って使い方がわからず放置してあったESP32の開発ボードを、ふと思い立って触ってみたらプログラムのアップロードから動作検証までいけたのでメモ。
ESP32開発ボード
このボードをAliExpressで買った。人類の天敵であるTELECの認証マークが付いているので日本国内で使用しても殺害される危険は少ない。
を見ると、すでに膨大な種類の開発ボードが出回っているが、日本製の良いものはまだ無いようだ。
開発環境準備
Windows上で行う。基本的には解説ページ
に従えばOK。私はgit clientとしてSourceTreeを使ったが、解説ページに書いてあるようにgitの純正?クライアントを使っても同じだろう。
解説ページに書いてない部分としては、Arduino IDE上でボードを選ぶときは
のようにESP32 Dev ModuleでOK。
もう一つ、プログラムをアップロードするときにBOOTボタンを押しっぱなしにしておく必要がある。ボードの初期リビジョンのバグみたいだが、これはこれでうっかりアップロードを防げるので良い仕組みのような気もする。
BOOTボタンを押さずにアップロードしようとすると
esptool.py v2.0-dev
Connecting...A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
というエラーがでる。ここまで来た人はあとはBOOTボタンを押しっぱなしにするだけなので成功したも同然である。ちなみに私がBOOTボタン押下の必要性に気づくまで試行錯誤や検索を繰り返して数時間を浪費したことは恥ずかしくて書けない。
追記:macのarduino IDEではBOOTボタン押下の必要がなかった。
サンプルプログラムを試す
ファイル→スケッチ例→Simple BLE→SimpleBleDevice
をアップロードしてみる。BOOTボタンを押すたびに、アドバタイズする文字列(の数値部分)が変わるというもので、デバッグ出力をシリアルモニタで確認できる。シリアルモニタは115200bpsで開く。
このプログラムを動作させた状態でスマートフォンでBLEスキャンをすると
のように、BLE32 at: XX という名でアドバタイズされているのを確認できる。BOOTボタンを押すとXXの部分が増えていく。これでESP32の開発環境からデバイスまで一通りが正常に機能していることを確認できる。ちなみにみんな大好きBlinkプログラムは(そのままでは)エラーが出て動作しないので泣かないように。Blinkは
int ledPin = 2;
と定義してこのピンをON/OFFするようにするとボード上の青いLEDが点滅する。
どっかに配線図ないのかな?
→どうやらこれっぽい:https://www.dropbox.com/s/jefwxxtufgwg0ex/esp32_Schematic%20Prints.pdf?dl=0
まとめ
ESP32開発ボードを買って使い方がわからずに放置してる人は再挑戦してみてはいかがだろうか。