概要
このプロジェクトでは、InPlayのIN100 BLEビーコンからアドバタイズされた温度データを、ESP32上で動作するArduino BLEスキャナアプリケーションで受信する概念実証を行います。ESP32は温度データをデコードし、HTTPポストを使用してWiFi経由でデータをMachinechatのJEDI IoTアプリケーションソフトウェアに転送し、そこでデータを視覚化し、処理することができます。
ハードウェア
- Seeed Odyssey Blue x86 Mini PC
クアッドコアCeleron J4105搭載のミニPCで、128GB外付けSSD付き - DFRobot Beetle ESP32C3
Beetle ESP32-C(バージョン2)トランシーバ;802.11 a/b/g/n(Wi-Fi、 WiFi、WLAN)、 2.4GHz、評価ボード - InPlay IN100 Development Kit
IN1BN-DKC0-100-C0は3枚のIN100評価ボードとプログラミングボードを含むInPlayのNanoBeacon™開発キットです。
ソフトウェア
- JEDI Pro
IoTデータの収集、可視化、モニタリング、データストレージのための適応型ソフトウェアで、IoTソリューションに組み込むことができます。センサ、デバイス、マシンからのデータ収集、直感的なリアルタイムおよび履歴データ、システムビューのダッシュボード構築、データ状況を自動的に監視し対応するためのルールの作成、電子メールやSMSによるアラート通知の受信などの機能を備えています。 - Arduino
Arduinoは、使いやすいハードウェアとソフトウェアに基づいたオープンソースの電子機器プラットフォームです。 - InPlay Configuration Tool
NanoBeacon Config Toolは、NanoBeacon DK(開発キット)の構成をテストし、書き込むためのソフトウェアプログラムです。
背景
MachinechatのJEDI Proは、HTTP、シリアル、LoRaWAN、MQTT、インターナルを含む複数のソースからデータを収集できるIoTアプリケーションソフトウェアです。収集されたデータは、JEDI上で動作するMQTTブローカを介して可視化、保存、操作、およびアクセスすることができます。InPlayのIN100 NanoBeacon SoCは、Bluetooth 5.3技術を使用した同社独自の超低消費電力SoC設計プラットフォーム上に構築された強力で効率的なBLEビーコンソリューションです。IN100はソフトウェア開発を必要とせずに、NoCode(コード不要)のSoC設計を実現しています。構成ツールが提供され、開発者はアプリケーションのニーズに応じてさまざまな動作モードにデバイスを設定できます。
実装
このプロジェクトのデモでは、InPlayのIN100 BLEビーコン開発キットに簡単なアプリケーションをセットアップし、1秒ごとにアドバタイズデータを送信します。アドバタイズデータには、デバイス名「IN100」、VCCデータ、および内部温度データが含まれます。DFRobotのESP32C3開発ボードは、BLEビーコンスキャナ機能を含むArduinoアプリケーションでプログラムされ、IN100からのアドバタイズデータを受信してデコードします。さらに、ESP32はWiFiネットワークに接続し、温度センサデータをHTTPでMachinechat JEDIに送信し、データダッシュボードで可視化します。
InPlayのBLEビーコンセンサのセットアップ
1 - プログラマボードをIN100開発ボードの1つに接続し、Nanobeacon構成ツールを実行しているコンピュータからUSBケーブルを接続します。
2- 構成ツールを実行し、IN100開発ボードに接続します。接続すると、Advertising Set #1 のデフォルト設定が使用されます。Editボタンを選択し、Custom設定を行います。
3 - Advertising DataでSettingsタブを選択します。
4 - 以下のように設定します。Device Nameには「IN100」と入力します。Manufacturer Specific Dataは、IDをデフォルトのままにし、Dataを編集してVCCと内部温度(ビッグエンディアン)を含めます。設定が完了したら、 Run in RAMボタンを選択してアドバタイズパケットの送信を開始します。
Beetle ESP32C3 Arduinoアプリケーションのセットアップ
1 - Beetle ESP32C3でArduinoをセットアップします。リンクArduino Environment Configを参照ください。
2 - アプリケーションに必要なライブラリをインストールします。Arduinoのライブラリマネージャを使って以下のライブラリを追加します。
3 - 正しく実行するためには、コードサイズをデフォルトの1.2MB APPや1.5MB SPIFFSパーティションではなく、Huge(3MB)パーティションスキームを使用する必要があります。
4 - BeetleESP32C3BLE_InplayBeacon.inoアプリケーションの最新のソースコードは、以下のリンク先の githubにあります。
Machinechat JEDIのインストール
Machinechat JEDIがまだインストールされていない場合は、以下を参照してください。
Getting Started with machinechat’s JEDI One IoT Platform
JEDIデータダッシュボードの設定
IN100がアドバタイズし、ESP32がBLEスキャナ/WiFi/HTTPアプリケーションを実行したら、デバイスダッシュボードをチェックし、JEDIがデータを受信しているかどうかを確認します。
JEDIで、Data Dashboardsタブを選択し、ADD CHARTを選択して新しいチャートを追加します。
まとめ
このプロジェクトでは、BLEビーコンセンサのデータをWiFi経由でMachinechatのJEDI IoTアプリケーションソフトウェアに渡す、迅速で簡単な方法を示します。InPlayのIN100は、低コスト、低消費電力、NoCode(コード不要)のBLEビーコン技術を提供し、複数のセンサ技術と容易に組み合わせてBLEビーコンセンサを開発できます。DFRobotのBeetle ESP32C3は、BLEとWiFi技術の橋渡しをする小型で柔軟性の高い低コストESP32開発ボードを提供します。
参考資料
- InPlay - IN100 NanoBeacon™ Product Info link
- DFRobot - Beetle ESP32C3 Wiki link
- Getting Started with machinechat’s JEDI One IoT Platform
- github - BLE Beacon Scanner example