ESP32SマイコンモジュールのNodeMCU-32SをBluetooth(BLE)のhackに使ってみる

ESP32SマイコンモジュールのNodeMCU-32SをBluetooth(BLE)のhackに使ってみる。

最近いくつかBLEのhackのために試行錯誤していたのだが、それらはあまり良い方法ではなかったようだ。
Windows上でBLE 4.0ドングルを使う → WindowsのBLEのAPIが役立たずで使えない
Pythonのpygatt用にBLED112を使う → Windows上でpygattを動かせたが、C/C++で使うためのライブラリは動かせなかった。自作のソフトを作ってみているのだが、この先は困難そう。
中国製の安いBLE-UARTモジュールを使う → ATコマンドで簡単に使える。しかし、技適の問題があるので使えない。

技適のあるESP32(ESP32S)マイコンの安い中国製のマイコンモジュールを試してみることにした。(ESPマイコンの関係では、最近はM5StackやM5StickCばかり使っていて、ESP32マイコンの他の基板を積んだままにしてた。少し引っ張り出して使ってみることにした。)

まずはESP32Sマイコンのモジュールで、NodeMCU-32Sというのを弄ってる。 ESP32-DevKitCに似た製品だ。

KKHMF ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetooth デュアルコアCPU低消費電力 「国内配送」 (Amazon)

値段も、最近(2019年12月)だと800円を切っていて、単品のESP32モジュールを買う値段よりちょっと高いだけで入手できる。

これを使って、Bluetooth SPPとかBLEを試すのに使ってみてる。Arduino IDEのESP32用のexampleスケッチのBluetooth SPPのコードとかBLEのコードとかが普通に動作した。ESP32SとESP32の違いは特に気にしなくても大丈夫だった。そして、BLE scanのスケッチは、ほぼ自分がやりたかったことそのままだった。
このあたりのことは別にblogエントリを分けてそちらに書く予定だ。


あと、他の方法として、ESP32SマイコンにATというファームウェアを書き込んでモデムのようにシリアル通信経由でWiFiとかBluetoothで通信するモジュールとして使うこともできる。ファームウェアを焼く手順がちょっと面倒だったが、NodeMCU-32SをAT化できた。

手順としては、
(1) Espressif公式からATファームウエアのバイナリをダウンロードする。 (ESP32-WROOM-32_AT_Bin_V2.0をダウンロードした)
(2) Espresssifのファームウェア書き込みツールをダウンロードする。 (flash_download_tools_v3.6.8をダウンロードした)
(3) 書き込みツールを使って、NodeMCU-32SにATファームウェアを書き込んだ。たくさんのファイルを手動で書き込みアドレスを指定して書き込みしないといけないので、ちょっと面倒。(このあたりを参考にした。)

書き込んだモジュールをUSB-UARTでWindows PCに繋いでテストする。
デフォルトのUARTピン側はデバッグコンソールになっている。起動の様子とかを見ることができる。

ESP32Sのもう片方の別のUARTピンの側がATコマンド用になっているので、ブレッドボードを使ってモジュールとUSB-UARTの部品とを繋いで動かした。

まずは、BLEのスキャンとか試してみた。
AT+BLEINIT=1でクライアント側として初期化し、AT+BLESCAN=1で周囲にあるBLEデバイスをスキャンすることができた。しかし、デバイスの名前の情報が出ないなあ。

AT化したESP32モジュールは、他のマイコン開発キットのWiFi I/F用に使われていることが多いようだ。
GR-LYCHEEとかMaixduinoとか。


追記

AT化したNodeMCU-32Sは、小型ブレッドボードに挿すと片側は配線ができない。
なので上記の例だと、VINピンに5Vの電源を入れられなくて、しかたなく3.3Vピンに強引にUSB-UARTモジュールの3.3Vを接続して動かしていた。
(というか、そもそもNodeMCU-32SのDIPのピンの幅が広すぎて普通のブレッドボードでも配線スペースが余らないというのが問題だ。)

あまりよくない配線だったので、小型ブレッドボード2つを使って配線をやり直した。

USB-UARTのモジュールも、ブレッドボードに挿せる小型のものに取り換えた。

右上のVINピンが写真では繋がっていないように見えるのだが、モジュールの裏側の見えない部分のブレッドボード配線でちゃんと5Vを繋げている。(赤色のジャンパー線-白のジャンパー線-黄色のジャンパー線-見えないジャンパー線という順に繋げてある。)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

− 1 = 8