InPlayのIN100 BLEビーコンセンサのArduino ESP32 BLE/WiFiブリッジへの接続と、HTTP PostによるMachinechat JEDIへの送信

概要

このプロジェクトでは、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ケーブルを接続します。

image

2- 構成ツールを実行し、IN100開発ボードに接続します。接続すると、Advertising Set #1 のデフォルト設定が使用されます。Editボタンを選択し、Custom設定を行います。

3 - Advertising DataSettingsタブを選択します。

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開発ボードを提供します。

参考資料




オリジナル・ソース(English)