Riega tus plantas con un aspersor inteligente casero usando PiFace y Ubidots
Una de las razones por las que tengo casi todos los cactus en casa es porque a menudo olvido regarlas. Por eso creé este proyecto para controlar una electroválvula a distancia y regar mis plantas desde cualquier lugar, simplemente usando mi teléfono.
Al final de este tutorial, deberías poder hacer algo como esto:
Materiales
- Raspberry Pi modelo B:

- Piface digital

- Válvula de agua de plástico – 3/4″ – 12 V nominal

- Cable flexible para 1A

- conector de barril de CC

- Adaptador de corriente conmutada regulada de 12 V CC y 1000 mA

- Acoplamiento roscado de PVC de 3/4”

- cinta de teflón

- Manguera

- Aspersor

Conexiones
Las conexiones eléctricas son bastante sencillas:
- En primer lugar, conecte su Piface a la Raspberry Pi sin enchufar ningún adaptador de corriente.
- Siga 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úrese de utilizar cinta de teflón en cada unión para evitar fugas de agua.
Configura tu cuenta Ubidots , variables y widgets
Si eres nuevo en Ubidots , crea una cuenta aquí .
- Vaya a la pestaña “Fuentes” y agregue una nueva fuente.

- Seleccione Raspberry Pi como su nueva fuente de datos y complete el formulario.

- Ahora haga clic en la nueva fuente “Mi Raspberry Pi”

- Agregue dos nuevas variables llamadas “valve” y “relay_state” y no olvide completar los campos nombre y unidad.

- Tome nota del id de su variable:

- Toma nota de tu clave API que se encuentra en “ Mi perfil -> Clave API ”.
- Ahora, creemos un nuevo widget para controlar la válvula de forma remota:

- Selecciona el widget "Interruptor" y asócialo a la variable "válvula". Este widget escribirá "1" o "0" en la variable "válvula", que sondearemos más adelante desde nuestra Raspberry Pi.

- Agregue otro widget llamado “indicador” y elija la variable Valve_State:

- Así es como se ve tu dashboard ahora:

Codificación
Antes de empezar a programar, ya deberías haber configurado tu Raspberry Pi con internet. Si no es así, consulta esta entrada del blog sobre cómo configurar el wifi . Ahora podemos continuar: inicia sesión en tu Raspberry Pi a través de una terminal y configura el módulo SPI para que se comunique con PiFace Digital:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Agregue un carácter "#" antes de la línea spi-bcm2708, luego presione Ctrl+X, presione Y y Enter. Esto habilita SPI desde el arranque. Ahora, instalemos y configuremos la biblioteca digital PiFace:
sudo apt-get update sudo apt-get install python3-pifacedigitalio python-pifacedigitalio
Reinicia tu Pi:
sudo reboot
¡Genial! Estamos listos para empezar a codificar nuestro proyecto. Crea un nuevo archivo llamado "valve.py" y pega el siguiente código:
sudo nano valvula.py
import pifacedigitalio #Biblioteca para pifacedigitalio #Biblioteca para retrasos desde ubidots import ApiClient #Biblioteca para Ubidots pifacedigital = pifacedigitalio.PiFaceDigital() #Declarar objeto piface ##Conectarse 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 de tu estado real except: print("cant connect") #Comprueba tu Apikey, el ID de la variable y la conexión a internet while(True): lastValue = valve.get_values(1) #Obtener el último valor de la válvula de Ubidots rele = pifacedigital.relays[0].value #Guardar el estado del relé valveState.save_value({'value':rele}) #Enviar el estado del relé a Ubidots for a in lastValue: print a['value'] if(a['value']): #Activar o desactivar el relé pifacedigital.output_pins[0].turn_on() else: pifacedigital.output_pins[0].turn_off()
Ejecute su programa:
$ sudo python valve.py
Concluyendo
En este ejemplo, pudimos controlar una electroválvula con Piface Digital. Activamos y desactivamos un actuador desde el dashboardUbidots , lo que debería permitir controlar prácticamente cualquier proceso físico, siempre que pueda controlarse mediante un relé.
También puedes usar Ubidots para medir datos de series temporales, como niveles de señal, generar alertas y controlar otros dispositivos. Te recomendamos consultar estos otros ejemplos:
¿Tienes más ideas para proyectos? Crea una cuenta Ubidots y hazlas realidad.