概要
この記事では、以前の記事「Advantechの産業用LoRaWAN I/OモジュールWISE-4610入門」をベースに、WISE-4610のRS-485通信機能を使用してModbus RS-485センサを接続し、Modbusコマンドを送信してセンサを読み取る方法を説明します。WISE-4610はプライベートTTN LoRaWANネットワークMQTTに追加され、可視化のためにセンサデータをMachinechat JEDIへの送信に使用されます。Seeedの温湿度センサS-TH-01 RS-485を使用して、RS-485通信のデモンストレーションを行います。
ハードウェア
-
Advantech WISE-4610P-NA
先進の産業用LoRa/LoRaWAN無線I/Oモジュール -
Advantech WISE-S617T-A
WISE-4600シリーズと組み合わせるモジュール型IoT I/Oモジュール、2AI/2DI/1DOと1RS-485付き -
Seeed 101990881
製品モデル:S-TH-01、RS485-工業用空気温湿度センサ -
AC/DC DINレール電源(24VDC 36W出力)
ソフトウェア
-
Advantech WISE Studio
WISE-Studioは、WISEモジュールを構成するためのツールです。このソフトウェアは、異なるモデルでも同様のウェブベースのインターフェースを提供します。Ethernet、LAN、あるいはWLAN経由で構成されたWISEモジュールの場合、WISE-StudioはWISEモジュールの内部Webサーバとの通信を可能にします。USBで構成されたモジュールの場合、WISE-Studioはソフトウェアがインストールされたコンピュータ上でWebサーバを実行します。そして、WebサーバはUSBインターフェースを使用して、WISEモジュールと通信します。 -
The Things Stack
The Things Stackは、オープンソースのコアをベースに構築された企業用グレードのLoRaWANネットワークサーバです。The Things Stackを利用することで、自社ハードウェアやクラウド上でLoRaWANネットワークを構築・管理することができます。 -
JEDI Pro or JEDI Pro SSE
IoTデータの収集、可視化、モニタリング、データストレージのための適応型ソフトウェアで、IoTソリューションに組み込むことができます。- センサ、デバイス、マシンからのデータ収集
- 直感的なリアルタイムおよび履歴データ、システムビューダッシュボードの構築
- データ状態を自動的に監視し対応するためのルール作成
- メールやSMSによるアラート通知の受信
などの機能を備えています。
JEDI Pro SSEは、JEDI ProにSeeedのSenseCAP LoRaWANセンサ用のData Collectorを追加した
Studio Editionバージョンです。
- Modbus
Modbus Organizationは、オートメーションデバイスの独立したユーザーおよびサプライヤのグループであり、Modbus通信プロトコルスイートの採用と、複数の市場セグメントにわたる分散型オートメーションシステムのアーキテクチャに対応するための進化を推進しています。
背景
AdvantechのWISE-4610は、4610のベースに取り付けられるプラグインモジュールの形で複数のI/Oオプションを備えています。I/Oオプションには、アナログ入力(電流または電圧)、デジタル入出力、RS-485、およびスイッチング電源出力電圧が含まれます。プロジェクトで使用されたハードウェアには、WISE-4610P-NAとWISE-S617Tモジュールが含まれます。
S617Tは、2つのアナログ入力、2つのデジタル入力、1つのデジタル出力、2つの電源出力、および1つのRS-485 I/Oを備えています。アナログ入力は、ジャンパCN6とCN7の設定により、電圧または電流のいずれかに設定できます(AI1およびAI2入力のデフォルト設定は電圧です)。S617Tモジュールは WISE-4610のベースに挿入され、付属のネジを使用して固定されます。ピンアウトとI/Oの詳細は、以下のI/Oネジ端子コネクタの写真と図に示されています。
SeeedのRS485温湿度センサS-TH-1
S-TH-01モジュールは、1つの小型センサで産業グレードのセンシングとコンパクトな空気温湿度センシングを提供します。S-TH-1の電源は3.6~30V DCで、通信はModbusプロトコルに従ったRS485です。
RS485センサ通信のテスト
使用するセンサでRS485通信をテストすることは常に良い方法です。これは、RS485経由でテスト対象のセンサに接続されたUSB~RS485コンバータに接続されたWindows PC上で動作するRealTermシリアルターミナルを使用することによって実現されます。このプロジェクトでは、以下のScheme-it図面SeeedSTH1TempRS485Testに示されているように、WaveshareのUSB~RS232/485/TTLコンバータを使用してSeeed温湿度センサに接続します。
センサの配線と電源入力が完了したら、RealTermを起動し、WaveshareのUSB~RS232/485/TTLコンバータに接続されたCOMポートに接続します。
「Port」タブを、ボーレート:9600、パリティ:なし、データビット:8、ストップビット:1、およびハードウェアフロー制御:なしに設定します。
「Display」タブは、DisplayをDisplay As: Hexと設定し、Half Duplexボックスを選択します。RS485通信は、センサに有効なコマンドを送信し、応答を監視することによってテストすることができます。
注:センサのアドレスはセンサケーブルに貼られたラベルに記載されており、10進数42(16進数0x2A)になります。
「Send」タブを選択し、Modbusコマンドを16進数で入力し、「Send Numbers」を選択します。以下の例では、コマンドは「2A0302000002C3A8」(サーバアドレスとボーレートコードレジスタの読み取り)です。
例1(サーバアドレスとボーレートコードレジスタの読み取り)
コマンド(クライアント)-「2A0302000002C3A8」
2A サーバアドレス
03 Modbusファンクションコード 3 - ホールディングレジスタ読み取り
02 開始アドレスHiバイト
00 開始アドレスLoバイト
00 レジスタ数Hiバイト
02 レジスタ数Loバイト
C3 CRC Hiバイト
A8 CRC Loバイト
レスポンス(サーバ)-「2A0304002A000300F8」
2A サーバアドレス
03 Modbusファンクションコード 3 - ホールディングレジスタ読み取り
04 バイトカウント
002A バイト 1,2 (サーバアドレス = 2A)
0003 バイト 3,4(ボーレートコード = 3 = 9600ボー)
00 CRC Hiバイト
F8 CRC Loバイト
例2(温度、湿度、および露点のレジスタの読み取り)
コマンド(クライアント)-「2A0400000003B610」
2A サーバアドレス
04 Modbusファンクションコード 4 - 入力レジスタの読み取り
00 開始アドレスHiバイト
00 開始アドレスLoバイト
00 レジスタ数Hiバイト
03 レジスタ数Loバイト
B6 CRC Hiバイト
10 CRC Loバイト
レスポンス(サーバ)-「2A040607310D1400CFF4ED」
2A サーバアドレス
04 Modbusファンクションコード 4 - 入力レジスタの読み取り
06 バイトカウント
0731 バイト1,2(温度 = 1841/100 = 18.41C)
0D14 バイト3,4(湿度 = 3348/100 = 33.48%)
00CF バイト5,6(露点=207/100=2.07C)
F4 CRC Hiバイト
ED CRC Loバイト
Modbus通信例の詳細情報は、S-TH-1 Air Temperature and HumiditySensor-Data Sheetのセクション6.4.2に記載されています。
WISE-Studioソフトウェアユーティリティのセットアップ
WISE-Studioは、WISEモジュールを設定するためのツールです(ユーティリティは、WISE Studioからダウンロードできます)。このツールは、複数のWISEモデルで共通したWebベースのインターフェースを提供します。Ethernet、LAN、あるいはWLANで構成されたモジュールの場合、WISE-StudioはWISEモジュールの内部Webサーバとの通信を可能にします。USBで構成されたモジュール(WISE-4610など)の場合、WISE-Studioはソフトウェアをインストールしたコンピュータ上でWebサーバを実行します。そしてWebサーバはUSBインターフェースを使用してWISEモジュールと通信します。モジュールの情報は内蔵のWebページまたはWebブラウザからアクセスすることができます。
1 - CP210x USB - UART ブリッジ VCP ドライバ - Silicon LabsからUSBドライバをダウンロードし、インストールします。
2 - http://support.advantech.com/からWISE Studioをダウンロードし、インストールします。
3 - モジュールに電源を供給するには、DC電源を+Vsおよび-Vsピンに接続します。
4 - モジュールをmicroUSBポートを介してコンピュータに接続します。
5 - WISE Studio Utilityを開き、Serial PortでGo To Configurationを選択します。そして、適切なCOMポートを選択し、接続(connect)をクリックします。
PCとWISE-4610が接続されると、Information(情報)ページでモジュール、LoRa、デバイス、および電源の状態の詳細を見ることができます。その他のページには、4610を設定する際に使用するConfiguration、I/O Status、および Advancedがあります。WISE-4610の詳細な設定方法は、WISE-4610 User Manualに記載されています。
ハードウェアのセットアップ
このプロジェクトでは、WISE-4610の電源として24V DINレール電源を使用し、PCにUSBケーブルで接続してWISE Studioが動作します。以下の構成図は、セットアップの実装方法を示しており、DigiKey品番によるBOMも含まれています(Scheme-it WISE4610_STH1sensor Projectを参照)。
注:PCへのUSB接続は、WISE-4610の設定時のみ使用します。
WISE-4610 LoRaデバイスのEUI、App EUI、およびApp KEYの値の決定
WISE-4610のDevice EUI、App EUI、およびApp keyは、WISE StudioでConfigurationページのRF Moduleタブに移動して確認することができます。
注:これらのLoRaパラメータは、4610をThe Things Stack LoRaWANネットワークに追加する際に必要になります。
IO Statusページに移動し、COM1を選択し、ModbusRTU Configurationを選択し、さらにRules Settingタブを選択して、RS-485湿度/温度センサS-TH-1のModbusコマンドを次の値で指定します。
スレーブID = 42(0x2A)、タイプ = 04入力レジスタ、開始アドレス = 1、長さ = 3、R/W = R、スキャン間隔 = 60
IO Statusページでは、RS-485 rtu(remote terminal unit、遠隔端末装置)センサデータを、COM1 StatusタブおよびWord Statusタブで確認できます。
The Things Stack LoRaWANネットワークサーバにI/OコントローラWISE-4610 I/Oを追加
The Things Stackは、オープンソースのコアをベースに構築された企業向けのLoRaWANネットワークサーバです。The Things Stackを利用することで、自社のハードウェアやクラウド上でLoRaWANネットワークを構築・管理することが可能です。WISE-4610はThe Things Stackサーバに追加され、4610のI/OデータペイロードをLoRaWANサーバで受信することができるようになります。4610のデータペイロードは複数文字の文字列で構成されているため、カスタムJavascriptペイロードパーサーを使用して、さまざまなアナログあるいはデジタルI/OおよびRS-485データパラメータ値をデコードする必要があります。Advantechは汎用のWISE Javascriptペイロードパーサーを開発し提供していますが、これをThe Things Stackで動作するように変更する必要があります。
このプロジェクトと以下の手順は、The Things Stack LoRaWANサーバが稼働しており、ネットワークにデバイスを追加することが可能であることを前提としています。
1 - まず最初に、The Things Stackサーバにadminとしてログインします。
2 - 「Applications」を選択し、WISE-4610をエンドデバイスとして追加するアプリケーションを開きます(このプロジェクトの例では、farm1が使用されます)。
3 - Application ID 「farm1」で、+ Add end deviceを選択します。
4 - Register end device画面で、「Register manually」を選択します。
Frequency planは「United States 902-928 MHz FSB 2(used by TTN) 」を選択します。
LoRaWAN versionは「LoRaWAN Specification 1.0.2」を選択します。
Regional Parameters versionは「RP001 Regional Parameters 1.0.2」を選択します。
先にWISE StudioのRF Module画面で決定したDevEUI、AppEUI、およびAppkeyのパラメータを入力します。
すべてのデータパラメータを入力したら、Register end deviceを選択してWISE-4610の登録を完了します。
5 - 次に、4610から送信されるパラメータ値をデコードするために、ペイロードデコーダをThe Things Stackにセットアップする必要があります。Advantechは、サードパーティのLoRaWANゲートウェイで使用するためのリファレンスJavascriptペイロードパーサーを提供しており、それはThe Things Stackで動作するように修正されています。デコーダと修正された情報は、githubのLoRaWAN/WISE4610 at main · eewiki/LoRaWAN · GitHubで見ることができます。
6 - The Things Stackでペイロードデコーダをセットアップするには、WISE-4610のEnd device画面に移動します(エンドデバイスはeui IDで表示されます)。Payload Formattersタブを選択します。Formatter typeで「Custom Javascript formatter」を選択します。githubリンクでhttps://github.com/eewiki/LoRaWAN/blob/main/WISE4610/WiseParserV1_6_8_TTNmod.jsにあるJavascriptコードをコピーし、Formatter codeウィンドウにペーストし、Save changesを選択します。
7 - WISE-4610のアクティビティを知るためにLoRaWANメッセージを確認します。デコードされたペイロードメッセージはLive Dataタブで確認できます。「uplink data」メッセージの1つを展開すると、rtuペイロードの詳細が表示されます。
復号化されたペイロードの例を以下に示します。
{
"name": "as.up.data.forward",
"time": "2023-05-05T20:02:19.191808194Z",
"identifiers": [
{
"device_ids": {
"device_id": "eui-74fe48ffff7ac6e5",
"application_ids": {
"application_id": "farm1"
},
"dev_eui": "74FE48FFFF7AC6E5",
"join_eui": "0000000053363137",
"dev_addr": "00BA8AE9"
}
}
],
"data": {
"@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
"end_device_ids": {
"device_id": "eui-74fe48ffff7ac6e5",
"application_ids": {
"application_id": "farm1"
},
"dev_eui": "74FE48FFFF7AC6E5",
"join_eui": "0000000053363137",
"dev_addr": "00BA8AE9"
},
"correlation_ids": [
"as:up:01GZPR46A7S6Y0S3DFYPVFKNDQ",
"gs:conn:01GZMKNRBDVHKGDKECYGGKCBT8",
"gs:up:host:01GZMKNRGY2P3J4FJT02ZBXE5C",
"gs:uplink:01GZPR4610PCNW5WBQY34M53SV",
"ns:uplink:01GZPR4618P1ZYR3RP79SWTD7Y",
"rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GZPR4616ZRDSCYMZKDTPV9N5",
"rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GZPR46A21WT6ERHB0N4MMWQ5"
],
"received_at": "2023-05-05T20:02:19.079302431Z",
"uplink_message": {
"session_key_id": "AYcT4+JJKoHLe7tygE7ZnA==",
"f_port": 1,
"f_cnt": 13250,
"frm_payload": "gcJJAAcHAgAAAAAAAAcnAgAAAAAANAofIP9/AAD//ykCNAo/IP9/AADXj/1/EAIBAIMEAABmCIMEAQAuD4MEAgC0AmAHFgNSxGBVZLk=",
"decoded_payload": {
"AI0": {
"Event": 0,
"MaxVal": 65535,
"MinVal": 553,
"Range": 4,
"Raw Data": 32767,
"status": {
"High Alarm": 0,
"Low Alarm": 0
}
},
"AI1": {
"Event": 0,
"MaxVal": 36823,
"MinVal": 32765,
"Range": 4,
"Raw Data": 32767,
"status": {
"High Alarm": 0,
"Low Alarm": 0
}
},
"DI0": {
"mode": 0,
"status": {
"DI Change": 0,
"Get/Clean Counter Overflow": 0,
"Get/Clean H2L Latch": 0,
"Get/Clean L2H Latch": 0,
"Signal Logic": 0,
"Start Counter": 1
},
"value": 0
},
"DI1": {
"mode": 0,
"status": {
"DI Change": 0,
"Get/Clean Counter Overflow": 0,
"Get/Clean H2L Latch": 0,
"Get/Clean L2H Latch": 0,
"Signal Logic": 0,
"Start Counter": 1
},
"value": 0
},
"DO0": {
"Mode": "DO",
"status": {
"DO Change": 0,
"Pulse Output Continue": 0,
"Signal Logic": 0
}
},
"Device": {
"BatteryLevel": 82,
"PowerSrc": 3,
"Time": 1683316932
},
"RtuRegister0-0": {
"Data": 2150,
"Status": 0
},
"RtuRegister0-1": {
"Data": 3886,
"Status": 0
},
"RtuRegister0-2": {
"Data": 692,
"Status": 0
},
"SequenceNumber": 194,
"SourceAddress": null,
"TotalLength": 73
},
"rx_metadata": [
{
"gateway_ids": {
"gateway_id": "dragino24cf29",
"eui": "A84041FDFE24CF29"
},
"time": "2023-05-05T20:02:18.780349Z",
"timestamp": 1643032564,
"rssi": -22,
"channel_rssi": -22,
"snr": 13.2,
"frequency_offset": "-10328",
"uplink_token": "ChsKGQoNZHJhZ2lubzI0Y2YyORIIqEBB/f4kzykQ9N+6jwYaDAjKwdWiBhCuyNz0AiCgov3i6PwQKgwIysHVogYQyNyM9AI=",
"channel_index": 6
}
],
"settings": {
"data_rate": {
"lora": {
"bandwidth": 125000,
"spreading_factor": 7
}
},
"coding_rate": "4/5",
"frequency": "905100000",
"timestamp": 1643032564,
"time": "2023-05-05T20:02:18.780349Z"
},
"received_at": "2023-05-05T20:02:18.792508173Z",
"confirmed": true,
"consumed_airtime": "0.158976s",
"network_ids": {
"net_id": "000000"
}
}
},
"correlation_ids": [
"as:up:01GZPR46A7S6Y0S3DFYPVFKNDQ",
"gs:conn:01GZMKNRBDVHKGDKECYGGKCBT8",
"gs:up:host:01GZMKNRGY2P3J4FJT02ZBXE5C",
"gs:uplink:01GZPR4610PCNW5WBQY34M53SV",
"ns:uplink:01GZPR4618P1ZYR3RP79SWTD7Y",
"rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GZPR4616ZRDSCYMZKDTPV9N5",
"rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GZPR46A21WT6ERHB0N4MMWQ5"
],
"origin": "0204e7fb6077",
"visibility": {
"rights": [
"RIGHT_APPLICATION_TRAFFIC_READ"
]
},
"unique_id": "01GZPR46DQJ76TKCPF1Z0KMW9Q"
}
アプリケーションとインテグレーションの追加
WISE-4610を設定し、The Things Stack LoRaWANネットワークサーバに追加すると、WISE-4610からアップリンク/ダウンリンクされるデータは、アプリケーションやインテグレーションを追加することで操作したり可視化することができます。MQTT、Node-RED、IFTTT、クラウドなど多くのオプションを実装することができます。詳細については、https://www.thethingsindustries.com/docs/integrations/でご覧いただけます。
The Things Stack MQTTサーバへのアクセス
The Things Stackは、ストリーミングイベントを扱うためのMQTTサーバを公開しています。以下の手順では、MQTTクライアントを接続し、アップリンクをサブスクライブしたり、ダウンリンクをパブリッシュする方法を説明します。MachinechatのJEDIは、ストリーミングS2101センサデータを受信するためには、MQTTサーバ情報が必要です。The Things Stack MQTTサーバの詳細情報は、MQTT Server | The Things Stack for LoRaWANを参照してください。
1 - APIキーを作成します。MQTTサーバを使用するには、認証のために新しいAPIキーを作成する必要があります。コンソールは、必要な接続情報を提供し、認証用のAPIキーを作成するために使用することができます。ApplicationsタブでIntegrationsのサイドメニューからMQTTサブメニューを選択します。
2 - Generate new API keyボタンをクリックして、MQTTサーバへの接続に使用するAPIキーを作成します。JEDIデータコレクタの構成ファイルに必要なMQTT情報(公開アドレス、 ユーザー名、パスワード) を控えておいてください。
MachinechatのJEDI Pro MQTTカスタムデータコレクタのセットアップ
WISE-4610 I/Oモジュールからのセンサデータをサブスクライブするために、カスタムMQTTデータコレクタがJEDI Proにセットアップされます。データコレクタは2つのファイルで構成されます。「dcollector.bin」は JEDIを実行しているマシン上で実行される実行可能ファイルで、「dconfig.yml」は関連するMQTTおよびセンサ情報を含む対応する構成ファイルです。このプロジェクトでは、センサパラメータ名を使用してdconfig.ymlを編集することで、S2101の温度と湿度の値をサブスクライブします。センサパラメータ名を決定するために、LHT65NのLoRaWANデータペイロードを確認します。
1 - LoRaWAN MQTTデータコレクタの32ビットarm7バージョン「dcollector.bin」と設定ファイル 「dconfig.yml」をMachinechatのリンクhttps://support.machinechat.io/hc/en-us/articles/13935227926935-TTN-MQTT-LoRaWAN-Collectorからダウンロードします。
2 - WISE-4610 LoRaWANペイロードを確認します。前述の通り、ペイロードには以下のデータが含まれています。
温度パラメータは「RtuRegister0-0.Data」、湿度パラメータは「RtuRegister0-1.Data」、そして露点パラメータは「RtuRegister0-2.Data」です。
3 - MQTT情報およびセンサデータパラメータを使用して構成ファイルを変更する必要があります。 変更する必要がある値は次のとおりです。
mQTTBrokerFullURL: 上記MQTT Integrationの「パブリックアドレス」
mQTTUsername: 上記MQTT Integrationの「ユーザー名」
mQTTPassword: 上記MQTT Integrationの「パスワード」
cSproperty: ペイロードでサブスクライブされるパラメータ
mcProperty: EDIにマッピングされた対応するパラメータ名
dconfig.ymlファイルの例
mQTTBrokerFullURL: "tcp://192.168.1.129:1883"
mQTTUsername: "farm1"
mQTTPassword: "NNSXS.XFQCW3GFJXGC78MPOVKF3M2CUD4HFNSHNZQLRJQ.MB5VAGIGLVQ3F66LFYK2CVY2Z66A4CWRLQJXRIQBNT1A8IH7C6TA"
sendTestSenML: true
# setDebugLevel 0 is no debug, 1 is colorized JSON decode, 2 is 1 plus verbose payload dumps
setDebugLevel: 1
propertyNames:
- cSproperty: "Device.BatteryLevel"
mcProperty: "Battery"
- cSproperty: "DI0.value"
mcProperty: "DI0value"
- cSproperty: "DI1.value"
mcProperty: "DI1value"
- cSproperty: "AI0.Raw Data"
mcProperty: "AI0volt"
transform: "round(data - 32767)/3277"
precision: 2
- cSproperty: "AI1.Raw Data"
mcProperty: "AI1RawData"
- cSproperty: "RtuRegister0-0.Data"
mcProperty: "SHT1data0"
transform: "round(data)/100"
precision: 2
- cSproperty: "RtuRegister0-1.Data"
mcProperty: "SHT1data1"
transform: "round(data)/100"
precision: 2
- cSproperty: "RtuRegister0-2.Data"
mcProperty: "SHT1data2"
transform: "round(data)/100"
precision: 2
4 - データコレクタ「dcollector.bin」とコンフィグレーション「dconfig.yml」ファイルを、JEDI がインストールされているマシンの「jedi/plugins」ディレクトリにコピーしてインストールします。
5 - jedi/plugins ディレクトリのコマンドラインで「./dcollector.bin ./dconfig.yml」を実行して、データコレクタをテストします。以下は、データコレクタが正しく動作しているときの、ターミナル上の出力データの一部の例です( デバッグレベルを1に設定 )。
{
"AI0.Event": 0,
"AI0.MaxVal": 32768,
"AI0.MinVal": 32766,
"AI0.Range": 4,
"AI0.Raw Data": 32767,
"AI0.status.High Alarm": 0,
"AI0.status.Low Alarm": 0,
"AI1.Event": 0,
"AI1.MaxVal": 32768,
"AI1.MinVal": 32767,
"AI1.Range": 4,
"AI1.Raw Data": 32768,
"AI1.status.High Alarm": 0,
"AI1.status.Low Alarm": 0,
"DI0.mode": 0,
"DI0.status.DI Change": 0,
"DI0.status.Get/Clean Counter Overflow": 0,
"DI0.status.Get/Clean H2L Latch": 0,
"DI0.status.Get/Clean L2H Latch": 0,
"DI0.status.Signal Logic": 0,
"DI0.status.Start Counter": 1,
"DI0.value": 0,
"DI1.mode": 0,
"DI1.status.DI Change": 0,
"DI1.status.Get/Clean Counter Overflow": 0,
"DI1.status.Get/Clean H2L Latch": 0,
"DI1.status.Get/Clean L2H Latch": 0,
"DI1.status.Signal Logic": 0,
"DI1.status.Start Counter": 1,
"DI1.value": 0,
"DO0.Mode": "DO",
"DO0.status.DO Change": 0,
"DO0.status.Pulse Output Continue": 0,
"DO0.status.Signal Logic": 0,
"Device.BatteryLevel": 82,
"Device.PowerSrc": 3,
"Device.Time": 1684181570,
"RtuRegister0-0.Data": 25.19,
"RtuRegister0-0.Status": 0,
"RtuRegister0-1.Data": 26.56,
"RtuRegister0-1.Status": 0,
"RtuRegister0-2.Data": 4.64,
"RtuRegister0-2.Status": 0,
"SequenceNumber": 89,
"SourceAddress": null,
"TotalLength": 73
}
6 - JEDI を開いて、「Settings」に移動してから、「Data Collectors」を選択します。「Add Collector」をクリックして、新しいデータコレクタを追加します。
7 - 新しいデータコレクタを追加します。データコレクタ名を入力します。Type(タイプ)に「Custom Plug-in」を選択します。Plug-in Executable(プラグイン実行可能)に 「dcollector.bin」を選択します。Plug-in Options(プラグインオプション)にdconfig.ymlファイルの場所を追加します。「Run As Background Process and Monitor」を選択します。「VALIDATE PLUG IN」をクリックしてから、「SAVE」を選択して設定を保存します。
LoRaWAN WISE-4610 / RS-485温湿度センサのデータをJEDI Proに表示
JEDIで「Data Dashboard」に移動し、WISE-4610/RS-485温湿度センサの新しいチャートを作成します。ダッシュボードの例を以下に示します。
まとめ
AdvantechのWISE-4610P-NAとS617T I/Oモジュールは、LoRaWAN経由でデジタル/アナログ信号とRS-485デバイスのセンシングと制御のためのマルチI/Oデータ機能を提供します。RS-485/Modbus通信をサポートすることで、多種多様なセンサや制御機器をWISE-4610と接続することができます。The Things StackのLoRaWANネットワークサーバでデータを利用できるようにすると、MQTTインテグレーションを使用してデータを視覚化し、処理できるようになります。MachinechatのJEDI Proにカスタムデータコレクタをセットアップすると、WISE4610センサデータにアクセスして可視化と処理が実行できるようになります。
参考資料
- Digi-Key TechForum - Advantechの産業用LoRaWAN I/OモジュールWISE-4610入門
- Digi-Key TechForum - Getting Started with machinechat’s JEDI One IoT Platform
- Advantech - WISE-4610 product page
- Advantech - WISE-S617T product page
- Advantech - WISE-4610 User Manual
- Advantech - WISE-4610 Startup Manual
- Advantech - IAG_FAQ WISE-2000 How to receive LoRa end node data payload and parse data on TTN_20200312.pdf
- Advantech - WISE-4610 FAQ
- Seeed - Product Model: S-TH-01, RS485-Industrial-grade air temperature and humidity sensor
- Machinechat - Building a private, edge-based LoRaWAN IoT sensor network
- The Things Network - The Things Stack documentation
https://support.machinechat.io/hc/en-us/articles/4413766942615-Building-a-private-edge-based-LoRaWAN-IoT-sensor-network