Back-end
Sitio: | Facultad de Ingeniería U.Na.M. |
Curso: | IC511 - Internet de las Cosas, Sensores y Redes |
Libro: | Back-end |
Imprimido por: | Invitado |
Día: | miércoles, 4 de diciembre de 2024, 23:32 |
1. Introducción
El gran poder de Docker reside en poder utilizar sin esfuerzo las imágenes creadas por los desarrolladores de las aplicaciones más populares. Una gran cantidad de ellas están agrupadas en el repositorio oficial de docker: docker-hub
2. Base de datos
MariaDB
2.1. Docker-compose
$ git clone https://github.com/GermanXander/docker_iot.git
# branch BEa
2.2. phpmyadmin
SQL
3. Cliente mqtt
Nuestro nodo remoto (esp32) nos envía información sobre temperatura y humedad, empaquetada en un JSON (JavaScript Object Notation). Esta información la publica en un broker mqtt bajo el tópico del identificador único del módulo esp32.
Nuestro cliente mqtt se suscribe a todos los tópicos para recibir información de todos los nodos. Luego desempaqueta el JSON y guarda la información en la base de datos. Todo esto utilizando librerías asincrónicas.
Cada registro de la base de datos está compuesto por un identificador único (auto incremental), una marca temporal, el id del nodo que envió la información, la temperatura y la humedad.
$ git clone https://github.com/GermanXander/docker_iot.git
# branch BEb
4. Broker mqtt
vamos a instalar nuestro propio servidor (broker) mqtt. En esta caso mosquitto
# branch BEc
Cuando ejecutamos por primera vez el servidor este solo acepta conexiones locales. Para permitir conexiones desde otras IP debemos editar el archivo de configuración. Por cuestiones facilidad y persistencia vamos a mapear el archivo de configuración a un directorio de nuestra rpi. Para ello seguimos los siguientes pasos:
- creamos un directorio "config" dentro de mosquitto
- con el contenedor mosquitto corriendo extraemos el archivo de configuración "plantilla"
~/docker $ docker cp mosquitto:/mosquitto/config/mosquitto.conf mosquitto/config/mosquitto.conf
- editar el archivo /mosquitto/config/mosquitto.conf y agregar las siguientes líneas
listener 1883 protocol mqtt allow_anonymous true
- editamos el archivo compose.yaml para mapear el directorio config
- volvemos a levantar el compose
~/docker $ docker compose up -d