IoT (Internet of THINGS) - Andreaguzmt/Comunicaciones GitHub Wiki

Descripción.

Para dar desarrollo a la guía número tres de sistema IoT se plantea un sistema agrícola, el cual es un cultivo cerrado herméticamente, este cuenta con mediciones de temperatura del ambiente, control de humedad tanto del suelo del cultivo, como del ambiente del sistema, y el control de luz que le inciden a ese durante el transcurso del día, el control de la variables se puede realizar directamente en el sistema con una LCD, o de forma remota con el acceso a Ubidots en donde las variables del sistema se encuentran en actualización constante, por otra parte el sistema también es capaz de interactuar con el usuario mediante un chat de mensajería, en este caso se utilizará la aplicación de telegram, desde donde el usuario puede acceder a las lecturas de las diferentes variables del sistema, este cultivo hermético cuenta con diversos sensores, este es capaz de controlar todas estas variables dentro del sistema. Por la parte de componentes electrónicos para el sensado de variables físicas, se tiene un sensor de DHT11 este en un componente el cual mide la temperatura y la humedad, así como un sensor de humedad de suelo YL-69 y para finalizar un sensor de luz, en este caso una fotorresistencia, el sistema está controlado mediante la tarjeta ESP32 la cual a su vez controla los actuadores de luz y riego, esta está conectada a wifi, para el control de las variables tanto en ubidots, como la conexión a la interacción del usuario.

Esquemático

Implementaron de Hardware

image

Para la correcta implementación del sistema se debe analizar que la cantidad de variables a sensar, la primera de ellas es la humedad de suelo donde se encuentran los distintos procesos de crecimiento de las plantas este se encuentra digitalizado en el pin 36 del microcontrolador, el siguiente es un sensor de temperatura ambiente DHT11, el cual se encuentra conectado en el pin 23, para este caso este sensor recibirá un tratamiento especial ya que su capacidad de medición, es de las variables de temperatura ambiente y humedad en un mismo momento, por tanto debe ser tratado, el sensor de luminosidad o fototransistor conectado al pin 22 este indica la cantidad lumínica en el sistema, esta se regula mediante un potenciómetro. Por último cuando el nivel del suelo se encuentre en un aspecto de sequía una motobomba sumergible interactúa hasta que el suelo se encuentre en condiciones óptimas.

implementación de sistema Global

image

Materiales

Elementos de implementación Hardware

  • Microcontrolador ESp32
  • Sensor YL-69
  • Sensor DHT11
  • Sensor Fotorresistor
  • Módulo relé
  • Bombilla
  • Motor DC

Implementos de implementaciones Software

  • IDE de Arduino
  • Plataforma Ubidots
  • Aplicación de mensajería Telegram.

Conceptos

Internet de las cosas

Este es un proceso que permite la comunicación de dispositivos o elementos electrónicos físicos, desde domótica, instrumentos de salud, dispositivos médicos, accesorios personales entre otras.

Este término hace referencia a todo lo que puede transmitir y enviar datos a través de redes inalámbricas, un ejemplo podría ser un termostato, el cual recibe la ubicación de un automóvil inteligente mientras conduce para ajustar la temperatura de casa antes de llegar a su hogar.

el internet de las cosas también está involucrado industrialmente pues las soluciones de loT para las empresas permiten la mejor de la ciberseguridad, entablando modelos comerciales más optimizados entre os clientes y servidores, uno de los retos es intervenir en el procesamiento de datos conocidos como BIG DATA al igual que la seguridad es demasiado importante por ello se debe tener precaución a la hora de diseñar estos sistemas

Protocolos de comunicación IoT

Para la implementación de IoT se trabajan diferentes protocolos de comunicación, tales como:

  • De acceso de red suponen la capa inferior la cual permite la conexión entre dos máquinas, en la cual entran redes wifi, Ethernet, 3G, 5G entre otras.
  • De transmisión: utilizado para codificar la información que es enviada a través de las redes mencionadas anteriormente. Dentro de estos se encuentran los protocolos IT y OT.
    • Los protocolos IT transmiten información a internet u otro dispositivo IoT.
    • Los protocolos loT (industrial) el cual permite la comunicación entre equipos industriales.

Entre los protocolos de IoT no existe una estandarización, pero si se tienen algunas pautas de forma habitual. Los protocolos de comunicación entre los dispositivos IoT más habituales son, MQTT, CoAP y HTTP. Son altamente flexibles ya que están pensados para transmitir cualquier tipo de información.

MQTT

MQ Telemetry Transport. Sigue un modelo de publicación-suscripción, permitiendo la comunicación entre un gran número de dispositivos. Para su funcionamiento, un servidor central llamado broker se encarga de recibir los mensajes de los dispositivos emisores y distribuirlos entre los receptores. Los mensajes, además, se organizan por etiquetas de forma jerárquica.

image

El funcionamiento del MQTT es un servicio de mensajería push con patrón publicador/suscriptor (pub-sub), este tipo de infraestructuras los clientes se conectan con un servidor central denominado broker. Para filtrar los mensajes que son enviados a cada cliente los mensajes se disponen en topics organizados jerárquicamente. Un cliente puede publicar un mensaje en un determinado topic. Otros clientes pueden suscribirse a este topic, y el broker le hará llegar los mensajes suscritos.

Los clientes inician una conexión TCP/IP con el broker, el cual mantiene un registro de los clientes conectados. Esta conexión se mantiene abierta hasta que el cliente la finaliza. Para ello el cliente envía un mensaje CONNECT que contiene información necesaria. El broker responde con un mensaje CONNACK, que contiene el resultado de la conexión, para enviar los mensajes el cliente emplea mensajes PUBLISH, que contiene el topic y el payload y para suscribirse y describirse se emplean mensajes SUBSCRIBE y UNSUSCRIBE, que el servidor responde con SUBACK y UNSUBACK. image

  • Escritura de mensajes. Uno de los componentes más importantes del protocolo MQTT es la definición y tipología de los mensajes, ya que son una de las bases de la agilidad en la que radica su fortaleza. Cada mensaje consta de 3 partes: image

  • Cabecera fija. Ocupa 2 a 5 bytes, obligatorio. Consta de un código de control, que identifica el tipo de mensaje enviado, y de la longitud del mensaje. La longitud se codifica en 1 a 4 bytes, de los cuales se emplean los 7 primeros bits, y el último es un bit de continuidad.

  • Cabecera variable. Opcional, contiene información adicional que es necesaria en ciertos mensajes o situaciones.

  • Contenido(payload). Es el contenido real del mensaje. Puede tener un máximo de 256 Mb aunque en implementaciones reales el máximo es de 2 a 4 kB.

  • Tipos de mensajes y códigos de control para protocolo MQTT image

Ubidots

Ubidots es una plataforma de IoT (Internet de las cosas) que habilita la toma de decisiones a empresas de integración de sistemas a nivel global. Esta aplicación permite enviar datos de sensores a la nube, configurar tableros y alertas, conectarse con otras plataformas, usar herramientas analíticas y arrojar mapas de datos en tiempo real.

image

Node-Red

Es una herramienta de programación para conectar dispositivos de hardware, API y servicios en línea de formas nuevas e interesantes, esta aplicación es demasiado interactivo pues para realizar la programación y de más conexiones mencionadas maneja conexiones por diagramas de flujo mediante la amplia gama de nodos de la paleta que se pueden implementar en su tiempo de ejecución con un solo clic, utilizando JavaScript se pueden crear dentro del editor utilizando un editor de texto enriquecido, cuenta con más de 225000 módulos en el repositorio de paquetes de Node, para lograr utilizar al máximo sus capacidades.

image

Protocolos de comunicación WIFI

Es un conjunto de especificaciones para las redes de área local inalámbricas WLAN, wifi es la siglas de “WIRELESS FIDELITY”, con esta tecnología es posible implementar redes que conectan ordenadores y otros dispositivos, no se requiere uso de cables ya que se efectúa la comunicación por radio frecuencias, una de las ventajas que el usuario puede utilizar dentro del rango de la frecuencia para poder transmitir y recibir datos La primera versión del estándar 802.11 fue lanzada en 1997, después de 7 años de estudios, aproximadamente. Con el surgimiento de nuevas versiones (que serán abordadas más adelante), la versión original pasó a ser conocida como 802.11-1997 o 802.11 legacy. Por tratarse de una tecnología de transmisión por radiofrecuencia, el IEEE (Institute of Electrical and Electronic Engineers) determinó que el estándar pudiera operar en el rango de frecuencias de 2,4 GHz y 2.4835 GHz, una de las ya mencionadas bandas ISM. Las versiones de wifi son 802.11b, 802.11a, 802.11g, 802.11n, 802.11ac esta es la última versión su características de bandas en la velocidad de procesamiento de 433 Mb/s pero puede ser superior a 6Gb/s se conoce como wifi 5g Trabajando a 5Ghz

image

LoT y edge computing

Este complemento proporciona una mayor cobertura y potencia informática, disminuyendo la latencia de comunicación entre los dispositivos de lot y las redes de Ti centrales que se conectan.

Un modelo de cloud computing se especifica como, los servicios y los recursos informáticos que están concentrados en grandes centros de datos, a los cuales acceden los dispositivos de lot en el extremo de una red.

El modelo de edge computing distribuye los recursos informáticos a ese extremo de la red, mientras todos los demás se concentran en la nube. Esta ubicación específica ofrece información útil en poco tiempo por medio de los datos que requieren acción inmediata. Un ejemplo industrial es una construcción en la cual la empresaria maneja su máquina a través de bluetooth que envía los datos a través de los teléfonos inteligentes de los trabajadores, lo cual permite realizar un seguimiento del uso y la ubicación del equipo.

Resultados

Adquisición de datos En primera instancia se realiza la adquisición de las diferentes variables del sistema como lo son la temperatura y la humedad tanto ambiental como del suelo, estas variables son adquiridas mediante la tarjeta ESP32, la cual realiza la conexión directa del sistema físico implementado para la adquisición de datos mediante el protocolo MQTT, el sistema interno cuenta con la validación de las diferentes variables, para el accionamiento de diversos actuadores.

Por una parte se tienen la validación del porcentaje de humedad del suelo, el cual arroja mayores valores al encontrar el suelo sin un gran porcentaje de agua, si este porcentaje supera el 60%, se realiza la activación de una bomba de agua, así como algunas alarmas a la interfaz de ubidots, con el fin de mantener equilibrado los niveles de humedad en el suelo, teniendo un ambiente óptimo para las especies tratadas en el invernadero

Además de tener la validación de la cantidad de energía lumínica que requiere el sistema para el correcto crecimiento de los especímenes, esto se realiza mediante una fotoresistencia, la cual al detectar niveles bajos en la intensidad de la luz natural activa las luces del sistema para equilibrar este porcentaje, en este proceso se tuvieron problemas con las medidas de lo lúmenes al no tener un estándar fijo con el cual compara, por lo cual al final se optó por la implementación de un potenciómetro logarítmico, con al cual se enviaron las alarmas del sistema a la interfaz trabajada en ubidots.

Y por último se tienen el manejo de temperatura y humedad ambiente, estas fueron solo variables que se obtuvieron mediante el sensor DHT11, estas variables también cuentan con alarmas para la interfaz

image image image

Comunicación mqtt con ubidots

Mediante la comunicación MQTT se realiza la interfaz gráfica de alarmas del sistema según algunos niveles de las variables censadas, en la cual se visualiza tanto el valor de la variable en determinado tiempo. Para esta se realizaron pruebas en 2 cuentas de Ubidots , ya que el sistema solo cuenta con un alcance máximo de 4000 datos, los cuales no se tenían previstos en la implementación y el sistema desde la tarjeta manda las variables ininterrumpidamente, al llegar a estos valores, el sistema detiene la lectura ya que las cuentas con las que se están trabajando cuentan con bastantes restricciones al no ser pagas.

El sistema cuenta con tan solo 4 variables censadas, lo cual se suficiente para su visualización en ubidots, además se ve el comportamiento desde el inicio de las lecturas en las gráficas relacionadas a la variable, la lectura de estas con enviadas según el requerimiento del usuario mediante una alarma de telegram en ubidots, por medio de un botón en la interfaz.

image

La comunicación MQTT (MQ Telemetry Transport) es un protocolo importante en la Iot basado en la pila TCP/IP, este funciona al iniciar el broker del protocolo, es muy importante en el proyecto del semillero, puesto que es muy útil, este posee una conexión abierta hasta que el cliente finalice la comunicación, es decir que no tendrá interrupciones de envío de datos con ubidots, lo cual facilita la transmisión de datos, esto se realiza mediante un mensaje o código CONNECT, en donde se envía la información de la red y el protocolo responde con CONNACK, el resultado de la conexión en caso de ser exitosa o no. Por último cabe mencionar que las ventajas de este protocolo conectado con la plataforma Ubidots, es la seguridad y calidad de servicio, requiere un ancho de banda mínimo en la transmisión de datos tanto para la humedad y las diferentes variables medidas en el proyecto a través del senado de los microcontroladores implementados.

Comunicación entre ubidots y telegram

Con el protocolo TCP/IP se evidencia la transmisión de datos entre ubidots y la aplicación móvil Telegram, este fue implementado a través de un bot el cual sirve de generador de alarmas para el semillero, obtenido picos de temperatura, humedad y el porcentaje de luz en este jardín portátil.Todo se realiza a través de la aplicación Node-Red el cual se basa en el mismo protocolo de comunicación mencionando el uso de wifi, el cual es una herramienta inalámbrica la cual permite este tipo de conexión sin ningún requerimiento de cableado en el sistema realizado.

image

image

Conclusiones

En el primer caso particular se puede apreciar que las limitantes de Ubidots en su versión gratuita constan de 4000 datos en un dia, lo que indicaba con anterioridad los diferentes fallos por el censo de datos acumulados, esto a su vez puede apreciarse en la cantidad de variables de medición y la velocidad de comunicación del protocolo, estos errores de saturación se presentan ya que en el sistema anterior no se estaban implementando un delay o retraso entre datos sino que estos se subían de forma acelerada al sistema. La siguiente ilustración es una muestra clara del error obtenido.

image

El protocolo MQTT presenta gran sencillez en su implementación además de una respuesta óptima y muy rápida, por la ligereza en la cual fluyen sus datos, esto se indica como un sistema óptimo para la transmisión directa entre los diferentes sistemas conectados a una nube, la velocidad y precisión de la transferencia de datos es tal que puede obtenerse una respuesta casi a tiempo real, este protocolo está en comparación a los protocolos como lo pueden ser HTTP, UDP o TCP muy superior ya que este es capaz de completar las transmisiones de datos de forma precisa y fiablemente veloz.

El protocolo de implementación de Node-Red, permite interconectar todos los sistemas desde digitales (que se encuentran en la nube), como los físicos como lo es el caso del sistema embebido , este sistema puede acoplarse a los diferentes servidores e interconectar dichos parámetros para la actuación de los mismos, tal como se presenta en el esquema de diseño, se usan dos particularidades de este sistema, una de ellas, es la capacidad de conexión entre ubidots y telegram, para las notificaciones del sistema, y otra es que mediante los comandos que posee telegram es posible acceder al puerto serial del sistema embebido en este caso la ESP32 para obtener parámetros directos que pueden ser mostrados en el comando, tanto la humedad, o la cantidad de luz que está presente en el sistema, por tanto Node-Red implementa una amplia gama de comunicación a través de nodos.

En el apartado de Ubidots, se puede analizar que para el caso particular; esta interfaz puede caracterizarse por la fácil concatenación entre las variables y los entornos gráficos asociados, ya que cuando se reciben los datos por el protocolo MQTT la interfaz es capaz de almacenarlo en las diferentes variables que posee y mostrar un histórico de los datos que recibe, al mismo tiempo dentro de los widgets que pueden ser creados, es posible representar una base de datos de forma visual, la cual interactúa directamente con el usuario del sistema.

Una gran ventaja del protocolo MQTT es su capacidad de envío de datos, ya que cuando estos no se sensan de una forma correcta el protocolo no los envía al sistema anexado en dirección, es decir al sistema que posee el TOKEN de dirección ya que el mensaje solo se envia una vez, pero si este no es correcto no se puede enviar, al mismo tiempo también recrea una relación directa entre la conexión a un servidor estable antes de enviar el dato correctamente.