ESP-WROOM-32DはXtensaデュアルコア32ビットLX6マイクロプロセッサをコアとするSOC(ESP32-D0WD)を搭載してWiFiとBluetooth通信を可能にしたいわゆるIoTマイコンモジュールで、秋月電子で640円という低価格で購入できてしまう優れものです。
このESP32を触るきっかけは、ある若者が「自分、マイクロマウスの競技会に出てるんすけど、そのマイコンボードが240MHzで動いて無線でプログラムの書き込みができるんす、超凄くないっすか?」というのでなんていうボードなのと聞いたら「確かESP32とか言ったと思ウッス」っていうのでググったら出てくる出てくる。知らないのは筆者だけと思うくらいIoTデバイスを自作するには常套となるボードなのでした。そうなると、ちょっと試してみたいとなったわけです。
今回はESP32-WROOM-32Dを搭載したESP32開発ボードのESP32-DevKitC-32Dでワイヤレス通信実験をしてみます。
ESP32-DevKitC開発環境
開発環境として使用するのはArduino IDEとArduino core for the ESP32です。多分これが一番簡単にできるしあちこちのサイトで紹介されています。
ここではWindows10にArduino IDEは既にインストールされていることを前提として、Arduino core for the ESP32のインストール方法を紹介します。尚、Arduino IDEのバージョンは18.9です。
Arduino IDEを起動して「ファイル」→「環境設定」→追加のボードマネージャのURL:のテキストボックスにhttps://dl.espressif.com/dl/package_esp32_index.jsonを入力して「OK」をクリックします。
「ツール」→「ボード:”Arduino Genuino/Uno”」→「ボードマネージャ…」をクリックしてあらわれるテキストボックスにesp32と入力して検索してヒットしたESP32 Dev Module, WEMOS LoLin32.をインストールします。
インストールが終了したら「ツール」→「ボード」→ボードマネージャでESP32 Dev Moduleを選択します。
Arduino IDEウィンドウの右下にESP32 DEV Moduleというのが確認できます。
これで準備が整いました。
BluetoothSerialで動作確認
サンプルプログラムのビルド
構築した環境でちゃんとビルドできるかの確認をします。ESP32 Arduino: Serial communication over Bluetooth Hello Worldにはほんの数行を書くだけでBluetooth経由でシリアル通信できるサンプルが紹介されていますので、そのコードをコピペして動作確認をしました。
コードは
#include "BluetoothSerial.h" BluetoothSerial SerialBT; void setup() { SerialBT.begin("ESP32"); } void loop() { SerialBT.println("Hello World"); delay(1000); }
です。
PCとESP32-DevKitCをUSBケーブルで繋いで「ツール」→「シリアルポート」で新たに追加されたシリアルポートを選択します。
Arduino IDEのツールバーにある「➡︎」をクリックするとコンパイルとボードへ書き込みが一度に行われ、正しく書き込まれたらArduino IDEの下部に「書き込みが完了しました」のメッセージが表示されます。
Windows10とESP32-DevKitCのペアリング
「Windowsの設定」→「デバイス」→「Bluetoothとその他のデバイス」でBluetoothまたはその他のデバイスを追加するをクリックしてデバイスを追加するでBluetoothをクリックするとESP32が表示されているはずです。
ESP32をクリックするとペアリングが開始され成功すると「Bluetoothとその他のデバイス」のその他のデバイスにESP32が接続済みと表示されます。
通信の確認
Windows10のデバイスマネージャにBluetoothリンク経由の標準シリアルとしてCOMポートが追加されているのが確認できます。
Arduino IDEの「ツール」→「シリアルポート」で追加されているCOMポートを選択して「ツール」のシリアルモニターを開くと1秒ごとにHello Worldが表示され、ESP32-DevKitCからBluetooth経由でWindonw10と通信されているのが確認できました。