IoT - Una breve historia (Parte 1)

La tecnología de Internet de las Cosas (IoT) ha estado en desarrollo durante décadas, pero es en la era actual, impulsada por la rápida expansión de la conectividad 5G, que ha comenzado a florecer y captar la atención generalizada. Sin embargo, su origen se remonta mucho más atrás en el tiempo.

La primera tostadora conectada, precursora de la IoT moderna.

La semilla de la IoT se plantó en los laboratorios de investigación y desarrollo a finales del siglo XX, cuando los primeros dispositivos conectados comenzaron a emerger en entornos controlados como laboratorios y campus universitarios. Estos dispositivos, a menudo rudimentarios en comparación con los de hoy, sentaron las bases para lo que se convertiría en una red interconectada de objetos físicos capaces de recopilar y compartir datos.

A medida que la tecnología avanzaba, la IoT encontró aplicaciones en una variedad de campos, desde la automatización industrial hasta la gestión de la cadena de suministro y la salud digital. Sin embargo, su adopción masiva fue limitada por la disponibilidad y la velocidad de las conexiones de red.

Con la llegada de la tecnología 5G, la IoT está experimentando un renacimiento. Las conexiones ultrarrápidas y de baja latencia proporcionadas por el 5G están desbloqueando todo el potencial de la IoT, permitiendo la proliferación de dispositivos inteligentes en hogares, ciudades, industrias y más allá.

Al sumergirnos en esta emocionante era de la IoT habilitada por 5G, es esencial comprender cómo estos avances tecnológicos se traducen en la creación práctica de dispositivos IoT modernos. Nos adentraremos en el mundo del hardware y los microcontroladores, componentes fundamentales de este ecosistema tecnológico.

Es importante destacar la diferencia entre una CPU (Unidad Central de Procesamiento) y una MCU (Microcontrolador). Las CPUs, como las que encontramos en nuestras computadoras personales, son dispositivos de propósito general diseñados para ejecutar una amplia variedad de aplicaciones. Por otro lado, las MCUs son chips integrados que combinan una CPU con memoria, E/S y otros periféricos en un solo paquete. Las MCUs son ideales para aplicaciones embebidas donde el tamaño, el consumo de energía y el costo son consideraciones importantes.

Al embarcarnos en este proyecto, hemos decidido descartar plataformas de desarrollo como Arduino. Aunque Arduino es popular y fácil de usar, está diseñado principalmente para proyectos de aficionados y prototipos. Para un dispositivo IoT robusto y escalable, necesitamos tecnologías más industriales como los microcontroladores STM32, ESP32 o las MCUs de Texas Instruments.

Características Arduino Mega STM32F4 ESP32 Texas Instruments MSPM0G3
Tipo de microcontrolador Microcontrolador de 8-bit o 32-bit Microcontrolador ARM Cortex-M de 32-bit Microcontrolador Xtensa de 32-bit Microcontrolador de 16-bit o 32-bit
Velocidad de reloj 16 MHz Hasta 180 MHz (dependiendo del modelo específico) Hasta 240 MHz Varía según el modelo, hasta varios cientos de MHz
Memoria Flash 256 KB Desde 512 KB hasta varios MB Entre 512 KB y 4 MB Varía según el modelo, desde KB hasta varios MB
Memoria RAM 8 KB Desde 64 KB hasta 1 MB Hasta 520 KB Varía según el modelo, desde KB hasta varios MB
GPIO 54 Depende del modelo, típicamente entre 16 y 168 Depende del modelo, típicamente entre 34 y 82 Varía según el modelo, típicamente entre 10 y 200
Conexiones SPI 4 (Con pins MISO, MOSI, SCK) Depende del modelo, generalmente múltiples interfaces SPI disponibles 4 (Con pins MISO, MOSI, SCK) Depende del modelo, generalmente múltiples interfaces SPI disponibles
Conexiones I2C 2 (Con pins SDA, SCL) Depende del modelo, generalmente múltiples interfaces I2C disponibles 2 (Con pins SDA, SCL) Depende del modelo, generalmente múltiples interfaces I2C disponibles
Conectividad USB, UART, I2C, SPI, Ethernet Puerto USB, UART, I2C, SPI, Ethernet, etc. Wi-Fi, Bluetooth, Ethernet (en algunas variantes) Varía según el modelo, puede incluir USB, UART, I2C, SPI, Ethernet, etc.
Soporte de desarrollo Amplia comunidad de usuarios y documentación disponible Amplio soporte de la comunidad y documentación disponible Comunidad activa y documentación disponible Soporte de la comunidad y documentación disponible
Lenguajes de programación Principalmente Arduino IDE con lenguaje basado en C/C++ C/C++, soporte para múltiples IDEs como STM32CubeIDE C/C++, soporte para múltiples IDEs como Arduino IDE, PlatformIO C/C++, algunos modelos pueden admitir otros lenguajes como TI-RTOS, Energia, etc.
Aplicaciones típicas Proyectos de hobby, prototipos simples Aplicaciones industriales, sistemas embebidos avanzados Proyectos IoT, sistemas embebidos avanzados Aplicaciones industriales, sistemas embebidos, dispositivos IoT
Los microcontroladores STM32 ofrecen un equilibrio excepcional entre potencia y eficiencia energética, con una amplia variedad de modelos que pueden adaptarse a las necesidades específicas de nuestro proyecto. Por otro lado, los ESP32 son conocidos por su conectividad Wi-Fi y Bluetooth integrada, lo que los hace ideales para aplicaciones IoT que requieren comunicación inalámbrica. Además, las MCUs de Texas Instruments son altamente confiables y se utilizan ampliamente en aplicaciones industriales y comerciales. Al elegir estas plataformas más industriales, podemos garantizar la fiabilidad, el rendimiento y la escalabilidad de nuestro dispositivo IoT. En las próximas entregas, exploraremos en detalle cómo utilizar estas herramientas y lenguajes de programación como C/C++ para desarrollar nuestro dispositivo desde cero. Además del hardware y los microcontroladores, otro componente fundamental en los dispositivos IoT son los sensores y actuadores. Estos dispositivos juegan un papel crucial al interactuar con el entorno físico, recopilar información, procesarla y actuar en consecuencia. Los sensores son dispositivos que detectan cambios en el entorno físico y convierten estos cambios en señales eléctricas que pueden ser procesadas por el microcontrolador. Existen una amplia variedad de sensores diseñados para medir diferentes variables, como temperatura, humedad, luz, presión, movimiento, entre otros. Estos sensores permiten que nuestros dispositivos IoT capturen datos del mundo real y respondan de manera inteligente a su entorno. Por otro lado, los actuadores son dispositivos que realizan acciones físicas en respuesta a las señales del microcontrolador. Estos pueden incluir motores, válvulas, relés, entre otros. Los actuadores son esenciales para llevar a cabo acciones en el mundo físico basadas en los datos recopilados por los sensores. Por ejemplo, un actuador podría abrir una válvula para liberar agua en un sistema de riego automatizado después de que un sensor de humedad detecte que el suelo está seco. La interacción entre sensores y actuadores permite que nuestros dispositivos IoT no solo recopilen información del entorno, sino que también tomen decisiones y realicen acciones en tiempo real. Esta capacidad de percepción y respuesta es lo que hace que los dispositivos IoT sean tan poderosos y versátiles en una amplia gama de aplicaciones. En las próximas entregas, exploraremos cómo integrar sensores y actuadores en nuestro proyecto de IoT y cómo programar el microcontrolador para interactuar con ellos de manera efectiva. ¡Prepárate para sumergirte en el emocionante mundo de la Internet de las Cosas, donde la tecnología se conecta con el mundo físico de formas innovadoras y transformadoras!