Abe Estrada

Sensor de Humedad

Ahora toca el turno de hablar con las plantas. Continuando con la automatización de la casa controlada por varias Raspberry Pi que tengo conectadas a la red.

Compre un sensor de humedad para monitorear la humedad de una de las plantas que tengo, por ahora solo es un sensor y en una planta dentro de la casa.

La verdad no es el mejor, pero hace el trabajo bien. El sensor funciona enviando una serie de valores entre 0 y 950 que permite determinar la cantidad de humedad. Los valores entre 0 y 300 significa que la tierra está seca, entre 301 y 700 la tierra está húmeda, entre 701 y 950 el sensor detecta humedad o agua.

No encontré mucho material relacionado con este sensor en específico, es por eso que no me agradó, pero tengo un script funcionando basado en código en este Gist .

import RPi.GPIO as GPIO
import sys, os, time

PIN = 27

def RCtime (RCpin):
    reading = 0
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(RCpin, GPIO.OUT)
    GPIO.output(RCpin, GPIO.LOW)
    time.sleep(0.1)
    GPIO.setup(RCpin, GPIO.IN)

    while True:
        if (GPIO.input(RCpin) == GPIO.LOW):
            reading += 1
        if reading >= 950:
            return 0
        if (GPIO.input(RCpin) != GPIO.LOW):
            return 1

def main():
    while True:
        time.sleep(1)
        if RCtime(PIN) == 1:
            print "Sensor is wet"
            while True:
                time.sleep(1)
                if RCtime(PIN) == 0:
                    print "Sensor is dry"
                    break

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        GPIO.cleanup()
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

Al código anterior he agregado la parte de notificaciones que me llegan utilizando la API de Pushbullet para agregar agua cuando el sensor detecte que la tierra no esta humedad.