ブログ

ορεσικα ψομαναι κυσο βλογ

ESP32の開発ボード(DOIT ESP32 Development Board)をArduino IDEで使ってみる

2016年末に買って使い方がわからず放置してあったESP32の開発ボードを、ふと思い立って触ってみたらプログラムのアップロードから動作検証までいけたのでメモ。

ESP32開発ボード

github.com

このボードをAliExpressで買った。人類の天敵であるTELECの認証マークが付いているので日本国内で使用しても殺害される危険は少ない。

http://esp32.net/

を見ると、すでに膨大な種類の開発ボードが出回っているが、日本製の良いものはまだ無いようだ。

開発環境準備

Windows上で行う。基本的には解説ページ

github.com

に従えばOK。私はgit clientとしてSourceTreeを使ったが、解説ページに書いてあるようにgitの純正?クライアントを使っても同じだろう。

解説ページに書いてない部分としては、Arduino IDE上でボードを選ぶときは

f:id:XX-Prime:20170312194916p:plain

のように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ボタン押下の必要性に気づくまで試行錯誤や検索を繰り返して数時間を浪費したことは恥ずかしくて書けない。

追記:macarduino IDEではBOOTボタン押下の必要がなかった。

サンプルプログラムを試す

Arduino IDE

ファイル→スケッチ例→Simple BLE→SimpleBleDevice

をアップロードしてみる。BOOTボタンを押すたびに、アドバタイズする文字列(の数値部分)が変わるというもので、デバッグ出力をシリアルモニタで確認できる。シリアルモニタは115200bpsで開く。

このプログラムを動作させた状態でスマートフォンでBLEスキャンをすると

f:id:XX-Prime:20170312200801p:plain

のように、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開発ボードを買って使い方がわからずに放置してる人は再挑戦してみてはいかがだろうか。