Electrónica y programación para Microcontroladores.

Cursos técnicos para electrónica programable

Mapa
Estamos en

Urquiza 1695, Entre Ríos, Gualeguaychú

Email
Contactanos

consultas@firteconline.com.ar

Arduino

En la actualidad en casi cualquier publicación de electrónica vamos a encontrar la palabra Arduino y seguramente encontrará muchas personas que dirán “Nunca antes trabajar con microcontroladores fue tan simple”.
Y esto claro es verdad, pero desde el punto de vista electrónico que es en realidad Arduino?
Tomemos como ejemplo Arduino UNO y vemos que todo lo que hace el “Sistema Arduino” es cubrir el ATmega328P con una capa que hace mas simple su uso.
Por debajo de esta capa se encuentra el mismo conjunto de registros, las mismas estructuras básicas de un programa para microcontroladores incluso usa los mismos compiladores como es el caso de GCC.

(En realidad para programar Arduino se necesitan avr-binutils, avr-gcc y avr-libc, todas estas herramientas ya están incluidas en el IDE de Arduino y su funcionamiento es trasparente al programador).

Nextion es probablemente una de las mejores opciones para crear proyectos con electrónica. No solamente son compatibles con Arduino, Raspberry PI, Atmel, Microchip, ARM, etc, sino que además podemos utilizarlos de forma independiente contando la propia placa con una serie de pines de uso general incluso un RTC para sistemas de adquisición de datos. Para crear una interfaz en una pantalla Nextion usaremos el editor Nextion, un software provisto por el propio fabricante que hace la tarea del diseño realmente simple.
Una vez que tenemos todo los elementos de la interfaz desplegados en la pantalla se envía la programación a la propia pantalla usando una simple conexión serial.
Este editor de Nextion es la mejor solución, en realidad casi la única para crear proyectos con estas pantallas inteligentes.
Lamentablemente solo existe en versión para Windows que se descarga a través del enlace oficial de Nextion.

Que es el CAN BUS (Controller Area Network).

Desde mediados de los años 90 en todos los vehículos los sistemas de motor y transmisión se han basado en una red de sensores que envían información a la computadora de abordo, de esta forma se ajusta la cantidad de combustible, los cambios en la transmisión y en general todo lo que hace al funcionamiento del vehículo.

Pero fue recién a mediados del 2000 que los sistemas evolucionaron para incluir el CAN BUS.
Este bus usa el método de transmisión broadcast, es decir, un elemento envía un mensaje a través del bus a todos los componentes, y estos se encargan de saber si la información del mensaje le es útil o no. Si el mensaje fuese de interés para algún nodo, este lo almacena y procesa, si no, simplemente la deshecha.

En este escenario podemos ver que la “Unidad de control 2″, envía el mensaje que tenía almacenado en memoria al bus, y todas las demás unidades ven ese mensaje a sus entradas. Sin embargo la “Unidad de control 3″ deshecha este mensaje en la etapa de “Selección”, mientras que las restantes deciden que es apropiado y lo almacenan.

Cuando los enfoques informáticos clásicos (servidores web, socket de red, etc) resultan ser demasiado “pesados” por la cantidad de recursos necesarios para sostenerlos o resultan ser soluciones exageradas para resolver una simple comunicación de algunos Bytes, entran en juego protocolos como MQTT (Message Queue Telemetry Transport), ideado por IBM es un protocolo usado para la comunicación máquina a máquina (M2M).
Específico para Internet de las cosas, orientado a la comunicación de sensores y dispositivos con una tasa de transferencia de datos baja, necesita muy poco ancho de banda y puede ser utilizado en la mayoría de los dispositivos con escasos recursos (CPU, RAM, etc).

La arquitectura de MQTT sigue una topología de estrella, con un nodo central que hace de servidor o "broker" normalmente con una capacidad teórica de hasta 10000 clientes. El broker es el encargado de gestionar la red y de transmitir los mensajes, para mantener activo el canal, los clientes mandan periódicamente un paquete de datos y según el caso pueden esperar una confirmación del broker.
La comunicación se basa en "topics" o temas, y para que un cliente tenga acceso a la información debe estar subscrito al tema sin importar cuantos clientes estén siguiendo el tema.
Un cliente (cualquiera) puede publicar mensajes y los nodos, que deseen recibirlo deben estar subscrito a él. La comunicación puede ser de uno a uno, o de uno a muchos. Un "topic" se representa mediante una cadena y tiene una estructura jerárquica separada con '/'.

Por ejemplo, "firtec/sensor_1/temperatura" o "firtec/sensor_2/ruido". De esta forma se pueden crear jerarquías de clientes que publican y reciben datos.

Como funciona MQTT?

El funcionamiento es sencillo y sumamente ágil. El servidor o broker, recopila los datos que los publishers, los clientes o nodos que publican los tópicos. Determinados datos recopilados por el broker se enviarán a determinados nodos que previamente así se lo hayan solicitado al broker.

El principio de intercambio se parece mucho al de Twitter donde los publishers envían los mensajes a un canal llamado topic. Los suscriptores pueden leer esos mensajes. Los topics (o canales de información) pueden estar distribuidos jerárquicamente de forma que se puedan seleccionar exactamente las informaciones que se desean. Los mensajes enviados por los nodos pueden ser de todo tipo pero no pueden superar los 256 Mbit.

Por ejemplo el tópico firtec/oficina_1/temperatura comunicará la temperatura de oficina_1 si se suscribe un nodo a ese tópico el sensor de temperatura presente en la oficina_1 publicará periódicamente en ese tópico la temperatura registrada.

Si un nodo se suscribe al topic firtec/oficina_1/#, recibirá todos los datos de la oficina (por ejemplo, luminosidad, humedad, temperatura, etc). Si se suscribe al topic firtec/#, recibirá todos los datos de los sensores de firtec.


En este ejemplo se ha conectado un sensor para medir la cantidad de luz visible al ojo humano, los datos son "publicados" en la red MQTT interna de tal forma que todos los subscritos al tema (tópico) pueden acceder a los datos del sensor.
Con esta tecnología podemos publicar datos en la red con cualquier microcontrolador (PIC, Atmel, ARM, etc) solo se necesita un broker MQTT y que los dispositivos accedan a la red por ejemplo a través de un puente ESP32 y su conexión Wi-Fi.


(Ejemplo sacado del material de estudio del curso "Internet de las Cosas").