[1/3] Del hardware a la nube: Crea tu propia solución IoT

¿Alguna vez has pensado en desarrollar tu propia aplicación IoT desde cero, pero no sabías por dónde empezar? Para ti y todos esos creadores que quieren materializar sus proyectos, te contaré mi experiencia, porque yo también la he vivido.

Introducción

Este es el primero de una serie de artículos donde describiré todo el proceso, desde el diseño del hardware hasta la aplicación en la nube, para hacer realidad mi proyecto. Los desafíos, problemas, logros e incluso algunos detalles técnicos y tutoriales relacionados con los dispositivos específicos utilizados en las diferentes etapas del proceso.

¿Cómo elegí mi proyecto?

Primero lo primero, permítanme presentarme: soy estudiante de ingeniería eléctrica y estoy a punto de terminar mi carrera. Para mi proyecto de fin de carrera, quería tener la experiencia de diseñar y desarrollar mi propio dispositivo y poder usarlo para implementar una aplicación IoT que pudiera contribuir a resolver uno de los problemas de mi ciudad. Además, quería que la solución fuera asequible y sencilla, para que cualquier persona, independientemente de su origen, pudiera usarla. Después de pensarlo durante unos días, me incliné por los problemas de movilidad: implementar mi propia aplicación de estacionamiento inteligente.

¿Por qué elegí este proyecto?

A medida que la población mundial crece, la movilidad en muchas ciudades tiende a colapsar debido a la gran cantidad de vehículos que circulan por las calles. En los sectores comerciales, el problema se agrava debido al tiempo que tarda un conductor en encontrar un lugar para estacionar su vehículo, lo que genera una congestión insostenible. Los sistemas de estacionamiento inteligente se han convertido en una herramienta muy útil para reducir los problemas de movilidad en lugares con alta concurrencia de vehículos.

Sin embargo, estos sistemas suelen ser complejos y costosos. Su instalación requiere personal especializado e incluso la estructura del estacionamiento suele requerir modificaciones. Además, se invierte mucho tiempo y dinero en mantenimiento. Por ello, este tipo de sistemas no se implementan en todas partes. Por eso decidí desarrollar una solución más sencilla, práctica y económica para ayudar a los conductores a localizar plazas de aparcamiento libres.

Me di cuenta que para desarrollar este proyecto se podría dividir en dos grandes etapas: diseño de hardware e implementación de la aplicación de software.

Diseño de hardware

1. Definición de las características del dispositivo

Como punto de partida, fue necesario definir las características que requeriría el proyecto para empezar a planificar cómo lograrlas. Para mi dispositivo, elegí las siguientes características:

  • Bajo consumo de energía
  • Portátil
  • Inalámbrico
  • Larga duración de la batería
  • Fácil de instalar
  • Alcance de señal largo
  • Fiabilidad

2. Selección de componentes modulares

Luego, necesitaba pensar en los componentes modulares que debía tener el dispositivo para cumplir su función: detectar la presencia de un vehículo en un lugar de estacionamiento y transmitir esa información a la aplicación de software de forma inalámbrica.

En primer lugar, necesitaría encontrar un sensor capaz de detectar la presencia de un vehículo. Luego, se necesitaría un microcontrolador para leer, procesar y organizar los datos recopilados por el sensor. Por último, pero no menos importante, sería necesario usar un módulo inalámbrico para enviar la información a un servidor, donde se almacenarían los datos para su uso por la aplicación de software .

Teniendo todo esto en mente, el siguiente paso sería buscar y seleccionar todos los componentes y tecnologías necesarias para cumplir con los requisitos mencionados anteriormente.

3. Selección de tecnologías

Para seleccionar la tecnología, estudié el estado del arte de los sistemas inteligentes de estacionamiento y detección de vehículos. Descubrí que las tecnologías de sensores más comunes para la detección de vehículos son: infrarrojos, ultrasónicos y magnéticos. Sin embargo, consideré que las detecciones con sensores ultrasónicos e infrarrojos podrían tener una mayor probabilidad de fallar, ya que sus mediciones podrían verse afectadas por factores como la forma de las superficies o incluso el polvo del entorno. Por lo tanto, decidí probar primero con sensores magnéticos.

Empecé a buscar sensores magnéticos , principalmente de bajo consumo y alta sensibilidad. Estudié las características de al menos diez sensores diferentes y seleccioné los cinco que me parecieron mejores. Posteriormente, creé una hoja de cálculo de Google donde registré esos cinco sensores con sus características principales: voltaje de alimentación, consumo, sensibilidad, resolución e interfaces de comunicación, para compararlos.

Además, debido a su pequeño tamaño, me aseguré de que los sensores seleccionados contaran con una placa adaptadora para agilizar el prototipado del sistema y la evaluación del dispositivo. Finalmente, elegí los de mayor sensibilidad y bajo consumo. Las referencias de estos sensores son MMC5883MA y LSM303AGR .

Para seleccionar el microcontrolador, limité mi investigación a arquitecturas de 8 bits para reducir el coste y la complejidad de la programación, ya que las tareas que debe realizar son realmente sencillas. Necesitaba encontrar un microcontrolador de bajo consumo con un encapsulado que me permitiera realizar pruebas para el prototipado, es decir, que fuera adecuado para su uso en una placa de pruebas. Finalmente, decidí probar microcontroladores PIC, empezando por el PIC18F2550 .

En ese momento, necesitaba seleccionar un módulo inalámbrico. La primera pregunta fue: ¿qué tecnología inalámbrica debería usar? Tras unos días de intensa investigación y el asesoramiento de mis compañeros de Ubidots , decidí usar LoRaWAN . Gracias a sus características, como bajo consumo, largo alcance y alta inmunidad a interferencias, LoRaWAN es una tecnología potente para aplicaciones del Internet de las Cosas ( IoT ). Si bien existe una limitación en el tamaño de los paquetes que se pueden enviar con LoRaWAN, esto no supone un problema para IoT , ya que no se necesitan grandes cargas útiles para enviar los datos recopilados por los sensores.

Posteriormente, busqué un módulo LoRaWAN de bajo consumo, alto alcance e interfaces de comunicación serial. Era fundamental asegurar que la frecuencia de trabajo del módulo LoRaWAN coincidiera con la banda ISM de mi país. Unas semanas antes, había estado probando una placa de desarrollo llamada SODAQ ONE . Esta placa incluye un módulo LoRaWAN integrado, el RN2903 , que cumplía con los requisitos de este proyecto. Así que me decidí por este módulo, que mostró un excelente rendimiento en las pruebas realizadas con la SODAQ ONE.

Si ya está familiarizado con SODAQ ONE V3 y desea comenzar a utilizar Ubidots , ¡consulte esta guía y comience hoy mismo!

Tras realizar todos los pasos mencionados, el siguiente paso es probar los componentes seleccionados y construir un prototipo. Los resultados de estas pruebas determinarán si estos componentes se eligieron adecuadamente para mi aplicación o si debo modificarlos.

Siendo sincero, aunque todo el proceso puede ser complicado, lo más difícil para mí fue decidir por dónde empezar. Así que, si te interesa desarrollar tu propia aplicación IoT , te recomiendo que tengas claros los objetivos, las características y el alcance de tu proyecto, y el resto del camino aparecerá por sí solo.

Si quieres saber cómo quedó todo, ¡estad atentos a las próximas publicaciones!

Atentamente, Daniela.