XIAO ESP32S3 Sense

  XIAO ESP32S3 Senseパーソナル・コンピュータPC(OS:Windows10)やAndroid携帯Xperia xz2 compact(Android10)Xperia Ace II(Android13)をBLE(Bluetooth Low Energy)で接続します。以下、カメラモジュールを使わないのでXIAO ESP32S3 Senseを単にXIAO ESP32S3と記述します。

XIOA_ESP32S3用のファームウェアはArduino IDE 2.3.2で開発します。PC用のアプリケーション・ソフトウェア開発には Visual Studio 2022を、Android携帯用のアプリケーション・ソフトウェア開発にはAndroid Studio Iguana | 2023.2.1 Patch 2 を用いました。

目次:


Arduino IDEの環境を整える

  Getting Started with Seeed Studio XIAO ESP32S3 (Sense)にしたがって、環境を整えます。

1.XIOA_ESP32S3本体に付属のアンテナを付けます。

2.Arduino IDEをパーソナル・コンピュータ(PC)上で起動します。

3.ESP32ボードマネージャーをArduino IDEに追加します。具体的には、Arduino IDEのメニューから ファイル > 基本設定を選択し、追加のボードマネージャーのURLとしてhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.jsonを設定して(下図①)、OKボタンを押します(下図➁)。

4.ボードマネージャー・アイコン(下図①)をマウスでクリックして、検索ボックスにesp32とタイプします(下図➁)。表示されるESP32 by Espressif Systemsをインストールします(下図➂)。

5.XIOA_ESP32S3とPCをUSBケーブルで接続します。ボードを選択なる個所(下図①)をマウスでクリックして、他のボードとポートを選択...(下図➁)をマウスでクリックします。

6.現れる画面にて、xiaoとタイプしてボードを検索します(下図①)。表示されるXIAO_ESP32S3を選択します(下図➁)。XIAO_ESP32S3は、PCからはRS232C機器と見えるので、URAT通信を行う際のCOMポートを選択します(下図➂)。最後にOKボタンを押します(下図④)。


NimBLE-Arduinoのインストール

  BLE通信のために、NimBLE-Arduinoライブラリを使用します。ライブラリのArduino IDEへのインストール方法は以下の通りです。

1.Arduino IDEにて、画面左側にあるライブラリマネージャー・アイコンをマウスでクリックして、ライブラリマネージャーを起動します(下図①)。

2.キーワードをnimbleとしてライブラリを検索します(下図②)。

3. 現れるNimBLE-Arduinoライブラリのインストールボタンをマウスでクリックします(下図③)。



データの送受信

  XIOA_ESP32S3のブートボタンを押しながら、PCに接続してあるUSBケーブルをXIOA_ESP32S3に差し込みます(BootLoaderモードにする)。XIOA_ESP32S3用のファームウェアはNImCustom.zipです。これをXIOA_ESP32S3に書き込んだ後、XIOA_ESP32S3のリセットボタンを押すと、Arduino IDEのシリアルモニタにstartAdvertisingと表示されるので、それを確認します。


PC(OS:Windows10)との接続

  XIOA_ESP32S3とPC(OS:Windows10)との間でデータのやり取りを行います。

1.プログラム開発に必要な機能をVisual Studio 2022に追加します。具体的には。 Windows10アプリケーションにおける注意点の項目1にしたがって必要な機能を追加します。

2.注意接続方法に書かれいる方法で接続しないように。もし接続してしまったらデバイスの削除ボタンをマウスでクリックして接続を解除します。

3.PC用のアプリケーション・ソフトウェアはGattWriteIndicate.zipです。これをコンパイルして実行すると、2つのボックスと1個の送信ボタンを持つダイアログ(対話)・ウィンドウがPC上に現れます。一方、Arduino IDEのシリアルモニタには、onConnectと表示されているはずです。これで、XIOA_ESP32S3とPCがBLE接続されました。

4.ダイアログ・ウィンドウの上のボックスに例えば123と入れて、送信ボタンをクリックすると、下のボックスに223と現れれば、正常に動作しています。送信された文字列のうち、第1番目の文字だけが変わったもの(アスキーコードで1足されたもの)が、下のボックスに現れるはずです。

  ところで、XIOA_ESP32S3用のファームウェアで構成されるGATTデータベースはXIAO.xlsxとなっていました。これは、PCにBluetooth USB(Ver 4.0)ドングル(BUFFALO社のBSBT4D200)を付けて、PCとドングル間を流れるUSBパケットを Free USB Analyzerでモニターした結果として得られます。


Xperia xz2 compact(Android10)、Xperia Ace II(Android13)との接続

  XIOA_ESP32S3とAndroid携帯との間でデータのやり取りを行います。

1.Xperia xz2 compact(Android10)用のアプリケーション・ソフトウェアはBL652_Android.zipで、Xperia Ace II(Android13)用のアプリケーション・ソフトウェアはBL652_Android13.zipです。

2.アンドロイド携帯から接続を開始します。BluetoothをONにしたアンドロイド携帯において、まず「設定」アイコンをタップします。そして、「機器接続」をタップ、「+新しい機器とペア設定する」の箇所をタップします。少し待つと「XIAO_ESP32S3_YTS」と書かれたアイコンが現れるので、これをタップします。すると下図のように「現在接続されている機器」として、「XIAO_ESP32S3_YTS」が登録されます。このペアリング操作は最初だけ(1回だけ)行えば済みます。

3.Android Studioで Android携帯用のアプリケーション・ソフトウェアを携帯に書き込んで実行します。すると下図のように、2つのエディット・テキストと1個のSENDボタンを持つ画面が現れます。 例えば上のエディット・テキストに123と入れてSENDボタンをタップすると、下のエディット・テキストに223と現れれば正常に動作しています。送信された文字列のうち、第1番目の文字だけが変わったもの(アスキーコードで1足されたもの)が現れるはずです。

4.2回目以降の接続(再接続)は、XIOA_ESP32S3の電源を入れ、アンドロイド携帯にてアプリケーション・ソフトウェアのアイコンをクリックするだけです。ただ、アプリケーション・ソフトウェアがすでに起動されており、かつ、そのActivityが表示中ならば、一端ホームキーなどを押して非表示にしてからアイコンをクリックします(注意)。上記項目2での「ペアリング操作」は不要です。なお、SENDボタンをタップしても下のエディット・テキストに何も表示されないときは、XIOA_ESP32S3のリセットボタンを押した後、一度ホーム画面に戻してアイコンをクリックしてください。

注意:再接続の場合、アンドロイド携帯用のアプリケーション・ソフトウェアを再起動する必要があります。Activityを非表示にするとOnStop関数が呼ばれるので、この関数内で再起動しています。


ESP32-BLE-Mouse

1. ESP32-NimBLE-MouseサイトからESP32-NimBLE-Mouse-master-master.zipをダウンロードします。

2.Arduino IDEのメニューからスケッチ->ライブラリをインクルード->ZIP形式のライブラリをインストールを選択してゆきます。現れるダイアログ・ウィンドウにてESP32-BLE-Mouse-master.zipを指定します。これで、ESP32-NimBLE-Mouseがインストールされます。

3.Arduino IDEのメニューからファイル->スケッチ例->ESP32_BLE_Mouse->ScrollDownを選択してゆきます。

4.スケッチ・ウィンドウ(編集画面)に表示されているファームウェアの中のbleMouse.move(0,0,-1);bleMouse.move(0,10,0);と手直します。手直ししたファームウェアはmouse.zipです。

5.XIOA_ESP32S3のブートボタンを押しながら、PCに接続してあるUSBケーブルをXIOA_ESP32S3に差し込みます(BootLoaderモードにする)。手直ししたファームウェアをXIOA_ESP32S3に書き込んだ後、XIOA_ESP32S3のリセットボタンを押すと、Arduino IDEのシリアルモニタにStarting BLE work!と表示されるので、それを確認します。


PC(OS:Windows10)との接続

1.PC(OS:Windows10)とXIOA_ESP32S3をBLEで接続します。接続方法は接続方法に書いてあります。接続が完了すると

のようになるはずです。

2.マウスカーソルがPC上で2秒おきに少しづつ下方に移動してゆきます。


Xperia xz2 compact(Android10)、Xperia Ace II(Android13)との接続

1.アンドロイド携帯から接続を開始します。BluetoothをONにしたアンドロイド携帯において、まず「設定」アイコンをタップします。そして、「機器接続」をタップ、「+新しい機器とペア設定する」の箇所をタップします。少し待つと「ESP32-Mouse」と書かれたアイコンが現れるので、これをタップします。すると下図のように「現在接続されている機器」として、「ESP32-Mouse」が登録されます。このペアリング操作は 最初だけ(1回だけ)行えば済みます。

2.マウスカーソルが携帯画面上で2秒おきに少しづつ下方に移動してゆきます。


ESP32-BLE-Keyboard

1.ESP32-BLE-KeyboardサイトからESP32-BLE-Keyboard-master.zipをダウンロードします。

2.Arduino IDEのメニューからスケッチ->ライブラリをインクルード->ZIP形式のライブラリをインストールを選択してゆきます。現れるダイアログ・ウィンドウにてESP32-BLE--master.zipを指定します。これで、ESP32-BLE-Keyboardがインストールされます。

3.スケッチ例->ESP32-BLE-Keyboard->Send Key Strokesを選択してゆきます。名前を変えただけのファームウェアがkeyboard.zipです。

4.NimBLE-Arduinoライブラリを使用するために、スケッチブックの場所(私の場合はC:\Users\yts\Documents\Arduinoフォルダ)にあるBleKeyboard.h(フルパス:C:\Users\yts\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.h)を編集します。このヘッダーファイルの中の#define USE_NIMBLEの前についているコメントをとります(//を削除)。これで、NimBLE-Arduinoライブラリを使用する設定になります。

5.XIOA_ESP32S3のブートボタンを押しながら、PCに接続してあるUSBケーブルをXIOA_ESP32S3に差し込みます(BootLoaderモードにする)。ファームウェアをXIOA_ESP32S3に書き込んだ後、XIOA_ESP32S3のリセットボタンを押すと、Arduino IDEのシリアルモニタにStarting BLE work!と表示されるので、それを確認します。


PC(OS:Windows10)との接続

1.PCとXIOA_ESP32S3をBLEで接続します。接続方法は接続方法に書いてあります。接続が完了すると

のようになるはずです。

2.テキスト・エディッタ(例えば秀丸エディタ)を開くと、5秒おきにHello world(+改行)と表示されます。また、Windows Media Playerを開いていると、再生・停止を5秒おきに繰り返します。


Xperia xz2 compact(Android10)、Xperia Ace II(Android13)との接続

1.アンドロイド携帯から接続を開始します。BluetoothをONにしたアンドロイド携帯において、まず「設定」アイコンをタップします。そして、「機器接続」をタップ、「+新しい機器とペア設定する」の箇所をタップします。少し待つと「ESP32 Keyboard」と書かれたアイコンが現れるので、これをタップします。すると下図のように「現在接続されている機器」として、「ESP32 Keyboard」が登録されます。このペアリング操作は最初だけ(1回だけ)行えば済みます。

2.テキスト・エディッタを開くと、5秒おきにHello world(+改行)と表示されます。


戻る