Una de las razones por las que tengo principalmente cactus en casa es porque a menudo olvido regar mis plantas. Por eso construí este proyecto para controlar una electroválvula de forma remota para regar mis plantas desde cualquier lugar usando solo mi teléfono.
Al final de este tutorial, deberías ser capaz de hacer algo como esto:
1. Materiales
Raspberry Pi modelo B:
Piface digital
Válvula de agua de plástico - 3/4" - 12V nominal
Cable flexible para 1A
Conector de barril DC
Adaptador de corriente regulado de 12 VDC 1000mA
Acoplamiento roscado de pvc 3/4 "
Cinta de teflón
Manguera
Aspersor
2. Conexiones
Las conexiones eléctricas son bastante fáciles:
Primero conecta tu piface a la Raspberry Pi sin enchufar ningún adaptador de corriente.
Sigue el diagrama a continuación. El cable blanco es GND y está conectado al terminal común en el relé, el rojo está conectado al NO (normalmente abierto).
En cuanto a las conexiones hidráulicas, asegúrate de usar cinta de teflón en cada unión para evitar que el agua se filtre.
3. Configura tu cuenta de Ubidots, variables y widgets
Si eres nuevo en Ubidots, crea una cuenta aquí.
Navega a la pestaña "Fuentes" y agrega una nueva fuente.
Selecciona Raspberry Pi como tu nueva fuente de datos y completa el formulario.
Ahora haz clic en la nueva fuente "Mi Raspberry Pi"
Agrega dos nuevas variables llamadas "valve" y "relay_state" y no olvides completar los campos de nombre y unidad.
Toma nota del ID de tu variable:
Toma nota de tu API Key que se encuentra en "Mi Perfil --> API Key".
Ahora, vamos a crear un nuevo widget para controlar la válvula de forma remota:
Elige el widget "Switch" y vincúlalo a la variable "valve". Este widget escribirá "1" o "0" en la variable "valve", que consultaremos más tarde desde nuestra Raspberry Pi.
Agrega otro widget llamado "indicator" y elige la variable Valve_State:
Así es como se ve tu panel ahora:
4. Programación
Antes de que podamos comenzar a programar, ya deberías haber configurado tu Raspberry Pi con Internet. Si no, revisa este artículo del blog sobre cómo configurar WiFi. Ahora podemos continuar, inicia sesión a través de un terminal en tu Raspberry Pi y configura el módulo SPI para comunicarte con el PiFace Digital:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Agrega un carácter "#" antes de la línea spi-bcm2708, luego presiona CTRL-X, escribe Y y Enter. Esto habilita SPI desde el arranque. Ahora instalemos y configuremos la biblioteca PiFace Digital:
sudo apt-get updatesudo apt-get install python3-pifacedigitalio python-pifacedigitalio
Reinicia tu Pi:
sudo reboot
¡Genial! Estamos listos para comenzar a programar nuestro proyecto. Crea un nuevo archivo llamado "valve.py" y pega el siguiente código en él:
sudo nano valve.py
import pifacedigitalio #Biblioteca para pifacedigitalio #Biblioteca para retrasosfrom ubidots import ApiClient #Biblioteca para Ubidots pifacedigital = pifacedigitalio.PiFaceDigital() #Declara el objeto piface ##Conectar a Ubidots try: api = ApiClient("1fc7a56bf4b539725ace7a3f4aa623e9e9620612") #No olvides poner tu propia Apikey valve = api.get_variable('53cd4cb07625425b70f5c21e') #Pon aquí el ID de tu válvula valveState = api.get_variable("53ce95547625420403d81468") #Pon aquí el ID del estado de tu relé except: print("no se puede conectar") #Verifica tu Apikey, ID de variable y conexión a Internet while(True): lastValue = valve.get_values(1) #Obtiene el último valor de la válvula de Ubidots rele = pifacedigital.relays[0].value #Guarda el estado del relé valveState.save_value({'value':rele}) #Envía el estado del relé a Ubidots for a in lastValue: print a['value'] if(a['value']): #Enciende o apaga el relé pifacedigital.output_pins[0].turn_on() else: pifacedigital.output_pins[0].turn_off()
ver rawValve.py alojado con ❤ por GitHub
Ejecuta tu programa:
$ sudo python valve.py
5. Conclusión
En este ejemplo pudimos controlar una electroválvula con PiFace Digital. Encendimos/apagamos un actuador desde el panel de control de Ubidots, lo que debería permitirte controlar casi cualquier proceso físico siempre que pueda ser controlado por un relé.
También puedes usar Ubidots para medir datos de series temporales como niveles de señal, hacer alertas y controlar otros dispositivos. Puede que quieras revisar estos otros ejemplos:
¿Tienes más ideas de proyectos? ¡Crea una cuenta en Ubidots y hazlas realidad!
Publicado originalmente en Ubidots Blog el 28 de julio de 2014.