Tutorial Raspberry Pi - GPIO y MQTT (Parte 2)

Consigue gratis tu cuenta

Crea una API REST con Node.js y MongoDB

En este curso vas a aprender a crear una API REST con Node.js y MongoDB, además de crear un entorno de desarrollo con Docker y Docker Compose.

Comenzar ahora

Vamos a continuar el anterior tutorial, Tutorial raspberry pi - gpio y mqtt (parte 1). Haremos uso de un Broker online para MQTT y os voy a contar una forma de enviar datos periódicos desde la raspberry.

El broker que vamos a usar es CloudMQTT.com, que tiene un plan gratuito limitado a 10 conexiones que puede ser suficiente para pequeños proyectos. Para usarlo solo tenemos que acceder a la pestaña "Plans" y hacer click en "Try now for free" completamos el formulario y ya tenemos nuestra cuenta.

cloudMQTT

Accedemos a "Control Panel" y configuramos una nueva instancia haciendo click en "Create", aparece un formulario le ponemos un nombre,  seleccionamos un centro de datos y usamos el plan gratuito "Cute Cat".

newInstance  

A continuación accedemos a los detalles de la instancia, aquí podemos ver datos sobre la conexión y gestionar los clientes que va a tener conectados.Creamos un usuario y contraseña para cada máquina, y en la parte de reglas le damos permisos de lectura y escritura a cada máquina  para el topic "GPIO", y ya está todo listo por parte del broker.

confusers  

Ahora solo es necesario ejecutar los comandos que usamos en el anterior tutorial pero cambiando el host y añadiendo otros parámetros como puerto de la conexión, usuario y contraseña creados anteriormente.

mosquitto_sub -h m20.cloudmqtt.com -p 15162 -t "GPIO" -u raspberry -P raspberry > /sys/class/gpio/gpio17/value
mosquitto_pub -h m20.cloudmqtt.com -p 15162 -t "GPIO" -u ubuntu -P ubuntu -m "1"

Para mandar datos de forma periódica, por ejemplo mandar el valor que tiene el archivo "value" de un pin, una solución sería crear un script como el siguiente:

#!/bin/bash
while true 
do 
cat /sys/class/gpio/gpio17/value |  mosquitto_pub -t "GPIO/valor" -l -h m20.cloudmqtt.com -p 15162 -u raspberry -P raspberry
sleep 1
done

Este script manda datos cada segundo, recuerda crear en CloudMQTT el topic "GPIO/valor" y darle permisos de escritura al usuario que usa la raspberry.

Estoy deseando ver vuestros proyectos usando MQTT, este protocolo permite ser usado desde muchos lenguajes de programación como Python, Java, C++, etc. También se puede usar un smartphone con Android, yo he probado la aplicación MyMQTT.

Y con termino, por ahora, mis tutoriales sobre MQTT.

IoT is coming...


¿Quieres seguir aprendiendo?