Skip to main content
note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove Temp&Humi Sensor (SHT40)

このセクションでは、センサーの動作原理、Wio Terminal を使用してセンサーデータを取得する方法、そして Wio Terminal と Grove - Wio-E5 を使用してデータを送信する方法について詳しく説明します。

産業用センサーへのアップグレード可能

SenseCAP S2110コントローラーS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。

IP66の筐体、Bluetooth設定、世界的なLoRaWAN®ネットワークとの互換性、内蔵19Ahバッテリー、そして強力なアプリサポートにより、SenseCAP S210xは産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1の気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新のSenseCAP S210xを試してみてください。

SenseCAP 産業用センサー
S2100
データロガー
S2101
空気温度 & 湿度
S2102
S2103
空気温度 & 湿度 & CO2
S2104
土壌水分 & 温度
S2105
土壌水分 & 温度 & EC
S2110
LoRaWAN® コントローラー
S2120
8-in-1 気象ステーション

センサーの動作原理

SHT40の温度は熱電対方式を使用して測定されます。熱電対は異なる材料の2種類の金属線で構成されています。2本の線の一端を溶接して作業端を形成し、測定する温度に配置します。もう一端は自由端と呼ばれ、メインコントロールに接続して閉ループを形成します。作業端と自由端の温度が異なる場合、ループ内に熱電位が発生し、この電圧の変化が回路の変換を通じてSCMに送られ、機械が認識可能な信号に変換されます。

SHT40の湿度は、2つの導電性電極に堆積されたポリアミンまたは酢酸ポリマー膜(高度に分画された化合物)を使用して測定されます。この膜が水を吸収または失うと、2つの電極間の誘電率が変化し、それによりコンデンサ容量が変化します。この容量の変化は外部測定回路を使用して捕捉および変換され、最終的に出力上で簡単に識別可能な信号として表示されます。

Grove Temp&Humi Sensorの使用に関する詳細情報はこちらを参照してください。

必要な材料

Wio TerminalGrove - Wio-E5Grove Temp&Humi Sensor (SHT40)

事前準備

接続

このルーチンでは、Grove - Wio-E5を使用して近くのLoRa®ゲートウェイに接続する必要があります。右側のWio TerminalのGroveポートをソフトシリアルポートとして構成し、ATコマンドを受信します。以下の図に従って、左側にGrove Temp&Humi Sensorを接続します。

ソフトウェア準備

ステップ1. Arduinoソフトウェアをインストールします。

ステップ2. Arduinoアプリケーションを起動します。

ステップ3. Arduino IDEにWio Terminalを追加します。

Arduino IDEを開き、File > Preferencesをクリックし、以下のURLを追加のボードマネージャURLにコピーします:

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Tools > Board > Board Managerをクリックし、ボードマネージャでWio Terminalを検索します。

ステップ4. ボードとポートを選択します

Arduinoに対応するエントリをTools > Boardメニューで選択する必要があります。Wio Terminalを選択します。

Tools -> PortメニューからWio Terminalボードのシリアルデバイスを選択します。これは通常COM3以上(COM1およびCOM2は通常ハードウェアシリアルポートに予約されています)です。確認するには、Wio Terminalボードを切断してメニューを再度開き、消えるエントリがArduinoボードであるはずです。ボードを再接続してそのシリアルポートを選択します。

tip

Macユーザーの場合、/dev/cu.usbmodem141401のようなものになります。

スケッチをアップロードできない場合、主にArduino IDEがWio Terminalをブートローダーモードにすることができなかったためです。(MCUが停止しているか、プログラムがUSBを処理している場合)対策として、Wio Terminalを手動でブートローダーモードにする必要があります。

ステップ5. Grove - Wio-E5ライブラリをダウンロードします

Disk91_LoRaE5リポジトリにアクセスし、リポジトリ全体をローカルドライブにダウンロードします。

ステップ6. Arduino IDEにライブラリを追加します

次に、3軸デジタル加速度計ライブラリをArduino IDEにインストールします。Arduino IDEを開き、sketch -> Include Library -> Add .ZIP Libraryをクリックし、先ほどダウンロードしたDisk91_LoRaE5ファイルを選択します。

Grove Temp&Humi センサー (SHT40) の値を取得する

ステップ 1. Grove Temp&Humi センサーコードライブラリをダウンロード

arduino-i2c-sht4x リポジトリを訪問し、リポジトリ全体をローカルドライブにダウンロードしてください。

Sensirion Arduino Core Library リポジトリを訪問し、リポジトリ全体をローカルドライブにダウンロードしてください。

ステップ 2. ライブラリを Arduino IDE に追加

次に、Grove Temp&Humi センサーライブラリを Arduino IDE にインストールします。Arduino IDE を開き、スケッチ -> ライブラリをインクルード -> .ZIP形式のライブラリを追加 をクリックし、先ほどダウンロードした arduino-i2c-sht4x ファイルを選択してください。

ステップ 3. SHT40 から温度と湿度データを取得

このリポジトリでは、取得した温度と湿度データを確認できます。コード内では、measureHighPrecision() 関数を使用して温度と湿度の情報を取得します。このデータは正の値で、浮動小数点型です。

#include <Arduino.h>
#include <SensirionI2CSht4x.h>
#include <Wire.h>

SensirionI2CSht4x sht4x;

void setup() {

Serial.begin(115200);
while (!Serial) {
delay(100);
}

Wire.begin();

uint16_t error;
char errorMessage[256];

sht4x.begin(Wire);

uint32_t serialNumber;
error = sht4x.serialNumber(serialNumber);
if (error) {
Serial.print("Error trying to execute serialNumber(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("Serial Number: ");
Serial.println(serialNumber);
}
}

void loop() {
uint16_t error;
char errorMessage[256];

delay(1000);

float temperature;
float humidity;
error = sht4x.measureHighPrecision(temperature, humidity);
if (error) {
Serial.print("Error trying to execute measureHighPrecision(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("Temperature:");
Serial.print(temperature);
Serial.print("\t");
Serial.print("Humidity:");
Serial.println(humidity);
}
}

Arduino IDE のシリアルモニタを開き、ボーレートを 115200 に設定して結果を観察してください。

Grove - Wio-E5 を使用してデータを送信

前述の Grove - Wio-E5 のコードを組み合わせて、LoRa® ネットワークに接続します。AT コマンドを使用することで、Grove Temp&Humi センサーの値を LoRa® ネットワークに送信することが可能です。

前節のコードでは、温度と湿度の値は通常、2 桁の整数と小数点以下 2 桁の組み合わせであり、すべて正の浮動小数点数であることがわかります。

データ送信の制限により、送信側で浮動小数点数を整数に変換する必要があります。これにより、送信されるデータが整数であることを保証します。そのため、すべての温度と湿度の値を 100 倍します。

この方法により、AT コマンドを介して送信されるデータの内容、サイズ、形式を決定します。十分な大きさの配列を設定し、送信する必要のある文字列を配列に格納し、最後に send_sync() 関数を使用して配列を送信します。

上記のアイデアに基づく擬似コードは以下の通りです。

  ......
error = sht4x.measureHighPrecision(temperature, humidity);

int_temp = temperature*100;
int_humi = humidity*100;

static uint8_t data[4] = { 0x00 }; // センサーの値を格納するための data[] を使用

data_decord(int_temp, int_humi, data);

if ( lorae5.send_sync( // センサー値を送信
8, // LoRaWan ポート
data, // データ配列
sizeof(data), // データのサイズ
false, // ACK を期待しない
7, // スプレッドファクタ
14 // 送信出力 (dBm)
)
)
......

残りの作業として、begin() 関数を使用して Grove - Wio-E5 を初期化し、setup() 関数を使用して Grove - Wio-E5 のトリプレット情報を設定する必要があります。send_sync() 関数を使用してデータメッセージを送信する際、同時に LoRaWAN® に参加を試みます。一度成功すれば、データが送信され、信号強度やアドレスなどの情報が返されます。

完全なコード例は こちら にあります。

tip

この時点では、Helium/TTN の設定がまだ完了していないため、コードをアップロードして結果を確認することはお勧めしません。この段階でコードをアップロードすると、「Join failed」という結果が得られます。Connecting to Helium または Connecting to TTN の章を完了してから、このコードをアップロードして完全なデータ送信プロセスを完了することをお勧めします。

Grove Temp&Humi センサーの動作とデータ形式を体験し理解したら、次のステップである LoRaWAN® への参加に進んでください。

Helium セクション

pir

Helium の紹介

この章では、Helium コンソールの操作について説明し、Helium コンソールの第一印象を得ることを目的としています。

章にジャンプ >

pir

Helium への接続

このセクションでは、センサーのデータを正常にアップロードし、Helium に表示できるようにするための Helium の設定方法について説明します。

章にジャンプ >
TTN セクション

pir

TTN の紹介

この章では、TTN コンソールの操作について説明し、TTN コンソールの第一印象を得ることを目的としています。

章にジャンプ >

pir

TTN への接続

このセクションでは、センサーのデータを正常にアップロードし、TTN に表示できるようにするための TTN の設定方法について説明します。

章にジャンプ >

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。

声明

  • LoRa®マークは、Semtech Corporationまたはその子会社の商標です。
  • LoRaWAN®は、LoRa Alliance®からライセンスを受けて使用されているマークです。
Loading Comments...