このプロジェクトでは、Digi Xbee3ワイヤレスZigbeeモジュールとSparkfun ESP32 ThingPlusボードを使用して、ZigbeeからWiFiへのブリッジを実装します。このブリッジは、ZigbeeセンサのデータをWiFi経由でIoTプラットフォームMachinechat JEDI Oneへ渡します。ブリッジでは、Xbee3モジュールをZigbeeコーディネータとして構成し、受信したセンサデータをUARTでESP32 ThingPlusにエコー送信します。ESP32は受信したUARTデータを読み込み、センサデータをjson文字列にパースしてWiFiでJEDI Oneに送信します。Xbee3のアプリケーションコードはMicroPythonで、ESP32のアプリケーションコードはArduinoで実装されています。
.zigbeeからWiFiへのブリッジの接続図と部品表は、scheme-itプロジェクトのzigbee_wifi_bridgeに含まれています。
テスト用に、Amphenolの温度/湿度センサT9602をZigbeeルータとして構成された2番目のXbee3無線モジュールに接続し、プロジェクト用のセンサデータを提供しています。
zigbeeセンサT9602の接続図と部品表は、scheme-itプロジェクトXB3_T9602に含まれています。
Machinechat JEDI IoTプラットフォームは、T9602のセンサデータを表示・監視するように構成されています。
ソフトウェア:
プロジェクトに使用する部品:
ESP32ボード
DigiのXbee 3 Zigbeeモジュールとアンテナ(2個)
Amphenolの温湿度センサT9602
Sparkfun ESP32 ThingPlus Arduino WiFiブリッジプロジェクトの詳細
このArduinoプロジェクトでは、ESP32ボードがXbee 3 ZigbeeコーディネータからUART経由でセンサデータを受信するように設定されています。ESP32はセンサデータを読み取り、json文字列にパースしてWiFi経由でJEDI Oneに送信し、処理を行います。
Arduinoの「Additional Boards Managers URLs」フィールドに以下のリンクを入力し、ESP32のサポートを追加します。
https://dl.espressif.com/dl/package_esp32_index.json
ボードのセットアップについては、こちらをご参照ください:
Arduinoソフトウェアのセットアップの詳細については、こちらをご参照ください:
Arduinoのライブラリマネージャからこれらのライブラリを追加します:
JEDI oneに送信されるT9602センサデータのjson文字列の例:
{“context”:{“target_id”:“T960AAC9AD”},“data”:{“data2”:59,“data3”:0,“data1”:32}}
Arduinoのスケッチ「esp32_WiFi_zigbee.ino」とソースコードは、以下のGithubリンクにあります。
Githubリンク:https://github.com/eewiki/machinechat/tree/master/Zigbee%20WiFi%20Bridge
Digi Xbee3 MicroPython WiFiブリッジプロジェクトの詳細
このMicroPythonプロジェクトでは、第1のXbee3モジュールはMicroPython REPLモードを有効にしてZigbeeコーディネータとして構成されています。Xbee3コーディネータはZigbeeネットワークを確立し、受信したセンサデータをUART経由でESP32に送信します。
ZigbeeセンサT9602のデータメッセージがUART経由でESP32に送信された例:
MsgFrom:0013A20041AAC9AD:T9602:810155769:Humidity:34.60083%:Temp:60.87921F:#
MicroPythonのソースコード「ZigbeeCoordEchoServer.py」は、以下のGithubリンクにあります。
Githubリンク:Xbee3-MicroPython/WeatherCenter at master · eewiki/Xbee3-MicroPython · GitHub
Digi Xbee3 MicroPython T9602センサプロジェクトの詳細
このMicroPythonプロジェクトでは、第2のXbee3モジュールは、ブリッジで使用されるXbee3コーディネータと同じネットワークIDを持つZigbeeルータとして設定され、MicroPython REPLモードが有効になっています。センサと実装の詳細については、eewikiのプロジェクトXbee3 Micropython and Amphenol T9602 Humidity Temperature Sensorをご参照ください。
MicroPythonのソースコード「T9602home_r1.py」は、以下のGithubリンクにあります。
Githubリンク:Xbee3-MicroPython/WeatherCenter at master · eewiki/Xbee3-MicroPython · GitHub
参考資料