Grove - 水センサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
水センサーモジュールはGroveシステムの一部です。このセンサーは導電性を測定することで、センサーが乾燥しているか、湿っているか、完全に水に浸かっているかを示します。センサーのトレースには1 MΩの弱いプルアップ抵抗が組み込まれています。この抵抗は、センサーのトレース値を高く保ちますが、水滴がセンサーのトレースを接地されたトレースに短絡させると値が変化します。この回路はArduinoのデジタルI/Oピンで動作するだけでなく、アナログピンを使用して接地トレースとセンサートレース間の水による接触量を検出することもできます。
バージョン
製品バージョン | 変更点 | リリース日 |
---|---|---|
Grove-Water Sensor V1.1 | 初期バージョン | 2014年7月 |
特徴
- Grove互換インターフェース
- 低消費電力
- 2.0cm x 2.0cmのGroveモジュール
- 高感度
応用例
- 降雨検知
- 液体漏れ検知
- タンクのオーバーフロー検知
仕様
項目 | 最小値 | 標準値 | 最大値 | 単位 |
---|---|---|---|---|
動作電圧 | 4.75 | 5.0 | 5.25 | V |
電流 | <20 | mA | ||
動作温度 | 10 | - | 30 | ℃ |
動作湿度(結露なし) | 10 | - | 90 | % |
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)を参照してください。
対応プラットフォーム
Arduino | Raspberry Pi |
---|---|
上記で対応していると記載されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoを初めて使用する場合は、作業を開始する前に「Arduinoの使い方」を確認することを強くお勧めします。
Arduinoで遊ぶ
ハードウェア
モジュールをBasicボードの任意のデジタルピンに接続します。信号ピンの値を取得できます。裸の導電ワイヤに水がある場合、値はLOWになります。それ以外の場合はHIGHになります。
- ステップ1. 以下のものを準備してください:
Seeeduino V4.2 | Base Shield | Grove - Water Sensor |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
ステップ2. Grove-Base ShieldのD2ポートにWater Sensorを接続します。
ステップ3. Grove-Base ShieldをSeeeduinoに差し込みます。
ステップ4. USBケーブルを使用してSeeeduinoをPCに接続します。
Grove Base Shieldがない場合は、以下のようにGrove_Water_SensorをSeeeduinoに直接接続することもできます。
Seeeduino | Grove - Water Sensor |
---|---|
5V | 赤 |
GND | 黒 |
接続なし | 白 |
D2 | 黄色 |
ソフトウェア
- ステップ1. 以下のコードをArduino IDEにコピーしてアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
#define WATER_SENSOR 2
void setup()
{
Serial.begin (9600);
pinMode(WATER_SENSOR, INPUT);
}
void loop()
{
Serial.println(digitalRead(WATER_SENSOR));
delay(500);
}
- ステップ2. 以下のようにターミナルに出力が表示されます。
1
1
0
0
1
1
Codecraftで遊ぶ
ハードウェア
ステップ1. Grove - Water SensorをBase ShieldのD2ポートに接続します。
ステップ2. Base ShieldをSeeeduino/Arduinoに差し込みます。
ステップ3. USBケーブルを使用してSeeeduino/ArduinoをPCに接続します。
ソフトウェア
ステップ1. Codecraftを開き、Arduinoサポートを追加し、メインプロシージャを作業エリアにドラッグします。
Codecraftを初めて使用する場合は、[Arduinoを使用したCodecraftのガイド](https://wiki.seeedstudio.com/ja/Guide_for_Codecraft_using_Arduino/)も参照してください。
ステップ2. 以下の画像のようにブロックをドラッグするか、このページの最後でダウンロードできるcdcファイルを開きます。
Arduino/Seeeduinoにプログラムをアップロードします。
コードのアップロードが完了すると、Serial Monitorで水があるかどうかが確認できます。
Raspberry Piで遊ぶ (Raspberry Pi用Grove Base Hatを使用)
ハードウェア
- ステップ1. このプロジェクトで使用するもの:
Raspberry pi | Grove Base Hat for RasPi | Grove - Water Sensor |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. Grove Base Hat を Raspberry Pi に接続します。
- ステップ 3. Grove - Water Sensor を Base Hat の A0 ポートに接続します。
- ステップ 4. Raspberry Pi を USB ケーブルを介して PC に接続します。
ソフトウェア
- ステップ 1. Setting Software に従って開発環境を設定します。
- ステップ 2. grove.py ライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- ステップ 3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python grove_water_sensor.py 0
以下は grove_water_sensor.py のコードです。
import math
import sys
import time
from grove.adc import ADC
class GroveWaterSensor:
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def value(self):
return self.adc.read(self.channel)
Grove = GroveWaterSensor
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveWaterSensor(int(sys.argv[1]))
print('Detecting ...')
while True:
value = sensor.value
if sensor.value > 800:
print("{}, Detected Water.".format(value))
else:
print("{}, Dry.".format(value))
time.sleep(.1)
if __name__ == '__main__':
main()
すべてが正常に動作すれば、以下の結果が表示されます。
pi@raspberrypi:~/grove.py/grove $ python grove_water_sensor.py 0
Detecting ...
612, Dry.
749, Detected Water.
829, Dry.
357, Dry.
98, Dry.
352, Dry.
517, Dry.
718, Detected Water.
868, Detected Water.
581, Dry.
90, Dry.
326, Dry.
451, Dry.
666, Dry.
867, Detected Water.
684, Dry.
100, Dry.
^CTraceback (most recent call last):
File "grove_water_sensor.py", line 71, in <module>
main()
File "grove_water_sensor.py", line 62, in main
value = sensor.value
File "grove_water_sensor.py", line 48, in value
return self.adc.read(self.channel)
File "/usr/local/lib/python2.7/dist-packages/grove/adc.py", line 66, in read
return self.read_register(addr)
File "/usr/local/lib/python2.7/dist-packages/grove/adc.py", line 84, in read_register
return self.bus.read_word_data(self.address, n)
File "/home/pi/.local/lib/python2.7/site-packages/smbus2/smbus2.py", line 396, in read_word_data
ioctl(self.fd, I2C_SMBUS, msg)
KeyboardInterrupt
このセンサーを使用して水を検知することができます。終了するには ++ctrl+c++ を押してください。
アナログポートの場合、シルクスクリーンのピン番号は **A1, A0** のようになっていますが、コマンドでは **0** や **1** のパラメータを使用します。これはデジタルポートと同じです。そのため、モジュールを正しいポートに接続するようにしてください。そうしないとピンの競合が発生する可能性があります。
Raspberry Pi と GrovePi_Plus を使用する
ハードウェア
- ステップ 1. 以下のアイテムを準備します:
Raspberry pi | GrovePi_Plus | Grove - Water Sensor |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. GrovePi_Plus を Raspberry に接続します。
- ステップ 3. Grove-Water Sensor を GrovePi_Plus の D2 ポートに接続します。
- ステップ 4. Raspberry を USB ケーブルを介して PC に接続します。
ソフトウェア
- ステップ 1. Setting Software に従って開発環境を設定します。
- ステップ 2. デモのディレクトリに移動します:
cd yourpath/GrovePi/Software/Python/
- ステップ 3. コードを確認します:
nano grove_water_sensor.py
import time
import grovepi
# Grove Water Sensor をデジタルポート D2 に接続
# SIG,NC,VCC,GND
water_sensor = 2
grovepi.pinMode(water_sensor,"INPUT")
while True:
try:
print grovepi.digitalRead(water_sensor)
time.sleep(.5)
except IOError:
print "Error"
- ステップ 4. デモを実行します。
sudo python grove_water_sensor.py
- ステップ 5. 以下のようにターミナルに出力が表示されます。
1
1
0
0
1
回路図オンラインビューア
リソース
- [Eagle] Grove Water Sensor 回路図
- [Library] Grove Water Sensor のデモコード
- [Codecraft] CDC ファイル
プロジェクト
スマート作物:従来の農業に IoT を導入!: 自然との使命はそれを保護することです。IoT を活用した技術と監視方法を設計・実装することで、Helium を通じて自然を守ります。
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを用意しています。