今から始める電子工作 ⑳ I2Cバス その3-1 温湿度センサSHT45 BLEの概要

 Arduino UNO R4 WiFi は、BLEに対応しています。BLEはBluetoothの無線通信の中で、ローパワーで通信ができる規格です。

環境

  • Arduino IDE;2.3.4
  • Windows11;24H2
  • Arduino UNO R4 WiFi 
  • ArduinoBLEライブラリ1.3.7

BLEライブラリ

 ArduinoのBLEライブラリのドキュメントは、次のWebページにあります。

  https://docs.arduino.cc/libraries/arduinoble/

 Arduinoマイコン・ボードの中に、ESP32を使ったものがあり、そのBLEライブラリは、上記のライブラリとは異なっています。

 今回、温湿度センサSHT45から読みだした温度と湿度のデータを、どこかへBLE通信で送ります。このとき、送り手はBLEペリフェラルと呼びます。受信する側はBLEセントラルと呼ばれます。

大雑把なBLEの構造

 一番外側がGATTで、その中に複数のServiceがあります。Serviceの中に複数のCharacteristicsがあるという構造をしています。ServiceとCharacteristicsにはユニークなUUIDが振られています。バッテリ・サービスのように決まった(登録されている)UUIDもありますが、多くは、各社各自、自由に使っています。

 BLEペリフェラルのスケッチでは、これらのUUIDとそのパラメタを定義していきます。

可視化ツールにオンセミのRSL10を使う

 スマホのアプリにもBLEの可視化ツールはありますが、ここでは、Windows11に、オンセミのツールをインストールします。USBにドングルRSL10-USB001GEVKを指します。

  https://www.onsemi.jp/products/wireless-connectivity/bluetooth-low-energy/rsl10

 

 上記URLからBLE Explorerをダウンロードし、Windows11にインストールします。ドングルは、CP210xのUSB-UARTが使われているので、ドライバをどこからか入手しておきます。

  BLE Explorerを起動し、Scanボタンをクリックすると、近くのBLEを検出してきます。

 温湿度表示器SwitchBotを近くに置いておいたので、見つけてきたので、選択します。基本的なデータを読みだしてきて、右側のエリアに表示します。

 右のエリアのメニューConnectをクリックし、Discover Servicesをクリックします。Infoのタブの右にServicesのタブが出てくるので選択します。

 一番下のブロックを見ます。

 ServiceのUUIDがCBA20D00-224D-11E6-9FB8-0002A5D5C51Bです。

 Characteristicは二つあって、送られてくるdataをリードするCBA20003-224D-11E6-9FB8-0002A5D5C51Bと、
commandを送るためのCBA20002-224D-11E6-9FB8-0002A5D5C51Bが見えています。

 これらは、https://github.com/OpenWonderLabs/SwitchBotAPI-BLE?tab=readme-ov-file に解説があります。

前へ

今から始める電子工作 ⑲ I2Cバス その2-3 温湿度センサSHT45、Wireライブラリ、CRC

次へ

今から始める電子工作 ㉑ I2Cバス その3-2 温湿度センサSHT45 BLEペリフェラル