Cómo medir la presencia del agua mediante FIWOO

por | Jun 22, 2022 | FIWOO | 0 Comentarios

Hoy os traemos una entrada especial y muy enfocada al Do It Yourself. Se trata de cómo puede ayudar una plataforma como FIWOO a conectar todos los sensores que quieras para monitorizar tu hogar. Empezaremos creando un sistema para medir presencia de agua.

Los materiales que vamos a utilizar serán:

  • Un sensor de humedad resistivo (no capacitivo)
  • Una Raspberry Pi 4
  • Cables de alimentación y conexionado

Además, necesitaremos:

  • Una red WiFi
  • Un usuario en la plataforma FIWOO

¿Listos? ¡Vamos al lío!

Preparación de la Raspberry Pi

La Raspberry Pi será la que haga de concentrador o gateway de todos los sensores que queramos conectarle. Teníamos muchas alternativas para hacerlo, pero en este caso lo hemos hecho de manera cableada para una primera prueba de concepto.

Lo primero que haremos será configurar la Raspberry Pi para que se conecte a nuestra red WiFi y habilitarle el servidor SSH. No nos pararemos en esta entrada a detallar estos procedimientos, pero con una búsqueda rápida en Internet, podremos ver cómo se hace fácilmente.

Nos conectaremos a continuación a nuestra Raspberry por SSH, introduciendo el comando:

ssh pi@<RASPBERRY IP>

Podremos averiguar la IP de la raspberry accediendo al router. Una vez ingresemos la contraseña de nuestra raspberry (por defecto, la contraseña es «raspberry«), crearemos un nuevo directorio y crearemos un script en python.

No tendría sentido ponernos a programar este script sin ver cómo vamos a conectar nuestro hardware

Preparación del sensor

Como hemos comentado anteriormente, vamos a cablear el sensor de presencia de agua a la Raspberry Pi. Tendremos que conectar a los GPIO tanto la alimentación, como la tierra, como la salida digital. Recordemos que la Raspberry no admite entradas analógicas per se. Más adelante veremos cómo haciendo uso de un módulo de conversión analógico/digital, podremos medir no sólo la presencia de agua, sino el porcentaje de humedad presente.

La disposición del hardware será como la que se ve en las siguientes fotos:

Conectaremos la salida digital D0 al pin GPIO 21 de la raspberry. El cable rojo será cableado a la alimentación y el marrón a la tierra. Con esto, ya estaremos en disposición de programar nuestro script.

Preparación del script

Una vez cableado y teniendo acceso por SSH a la raspberry, crearemos un nuevo directorio, y accederemos a él, para finalmente crear un script en python. Además utilizaremos un editor de texto que no viene instalado por defecto (emacs). Este paso se puede omitir y cambiar el editor por otro como nano, o similar.

mkdir agua && cd agua
apt-get update && apt-get install -y emacs
emacs water.py

Ahora crearemos el script para ver cuándo hay presencia de agua. En función de si hay o no hay presencia de agua, mandaremos información a FIWOO con un valor a «1» o a «0». El código es el siguiente

#!/usr/bin/python                                                                                                                                                                
import RPi.GPIO as GPIO
import time
import requests
import json
import sys
import random

#GPIO SETUP                                                                                                                                                                      
channel = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN)

API_Key = 'insert api key here'
idashost = 'demo.fiwoo.eu'
ul20port = '7896'
Dev_ID = 'jardin_t1'

URL = "http://"+idashost+":"+ul20port+'/iot/d?k='+API_Key+'&i='+Dev_ID
def callback(channel):
    HEADERS = {'content-type': 'text/plain' ,  "fiware-service":"howtoservice", "fiware-servicepath":"/howto"}
    MedidaTrue='h|1'
    MedidaFalse = 'h|0'
    PAYLOAD = None
    if GPIO.input(channel):
        PAYLOAD = MedidaFalse
    else:
        PAYLOAD = MedidaTrue
    r = requests.post(URL, data=PAYLOAD, headers=HEADERS)
    print("* Status Code: "+str(r.status_code))
    print("* Response: ")
    print(r.text)
    time.sleep(1)

GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=1)  # let us know when the pin goes HIGH or LOW                                                                             
GPIO.add_event_callback(channel, callback)  # assign function to GPIO PIN, Run function on change                                                                                

# infinite loop                                                                                                                                                                  
while True:
        time.sleep(1)

Preparación de la plataforma

Por último, sólo tendremos que acceder a FIWOO y configurar nuestro dispositivo IoT y crear un dashboard.

En este primer video vemos cómo crear el dispositivo y el dashboard , para posteriormente crear un widget que represente la información:

Ya sólo nos queda crear el widget para que represente la información en tiempo real. Vamos a crear un widget de aguja que represente el valor de presencia del agua.

Creación de widget

Prueba final para medir presencia de agua

Ya tenemos nuestro sensor cableado, nuestro dashboard creado y con el widget configurado. Sólo falta ejecutar en la raspberry el script que hemos programado y que envía los datos a la plataforma.

Podemos ejecutarlo mediante la orden

python water.py

Finalmente, introduciremos el sensor en agua y lo sacaremos, y veremos cómo varían los datos en la plataforma.

Conclusiones

Hemos visto cómo conectarnos a FIWOO utilizando un sensor y una raspberry. Las posibilidades a partir de aquí son infinitas, ya que la Raspberry puede hacer de concentrador de toda la información, y ésta, podemos distribuirla visualmente en FIWOO para tener un control total de nuestra casa, o en cualquier ámbito de aplicación que se nos ocurra.

¡Estad atentos para próximos posts de IoT!

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Conoce conceptos clave de la era digital en nuestro HUB

 

 

Descarga nuestro ebook con todo lo que necesitas saber sobre IoT Industrial.

Suscríbete a nuestra newsletter

Recibe las últimas noticias sobre innovación y nuevas tecnologías y mantente al día de los avances más destacados

Cesión de datos

Calle Factores 2, 41015 Seville

Phone: +34 618 72 13 58

Email: info@secmotic.com

MENU

We are

We do

Blog

Contact