Grove - 水位センサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove 水位センサーは非常に高精度なセンサーで、水位検知アプリケーションに役立ちます。このセンサーは完全に防水で、容量性パッドを使用して最大10cmまでの水位を検知します。
モジュールのPCB上に容量性パッドを使用し、PCBにコンフォーマルコーティングを施すことで、湿気、ほこり、化学物質、高温からセンサーを保護しています。この技術により、簡単に高精度(±5mmの精度)の水位測定が可能になると考えています。
特徴
- 簡単に使用可能(Groveコネクタを使用し、はんだ付け不要)
- 容量性検知に基づく
- 防水
- コンフォーマルコーティング
- 耐腐食性
- 最大10cmの水位を検知
- I2Cインターフェース
仕様
パラメータ | 値 |
---|---|
入力電圧 | 3.3V / 5V |
測定精度 | ±5mm |
動作温度範囲 | -40°C ~ 105°C |
I2Cアドレス | 0x78 および 0x77 |
インターフェース | I2C |
寸法 | 20mm x 133mm |
ハードウェア概要
対応プラットフォーム
Arduino | Raspberry Pi |
---|---|
はじめに
Arduinoで遊ぶ
必要な材料
Seeeduino V4.2 | Base Shield | Grove - 水位センサー |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
さらに、Seeeduino Lotus M0+を検討することもできます。これはSeeeduino V4.2とBase Shieldの組み合わせに相当します。
ハードウェア接続
ステップ 1. Grove - 水位センサーをGrove - Base ShieldのI2Cポートに接続します。
ステップ 2. Grove - Base ShieldをSeeeduinoに接続します。
ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。
ソフトウェア
Arduinoを初めて使用する場合は、開始前にArduinoの使い方をご覧になることを強くお勧めします。
- ステップ 1. Arduino IDEを開き、新しいファイルを作成して、以下のコードを新しいファイルにコピーします。
#include <Wire.h>
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
unsigned char low_data[8] = {0};
unsigned char high_data[12] = {0};
#define NO_TOUCH 0xFE
#define THRESHOLD 100
#define ATTINY1_HIGH_ADDR 0x78
#define ATTINY2_LOW_ADDR 0x77
void getHigh12SectionValue(void)
{
memset(high_data, 0, sizeof(high_data));
Wire.requestFrom(ATTINY1_HIGH_ADDR, 12);
while (12 != Wire.available());
for (int i = 0; i < 12; i++) {
high_data[i] = Wire.read();
}
delay(10);
}
void getLow8SectionValue(void)
{
memset(low_data, 0, sizeof(low_data));
Wire.requestFrom(ATTINY2_LOW_ADDR, 8);
while (8 != Wire.available());
for (int i = 0; i < 8 ; i++) {
low_data[i] = Wire.read(); // 1バイトを文字として受信
}
delay(10);
}
void check()
{
int sensorvalue_min = 250;
int sensorvalue_max = 255;
int low_count = 0;
int high_count = 0;
while (1)
{
uint32_t touch_val = 0;
uint8_t trig_section = 0;
low_count = 0;
high_count = 0;
getLow8SectionValue();
getHigh12SectionValue();
Serial.println("低い8セクションの値 = ");
for (int i = 0; i < 8; i++)
{
Serial.print(low_data[i]);
Serial.print(".");
if (low_data[i] >= sensorvalue_min && low_data[i] <= sensorvalue_max)
{
low_count++;
}
if (low_count == 8)
{
Serial.print(" ");
Serial.print("PASS");
}
}
Serial.println(" ");
Serial.println(" ");
Serial.println("高い12セクションの値 = ");
for (int i = 0; i < 12; i++)
{
Serial.print(high_data[i]);
Serial.print(".");
if (high_data[i] >= sensorvalue_min && high_data[i] <= sensorvalue_max)
{
high_count++;
}
if (high_count == 12)
{
Serial.print(" ");
Serial.print("PASS");
}
}
Serial.println(" ");
Serial.println(" ");
for (int i = 0 ; i < 8; i++) {
if (low_data[i] > THRESHOLD) {
touch_val |= 1 << i;
}
}
for (int i = 0 ; i < 12; i++) {
if (high_data[i] > THRESHOLD) {
touch_val |= (uint32_t)1 << (8 + i);
}
}
while (touch_val & 0x01)
{
trig_section++;
touch_val >>= 1;
}
SERIAL.print("水位 = ");
SERIAL.print(trig_section * 5);
SERIAL.println("% ");
SERIAL.println(" ");
SERIAL.println("*********************************************************");
delay(1000);
}
}
void setup() {
SERIAL.begin(115200);
Wire.begin();
}
void loop()
{
check();
}
ステップ 3. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
ステップ 4. Arduino IDEのシリアルモニターを開くには、ツール->シリアルモニターをクリックします。または、
ctrl
+shift
+m
キーを同時に押します。ボーレートを115200に設定します。ステップ 5. センサーが水中にある場合、結果は以下のようになります:

FAQ
Q1# 有用なアプリケーションは?
A1: Grove - 水位センサーを使用してブザーとLEDモジュールを組み合わせた簡単な水位検出アプリケーションを提供します。完全なコードはこちらをご覧ください。
回路図オンラインビューア
リソース
技術サポートと製品ディスカッション
産業用センサーへのアップグレード可能
SenseCAP S2110コントローラーとS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
IP66ハウジング、Bluetooth設定、グローバルLoRaWAN®ネットワークとの互換性、内蔵19Ahバッテリー、そして強力なAPPサポートにより、SenseCAP S210xは産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新のSenseCAP S210xを試してみてください。