Please enable JavaScript.
Coggle requires JavaScript to display documents.
Diseño e implementación de una arquitectura IoT basada en tecnologías…
Diseño e implementación de una arquitectura IoT
basada en tecnologías Open Source.
Parte 2
DESARROLLO Y FUNCIONAMIENTO
funcionalidades, librerías, e implementación de los distintos componentes.
Desarrollo y funcionalidad de las distintas partes
Arduino
En el escenario planteado se tienen 3 arduinos. Uno de ellos leerá de sensores y otros dos actuarán sobre dispositivos
Arduino nº 1
obtener los valores de temperatura y humedad en el ambiente que envía el sensor
DHT11 y también el valor que reporta un sensor de lluvia
Arduino nº 2
sobre 2 leds, los cuales representan la activación/desactivación de un aire
acondicionado.
Arduino nº 3
un motor de 4 fases que será el encargado de la automatización del cierre/apertura de una ventana
Librerias y sensores/módulos
RF24
RF24Network
. Conexión Arduino-NRF24L01+.
Sensor DHT11: Humedad y temperatura
Librería externa
dht11.read(humi, temp)
Cableado
Sensor FC-37: Sensor de lluvia
Motor 28BYJ-48: Motor de 4 fases.
Raspberry Pi 3
se han utilizado editores de texto propios del S.O, el cual es Raspbian, basado en Debian.
recibirá/enviará datos a/desde los sensores/nube. El código está escrito en C++, por lo que se ha compilado con gcc
lee datos del nodo Kafka y reporta los datos a este
Productor
llega por parte de los Arduinos a un string - enviar los datos a kafka
"T": "temperatura"
"H": "humedad",
"L": "lluvia"
Consumidor
Cuando la Raspberry lee del nodo Kafka, leerá todos los mensajes que pertenezcan al mismo topic
Librerías y módulos
Para poder trabajar con los pines de la Raspberry Pi, es necesario activar el modulo SPI
Cloud
Si la temperatura sobrepasa los 22 grados se enciende el led azul
Si la temperatura es menor que 22
grados se apagaría el led azul, y si llega a bajar más de los 19 grados, se encendería el led rojo
En el momento que supere los 19 grados el led rojo se apagará.
Si la media es mayor que cero significa que en algún momento ha empezado a llover y por tanto se activará el motor
Si la media es cero, significa que ha parado de llover y por tanto la ventana se abrirá.
Dweet
Node-dweetio
Este modulo de node.js permite la interacción con dweet.io
Telegram App
Los bots permiten hacer muchas cosas, pero en ete caso será útil para reportar el estado de los sensores de la red vía Telegram y actuar sobre ellos
Telegram-node-bot
Scripts en la cloud
kafka2dweet.js
Es el que permite que todos los reportes que la Raspberry hace a Kafka de los valores de sus sensores, sean enviados a dweet con el topic metrics para su posterior consumo por parte de Telegram.
telegram2dweet.js
Este fichero se encarga de crear un bot de Telegram el cual puede o leer de dweet o escribir en Kafka