Arduino ESP32モジュールを使ってみる ~ESP32ドライバ導入とBLEをスマホで確認~

シェアする

久々のArduino記事です。

以前にもBLE搭載のRN4020を2台用意し通信をする実験をしました。

Arduino Bluetooth RN4020で通信
有線通信飽きてきた(え てことで今...

今回のESP32はRN4020と同様にBluetoothが搭載され、更にWiFiも実装されている優れものです(技適マーク取得済み)。また、RN4020ではArduino nanoなど別途デバイスが必要でしたが、ESP32はArduinoに対応しておりESP32開発ボード単体での評価、開発を行うことが出来ます。

この記事では、ESP32のBLEをスマートフォンで使用可能なデバイスとして認識させるまでを紹介します。

用意する物

  • ESP32 開発ボード(ESP-WROOM-32)
Amazon | HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード | 基板 | 産業・研究開発用品 通販
HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモードが基板ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
  • Arduino IDEが使えるPC
  • USBケーブル
  • Bluetooth搭載のスマートフォン
Amazon.co.jp: マイクロusb ケーブル Syncwire【2本セット】micro usb ケーブル 【2.4A急速充電/10000回以上の曲折テスト/強化ナイロン素材】Android充電器対応 usbケーブル- 1m: 家電・カメラ
Amazon.co.jp: マイクロusb ケーブル Syncwire【2本セット】micro usb ケーブル 【2.4A急速充電/10000回以上の曲折テスト/強化ナイロン素材】Android充電器対応 usbケーブル- 1m: 家電・カメラ

準備する

まずは、ESP32用にArduino IDEの環境を整える必要があります。

掲載したアマゾンのESP32にあるレビューにも載っているgithubのボードドライバとライブラリをArduino IDEに追加します。

espressif/arduino-esp32
Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.

ドライバのインストール

上記のgithubリンクにアクセスしてソースをダウンロードします。

ZIPファイルを解凍し、Arduino IDEのインストールフォルダにある「hardware」に「espressif」フォルダを作成、更にその下の階層に「esp32」フォルダを作成し「esp32」へ解凍した中身をコピーします。

コピー先:[Arduino IDE]/hardware/espressif/esp32

次に以下のディレクトリにあるget.exeを実行します。

実行:[Arduino IDE]/hardware/espressif/esp32/tools/get.exe

コマンドプロンプトが起動しファイルのダウンロードが始まりますので、完了するまでしばらく待ちます。

完了するとArduino IDEのツール>ボード一覧にESP32を搭載した多数のボードが追加されます。

この中から使用するボードを選択します。

ライブラリの追加

次にBLEのソースコードのライブラリを追加します。

nkolban/ESP32_BLE_Arduino
The library source for the ESP32 BLE support for Arduino. - nkolban/ESP32_BLE_Arduino

ダウンロードの方法はドライバを落とした時と同じです。

入手したZIPファイルを解凍し、中身を以下のディレクトリへコピーします。

コピー先:[Arduino IDE]/hardware/espressif/esp32/libraries/BLE

これで、スケッチ例からESP32のソースコードが確認できます。

上記の方法以外にGit GUIで入れる手段もありますので参考に。

espressif/arduino-esp32
Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.

書き込む

今回はライブラリのBLE_serverを使用します。

スケッチ例のソースコードそのまま使用します。

スケッチをマイコンに書き込む際はダウンロード状態にする必要があるようです。

方法は、

1.IO0をオンにし押し続ける。

2.ENを押して離す。

3IO0をオフにする。

するとシリアルモニタに以下のメッセージを受信します。

rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download

これでダウンロード状態となりますので書き込みを実行します。

書き込む際はESP32 Dev Moduleを選択します。

後は、シリアルポートを適切なものを選択して書き込みます。

確認する

書き込むとESP32が待機状態になりスマートフォンがスキャンしデバイスを見つけられるようになります。(フラッシュのエラーが出てますが大丈夫そう?

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:956
load:0x40078000,len:0
load:0x40078000,len:13256
entry 0x40078a90
Starting BLE work!
Characteristic defined! Now you can read it in your phone!

スマートフォンで確認するとBLEDevice::init(“MyESP32”);で記載された箇所が機器名として検出できることが分かります。

これで、ESP32のBLEが動作してることが確認できました。

フォローする