Si no tiene idea de la arquitectura de desarrollo y el diseño mecánico / eléctrico detrás de las soluciones de IoT, podrían parecer "tener cualidades o poderes aparentemente sobrenaturales". Por ejemplo, si muestra un sistema IoT en funcionamiento a las personas del siglo XVIII, pensarían que es mágico. Este artículo está revientando tal mito. O, para decirlo más técnicamente, sobre sugerencias para ajustar el desarrollo de IoT para un proyecto impresionante en el área de gestión de energía solar.
Spoiler : sin hechizos, solo ideas analíticas para desarrollar un servicio rápido y fácil.
Descargo de responsabilidad : no ofrecemos una solución única (simplemente no existe), solo comparta las cosas que consideramos serias. Estos puntos pueden ser características asesinas mientras que, por el contrario, su negligencia puede matarlo. Juego de palabras previsto;)
Presentamos el sistema IoT para visualizar y optimizar el consumo de energía solar.
Tuvimos el placer de trabajar en un proyecto para mejorar el uso de energía autogenerado. El núcleo radica en visualizar y optimizar el uso de sistemas fotovoltaicos (PV) tanto para empresas instaladoras como para clientes finales. Por lo tanto, cuando Solar Manager se instala como un centro central para distribuir la energía solar producida entre los dispositivos del hogar, utiliza el máximo de energía de producción propia.

Ya hemos escrito sobre la perspectiva comercial del uso de la energía solar, y ahora vamos a sumergirnos en los desafíos tecnológicos y las pistas del desarrollo.
Prerrequisito absoluto
Antes de comenzar, aclaremos. Hay una cosa que se aplica a todos y cada uno de los proyectos, independientemente de si se trata de un sistema IoT o de un aterrizaje simple.
Nunca comience la implementación antes de tener una comprensión completa de lo que desea lograr (y todos los involucrados lo hacen).
No hay tal cosa como evidente. No, no hay telépatas, y nadie lee tus pensamientos. Aclara, discute, asegúrate de estar en la misma página.

Por supuesto, si no quiere gastar el doble de tiempo y dinero.
La misión
Entonces, ¿qué tenemos como entradas? Conectividad flexible y firmware remoto centralizado, 5 roles de usuario con diferentes UX y conjuntos de permisos, conversión y análisis de datos, gran cantidad de solicitudes y, como una guinda del pastel, trazar una gran cantidad de datos de valor de tiempo en gráficos.
Desafíos y características específicas de la implementación del sistema IoT para el consumo de energía.
Cuando se trata de desarrollo, 3 cosas son las más importantes: estabilidad, relevancia y velocidad. Especialmente cuando el proyecto requiere una arquitectura monolítica. Es por eso que la lógica general, todos los flujos de usuarios y el diseño de la base de datos deben ser lo más simples y optimizados posible. Seamos honestos, en 2019 nadie quiere esperar 40 segundos porque 'sus datos se están procesando'. Entonces, aquí está la lista de preguntas / respuestas para las plataformas IoT a las que nos referimos:
- ¿La arquitectura se ajusta a los requisitos y especificaciones?
- ¿Cómo va a convertir, procesar y analizar los datos recopilados?
- ¿Cuáles son las relaciones más óptimas entre las capas MVC / MVP padre-hijo? ¿Pueden entonces escalarse sin ser interrumpidos?
- ¿Hay algún módulo que realice funciones similares / adyacentes? ¿Se pueden unir en un solo módulo multipropósito? ¿Eso introducirá o reducirá la complejidad?
- ¿La comunicación entre etapas es óptima?
- ¿Cómo almacenar en caché los datos antes de visualizarlos?
- ¿Es la experiencia del usuario (UX) simple y evidente para cada rol de usuario?
Divide lo que necesita ser distribuido, une lo que es similar. Sin embargo, no confunda esto con la creación de grandes clases que (deberían) resolver varias tareas. En cambio, cree pequeños para una sola tarea. Para tareas complejas, cree varias clases que resuelvan una subtarea y otra que use esas.
Arquitecto soluciones de IoT inteligentes
Inteligente aquí se refiere a crear una arquitectura de proyecto rápida, escalable, optimizada y sostenible que se ajuste a los requisitos del proyecto. Las preguntas básicas que surgieron en este punto:
- ¿Cuál es el flujo de arquitectura más fácil y directo?
- ¿Cómo hacer que la experiencia del usuario para cada rol sea la más simple?
- ¿Podemos revisar la arquitectura inicial para una mejor escalabilidad y optimización del rendimiento?
Para las aplicaciones web, esto implica el diseño del controlador de vista de modelo jerárquico (HMVC). Por ejemplo, para asignar mejor los recursos y proporcionar una respuesta más rápida, trabaje a través de las conexiones entre API, back-end, front-end y edge. Configure la comunicación local en la nube, almacenando y transfiriendo datos para que obtenga la respuesta correcta rápidamente (¡hola, Capitán Obvio!).

Nunca subestimes la importancia de pensar a través del diseño de la base de datos (DB). Esto también se aplica a las relaciones entre colecciones en la base de datos. Tiene muchas entidades, que interactúan de varias maneras, por lo que es crucial mantener todas las conexiones lógicas relacionadas en un solo lugar.
Entonces, cuando tenga a mano la estructura inicial, determine:
- ¿Es este (uno a uno, uno a muchos, muchos a muchos) el tipo de relación óptimo para esta colección? ¿Resuelve la tarea de la manera más eficiente?
- ¿Qué tan bien corresponde a la tarea en la pantalla específica?
- ¿Encaja bien en la arquitectura general del proyecto?
Optimice la lógica detrás de cada módulo y asegúrese de preservar la arquitectura general. Piensa en el conjunto de permisos. Luego piense de nuevo y optimice. Recuerde configurar los tipos de conexión para que para cada tarea tenga toda la información necesaria en un solo lugar y maneje las solicitudes correctamente.
Por ejemplo, imagine que su base de datos es un restaurante de comida rápida. Tienes muchos clientes, necesitas servir comida rápida y precisamente lo que han ordenado. O de lo contrario su negocio está hecho. Eso es exactamente lo mismo para los DB. Sí, hay docenas de colecciones y necesita datos de 7 a 8 de ellas simultáneamente. Así que diseñe las relaciones para que estén conectadas lógicamente y devuelva la respuesta rápidamente.
El sistema IoT es como un restaurante. No hagas esperar a los clientes.
Cómo trazar [gazillion] de datos
¿Recuerdas los momentos en que los sitios se cargaban durante un par de minutos? Hemos visto aplicaciones donde los paneles se cargan aún más lentamente. Y eso es un no-no.
Los gráficos son una nueva normalidad. La visualización de datos se usa comúnmente en SCADA, IoT y cualquier proyecto analítico y por una razón. Ver picos en el consumo de energía, las tendencias del mercado, el CO2 en el aire y cualquier otra cosa que pueda medir (generalmente, con el tiempo) da una impresión vívida. Ya ves, entiendes, actúas. Con la presentación textual de conjuntos de datos masivos, su ojo se desdibujará en poco tiempo.
Por lo tanto, el desafío radica en el trazado rápido de gráficos con una gran cantidad de pares valor-tiempo. Antes de que los usuarios vean los datos en el gráfico, el sistema debe determinar todos los puntos para trazarlos. Tuvimos una gran cantidad de lluvia de ideas para determinar cómo almacenar en caché los datos para que trazar un gráfico con 50K + pares de valores de datos lleve menos de 2 segundos.

Desde cero hasta la producción, y más allá
Además de la aplicación web, también desarrollamos aplicaciones iOS y Android para instalación, monitoreo y acceso sobre la marcha.
Lo importante para recordar cuando se trabaja en sistemas IoT es mantener la simplicidad y la escalabilidad. Se debe pensar que la arquitectura típica de IoT de 5 etapas no trae ninguna complejidad redundante.
A medida que cada producto evoluciona, debe pensar en los medios para superponer nuevas funcionalidades sin interrumpir las funciones existentes. Y, por supuesto, nunca te olvides de las pruebas unitarias.
Menos de un año desde su lanzamiento
Desde su lanzamiento en octubre de 2018, el Solar Manager es adoptado y utilizado por las principales empresas de instalación y mayoristas fotovoltaicos en Suiza.
Al revisar y optimizar los hábitos de uso de energía, los consumidores obtienen lo mejor de sus PV y así ahorran costos. En una escala más global y según Deloitte , tal solución hace que la energía solar sea competitiva con las fuentes de energía tradicionales. Esto, a su vez, lo hace atractivo para otros consumidores residenciales y empresas. Y, finalmente, ¿no suena como la base de una ciudad inteligente que todos esperamos?
Detrás del éxito cualquier proyecto de IoT
No existe una 'guía definitiva' para crear productos exitosos. Primero, cada proyecto es único y presenta sus propios desafíos. En segundo lugar, incluso si ha realizado un montón de proyectos en el área, la tecnología y las demandas del mercado evolucionan. Por lo tanto, la experiencia que tiene desde hace 2 años o incluso medio año puede no ser relevante ahora.
También puede consultar nuestro GitHub para obtener muchos instrumentos gratuitos de código abierto para el desarrollo de IoT.