Skip to main content

Grove - 湿度センサー

note

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

この湿度センサーは、土壌の湿度を検知したり、センサー周辺に水があるかどうかを判断するために使用できます。これにより、庭の植物が乾燥しているときに人間に助けを求めることが可能になります。このセンサーは非常に簡単に使用でき、土壌に挿入してデータを読み取るだけです。このセンサーを使用すれば、植物が「今、喉が渇いています。水をください」といったメッセージを送る小さなプロジェクトを作成することができます。

バージョン

製品バージョン変更内容リリース日
Grove - Moisture Sensor V1.4初期版2014年6月

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

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

SenseCAP S210xシリーズの産業用センサーは、環境センシングのための即時使用可能な体験を提供します。土壌状態のモニタリングにおいて、より高性能で堅牢なS2105ワイヤレス土壌湿度、温度、ECセンサーをご参照ください。このシリーズには、土壌湿度、空気温度と湿度、光強度、CO2、EC、そして8-in-1の気象ステーション用センサーが含まれています。次の成功する産業プロジェクトのために最新のSenseCAP S210xを試してみてください。

SenseCAP 産業用センサー
S2105 土壌湿度 & 温度 & EC

特徴

  • 土壌抵抗測定に基づく土壌湿度センサー
  • 簡単に使用可能
  • 2.0 cm x 6.0 cm の Grove モジュール
tip

Grove モジュールの詳細については、Grove System を参照してください。

仕様

項目条件最小典型値最大単位
電圧-3.3-5V
電流-0-35mA
出力値センサーが乾燥した土壌にある場合、センサーが湿った土壌にある場合、センサーが水中にある場合0, 300, 700,-300, 700, 950-

対応プラットフォーム

ArduinoRaspberry Pi
caution

上記で対応可能とされているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduino プラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能な MCU プラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。

応用アイデア

  • 植物園のガーデニング
  • 湿度センサー
  • 一貫性測定

はじめに

note

Arduino を初めて使用する場合は、開始前に Getting Started with Arduino を参照することを強くお勧めします。

Arduino で遊ぶ

ハードウェア

  • ステップ 1. 以下のものを準備してください:
Seeeduino V4.2Base ShieldGrove-Moisture Sensor
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove-Moisture Sensor を Grove-Base Shield のポート A0 に接続します。
  • ステップ 3. Grove - Base Shield を Seeeduino に差し込みます。
  • ステップ 4. USB ケーブルを使用して Seeeduino を PC に接続します。
note

Grove Base Shield がない場合は、以下のように Grove-Moisture Sensor を Seeeduino に直接接続することもできます。

SeeeduinoGrove-Moisture Sensor
5V
GND
接続なし
A0黄色

ソフトウェア

  • ステップ 1. 以下のコードを Arduino IDE にコピーしてアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法 を確認してください。
int sensorPin = A0;
int sensorValue = 0;

void setup() {
Serial.begin(9600);
}
void loop() {
// センサーから値を読み取る:
sensorValue = analogRead(sensorPin);
Serial.print("Moisture = " );
Serial.println(sensorValue);
delay(1000);
}
  • ステップ 2. 以下のようにターミナルに湿度が表示されます。
Moisture = 0
Moisture = 31
Moisture = 48
Moisture = 139
Moisture = 155
Moisture = 124
Moisture = 236
Moisture = 218
Moisture = 215
Moisture = 221

Codecraft で遊ぶ

ハードウェア

ステップ 1. Grove - Moisture Sensor を Base Shield のポート A0 に接続します。

ステップ 2. Base Shield を Seeeduino/Arduino に差し込みます。

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

ソフトウェア

ステップ 1. Codecraft を開き、Arduino サポートを追加し、メインプロシージャを作業エリアにドラッグします。

note

Codecraft を初めて使用する場合は、Arduino 用 Codecraft ガイド も参照してください。

ステップ 2. 以下の画像のようにブロックをドラッグするか、このページの最後でダウンロードできる cdc ファイルを開きます。

プログラムを Arduino/Seeeduino にアップロードします。

success

コードのアップロードが完了すると、シリアルモニターに湿度値が表示されます。

Raspberry Pi で遊ぶ (Raspberry Pi 用 Grove Base Hat を使用)

ハードウェア

  • ステップ 1. このプロジェクトで使用するもの:
Raspberry PiGrove Base Hat for RasPiGrove - Moisture Sensor
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove Base Hat を Raspberry Pi に接続します。
  • ステップ 3. Grove - Moisture Sensor を Base Hat の A0 ポートに接続します。
  • ステップ 4. USB ケーブルを使用して Raspberry Pi を PC に接続します。

ソフトウェア

  • ステップ 1. ソフトウェア設定に従って開発環境を構成します。
  • ステップ 2. grove.py ライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
  • ステップ 3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python grove_moisture_sensor.py 0

以下は grove_moisture_sensor.py のコードです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# MITライセンス (MIT)
#
# Raspberry Pi 用 Grove Base Hat、Grove センサーを接続するために使用。
# 著作権 (C) 2018 Seeed Technology Co.,Ltd.
'''
これは以下のためのコードです:
- Grove - Moisture Sensor <https://www.seeedstudio.com/Grove-Moisture-Sensor-p-955.html>`_

例:

.. code-block:: python

import time
from grove.grove_moisture_sensor import GroveMoistureSensor

# アナログピン 2 (スロット A2) に接続
PIN = 2

sensor = GroveMoistureSensor(PIN)

print('湿度を検出中...')
while True:
m = sensor.moisture
if 0 <= m and m < 300:
result = '乾燥'
elif 300 <= m and m < 600:
result = '湿潤'
else:
result = '湿った状態'
print('湿度値: {0}, {1}'.format(m, result))
time.sleep(1)
'''
import math
import sys
import time
from grove.adc import ADC

__all__ = ["GroveMoistureSensor"]

class GroveMoistureSensor:
'''
Grove Moisture Sensor クラス

引数:
pin(int): センサーが接続されているアナログピン/チャネルの番号。
'''
def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def moisture(self):
'''
湿度強度値/電圧を取得

戻り値:
(int): 電圧 (mV 単位)
'''
value = self.adc.read_voltage(self.channel)
return value

Grove = GroveMoistureSensor


def main():
from grove.helper import SlotHelper
sh = SlotHelper(SlotHelper.ADC)
pin = sh.argv2pin()

sensor = GroveMoistureSensor(pin)

print('湿度を検出中...')
while True:
m = sensor.moisture
if 0 <= m and m < 300:
result = '乾燥'
elif 300 <= m and m < 600:
result = '湿潤'
else:
result = '湿った状態'
print('湿度値: {0}, {1}'.format(m, result))
time.sleep(1)

if __name__ == '__main__':
main()
success

すべてが正常に動作すれば、以下の結果が表示されます:

pi@raspberrypi:~/grove.py/grove $ python grove_moisture_sensor.py 0
湿度を検出中...
湿度値: 0, 乾燥
湿度値: 1, 乾燥
湿度値: 25, 乾燥
湿度値: 3, 乾燥
湿度値: 0, 乾燥
湿度値: 0, 乾燥
湿度値: 0, 乾燥
湿度値: 0, 乾燥
湿度値: 0, 乾燥
湿度値: 1, 乾燥
^CTraceback (most recent call last):
File "grove_moisture_sensor.py", line 74, in <module>
main()
File "grove_moisture_sensor.py", line 71, in main
time.sleep(1)
KeyboardInterrupt

このセンサーを使用して空気の品質を検出することができます。++ctrl+c++ を押して終了します。

note

アナログポートの場合、シルクスクリーンのピン番号は A1, A0 のように表示されますが、コマンドでは 01 のようなパラメータを使用します。デジタルポートと同じです。そのため、モジュールを正しいポートに接続してください。そうしないとピンの競合が発生する可能性があります。

Raspberry Pi と GrovePi_Plus を使用する

ハードウェア

  • ステップ 1. 以下のものを準備します:
Raspberry PiGrovePi_PlusGrove-Moisture Sensor
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. GrovePi_Plus を Raspberry に接続します。
  • ステップ 3. Grove-Moisture Sensor を GrovePi_Plus の A0 ポートに接続します。
  • ステップ 4. USB ケーブルを使用して Raspberry を PC に接続します。

ソフトウェア

  • ステップ 1. ソフトウェア設定に従って開発環境を構成します。
  • ステップ 2. Github リポジトリをクローンします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
  • Step 3. 以下のコマンドを実行して、Grove-Moisture Sensor を使用して土壌の湿度を測定します。
cd ~/GrovePi/Software/Python
python grove_moisture_sensor.py

以下は grove_moisture_sensor.py のコードです。

#  以下は推奨されるセンサー値です:
# Min Typ Max 状態
# 0 0 0 センサーが空気中にある場合
# 0 20 300 センサーが乾燥した土壌にある場合
# 300 580 700 センサーが湿った土壌にある場合
# 700 940 950 センサーが水中にある場合

import time
import grovepi

# Grove Moisture Sensor をアナログポート A0 に接続
# SIG,NC,VCC,GND
sensor = 0

while True:
try:
print(grovepi.analogRead(sensor))
time.sleep(.5)

except KeyboardInterrupt:
break
except IOError:
print ("Error")
  • Step 4. 以下のように、ターミナルに湿度が表示されます。
pi@raspberrypi:~/GrovePi/Software/Python $ python grove_moisture_sensor.py
0
90
130
150
160
218
238

TI LaunchPad を使ってみる

ハードウェア

以下のスケッチは、土壌の湿度を測定する簡単なアプリケーションを示しています。このセンサーの出力結果を観察することで、植物が水を必要としているかどうかを知ることができます。

ソフトウェア

/*
Moisture-Sensor
以下のスケッチは、土壌の湿度を測定する簡単なアプリケーションを示しています。
センサーの出力結果を観察することで、植物が水を必要としているかどうかを知ることができます。
回路:
* Moisture-Sensor をピン 24 (Grove Base BoosterPack の J6 プラグ) に接続
* 一方のピン (どちらか) をグランドに接続
* もう一方のピンを +VCC に接続
* LED のアノード (長い脚) を RED_LED に接続
* LED のカソード (短い脚) をグランドに接続
- 注意:
このサンプルコードはパブリックドメインにあります。
https://www.seeedstudio.com/wiki/Grove_-_Moisture_Sensor
*/
#include "TM1637.h"
/* マクロ定義 */
#define CLK 39 /* 4桁ディスプレイのクロックピン */
#define DIO 38 /* 4桁ディスプレイのデータピン */
#define BLINK_LED RED_LED /* 点滅 LED */
#define MOISTURE_PIN 24 /* 湿度センサーのピン */
#define THRESHOLD_VALUE 300 /* 花に水をやるための閾値 */
#define ON HIGH /* LED 点灯 */
#define OFF LOW /* LED 消灯 */
#define _handle_led(x) digitalWrite(BLINK_LED, x) /* LED を操作 */

/* グローバル変数 */
TM1637 tm1637(CLK, DIO); /* 4桁ディスプレイオブジェクト */
int analog_value = 0; /* 回転角センサーからの値を格納する変数 */
int8_t bits[4] = {0}; /* 値の各桁を格納する配列 */
/* setup() メソッドはスケッチ開始時に一度だけ実行されます */
void setup() {
/* 4桁ディスプレイを初期化 */
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);
/* red_led ピンを OUTPUT として宣言 */
pinMode(BLINK_LED, OUTPUT);
}
/* loop() メソッドは繰り返し実行されます */
void loop() {
analog_value = analogRead(MOISTURE_PIN); /* センサーから値を読み取る */
/* 値が閾値より小さい場合、LED を点灯 */
if(analog_value < THRESHOLD_VALUE) {
_handle_led(ON);
} else {
_handle_led(OFF);
}
memset(bits, 0, 4); /* 使用する際に配列をリセット */
for(int i = 3; i >= 0; i--) {
/* アナログ値の各桁を取得 */
bits[i] = analog_value % 10;
analog_value = analog_value / 10;
tm1637.display(i, bits[i]); /* 4桁ディスプレイに表示 */
}
delay(200);
}

よくある質問 (FAQs)

Q1: 出力は何を意味しますか?電圧ですか、それともカウントですか?

A1: 出力は電圧値を意味します。analogRead() を使用すると、5V が 1023 に分割されます。そのため、出力値 = Vout * 1023/5 となります。出力電圧が高いほど、土壌の湿度が高いことを示します。

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

リソース

プロジェクト

AWS IoT を使用した植物モニタリングシステム: 休暇を計画している場合、dweet.io と AWS IoT を使用して植物の温度と土壌湿度を追跡するための素晴らしいプロジェクトです。

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

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

Loading Comments...