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.