Skip to main content

Grove - 水位センサー

note

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

pir

Grove 水位センサーは非常に高精度なセンサーで、水位検知アプリケーションに役立ちます。このセンサーは完全に防水で、容量性パッドを使用して最大10cmまでの水位を検知します。

モジュールのPCB上に容量性パッドを使用し、PCBにコンフォーマルコーティングを施すことで、湿気、ほこり、化学物質、高温からセンサーを保護しています。この技術により、簡単に高精度(±5mmの精度)の水位測定が可能になると考えています。

pir

特徴

  • 簡単に使用可能(Groveコネクタを使用し、はんだ付け不要)
  • 容量性検知に基づく
  • 防水
  • コンフォーマルコーティング
  • 耐腐食性
  • 最大10cmの水位を検知
  • I2Cインターフェース

仕様

パラメータ
入力電圧3.3V / 5V
測定精度±5mm
動作温度範囲-40°C ~ 105°C
I2Cアドレス0x78 および 0x77
インターフェースI2C
寸法20mm x 133mm

ハードウェア概要

対応プラットフォーム

ArduinoRaspberry Pi

pir

pir

はじめに

Arduinoで遊ぶ

必要な材料

Seeeduino V4.2Base ShieldGrove - 水位センサー

pir

pir

pir

今すぐ購入今すぐ購入今すぐ購入

さらに、Seeeduino Lotus M0+を検討することもできます。これはSeeeduino V4.2とBase Shieldの組み合わせに相当します。

ハードウェア接続

  • ステップ 1. Grove - 水位センサーをGrove - Base ShieldのI2Cポートに接続します。

  • ステップ 2. Grove - Base ShieldをSeeeduinoに接続します。

  • ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。

pir

ソフトウェア

note

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モジュールを組み合わせた簡単な水位検出アプリケーションを提供します。完全なコードはこちらをご覧ください。

pir

回路図オンラインビューア

リソース

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

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

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

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

Loading Comments...