Saltar al contenido principal

Grove - Sensor de humedad

Este sensor de humedad puede utilizarse para detectar la humedad del suelo o determinar si hay agua alrededor del sensor, permitiendo que la planta de tu jardín pueda pedir ayuda humana cuando tenga sed. Este sensor es muy fácil de usar, simplemente puedes insertarlo en el suelo y leer los datos. Con este sensor, puedes hacer un pequeño proyecto que permita a la planta enviarte un mensaje como "Tengo sed ahora, por favor dame un poco de agua".

Versión

Versión del productoCambiosFecha de lanzamiento
Grove - Moisture Sensor V1.4InicialJunio de 2014

Actualizable a sensores industriales

Con el controlador S2110 y el registrador de datos S2100 de SenseCAP, puedes convertir fácilmente el Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con la creación de prototipos, sino que también te ofrece la posibilidad de ampliar tu proyecto con la serie SenseCAP de robustos sensores industriales.

Los sensores industriales de la serie SenseCAP S210x proporcionan una experiencia lista para usar para la monitorización ambiental. Consulta el sensor inalámbrico de humedad del suelo, temperatura y EC S2105, con mayor rendimiento y robustez para la monitorización del estado del suelo. La serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad de luz, CO2, EC y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.

Sensor industrial SenseCAP
S2105 Humedad del suelo & Temp & EC

Características

  • Sensor de humedad del suelo basado en la medición de la resistividad del suelo
  • Fácil de usar
  • Módulo Grove de 2,0 cm x 6,0 cm
tip

Para más detalles sobre los módulos Grove, consulta Grove System

Especificación

ElementoCondiciónMínTípicoMáxUnidad
Voltaje-3.3-5V
Corriente-0-35mA
Valor de salidaSensor en suelo seco, Sensor en suelo húmedo, Sensor en agua0, 300, 700,-300, 700, 950-

Plataformas compatibles

ArduinoRaspberry Pi
precaución

Las plataformas mencionadas arriba como compatibles son una indicación de la compatibilidad teórica o a nivel de software del módulo. En la mayoría de los casos solo proporcionamos bibliotecas de software o ejemplos de código para la plataforma Arduino. No es posible proporcionar bibliotecas de software o código de demostración para todas las posibles plataformas de MCU. Por lo tanto, los usuarios tienen que escribir sus propias bibliotecas de software.

Ideas de aplicación

  • Jardinería botánica
  • Detección de humedad
  • Medición de consistencia

Primeros pasos

nota

Si esta es la primera vez que trabajas con Arduino, te recomendamos encarecidamente que consultes Getting Started with Arduino antes de empezar.

Jugar con PlatformIO

Hardware

  • Paso 1. Prepara los siguientes elementos:
XIAO ESP32 C3Seeed Studio Grove Base for XIAOGrove - Soil Moisture Sensor
Consigue uno ahoraConsigue uno ahoraConsigue uno ahora
  • Paso 2. Conecta el Grove-Moisture Sensor al puerto A0 de Seeed Studio Grove Base for XIAO.
  • Paso 3. Inserta XIAO en Seeed Studio Grove Base for XIAO.
  • Paso 4. Conecta XIAO al PC mediante un cable USB.

Software

  • Paso 1. Copia el código en PlatformIO
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);
}
  • Paso 2. Veremos la humedad mostrada en el terminal como se indica a continuación.
Moisture = 0
Moisture = 31
Moisture = 48
Moisture = 139
Moisture = 155
Moisture = 124
Moisture = 236
Moisture = 218
Moisture = 215
Moisture = 221

Puedes encontrar algunas demostraciones prácticas o artísticas en la sección "Wiki & Learn" de la página de detalles del producto.

Jugar con Arduino

Hardware

  • Paso 1. Prepara los siguientes elementos:
Seeeduino V4.2Base ShieldGrove-Moisture Sensor
Consigue uno ahoraConsigue uno ahoraConsigue uno ahora
  • Paso 2. Conecta el Grove-Moisture Sensor al puerto A0 del Grove-Base Shield.
  • Paso 3. Inserta el Grove - Base Shield en Seeeduino.
  • Paso 4. Conecta Seeeduino al PC mediante un cable USB.
nota

Si no tenemos Grove Base Shield, también podemos conectar directamente el Grove-Moisture Sensor a Seeeduino como se muestra a continuación.

SeeeduinoGrove-Moisture Sensor
5VRojo
GNDNegro
No conectadoBlanco
A0Amarillo

Software

  • Paso 1. Copia el código en el Arduino IDE y súbelo. Si no sabes cómo subir el código, consulta 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);
}
  • Paso 2. Veremos la humedad mostrada en el terminal como se indica a continuación.
Moisture = 0
Moisture = 31
Moisture = 48
Moisture = 139
Moisture = 155
Moisture = 124
Moisture = 236
Moisture = 218
Moisture = 215
Moisture = 221

Jugar con Codecraft

Hardware

Paso 1. Conecta un Grove - Moisture Sensor al puerto A0 de un Base Shield.

Paso 2. Inserta el Base Shield en tu Seeeduino/Arduino.

Paso 3. Conecta Seeeduino/Arduino a tu PC mediante un cable USB.

Software

Paso 1. Abre Codecraft, añade compatibilidad con Arduino y arrastra un procedimiento principal al área de trabajo.

nota

Si es la primera vez que utilizas Codecraft, consulta también la Guide for Codecraft using Arduino.

Paso 2. Arrastra los bloques como en la imagen de abajo o abre el archivo cdc que se puede descargar al final de esta página.

Sube el programa a tu Arduino/Seeeduino.

tip

Cuando el código termine de cargarse, verás el valor de humedad mostrado en el Monitor Serie.

Jugar con Raspberry Pi (con Grove Base Hat para Raspberry Pi)

Hardware

  • Paso 1. Elementos utilizados en este proyecto:
Raspberry piGrove Base Hat for RasPiGrove - Moisture Sensor
Consigue uno ahoraConsigue uno ahoraConsigue uno ahora
  • Paso 2. Conecta el Grove Base Hat a la Raspberry Pi.
  • Paso 3. Conecta el Grove - Moisture Sensor al puerto A0 del Base Hat.
  • Paso 4. Conecta la Raspberry Pi al PC mediante un cable USB.

Software

  • Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
  • Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Paso 3. Ejecuta el siguiente comando para ejecutar el código.
cd grove.py/grove
python grove_moisture_sensor.py 0

A continuación se muestra el 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()
tip

Si todo va bien, podrás ver el siguiente 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

Puedes usar este sensor para detectar la calidad del aire. Pulsa ++ctrl+c++ para salir.

nota

Puede que hayas notado que para el puerto analógico, el número de pin serigrafiado es algo como A1, A0, sin embargo en el comando usamos el parámetro 0 y 1, igual que para el puerto digital. Así que asegúrate de conectar el módulo en el puerto correcto, de lo contrario, puede haber conflictos de pines.

Jugar con Raspberry Pi (con GrovePi_Plus)

Hardware

  • Paso 1. Prepara los siguientes elementos:
Raspberry piGrovePi_PlusGrove-Moisture Sensor
Consigue uno ahoraConsigue uno ahoraConsigue uno ahora
  • Paso 2. Conecta el GrovePi_Plus a la Raspberry.
  • Paso 3. Conecta el Grove-Moisture Sensor al puerto A0 de GrovePi_Plus.
  • Paso 4. Conecta la Raspberry al PC mediante un cable USB.

Software

  • Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
  • Paso 2. Haz git clone del repositorio de Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git

  • Paso 3. Ejecuta los siguientes comandos para usar el Grove-Moisture Sensor para medir la humedad.
cd ~/GrovePi/Software/Python
python grove_moisture_sensor.py

Aquí está el 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")
  • Paso 4. Veremos la humedad mostrada en la terminal como se indica a continuación.
pi@raspberrypi:~/GrovePi/Software/Python $ python grove_moisture_sensor.py
0
90
130
150
160
218
238

Jugar con TI LaunchPad

Hardware

El siguiente sketch demuestra una aplicación sencilla de detección de la humedad en el suelo. Con esto, puedes saber si una planta necesita agua o no observando los resultados que el sensor entrega.

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);
}

Preguntas frecuentes

P1: ¿Qué significa la salida? ¿Voltaje o recuentos?

R1: La salida son valores de voltaje. Al usar analogRead(), 5V se dividirán entre 1023. Así que el valor de salida = Vout * 1023/5. Cuanto mayor sea el voltaje de salida, mayor será la humedad.

Visor de esquemáticos en línea

Recursos

Proyectos

Sistema de monitoreo de plantas usando AWS IoT: Si planeas irte de vacaciones, aquí tienes un gran proyecto para rastrear la temperatura y la humedad del suelo de tu planta usando dweet.io y AWS IoT.

Soporte técnico y debate sobre el producto

¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...