SenseCAP ONE コンパクト気象センサーの使用開始
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
SenseCAP ONE コンパクト気象センサーの使用開始
事前準備
図解


設置
デバイスインターフェースの紹介

デバイスの底部には2つのコネクタがあります。
USB Type-C インターフェースは、通常のUSB Type-Cケーブルを使用してデバイスをコンピュータに接続し、設定を行うことができます。
主なデータインターフェースは、M12 8ピンケーブルに接続可能で、複数のバスプロトコルをサポートします。

USBケーブルで接続

M12ケーブル

デバイスはM12 8ピンコネクタを採用しており、異なる色のピンが電源供給とデータ通信を提供します(上図参照)。
RS-485を使用する場合、4本のワイヤーのみを接続することができ(加熱機能を使用しない場合)、残りのワイヤーは短絡を防ぐために個別にテープで巻くことができます。

ケーブルの穴とデバイスコネクタのピンを合わせてケーブルを差し込む必要があります。

ケーブルを差し込み、時計回りに締めてください。
注意:ケーブルを差し込む前に、ケーブルが底部に正しく向いていることを確認してください。そうでない場合、ピンがずれて通信が異常になる可能性があります。

加熱機能を使用する場合、別途24V(24V@1A推奨)の電源が必要です。灰色のワイヤー5を電源の負極に接続し、ピンクのワイヤー6を電源の正極に接続します。

デバイスの設置
設置方法は主に2つあり、スリーブを使用してポールに取り付ける方法と、フランジプレートを使用してプラットフォームに取り付ける方法があります。

スリーブのサイズは以下の通りです。

ポールの直径は75cm以下であることを推奨します。

フランジプレートの寸法は以下の通りです。

デバイスの動作モード
設置後、デバイスの電源を入れ、設定を行い、デバイスからデータを収集することができます。
デバイスには、設定モードと動作モードの2つの動作モードがあります。

USBポートを介したデバイスの設定
デバイスの底部には防水仕様の丸いカバーがあります。このカバーを反時計回りに回して取り外すと、USB Type-Cコネクタと設定ボタンが見えます。
USB Type-Cケーブルを使用してデバイスをコンピュータに接続します。コンピュータは自動的にデバイスドライバをインストールします。ドライバが正常にインストールされると、デバイスマネージャにシリアルポートが表示されます。

もしドライバが自動的にインストールされない場合は、以下のリンクから手動でダウンロードし、インストールしてください。(バージョンはCP210x Windows Driversです)

デバイスを設定する方法は2つあります:
SenseCAP ONE Configuration Tool
シリアルデバッグツール
SenseCAP ONE Configuration Tool
SenseCAP ONE Configuration Toolは、デバイスを設定するためのグラフィカルインターフェースを提供します。このツールは以下のGitHubリンクからダウンロードできます:
https://github.com/Seeed-Solution/SenseCAP-One-Configuration-Tool/releases
必要に応じて、Windows、macOS、またはLinux用のソフトウェアを選択してください。

次の画像は、SenseCAP ONE Configuration Toolのメインインターフェースを示しています。

ソフトウェアを開き、シリアルポートのプルダウンボックスをクリックして、デバイスの対応するシリアルポートを選択します。
ボーレートを9600に設定します。
接続をクリックします。接続が成功すると、右側のセンサーデータエリアに対応する測定値が表示されます。

設定をクリックしてデバイス設定に入り、「Read From Device」をクリックしてデバイスの情報を取得します。

- 通信プロトコルを選択します。ここでは例としてRS-485 Modbus RTUを選択します。

- Modbusアドレスを変更します:Modbusアドレスにアドレスを入力し、「Write to Device」をクリックします。

設定ページでは、デバイス名、データタイプ、データアップロード間隔を変更できます。変更後は、「Write to Device」をクリックして変更を反映させる必要があります。
アプリケーション設定では、ツールがセンサーデータを読み取るサイクルを設定できます。最小値は2秒で、曲線のドット範囲も設定可能です。

「Firmware Update」をクリックしてデバイスのファームウェアを更新します。ファームウェアを入手するには、販売または技術サポート([email protected])にお問い合わせください。

アップグレードページでは、メインボードファームウェアまたはドライバーボードファームウェアの更新を選択する必要があります。ローカルリポジトリからファームウェアファイルを選択し、「Update Now」をクリックします。更新プロセス中に予期しない電源切れが発生した場合、更新は実行されません。同じプロセスを再度実行してファームウェアを更新する必要があります。

シリアルデバッグツール
通信設定は以下の通りです:


シリアルデバッグアシスタントで、対応するCOMポートを選択します。
「Enterキーを押して新しい行を開始する」チェックボックスをオンにします。
ボーレートを9,600に設定します。
送信エリアで送信します。
シリアル受信ウィンドウで対応する0XAメッセージを受信した場合、設定は成功です。受信できない場合は、COMポートとボーレートを確認してください。
詳細なASCIIコマンドについては次の章をご確認ください。
通信プロトコル
デバイスは以下の通信プロトコルをサポートしています:

Modbus-RTUプロトコル
プロトコル通信パラメータ

Modbus-RTUプロトコルメッセージフォーマット
センサーデータはInput Registerに格納されており、読み取り専用です。
RS-485のデバイスアドレスと通信ボーレートはHolding Registerに格納されており、変更可能です。
各レジスタは16ビットで、2バイトを占有します。
Input Registerからメッセージを読み取る

Holding Registerを読み書きする

レジスタアドレス定義

Modbus-RTU読み取り
以下はModbus Pollツールの例です
(https://www.modbustools.com/download.htmlからダウンロード可能)。

接続パラメータの設定:ボーレート9600bps、データビット8、パリティなし、ストップビット1。

空気温度レジスタ0x0000から0x0001を読み取り、[Setup]をクリックしてRead/Write Definitionを選択します。

デフォルトのスレーブIDを設定します(5-in-1は10、7-in-1は20、9-in-1は38)、機能コード04、開始アドレス0、数量(5-in-1は6、7-in-1は28、9-in-1は32)。

コンピュータがセンサーデータを1秒ごとに読み取り、測定値(ライン0とライン1)が以下の画像に示されます。測定値を1000で割ると、実際の温度値が得られます。28300/1000 = 28.3°C。

右側では、送信および受信されたデータパッケージの生データを確認できます。
温度が正の場合:
ホストが送信:01 04 00 00 00 02 71 CB
スレーブが応答:01 04 04 00 00 6E 8C D6 41
温度データ0x00006E8C(16進数)が返され、10進数に変換すると28300となります。これを1000で割ることで対応する空気温度が得られます。空気温度 = 28300/1000 = 28.3°C。
温度が負の場合:
温度は補数計算を通じて取得する必要があります。
ホストが送信:01 04 00 00 00 02 71 CB
スレーブが応答:01 04 04 FF FF FC 18 D6 41
返された温度データFFFFFC18H(16進数補数)。
元のコードは - (FF FF FC 18-1 = FF FF FC 17) = 80 00 03 E8(16進数)= -1000(10進数)。
温度測定値は -1000/1000 = -1°C。
S500デコード:
レジスタ0x0000~0x0005を読み取ります。
送信コマンド:0A 04 00 00 00 06 71 73(チェックコード);
返答:26 04 40 00 00 70 80(温度)00 00 95 10(湿度)06 07 94 40(気圧)99 09(チェックコード);レジスタ0x0008~0x0013を読み取ります。送信コマンド:0A 04 00 08 00 0C 70 B6(チェックコード);
返答:0A 04 0C 00 00 00 00(最小風向)00 03 6E 84(最大風向)00 03 C8 C0(平均風向)00 00 00 00(最小風速)00 00 04 BC(最大風速)00 00 02 10(平均風速)BC 78(チェックコード)
S700デコード:
レジスタ0x0000~0x001Fおよび0x0030~0x0033を読み取ります。
送信コマンド:14 04 00 00 00 20 F3 06
返答:14 04 40 00 00 70 80(温度)00 00 95 10(湿度)06 07 94 40(気圧)00 00 00 00(光)00 00 00 00(最小風向)00 00 00 00(最大風向)00 00 00 00(平均風向)00 00 00 00(最小風速)00 00 00 00(最大風速)00 00 00 00(平均風速)00 00 00 00(累積降雨量)00 00 00 00(累積降雨時間)00 00 00 00(降雨強度)00 00 00 00(最大降雨強度)00 00 6A 7C(加熱温度)00 00 00 00(状態の傾き)99 09(チェックコード)
S900デコード:
レジスタ0x0000~0x001Fおよび0x0030~0x0033を読み取ります。
送信コマンド:26 04 00 00 00 20 F7 05
返答:26 04 40 00 00 70 80(温度)00 00 95 10(湿度)06 07 94 40(気圧)00 00 00 00(光)00 00 00 00(最小風向)00 00 00 00(最大風向)00 00 00 00(平均風向)00 00 00 00(最小風速)00 00 00 00(最大風速)00 00 00 00(平均風速)00 00 00 00(累積降雨量)00 00 00 00(累積降雨時間)00 00 00 00(降雨強度)00 00 00 00(最大降雨強度)00 00 6A 7C(加熱温度)00 00 00 00(状態の傾き)99 09(チェックコード)
PM2.5とPM10を個別に読み取る必要があります:
コマンド送信: 26 04 00 30 00 04 F7 11
返答: 26 04 08 00 00 90 88(PM2.5) 00 00 A4 10(PM10) 13 FA(チェックコード)
S1000デコード:
レジスタ0x0000~0x001Fおよび0x0030~0x0033を読み取ります。
コマンド送信: 2B 04 00 00 00 20 F6 18
返答: 2B 04 40 00 00 70 80 (温度) 00 00 95 10(湿度) 06 07 94 40(気圧) 00 00 00 00(光) 00 00 00 00(最小風向)
00 00 00 00(最大風向) 00 00 00 00(平均風向) 00 00 00 00 (最小風速) 00 00 00 00(最大風速) 00 00 00 00(平均風速) 00 00 00 00(累積降雨量) 00 00 00 00(累積降雨時間) 00 00 00 00(降雨強度) 00 00 00 00(最大降雨強度) 00 00 6A 7C(加熱温度) 00 00 00 00(状態のダンピング) 99 09(チェックコード)
PM2.5、PM10、およびCO2を個別に読み取る必要があります:
コマンド送信: 2B 04 00 30 00 04 F6 0C
返答: 2B 04 08 00 00 90 88(PM2.5) 00 00 A4 10(PM10) 13 FA(チェックコード)
レジスタ0x0040~0x0041を読み取ります。
コマンド送信: 2B 04 00 40 00 02 77 D5
返答: 2B 04 04 00 0C EC 98 (CO2) FD 2F (チェックコード)
ノイズセンサー
ノイズセンサーは独立したRS485センサーとして使用され、同じRS-485バス上の他の測定ユニットと並列で接続されるため、個別に読み取りおよび設定する必要があります。
仕様:

データ読み取りプロトコルと設定:
通信プロトコルは標準のRS485 Modbus-RTUプロトコルを採用しており、プロトコル通信パラメータは以下の通りです:

ノイズセンサーのデータをクエリする(アドレス: 40, 0x28):

クエリが成功すると、以下の情報が返されます:

実際のDB = レジスタ値 / 100
ノイズレジスタ値が0x128E=4750の場合、値は=4750/100=47.5dB
ASCIIプロトコル
コマンド定義

クエリコマンド形式
コマンドには2つの形式があります:
1. 「=」を含まないコマンドは基本的なクエリ方法を指します。

例: ?<CR><LF>
はデバイスのアドレスをクエリすることを示します
2. 「=」を含むコマンドは引数付きのクエリを指します。

例: 0XA;BD=?<CR><LF>
はデバイスのボーレートをクエリすることを示します
設定コマンド形式
特定のパラメータを設定します。例えば、ボーレートを設定する場合。

例: 0XA;BD=96<CR><LF>
はデバイスのボーレートを設定することを示します
コマンドリスト
以下を参照してください:
https://files.seeedstudio.com/products/101990784/SenseCAP%20ONE%20Compact%20Weather%20Sensor%20User%20Guide-v2.0.pdf
SDI-12
SDI-12通信は3本のワイヤを使用します。そのうち2本はセンサーの電源供給用で、もう1本はSDI-12信号用です。
SDI-12バス上の各センサーには一意のアドレスが割り当てられており、'0'、'1'~'9'、'A'~'Z'、'a'~'z'に設定できます。SenseCAP ONEのSDI-12アドレスはデフォルトで'0'に設定されています。このセンサーがサポートする命令は次章に示されており、各命令はSDI-12 v1.4に準拠しています。
センサーは3.6~16VのDC電源で動作します。センサーが電源オンになると、すぐにスリープモードに入り、データ収集装置からの指示を待ちます。SDI-12は9600bpsのボーレート、1スタートビット(高レベル)、7データビット(高0と低1、反転ロジック)、1偶数パリティビット、1ストップビットを使用します。
送信される各バイトのシーケンスは以下の図に示されています:

SDI-12コマンドと応答
以下を参照してください: https://files.seeedstudio.com/products/101990784/SenseCAP%20ONE%20Compact%20Weather%20Sensor%20User%20Guide-v2.0.pdf
SDI-12読み取り
SDI-12の配線

USB to SDI-12デバッガを使用してデバイスと通信する

通信設定:

緑のワイヤ(GNDデータ)と黄色のワイヤ(SDI-12データ)をUSB to SDI-12デバッガに接続します。
赤のワイヤ(Vin+ 電源正極)と茶色のワイヤ(Vin- 電源負極)を12V電源に接続します。
シリアルポートデバッグアシスタントをダウンロードしてください: https://github.com/Neutree/COMTool、その後シリアルポートデバッグツールを開きます。
- 適切なポート番号を選択します。
- ボーレートをUSB to SDI-12デバッガのボーレートに設定します(SDI-12プロトコルのボーレートではないことに注意してください)。
- "CRLF"をチェックします。
- シリアルポートを開くをクリックします。
- デバイスアドレスクエリコマンド"?! "を送信します。応答として"0"が表示されれば、接続が正常であることを意味します。

測定開始
気温、湿度、気圧、光強度を読み取ります。
"測定開始コマンド 0M!"を送信すると、センサーは最初に"00024"と応答します。これは"0M!"コマンドが測定に2秒かかり、4つの測定値を返すことを意味します。2秒後、センサーは自身のアドレス"0"で応答し、測定が完了したことを示します。

その後、"測定値読み取りコマンド 0D0!"を送信して、この測定の4つの測定値を取得します。それらは、気温+27.01℃、湿度64.74%、気圧100720Pa、光強度10Luxです。

拡張測定コマンド0M1!を使用して、最小風向、最大風向、平均風向、最小風速、最大風速、平均風速を読み取ります。デバイスは"00056"と応答します。これは"0M1!"コマンドが測定に5秒かかり、6つの測定値を返すことを意味します。5秒後、デバイスは自身のアドレス"0"で応答し、測定が完了したことを示します。

その後、"測定値読み取りコマンド 0D0!"を送信して、この測定の6つの測定値を取得します。それらは、最小風向345.9度、最大風向347.5度、平均風向346.3度、最小風速2.8m/s、最大風速2.8m/s、平均風速2.8m/sです。

その後、"連続測定コマンド 0R2!"を送信すると、デバイスは4つの測定値を返します:累積降雨量1.2mm、累積降雨時間20秒、降雨強度1.2mm/h、最大降雨強度72.0mm/h。

エラーコード
Modbus エラーコード

ASCII エラーコード

SDI-12 エラーコード
