SenseCAP データロガーを使用した LoRaWAN センサーの構築
概要
Grove センサーを使用してカスタムで費用対効果が高く、産業グレードの LoRaWAN センサーを構築し、SenseCAP データロガーを使って SenseCAP Cloud に接続することで、長距離無線データ伝送を可能にできます。

前提条件
ハードウェアの準備
このwikiには以下のリストのような製品が必要です:
このチュートリアルでは、Grove - 酸素センサー (MIX8410) を使用します。利用可能な他の Grove モジュールや独自の Grove モジュールをカスタマイズする方法については、こちらで確認し、詳細情報を参照してください。
SenseCAP S2110 Sensor Builder | Grove - 酸素センサー (MIX8410) | SenseCAP S2100 データロガー/DTU |
---|---|---|
![]() | ![]() | ![]() |
ソフトウェアの準備
お使いのOSに応じて、携帯電話にSenseCAP Mate Appをダウンロードしてインストールしてください。
SenseCAPプラットフォームを初めて使用する場合は、まずRegisterボタンをクリックしてアカウントを登録し、その後新しく作成したアカウントでログインしてください。

*印の付いたフィールドは必須項目で、*印のないフィールドは任意で入力できます。
LoRaWANネットワークカバレッジの確認
ここではLoRaWANネットワークを使用します。そのため、HeliumまたはTTN(The Things Network)のLoRaWANネットワークカバレッジ内にいるかどうかを確認する必要があります。
カバレッジがない場合は、Helium/TTNを搭載した任意のゲートウェイを使用してセンサーデータをクラウドに送信できます。
- Helium用:SenseCAP M1 LoRaWAN Indoor GatewayまたはSenseCAP M2 LoRaWAN Indoor Gatewayまたはその他のHelium対応ゲートウェイ
- TTN用:SenseCAP Outdoor LoRaWAN Gatewayまたはその他のTTN対応ゲートウェイ
はじめに
それでは始めましょう。
1. GroveセンサーをSenseCAP S2110 Sensor Builderに接続
- ステップ1: SenseCAP S2110 Sensor Builderの蓋の4本のネジを外し、蓋を開けます

- ステップ2: ねじ込みキャップを取り外します

- ステップ3: 付属のケーブルをキャップを通してSenseCAP S2110 Sensor Builder内に通します

- ステップ4: ケーブルの線を以下のようにねじ端子に接続します

- ステップ5: GroveセンサーをSenseCAP S2110 Sensor Builder内に配置し、ネジで固定します。
2つの穴があるGrove(例:Grove - Light Sensor v1.2)

3つの穴があるGrove(Grove Temperature and Barometer Sensor (BMP280))

-
ステップ6: GroveケーブルをGroveセンサーとSenseCAP S2110 Sensor Builderボード上のGroveコネクターに接続します
-
ステップ7: 蓋を閉じて元通りにネジで固定します

- ステップ8: ねじ込みキャップを締めて固定します

2. SenseCAP S2110 Sensor BuilderをSenseCAP Data Loggerに接続
- ステップ1: データロガーの3本のネジを外します

- ステップ2: 底面カバーを取り外し、ねじ端子にアクセスできるまで内部のPCBAを取り出します。基板全体を取り出す必要はありません

- ステップ3: 反時計回りの方向にねじを回してねじ込みキャップを取り外します

- ステップ4: 付属のケーブルをねじ込みキャップと底面カバーを通します

- ステップ5: ケーブルの線を以下のようにねじ端子に接続します

ケーブル内に5本の線があり、4本しか使用しないため、余分な線をテープで固定してねじ端子との偶発的な接触を避けることをお勧めします
- ステップ6: ハードウェアユニットをケース内に戻し、底面カバーで閉じてネジで固定します

- ステップ7: ねじ込みキャップを締めてケーブルを固定します

SenseCAP S2110 Sensor BuilderとData Loggerのすべての接続が完了すると、以下のようになります:

3. SenseCAP Mate AppでSenseCAP Cloudに接続
- ステップ1: SenseCAP Mate APPを開き、登録したメールアドレスとパスワードを入力してLoginボタンをクリックし、SenseCAPアカウントにサインインします

Server LocationはデフォルトのGlobalのままにしてください
a. Data Loggerファームウェアの更新
- ステップ: Configページで、S2100 Data Loggerを選択します

- ステップ2: SenseCAP Data Loggerの設定ボタンを3秒間長押しして、Bluetoothペアリングモードに入ります

Bluetoothペアリングモードに入ると、緑色のLEDが点滅し始めます

- ステップ 3: Update をクリックします

- ステップ 4: 位置情報サービスをオンにするよう促されます。GO TO をクリックして、お使いの携帯電話の位置情報サービスページを開きます

- ステップ 5: 位置情報サービスをオンにします。Android では以下のように表示されます

- ステップ 6: SenseCAP Mate アプリに戻り、Scan をクリックします

これで近くの SenseCAP データロガーのスキャンが開始されます
- ステップ 7: 発見されたデバイスをクリックします

- ステップ 8: アップデートが利用可能な場合は、Get Updates をクリックして最新バージョンに更新します。最新バージョンに更新した後、または The device is already running the latest firmware と表示された場合は、前のセットアップページに戻ります

b. データロガーと SenseCAP S2110 Sensor Builder 通信の設定
- ステップ 1: データロガーで再び Bluetooth ペアリングモード に入り、Setup をクリックします

- ステップ 2: 見つかったデバイスをクリックします

General の下に有用な情報が表示されたページが開きます

- ステップ 3: Setting ページに移動し、Basic Setting の下で、プラットフォームを SenseCAP for the Things Network または SenseCAP for Helium のいずれかから選択します

注意: 他のオプションも選択できますが、その場合は SenseCAP プラットフォームを使用できません
- ステップ 4: Frequency Plan、Uplink interval、Packet Policy を選択します

デフォルトの Packet Policy は 2C+1N で、以下の表でこれと他のオプションについて詳しく説明します
パラメータ | 説明 |
---|---|
2C+1N (デフォルト) | 2C+1N(2つの確認パケットと1つの非確認パケット)は最適な戦略で、このモードはパケット損失率を最小化できますが、デバイスは TTN で最も多くのデータパケットを消費するか、Helium ネットワークでデータクレジットを消費します。 |
1C | 1C(1つの確認)デバイスはサーバーから1つの受信確認パケットを取得した後にスリープします。 |
1N | 1N(1つの非確認)デバイスはパケットを送信してからスリープを開始し、サーバーがデータを受信したかどうかは関係ありません。 |
- ステップ 5: Sensor Setting の下で、以下のように入力します
パラメータ | 説明 |
---|---|
Protocol | RS485 Modbus RTU |
Baud Rate | センサーとの通信のボーレート。ここでは 9600 を選択します。 |
Modbus Address | センサーのスレーブアドレス。範囲は1から247です。ここでは 1 を入力します。 |
Power Type | 定期電源:データ収集前にセンサーに電源を供給し、データ収集後にセンサーの電源を切ります。このモードは消費電力を削減し、バッテリー寿命を延ばします。常時オン:センサーが常時電源供給を必要とする場合にこのモードを選択します。一般的に、外部12V DC電源が使用されます。バッテリーのみで電源供給する場合、長時間動作しない可能性があります。ここでは periodic power を選択します。 |
Power Voltage | センサーへの供給電圧を選択します。3V/5V/12Vをサポートします。ここでは 5V を選択します。 |
Sensor Warm-up Time | ウォームアップ時間は、電圧供給が適用されてからセンサーが最高精度または性能レベルに達するまでの時間を示します。これはセンサーによって異なります。Grove 酸素センサー(MIX8410) と CO2・温度・湿度センサー(SCD41) は 5秒 のウォームアップ時間が必要で、ボックス内に 5000 を入力する必要があります。現在 SenseCAP S2110 Sensor Builder でサポートされている他の Grove センサーは 0ms のウォームアップ時間のみ必要です。 |
Response Timeout | データロガーがセンサーにデータ読み取り要求を開始した後、応答のタイムアウト時間を待機します。この時間を超えた場合、コマンドが再送信されます。ここでは 1 を入力し、これは 100ms を意味します。 |
Startup Time | センサーが電源オンから Modbus との通信まで通信できるようになるまでの時間の長さ。ここでは 20 を入力し、これは 2000ms=2秒 を意味します |
入力済みの設定ページは以下のように表示されます

- ステップ 6: Measurement Number については、特定のセンサーに応じて以下の表を参照してください。
Grove センサー名 | 測定番号 |
---|---|
Grove - Light Sensor v1.2 | 1 |
Grove - Flame Sensor | 1 |
Grove - Oxygen Sensor (MIX8410) | 1 |
Grove - CO2 & Temperature & Humidity Sensor (SCD41) | 3 |
Grove - Sunlight sensor (SI1151) | 3 |
Grove Temperature and Barometer Sensor (BMP280) | 3 |
SenseCAP Data LoggerはRS485モードで0から10の測定値を収集できます。
- ステップ7: 測定数を指定した後、測定設定を入力する必要があります。ここではGrove - Light Sensor v1.2を選択します。このセンサーでは、光レベルという1つの測定値のみが必要です。測定数に1を選択し、測定設定をクリックします

- ステップ8: 測定設定の下で測定1をクリックします

Grove - CO2 & Temperature & Humidity Sensor (SCD41)を使用する場合、温度、湿度、CO2レベルという3つの測定値が必要です。測定数に3を選択し、測定設定をクリックします

また、ここでは3つの測定値を個別に設定する必要があります

- ステップ9: レジスタアドレスについては、下記の表を参照し、レジスタアドレスの10進値を入力してください
Groveセンサー名 | レジスタ名 | レジスタアドレス (16進数) | レジスタアドレス (10進数) |
---|---|---|---|
Grove - Oxygen Sensor (MIX8410) | 酸素 | 0x000E | 14 |
大気圧 | 0x0018 | 24 | |
高度 | 0x001A | 26 | |
Grove - Temperature Humidity Pressure Gas Sensor(BME680) | 温度 | 0x001C | 28 |
大気圧 | 0x001E | 30 | |
湿度 | 0x0020 | 32 | |
空気品質(VOC) | 0x0022 | 34 | |
Grove - Gas Sensor V2(Multichannel) | N02 | 0x0024 | 36 |
C2H50H | 0x0026 | 38 | |
VOC | 0x0028 | 40 | |
CO | 0x002A | 42 | |
Grove - UV Sensor | UV強度 | 0x002C | 44 |
Grove - Turbidity Sensor Meter V1.0 | 濁度 | 0x002E | 46 |
Grove - TDS Sensor | TDS | 0x0030 | 48 |
Grove - Ultrasonic Ranger | 距離 | 0x0032 | 50 |
Grove - Light Sensor v1.2 の入力されたレジスタアドレスは以下のようになります

Grove - CO2 & Temperature & Humidity Sensor (SCD41) の入力されたレジスタアドレスは以下のようになります



- ステップ 10: 残りの設定はすべてのGroveセンサーに共通で、以下のように入力します
Function Code | Modbusファンクションコード。ここでは03を選択します |
---|---|
Data Type | データタイプは、センサーから読み取るレジスタ数と、データが値をどのように解析するかを決定します。ここではSigned 32bit integer, 0xABCDを選択します。 |
Precision | 値の精度。測定値の小数点以下の桁数を選択できます。1を選択すると、小数点以下1桁が保持されます。ここでは**2, #.##**を選択します。 |
Y= Ax + B | "Y": Data Loggerがアップロードする値です。"x": 元の現在値です。Factory A: "x"の倍数でスケールアップまたはスケールダウンできるカスタム値。Factory B: "x"の値を増加または減少させるカスタム値。AとBの値を設定することで、希望する値を計算できます。生の値のみをアップロードする必要がある場合は、A=1、B=0に設定します。ここではFactory Aを0.001、Factory Bを0に設定します。 |
Write Strategy | この機能は一部の特殊なセンサーでのみ有効で、通常はデフォルトで無効になっています。レジスタの値を読み取った後、センサーに特別な指示を発行できます。例えば、レジスタ0を読み取った後にレジスタを空にする指示などです。None: デフォルトでオフ。After Read: レジスタを読み取った後、センサーにRS485コマンドを送信します。On New Data: 24時間ごとにセンサーにRS485コマンドを送信します。書き込み戦略は必要ないので、ここではNoneを選択します |
入力された測定設定ページの例を以下に示します

- ステップ 11: 確認をクリックして変更を保存すると、設定ページに戻ります

- ステップ 12: 送信をクリックして変更をデータロガーに送信します

c. センサーデータのローカルテストと表示
次に、SenseCAP S2110 Sensor Builderがセンサーデータを適切にデータロガーに送信しているかをテストする必要があります。
- ステップ 1: 一般に移動し、測定をクリックします

これでセンサー値が表示され、SenseCAP S2110 Sensor Builder上のSeeed Studio XIAO RP2040のLEDが点灯するのが確認できます。

以下は**Grove - 酸素センサー (MIX8410)**の場合です。これは空気中の酸素濃度が21.36%であることを示しています。

以下は**Grove 温度・気圧センサー (BMP280)**の場合です。これは気圧温度が30.55°C、大気圧が101401Pa、高度が53.08mであることを示しています。

d. 新しく作成したセンサーをSenseCAPプラットフォームに追加
- ステップ 1: アプリのホームページに戻ると、データロガーの赤色LEDが数秒間点滅し、続いて緑色LEDが短時間点滅して、LoRaWAN接続が成功し、データが送信されたことを示します。または、データロガーのボタンを一度押すことで、このデータ送信を強制的に実行することもできます。

SenseCAP S2110 Sensor Builder上のSeeed Studio XIAO RP2040のLEDも点灯するのが確認できます

次に、クラウド上でデータを表示するために、このセンサーをSenseCAPプラットフォームに追加する必要があります
- ステップ 2: デバイスページに移動し、+記号をクリックしてデバイスを追加をクリックします

- ステップ 3: データロガーに記載されているQRコードをスキャンします

- ステップ 4: 接続されたGroveセンサーに応じてデバイス名を入力し、次へをクリックします

- ステップ 5: デバイスの場所を入力し、確認をクリックします

4. SenseCAP Mate Appでのセンサーデータの可視化
これで、SenseCAP Mate App上でデータロガーがオンラインになっているのが確認できます

それをクリックしてセンサー値を表示します

以下は**Grove 温度・気圧センサー (BMP280)**の場合です。

5. (オプション) SenseCAPダッシュボードでのセンサーデータの可視化
SenseCAP Webダッシュボードを使用してセンサーデータを可視化することもできます。
- ステップ 1: sensecap.seeed.ccにアクセスし、以前にSenseCAP Mate App内で作成したSenseCAPアカウントにサインインします。


- ステップ 2: センサーノードをクリックし、以前にSenseCAP Mate App内で作成したセンサーを選択します。

- ステップ 3: データタブをクリックすると、接続されたGroveセンサーからのすべてのセンサーデータが表示されます。

技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しております。