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.

This talk has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

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
The Talk covers various experiments with JavaScript and C++, including controlling lights and creating a car control system. The speaker shares his experiences with home automation and the challenges of hiding wires. He explores using JavaScript with Esperino for face recognition and discusses the benefits and limitations of the platform. The Talk concludes with suggestions for using JavaScript in hardware projects and learning opportunities.
Construyamos una Navegación Espacial para TV
React Advanced 2023React Advanced 2023
18 min
Construyamos una Navegación Espacial para TV
This talk discusses the challenges of implementing spatial navigation for TV controls and the need for a library. The approach to spatial navigation can be improved by developing extra logic to connect TV control with the application. The demo application showcases the use of a NavigationEngine class and the useFocusRef hook function. The integration logic involves selecting the next node based on key presses and node coordinates. The talk also highlights the challenges of complex arrangements and circular navigations in smart TV application development.
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
This Talk explores the journey of a software developer in unraveling the mysteries of Netflix TV UI. It emphasizes the importance of continuous learning in TV UI development and discusses the use of React and the TV signup process. The Talk also highlights the significance of widgets, navigation, and the TVUI Explorer app in building TV UI. It delves into the TVUI dev process, testing layers, and the value of continuous learning and fresh perspectives in the tech industry. The Talk concludes with insights on job opportunities, resources for TV development, and the Netflix hiring process.
Hackeando un e-Reader con React
React Advanced 2023React Advanced 2023
7 min
Hackeando un e-Reader con React
React for eBooks? Learn how to hack an eReader to display a tea menu. Create images and write e-books using React. Use EPUB format to create chapters and include CSS. Use Pandoc and Dino to simplify the process and make quick updates.
Hackeando un e-Reader para Mostrar Mi Menú de Té Con JSX
React Day Berlin 2023React Day Berlin 2023
7 min
Hackeando un e-Reader para Mostrar Mi Menú de Té Con JSX
React can be used to create custom menus for e-readers, and the process involves creating an image and e-book with React and loading them onto the e-reader. Writing an EPUB e-book for e-readers involves converting an SVG file into a PNG image and writing the e-book in EPUB format using HTML, CSS, and images. EPUB generators like Pandoc and Dino simplify the process of generating EPUBs from markdown and running JavaScript on the desktop, respectively.
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
The Talk discusses the challenges of IoT development, including issues with fleet offline, data missing, alerts not working, inconsistent data, and slow loading dashboards. It explores how to build observability in IoT applications using metrics, logging, and tracing. The integration between the rules engine and Lambda is explained, highlighting the use of tools like Lambda Power Tools and X-Ray for logging, monitoring, and tracing. The Lambda invocation process and the tracing capabilities of X-Ray are also mentioned.

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