Pular para o conteúdo principal

Grove - Sensor de Umidade

Este Sensor de Umidade pode ser usado para detectar a umidade do solo ou verificar se há água ao redor do sensor, permitindo que a planta no seu jardim possa pedir ajuda dos humanos quando estiver com sede. Este sensor é muito fácil de usar, você pode simplesmente inseri-lo no solo e ler os dados. Com este sensor, você pode fazer um pequeno projeto que permita à planta enviar uma mensagem para você como "Estou com sede agora, por favor me dê um pouco de água."

Versão

Versão do ProdutoMudançasData de Lançamento
Grove - Moisture Sensor V1.4InicialJunho de 2014

Atualizável para Sensores Industriais

Com o S2110 controller e o S2100 data logger da SenseCAP, você pode facilmente transformar o Grove em um sensor LoRaWAN®. A Seeed não só ajuda você com a prototipagem, mas também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.

Os sensores industriais da série SenseCAP S210x fornecem uma experiência pronta para uso para medições ambientais. Consulte o Sensor Sem Fio de Umidade do Solo, Temperatura e CE S2105, com maior desempenho e robustez para monitoramento das condições do solo. A série inclui sensores para umidade do solo, temperatura e umidade do ar, intensidade de luz, CO2, CE e uma estação meteorológica 8 em 1. Experimente o mais recente SenseCAP S210x para o seu próximo projeto industrial de sucesso.

Sensor Industrial SenseCAP
S2105 Soil Moisture & Temp & EC

Recursos

  • Sensor de umidade do solo baseado em medição de resistividade do solo
  • Fácil de usar
  • Módulo Grove de 2,0 cm X 6,0 cm
dica

Para mais detalhes sobre os módulos Grove, consulte o Grove System

Especificação

ItemCondiçãoMínTípicoMáxUnidade
Tensão-3.3-5V
Corrente-0-35mA
Valor de SaídaSensor em solo seco, Sensor em solo úmido, Sensor em água0, 300, 700,-300, 700, 950-

Plataformas Suportadas

ArduinoRaspberry Pi
cuidado

As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade de software ou teórica do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever sua própria biblioteca de software.

Ideias de Aplicação

  • Jardinagem Botânica
  • Detecção de Umidade
  • Medição de Consistência

Primeiros Passos

nota

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.

Brincar com Arduino

Hardware

  • Passo 1. Prepare os seguintes itens:
Seeeduino V4.2Base ShieldGrove-Moisture Sensor
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove-Moisture Sensor à porta A0 do Grove-Base Shield.
  • Passo 3. Conecte o Grove - Base Shield ao Seeeduino.
  • Passo 4. Conecte o Seeeduino ao PC por meio de um cabo USB.
nota

Se não tivermos o Grove Base Shield, também podemos conectar diretamente o Grove-Moisture Sensor ao Seeeduino como abaixo.

SeeeduinoGrove-Moisture Sensor
5VVermelho
GNDPreto
Not ConenctedBranco
A0Amarelo

Software

  • Passo 1. Copie o código para a Arduino IDE e faça o upload. Se você não sabe como fazer o upload do código, verifique how to upload code.
int sensorPin = A0;
int sensorValue = 0;

void setup() {
Serial.begin(9600);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
Serial.print("Moisture = " );
Serial.println(sensorValue);
delay(1000);
}
  • Passo 2. Veremos a umidade exibida no terminal como abaixo.
Moisture = 0
Moisture = 31
Moisture = 48
Moisture = 139
Moisture = 155
Moisture = 124
Moisture = 236
Moisture = 218
Moisture = 215
Moisture = 221

Brincar com Codecraft

Hardware

Passo 1. Conecte um Grove - Moisture Sensor à porta A0 de um Base Shield.

Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.

Passo 3. Conecte o Seeeduino/Arduino ao seu PC por meio de um cabo USB.

Software

Passo 1. Abra o Codecraft, adicione o suporte a Arduino e arraste um procedimento principal para a área de trabalho.

nota

Se esta é a sua primeira vez usando o Codecraft, consulte também o Guide for Codecraft using Arduino.

Passo 2. Arraste os blocos como na imagem abaixo ou abra o arquivo cdc que pode ser baixado no final desta página.

Envie o programa para o seu Arduino/Seeeduino.

dica

Quando o código terminar de carregar, você verá o valor de umidade exibido no Serial Monitor.

Brincar com Raspberry Pi (Com Grove Base Hat para Raspberry Pi)

Hardware

  • Passo 1. Itens usados neste projeto:
Raspberry piGrove Base Hat for RasPiGrove - Moisture Sensor
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove Base Hat ao Raspberry Pi.
  • Passo 3. Conecte o Grove - Moisture Sensor à porta A0 do Base Hat.
  • Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

Software

  • Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
  • Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Passo 3. Execute o comando abaixo para rodar o código.
cd grove.py/grove
python grove_moisture_sensor.py 0

A seguir está o código grove_moisture_sensor.py.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# The MIT License (MIT)
#
# Grove Base Hat for the Raspberry Pi, used to connect grove sensors.
# Copyright (C) 2018 Seeed Technology Co.,Ltd.
'''
This is the code for
- Grove - Moisture Sensor <https://www.seeedstudio.com/Grove-Moisture-Sensor-p-955.html>`_

Examples:

.. code-block:: python

import time
from grove.grove_moisture_sensor import GroveMoistureSensor

# connect to alalog pin 2(slot A2)
PIN = 2

sensor = GroveMoistureSensor(PIN)

print('Detecting moisture...')
while True:
m = sensor.moisture
if 0 <= m and m < 300:
result = 'Dry'
elif 300 <= m and m < 600:
result = 'Moist'
else:
result = 'Wet'
print('Moisture value: {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 class

Args:
pin(int): number of analog pin/channel the sensor connected.
'''
def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def moisture(self):
'''
Get the moisture strength value/voltage

Returns:
(int): voltage, in 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('Detecting moisture...')
while True:
m = sensor.moisture
if 0 <= m and m < 300:
result = 'Dry'
elif 300 <= m and m < 600:
result = 'Moist'
else:
result = 'Wet'
print('Moisture value: {0}, {1}'.format(m, result))
time.sleep(1)

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

Se tudo correr bem, você conseguirá ver o seguinte resultado:


pi@raspberrypi:~/grove.py/grove $ python grove_moisture_sensor.py 0
Detecting moisture...
Moisture value: 0, Dry
Moisture value: 1, Dry
Moisture value: 25, Dry
Moisture value: 3, Dry
Moisture value: 0, Dry
Moisture value: 0, Dry
Moisture value: 0, Dry
Moisture value: 0, Dry
Moisture value: 0, Dry
Moisture value: 1, Dry
^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


Você pode usar este sensor para detectar a qualidade do ar. Pressione ++ctrl+c++ para sair.

nota

Você pode ter notado que, para a porta analógica, o número do pino na serigrafia é algo como A1, A0, porém no comando usamos os parâmetros 0 e 1, exatamente como na porta digital. Portanto, certifique-se de conectar o módulo na porta correta, caso contrário, pode haver conflitos de pinos.

Brincar com Raspberry Pi (com GrovePi_Plus)

Hardware

  • Passo 1. Prepare os itens abaixo:
Raspberry piGrovePi_PlusGrove-Moisture Sensor
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o GrovePi_Plus ao Raspberry.
  • Passo 3. Conecte o Grove-Moisture Sensor à porta A0 do GrovePi_Plus.
  • Passo 4. Conecte o Raspberry ao PC através de um cabo USB.

Software

  • Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
  • Passo 2. Faça o clone (git clone) do repositório Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git

  • Passo 3. Execute os comandos abaixo para usar o Grove-Moisture Sensor para medir a umidade.
cd ~/GrovePi/Software/Python
python grove_moisture_sensor.py

Aqui está o código grove_moisture_sensor.py.

#  Here are suggested sensor values:
# Min Typ Max Condition
# 0 0 0 sensor in open air
# 0 20 300 sensor in dry soil
# 300 580 700 sensor in humid soil
# 700 940 950 sensor in water


import time
import grovepi

# Connect the Grove Moisture Sensor to analog port A0
# SIG,NC,VCC,GND
sensor = 0

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

except KeyboardInterrupt:
break
except IOError:
print ("Error")
  • Passo 4. Veremos a umidade exibida no terminal como abaixo.
pi@raspberrypi:~/GrovePi/Software/Python $ python grove_moisture_sensor.py
0
90
130
150
160
218
238

Brincar com TI LaunchPad

Hardware

O sketch a seguir demonstra uma aplicação simples de detecção de umidade no solo. Com isso, você pode saber se sua planta precisa de água ou não, observando o resultado da saída do sensor.

Software

/*
Moisture-Sensor
The following sketch demonstrates a simple application of sensing
the moisture of the soil. You can know whether a plant needs water
or not by observing the results that the sensor outputs.
The circuit:
* Moisture-Sensor attached to pin 24 (J6 plug on Grove Base BoosterPack)
* one side pin (either one) to ground
* the other side pin to +VCC
* LED anode (long leg) attached to RED_LED
* LED cathode (short leg) attached to ground
- NOTE:
This example code is in the public domain.
https://www.seeedstudio.com/wiki/Grove_-_Moisture_Sensor
*/
#include "TM1637.h"
/* Macro Define */
#define CLK 39 /* 4-digital display clock pin */
#define DIO 38 /* 4-digiral display data pin */
#define BLINK_LED RED_LED /* blink led */
#define MOISTURE_PIN 24 /* pin of moisture sensor */
#define THRESHOLD_VALUE 300 /* threshold for watering the flowers */
#define ON HIGH /* led on */
#define OFF LOW /* led off */
#define _handle_led(x) digitalWrite(BLINK_LED, x) /* handle led */

/* Global Varibles */
TM1637 tm1637(CLK, DIO); /* 4-digital display object */
int analog_value = 0; /* varible to store the value coming from rotary angle
sensor */
int8_t bits[4] = {0}; /* array to store the single bits of the value */
/* the setup() method runs once, when the sketch starts */
void setup() {
/* Initialize 4-digital display */
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);
/* declare the red_led pin as an OUTPUT */
pinMode(BLINK_LED, OUTPUT);
}
/* the loop() method runs over and over again */
void loop() {
analog_value = analogRead(MOISTURE_PIN); /* read the value from the sensor */
/* if the value is smaller than threshold, turn on led */
if(analog_value < THRESHOLD_VALUE) {
_handle_led(ON);
} else {
_handle_led(OFF);
}
memset(bits, 0, 4); /* reset array when we use it */
for(int i = 3; i >= 0; i--) {
/* get single bits of the analog value */
bits[i] = analog_value % 10;
analog_value = analog_value / 10;
tm1637.display(i, bits[i]); /* display by 4-digital display */
}
delay(200);
}

FAQs

P1: O que a saída significa? Tensão ou contagem?

R1: A saída são valores de tensão. Ao usar analogRead(), 5 V serão divididos por 1023. Portanto, o valor de saída = Vout * 1023/5. Quanto maior a tensão de saída, maior é a umidade.

Visualizador Online de Esquemático

Recursos

Projetos

Plant Monitoring System using AWS IoT: Se você está planejando tirar férias, aqui está um ótimo projeto para acompanhar a temperatura e a umidade do solo da sua planta usando dweet.io e AWS IoT.

Suporte Técnico e Discussão sobre Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...