Construyendo una Aplicación IoT con InfluxDB, JavaScript y Plotly.js

Rate this content
Bookmark

El Internet de las cosas (IoT) está impulsado cada vez más por datos de sensores, con dispositivos que toman acciones medidas basadas en todo, desde la velocidad y dirección del viento, funciones vitales del cuerpo, intensidad de la iluminación y temperatura.


En esta sesión mostraremos cómo construir una aplicación de monitoreo de IoT de muestra completamente funcional construida con javascript y utilizando InfluxDB como backend. Con integraciones a bibliotecas de visualización como Plotly, creando alertas automatizadas con InfluxDB, así como reducción de datos.

FAQ

InfluxDB es una base de datos de series temporales diseñada para manejar altas tasas de escritura y consultas a lo largo del tiempo, lo que la hace ideal para almacenar y gestionar datos métricos de dispositivos IoT que generan datos continuamente.

Puedes contactar a Zoe Steinkamp a través de LinkedIn para discutir sobre desarrollo en InfluxData o cualquier pregunta relacionada con la comunidad de código abierto de InfluxData.

En el proyecto se utilizan varios sensores para monitorear una planta, incluyendo sensores de luz, humedad del aire, temperatura del suelo y contenido de humedad general.

El código y la gestión del proyecto IoT están disponibles en GitHub, donde se proporcionan ejemplos, instrucciones y esquemas para facilitar la implementación y personalización del proyecto.

Para la visualización de los datos recopilados se utiliza PlotlyJS, una biblioteca gráfica que permite crear gráficos interactivos para visualizar de manera efectiva las métricas recopiladas de los sensores IoT.

Un 'bucket' en InfluxDB es un término utilizado para referirse a una base de datos donde se almacenan los datos. Los buckets permiten configurar políticas de retención de datos y son esenciales para la organización y gestión de los datos en proyectos de IoT.

Sí, InfluxDB Cloud es una opción viable para almacenar datos de IoT, proporcionando una plataforma escalable y segura para la gestión de grandes volúmenes de datos generados por dispositivos IoT.

Los datos de sensores IoT se pueden obtener a través de la biblioteca de cliente de JavaScript específica de InfluxDB o utilizando la biblioteca de complementos Telegraph, dependiendo del dispositivo IoT y la configuración del proyecto.

Zoe Steinkamp
Zoe Steinkamp
20 min
05 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla introduce la construcción de una aplicación IoT con InfluxDB, JavaScript y PlotlyJS, destacando los beneficios de las bases de datos de series temporales para manejar altas tasas de ingestión y manipulación de datos. Proporciona instrucciones para configurar dispositivos IoT y conectar sensores, junto con técnicas de limpieza y transformación de datos. La charla cubre la creación de un bucket en InfluxDB, el uso de bibliotecas de cliente de JavaScript para leer y escribir datos, consultar y graficar datos con InfluxDB y Plotly.js, crear paneles de control y recursos de aprendizaje disponibles. En general, ofrece una visión general completa de la construcción de aplicaciones IoT con InfluxDB.

1. Introducción a InfluxDB y Datos de IoT

Short description:

Hola, y bienvenidos a mi presentación. Hoy, hablaré sobre cómo construir una aplicación de IoT con InfluxDB, JavaScript y PlotlyJS. Los datos de series temporales son diferentes de otros tipos de datos, y para nuestro proyecto, los datos de IoT se consideran datos métricos. Las bases de datos de series temporales son ideales para almacenar datos de IoT, ya que pueden manejar altas tasas de ingestión y permiten la manipulación de datos a lo largo del tiempo. Proporcionamos la biblioteca de complementos Telegraph para la adquisición de datos, pero también puedes usar nuestra biblioteca de cliente de JavaScript. Siéntete libre de consultar el enlace del proyecto para seguirlo y implementar el proyecto por tu cuenta.

Hoy hablaré sobre cómo construir una aplicación de IoT con InfluxDB, JavaScript y PlotlyJS. Mi nombre es Zoe Steinkamp. Soy una defensora del desarrollo en InfluxData, lo que significa que soy una persona a la que le gusta educar a los desarrolladores sobre algunas de nuestras características, pero también escuchar a nuestra comunidad de código abierto y hablar con ellos sobre diferentes cosas que les gustaría ver y, ya sabes, obtener comentarios y ayudar a las personas.

Si tienes alguna pregunta, no dudes en contactarme en LinkedIn después de esta charla y en general. Así que la agenda de hoy, repasaré la descripción general de InfluxDB solo para darte una idea de algunas de las herramientas que estamos utilizando, la configuración de hardware de IoT, la configuración de ingestión de datos, la solicitud de datos y luego la base de código de GitHub. Y nuevamente, siéntete libre de contactarme con preguntas en LinkedIn.

Así que introducción a InfluxDB. Lo primero que debes entender es que los datos de series temporales son un poco diferentes de algunos de los datos con los que probablemente estés más acostumbrado a trabajar. Y para nuestro proyecto, los datos de IoT se consideran datos métricos. Son valores que se recopilan regularmente a lo largo del tiempo. Por ejemplo, como descubrirás en este proyecto, para la planta, monitoreamos cosas como la humedad del aire, la cantidad de agua en el suelo, el contenido de humedad general. Estos serán datos donde los sensores nos enviarán un punto de datos aproximadamente cada segundo, dependiendo del sensor que uses y cómo estructures tus datos. Pero eso es más o menos lo que esperaríamos. Hay otros tipos de datos de series temporales, como eventos que se generan con más regularidad y también cosas como trazas. Como mencioné antes, las bases de datos de series temporales son un lugar bastante bueno para poner tus datos de IoT. Descubrirás que en la mayoría de Internet, si comienzas a construir tus propios proyectos de IoT, la mayoría de las personas mencionarán el hecho de que realmente quieres elegir una base de datos que pueda manejar la tasa de ingestión más alta, pero también asegurarte de poder hacer cosas como reducir la resolución o manipular tus datos, especialmente a lo largo del tiempo. Cosas como quiero saber en este período de tiempo qué estaba sucediendo con la planta. Es un poco más difícil hacer eso en otros tipos de bases de datos, especialmente en una base de datos SQL, que no está diseñada para ese tipo de consultas normalmente.

Y cuando se trata de métodos de adquisición de datos, una cosa a tener en cuenta es que nos encargamos de la biblioteca de complementos Telegraph, que es una biblioteca de complementos de código abierto específicamente para datos de series temporales. Tiene muchas opciones de complementos diferentes. Tiene más de 300. Y algunos de estos podrían funcionar para tu caso de uso, dependiendo del dispositivo IoT con el que estés trabajando. Para el proyecto, estoy usando un microcontrolador de partículas Boron que es muy específico en cómo funciona y cómo obtengo datos de él. Así que estoy usando la biblioteca de cliente, específicamente nuestra biblioteca de cliente de JavaScript, para obtener esos datos. Pero también podrías usar Telegraph dependiendo del dispositivo que tengas. Así que, voy a enlazar el proyecto aquí. Así que ve y toma este enlace. Esto te permitirá seguirlo y también implementar este proyecto por tu cuenta.

2. Configuración de dispositivos IoT y componentes necesarios

Short description:

En general, proporciona el código, las instrucciones y las explicaciones para cosas en las que posiblemente no me adentraré tanto durante mis 20 minutos aquí. Entonces, configurar tus dispositivos IoT. Básicamente, cómo funciona esto es que el microcontrolador lee los datos de tus sensores IoT. A partir de ahí, pasa a través de la biblioteca de cliente JS y se almacena en InfluxDB Cloud. Necesitarás una planta, preferiblemente viva. Un microcontrolador Particle Boron u otro microcontrolador compatible. Si eliges usar algo como una Raspberry Pi para este proyecto, tendrás que hacer mucho para que funcione. Las diferentes marcas de microcontroladores hacen las cosas ligeramente diferentes en cuanto a la capacidad que te brindan para obtener los datos.

En general, proporciona el código, las instrucciones y las explicaciones para cosas en las que posiblemente no me adentraré tanto durante mis 20 minutos aquí. Y sabes, es solo un buen enlace para obtener. No repetiré este enlace, así que lo dejaré aquí por solo un segundo más. Muy bien. Y probablemente pueda publicarlo. Si tenemos un chat o algo así, cuando esto se publique, lo publicaré allí.

Entonces, configurar tus dispositivos IoT. Un poco de antecedentes rápidos. Básicamente, cómo funciona esto es que el microcontrolador lee los datos de tus sensores IoT. Así como dije, eso serán cosas como un sensor de luz, humedad, temperatura del suelo. Todo esto en el contexto de una planta. Estas son todas cosas que a las plantas les importan. Si hicieras un proyecto de IoT que no estuviera basado en plantas, tal vez estés monitoreando algo como la elaboración de cerveza o un acuario, tus sensores serán ligeramente diferentes, por eso los categoricé como dispositivos IoT.

A partir de ahí, los envías, al menos para mi uso personal, los enviamos a través de un servidor, normalmente mi Wi-Fi doméstico. Y desde allí, el servidor de la aplicación, que normalmente es mi computadora. Básicamente, mi computadora tiene un USB conectado que lee los datos de mi microcontrolador. No es una configuración ideal. En el futuro, creo que me gustaría enrutarlo a través de algo como una Raspberry Pi u otro tipo de servidor de aplicaciones que pueda usar. Algo que no sea mi computadora portátil, pero por ahora, así es como funciona esta configuración. A partir de ahí, pasa a través de la biblioteca de cliente JS y se almacena en InfluxDB Cloud. También podrías almacenarlo en InfluxDB de código abierto. Tendremos ejemplos para ambos en el proyecto de GitHub, para que puedas elegir tu propia aventura y decidir dónde quieres almacenar tus datos.

Necesitarás, en ningún orden en particular, como puedes ver en mi hermosa configuración fotográfica aquí, una planta, preferiblemente viva. Lo he hecho con una planta falsa. No funciona muy bien. Un microcontrolador Particle Boron u otro microcontrolador compatible. También tenemos el código para un Arduino, por lo que puedes consultarlo. Si eliges usar algo como una Raspberry Pi para este proyecto, tendrás que hacer mucho, ¿cuál es la palabra aquí? Código de dificultad. Tendrás que hacer mucho para que funcione, pero diré que hay toneladas y toneladas de recursos en línea sobre cómo hacer que una Raspberry Pi haga algo similar a esto, pero ten en cuenta que las diferentes marcas de microcontroladores, diferentes marcas en general cuando se trata de estos tipos de dispositivos IoT, hacen las cosas ligeramente diferentes en cuanto a la capacidad que te brindan para obtener los datos. Algunos de ellos te brindan muchas capacidades.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Cómo he estado utilizando JavaScript para automatizar mi casa
JSNation 2022JSNation 2022
22 min
Cómo he estado utilizando JavaScript para automatizar mi casa
La programación de software es naturalmente divertida, pero hacer algo físico para interactuar con el mundo en el que vives es como magia. Es aún más divertido cuando puedes reutilizar tus conocimientos y JavaScript para hacerlo. Esta charla presentará casos de uso reales de automatización de una casa utilizando JavaScript en lugar de utilizar C++ como de costumbre, y Espruino como herramientas de desarrollo y microcontroladores como Arduino, ESP8266, RaspberryPI y NodeRed para controlar luces, puertas, armarios y mucho más.
Viaje al desconocido: Mi aventura desentrañando los misterios del universo TVUI de Netflix
React Summit US 2023React Summit US 2023
30 min
Viaje al desconocido: Mi aventura desentrañando los misterios del universo TVUI de Netflix
En Netflix, millones de nuestros usuarios ven Netflix en dispositivos de TV. ¿Cómo desarrollamos la interfaz de usuario para todos los diferentes tipos de dispositivos? ¡Eso es exactamente lo que quería saber! Compartiré por qué es importante asumir nuevas oportunidades de crecimiento, cómo navegar por las dificultades de aprender una plataforma completamente nueva en una nueva empresa y algunas de las cosas que he aprendido sobre cómo usamos React para llevar Netflix a tu TV!
Construyamos una Navegación Espacial para TV
React Advanced Conference 2023React Advanced Conference 2023
18 min
Construyamos una Navegación Espacial para TV
En esta charla, te llevaré a través de mi viaje cuando me uní al equipo que apoya nuestra aplicación de Smart TVs y compartiré mi experiencia aprendiendo una de las funcionalidades más esenciales pero pasadas por alto que tenemos.
Herramientas para una mejor Observabilidad en Aplicaciones IoT Serverless de NodeJS
Node Congress 2023Node Congress 2023
8 min
Herramientas para una mejor Observabilidad en Aplicaciones IoT Serverless de NodeJS
La observabilidad es crucial para operar con éxito flotas grandes de IoT. IoT incorpora diferentes componentes, incluyendo hardware, red, software en el dispositivo y la nube. Los dispositivos operan en condiciones y restricciones poco confiables, y necesitan ser monitoreados de forma remota. Las aplicaciones en la nube se vuelven complejas y costosas, ya que están diseñadas para manejar la actividad de los dispositivos a gran escala. Responder preguntas como:
- ¿Tengo un problema en mi aplicación IoT?
- ¿Dónde está el problema?
- ¿Qué está causando el problema?
- ¿Cuántos de mis dispositivos se ven afectados?
- ¿Mi código es costoso de ejecutar y, de ser así, cómo puedo solucionarlo?,
puede ser un desafío. El registro, monitoreo y trazado son pilares fundamentales de la observabilidad. Sin embargo, a menudo se consideran no funcionales en las aplicaciones IoT y pueden pasar desapercibidos o no estandarizarse durante el desarrollo.

Esta sesión mostrará cómo aprovechar herramientas de código abierto, como AWS Lambda PowerTools, en una aplicación IoT Serverless completamente funcional, para facilitar la adopción de las mejores prácticas para el desarrollo de aplicaciones modernas e integrar servicios como Amazon X-Ray, Amazon CloudWatch y las características de AWS IoT Core, para lograr una observabilidad de extremo a extremo.
Una introducción a IoT; o cómo construí una caja de arena para gatos IoT utilizando JavaScript
JSNation Live 2021JSNation Live 2021
23 min
Una introducción a IoT; o cómo construí una caja de arena para gatos IoT utilizando JavaScript
Mis cosas favoritas en la vida son los gatos, las computadoras y las ideas locas, así que decidí combinar las tres y hacer una caja de arena para gatos IoT (Internet de las cosas) utilizando una Raspberry Pi y JavaScript. Si alguna vez has querido construir tu propio proyecto de IoT, pero no sabías por dónde empezar, entonces esta charla es para ti.Juntos, repasaremos cómo configuré mi caja de arena para gatos IoT de principio a fin. Incluyendo cómo configurar Node.js en una Raspberry Pi y cómo conectar sensores a una Raspberry Pi y cómo leer las entradas de los sensores con Node.js.
Hackeando un e-Reader con React
React Advanced Conference 2023React Advanced Conference 2023
7 min
Hackeando un e-Reader con React
Quería tener un menú de té para mostrar a los invitados y para mi propia referencia. ¡Resulta que los e-Readers usan tan poca energía y pueden renderizar HTML! Compartiré cómo generar un e-book con todas tus bebidas con React usando Deno, así como renderizar una página de portada personalizada con SVG. Sorprende a tus amigos convirtiendo un viejo dispositivo en un menú de té para el hogar inteligente, y aprende a escribir tu próximo libro con React.

Workshops on related topic

Construye una aplicación IoT con InfluxDB
JSNation Live 2021JSNation Live 2021
105 min
Construye una aplicación IoT con InfluxDB
Workshop
Miroslav Malecha
Miroslav Malecha
InfluxDB es una base de datos de series temporales de código abierto que permite a los desarrolladores construir software para IoT, análisis y monitoreo. Está diseñada específicamente para manejar los volúmenes masivos y las innumerables fuentes de datos con marca de tiempo producidos por sensores, aplicaciones e infraestructura.
Este masterclass muestra una aplicación de muestra completamente funcional llamada IoT Center que está construida sobre InfluxDB. Esta aplicación demuestra las capacidades de la plataforma InfluxDB para desarrollar una aplicación basada en series de tiempo habilitada para JavaScript. Recopila, almacena y muestra un conjunto de valores que incluyen temperatura, humedad, presión, concentración de CO2, calidad del aire, así como proporciona coordenadas GPS de un conjunto de dispositivos IoT. Con estos datos almacenados en InfluxDB, la aplicación puede consultar estos datos para mostrarlos y también escribir datos de nuevo en la base de datos.
Este masterclass práctico mostrará a los estudiantes cómo instalar este código de código abierto para aprender a consultar y escribir en InfluxDB utilizando el cliente JavaScript de InfluxDB, y familiarizarse con el lenguaje de consulta Flux que está diseñado para consultar, analizar y actuar sobre datos de series de tiempo. Y finalmente, recopilar y visualizar datos de rendimiento de la aplicación Node.js.
Masterclass de IoT Center por InfluxData
Node Congress 2021Node Congress 2021
131 min
Masterclass de IoT Center por InfluxData
Workshop
Miroslav Malecha
Miroslav Malecha
InfluxDB es una base de datos de series temporales de código abierto que permite a los desarrolladores construir software de IoT, análisis y monitoreo. Está diseñado específicamente para manejar los volúmenes masivos y las innumerables fuentes de datos con marca de tiempo producidos por sensores, aplicaciones e infraestructura. En esta masterclass se presenta una aplicación de muestra completamente funcional llamada IoT Center que se basa en InfluxDB. Esta aplicación demuestra las capacidades de la plataforma InfluxDB para desarrollar una aplicación basada en series de tiempo habilitada para JavaScript. Recopila, almacena y muestra un conjunto de valores que incluyen temperatura, humedad, presión, concentración de CO2, calidad del aire, así como proporciona coordenadas GPS de un conjunto de dispositivos IoT. Con estos datos almacenados en InfluxDB, la aplicación puede consultar estos datos para mostrarlos y también escribir datos en la base de datos.
En esta masterclass práctica, los estudiantes aprenderán cómo instalar este código de código abierto para aprender a consultar y escribir en InfluxDB utilizando el cliente JavaScript de InfluxDB, y familiarizarse con el lenguaje de consulta Flux que está diseñado para consultar, analizar y actuar sobre datos de series de tiempo. Y finalmente, recopilar y visualizar datos de rendimiento de la aplicación Node.js.
Requisitos previos
Cuenta gratuita registrada en InfluxDB Cloud en https://cloud2.influxdata.comTres opciones disponibles (a través de cuenta de Google, a través de cuenta de Microsoft o a través de correo electrónico)Probar inicio de sesión después del registro y guardar las credenciales para la masterclassInstalación de la herramienta git (por ejemplo, desde https://git-scm.com/downloads)Clonar IoT CenterEjecutar: git clone https://github.com/bonitoo-io/iot-center-v2Instalar nodejs (desde https://nodejs.org/en/download)Instalar el gestor de paquetes yarn (desde https://classic.yarnpkg.com/en/docs/install)Instalar los paquetes requeridosEn el directorio clonadoEjecutar: cd appEjecutar: yarn install