Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Riega tus plantas de forma remota utilizando un Raspberry Pi, PiFace y Ubidots
Riega tus plantas de forma remota utilizando un Raspberry Pi, PiFace y Ubidots

Riega tus plantas de forma remota utilizando un Raspberry Pi, PiFace y Ubidots.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 2 meses

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.

¿Ha quedado contestada tu pregunta?