Una introducción a IoT; o cómo construí una caja de arena para gatos IoT utilizando JavaScript

Rate this content
Bookmark

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.

Joe Karlsson
Joe Karlsson
23 min
10 Jun, 2021

Video Summary and Transcription

Esta charla es una introducción a IoT y JavaScript, donde se discute el uso de JavaScript y Node para proyectos de IoT, la importancia de considerar los datos y elegir las bases de datos adecuadas, y la implementación práctica de una caja de arena para gatos conectada a Internet. También se exploran el control de LEDs con Johnny-5, la solución al problema de la celda de carga y el futuro de IoT. El orador fomenta la experimentación y comparte proyectos geniales de IoT como el espejo mágico y las hojas nano conectadas a Internet. También se sugieren proyectos prácticos de IoT y unirse a las salas de discusión del orador para principiantes.

Available in English

1. Introducción a IoT y JavaScript

Short description:

Bienvenidos a una introducción a IoT, paréntesis, Internet de los Inodoros. Esta es una charla sobre cómo construí una caja de arena para gatos conectada a Internet utilizando JavaScript y Node. Cubriremos la introducción a IoT, por qué JavaScript y Node son excelentes para proyectos de IoT, mi proyecto de la caja de arena y generalizaciones amplias sobre el futuro de IoT.

Hola. Bienvenidos a una introducción a IoT, paréntesis, Internet de los Inodoros. Esta será una charla sobre cómo construí una caja de arena para gatos conectada a Internet utilizando JavaScript y Node. Así que vamos a empezar. En primer lugar, mi nombre es Joe Carlson. Probablemente no les importe nada acerca de mí. Está bien. Pero soy un ingeniero de software y defensor del desarrollo y trabajo para una empresa llamada MongoDB. Es posible que ya hayan oído hablar de ella. Es un producto de base de datos bastante genial si me lo preguntan. Si quieren pasar tiempo conmigo en el futuro nuevamente, por favor háganlo. El mejor lugar para hacerlo es en Twitter. Pero si también están en TikTok, definitivamente deberían echarle un vistazo y hacer videos divertidos sobre programación allí. Si quieren seguir cualquier enlace, código fuente, grabación de este video, diapositivas, ejemplos de código, todo eso, pueden encontrarlo en el enlace allí. JoeCarlson.dev slash IOTkitty slash BF04B o si escanean el código QR en la esquina superior derecha del video, también los llevará allí. Por último, y esto es muy importante, cualquier cosa que diga en esta charla refleja mis propias opiniones y no las de mi empleador. ¿De acuerdo? Genial. Amo mi trabajo. No quiero ser despedido. Entonces, ¿de qué vamos a hablar hoy? En primer lugar, haremos una breve introducción a IoT, qué es y por qué creo que es tan genial. Luego hablaré sobre por qué deberían considerar JavaScript y Node para su próximo proyecto de IoT. Luego hablaremos de mi parte favorita aquí, que es mi caja de arena. Cómo la construí, les mostraré algo de código y cómo funciona. Y por último, haremos algunas generalizaciones amplias sobre el futuro de Internet de las cosas. Será divertido verlo dentro de cinco años juntos, podremos ver cuán equivocado estoy sobre todo. Pero bueno, lo importante es predecir y lo intentaré hacer lo mejor posible.

Bueno, ¿qué diablos es IoT? Bueno, estoy seguro de que ya lo saben, pero básicamente es cualquier cosa que se conecta a Internet. Es solo una cosa con un chip que tiene Wi-Fi o Ethernet o lo que sea, ¿verdad? Simplemente puede conectarse a Internet. Pero quiero hablar sobre mi interés particular en IoT. Creo que nosotros como ingenieros, somos

2. Explorando IoT y JavaScript

Short description:

Internet ha dado forma a nuestra generación y hay mucho por explorar. Me encanta explorar la delgada línea entre el genio y la estupidez. Organicé una masterclass llamada Stupid Shit and Terrible Ideas Hack-a-thon, donde creamos proyectos divertidos y poco convencionales. JavaScript y Node son excelentes opciones para proyectos de IoT, especialmente para nuevos desarrolladores. C y C++ aún tienen su lugar, pero JavaScript es más fácil de desarrollar y actualizar a través de una red. El internet ya habla JavaScript.

particularmente adecuado para explorar la tecnología y el internet como medio de arte. Creo que el internet es lo que define quiénes somos como generación, cómo nos comportamos, y creo que hay mucho por explorar en esa área. Y me encanta hacer eso a través del arte y la tecnología. En particular, aún más específico, estoy obsesionado con tonterías estúpidas. Me encanta poner chips en cosas donde no deberían estar. Creo que es divertido explorar esa delgada línea entre el genio y la completa estupidez.

De hecho, me gusta tanto que organicé una masterclass llamada Stupid Shit and Terrible Ideas Hack-a-thon, donde simplemente hacíamos cosas estúpidas. Alguien hizo una cámara que solo toma fotos cuando la agitas, o un cubo de fidget de madera de seis pies, o una laptop hecha de cartón. Cosas divertidas, ¿verdad? Me encantan las tonterías estúpidas.

Ok, entonces IoT. Genial. Creo que todos sabemos qué es. Solo quería hablar sobre por qué me encanta. ¿Por qué deberías considerar JavaScript y Node para tu próximo proyecto de IoT? ¿Sabías que el 58% de los desarrolladores de IoT se identifican como desarrolladores de Node? ¿Hmm? Esta es solo mi opinión, pero creo que JavaScript es una excelente opción para nuevos desarrolladores. Muchas personas lo están aprendiendo cuando salen de bootcamps, fue mi primer lenguaje de programación. Es una buena herramienta para personas que están aprendiendo cómo, como, o quieren hacer cosas más visuales. Y no quiero decir que C o C++ sean malos lenguajes de programación, definitivamente aún tienen un lugar en la programación de dispositivos conectados a Internet. Eso no va a desaparecer pronto. Son más rápidos y más pequeños que JavaScript en este momento. Y a veces son más difíciles de desarrollar, ¿sabes? Al menos para mí lo son. Y si estás aprendiendo hardware, solo toma una cosa a la vez, aprende el componente de hardware. Ok. También es fácil de actualizar a través de una red. Tradicionalmente, con dispositivos integrados, cómo actualizar el firmware es que tienes que tomar ese dispositivo, conectarlo y volver a programar el código en él. Sin embargo, JavaScript es un poco más fácil. Todo lo que tienes que hacer es ejecutar Git pull y NPM install y listo. Estás actualizado. El internet ya habla JavaScript. Ya estamos hablando HTTP a través de la web. Ya estamos enviando este

3. Introducción a IoT y JavaScript (continuación)

Short description:

JavaScript es de naturaleza orientada a eventos. Los dispositivos IoT también son orientados a eventos. Los sensores en el campo esperan que ocurran eventos y desencadenen la ejecución de código.

archivos para ejecutar Internet. Tiene sentido hacerlo también para dispositivos IoT. Y tal vez no lo sepas, pero ya existen toneladas de herramientas, bibliotecas, perdón, y conjuntos de datos data disponibles para ti. Incluyendo CylonJS y Johnny5, que deberías revisar ambos. Son geniales. JavaScript es de naturaleza orientada a eventos. Y si lo piensas, los dispositivos IoT también son orientados a eventos, ¿verdad? Como tienes algún tipo de sensor en el campo que está esperando que ocurra algún evento, y una vez que se activa, quieres algún tipo de evento o devolución de llamada en JavaScript, ¿verdad, si quieres que ese código

4. Consideraciones de datos para proyectos de IoT

Short description:

Al construir proyectos de IoT, es importante considerar las consideraciones de datos y elegir bases de datos que puedan procesar datos rápidamente. Los proyectos de IoT son aplicaciones orientadas a la escritura, por lo que la capacidad de escribir datos de manera concurrente y masiva es crucial. Los esquemas flexibles son adecuados para proyectos de IoT, ya que permiten actualizaciones y ajustes fáciles. MongoDB es una excelente opción para proyectos de IoT, ya que maneja bien los datos de series temporales y permite la validación de esquemas a nivel de base de datos. Si estás considerando MongoDB para tu proyecto de IoT, vale la pena explorar sus capacidades.

ejecutar. De acuerdo. Trabajo para MongoDB y necesito hablar un poco sobre las consideraciones de datos si estás construyendo proyectos de IoT. Quiero hablar en términos generales sobre qué buscar cuando estés construyendo o revisando bases de datos para guardar datos de IoT. Primero que nada, debes asegurarte de buscar bases de datos que puedan procesar los datos rápidamente, ¿verdad? Los proyectos de IoT son únicos en el sentido de que son aplicaciones orientadas a la escritura. La mayoría de las aplicaciones centradas en la web son orientadas a la lectura, ¿verdad? Por ejemplo, escribo un tweet en una base de datos y potencialmente podría ser leído por millones de personas. Ninguno de los míos lo es. Pero si fuera famoso, tal vez podría serlo. Debes asegurarte de buscar bases de datos con diferentes necesidades y que puedan procesar o escribir datos de manera concurrente y masiva, lo cual es extremadamente importante para una base de datos de IoT. Mencionamos anteriormente que muchos proyectos de IoT son orientados a eventos, ¿verdad? Estamos esperando que ocurra algún evento asíncrono en el campo y queremos asegurarnos de tener una base de datos que se ajuste a esa naturaleza orientada a eventos de nuestros proyectos de IoT. Los esquemas flexibles son especialmente adecuados para proyectos de IoT. Por ejemplo, en mi proyecto agregué un nuevo sensor y pude actualizar mis datos de series temporales para incluir los datos de ese nuevo sensor. Los datos de series temporales son únicos en el sentido de que se vuelven obsoletos rápidamente y normalmente se utilizan para visualizar en algún tipo de panel de control. Tal vez también los usemos para usos históricos. A medida que agregamos y actualizamos con el tiempo, podemos comenzar a agregar y ajustar nuestros esquemas de manera flexible a gran escala.

Quiero señalar aquí que es una idea equivocada común que MongoDB es una base de datos sin esquemas. En realidad, puedes validar esquemas a nivel de base de datos con MongoDB. No necesitas un ORM como Mongoose. Y debes asegurarte de tener una base de datos que maneje bien los datos de series temporales. Puedes crear datos de series temporales con la mayoría de los SGBD, genial, no hay problema. Pero se vuelve confuso rápidamente. Te mostraré mis datos de series temporales de IoT que utilicé para mi proyecto y por qué creo que es superior a otros modelos. Puede que esté sesgado aquí ya que trabajo para MongoDB, pero MongoDB es una excelente opción porque hace todas estas cosas y más. Lo único que tengo que mencionar es que si estás considerando usar MongoDB para un proyecto de IoT en el futuro, definitivamente deberías considerarlo. De acuerdo, la presentación de ventas ha terminado, volvamos a lo bueno. Caja de arena para gatos IoT, vamos a sumergirnos. Esto es lo que terminé construyendo. Es una pequeña caja de mediados de siglo que compré. Sé que es un poco extra. No necesitas conseguir algo lujoso como esto. Podrías conseguir algo de plástico de $20 en Amazon o lo que sea, siempre y cuando tenga un recinto y pueda usar arena fría, eso es todo lo que necesitas.

5. Robot Kitty Litter Box and Asynchronous Events

Short description:

Esta caja de arena para gatos robot existe y funciona mediante el uso de sensores de carga debajo de la caja para detectar un objeto del tamaño de un gato que entra. Una vez que se detecta un gato, se mide su peso y se registra en una base de datos de MongoDB. Después de que el gato termina, se inicializa un nuevo peso base y el proceso espera un nuevo evento. El proyecto implica esperar que ocurran eventos asíncronos. El primer paso en cualquier proyecto de IoT es hacer un LED para asegurarse de que los circuitos estén configurados correctamente.

Pensé que era una idea tonta, pero recientemente descubrí que esta caja de arena para gatos robot existe. Wired le dio una calificación de 8 sobre 10 y, lo que es más importante, la están vendiendo por $500. No estoy tratando de monetizar esto, pero si quisieras hacerlo, esta podría ser tu oportunidad.

¿Cómo funciona esta cosa? Tengo sensores de carga debajo de la caja. Básicamente son como una báscula de baño conectada a internet. Vamos a hablar primero de la otra parte. Tenemos un recinto en la caja y hay un interruptor en él para determinar cuándo está abierto o cerrado. Cuando abrimos esa caja, entramos en lo que llamo modo de mantenimiento. Ya sea que estemos eliminando desechos o agregando arena a la caja. El punto es que el peso base de esa caja cambia cada vez que entra en modo de mantenimiento. Una vez que la he limpiado, hecho mi trabajo en ella, la cierro de nuevo, sale del modo de mantenimiento, espero un poco a que se calme, luego reinicializamos el peso base de esa caja.

Después de que se haya determinado el peso base de esa caja, lo que hacemos es esperar a que entre un objeto del tamaño de un gato en la caja. Ahora no sé si es un zarigüeya, un mapache o una rata grande. No importa realmente. Solo estamos esperando algo que pese alrededor de 5 a 15 libras para que entre en esa caja. Una vez que se detecta un gato mediante las celdas de carga, esperamos un poco a que el gato se acomode. Luego tomamos una medida del peso de ese gato, para poder medir pasivamente el peso del gato a lo largo del tiempo, y registramos que se ha producido un evento de baño. Así que hace sus cosas y enviamos ese evento a una base de datos de MongoDB en la nube.

Bien, genial, el gato ha terminado sus cosas. Lo que hacemos es esperar a que las cosas se enfríen un poco, espero unos 5 minutos, y reinicializamos un nuevo peso base de la caja y esperamos un nuevo evento. Ya sea un evento de mantenimiento o un nuevo evento de entrada de gato en la caja. Bien, así que estamos esperando constantemente que ocurran todos estos eventos asíncronos. Y eso es todo, es bastante simple. Pero saltemos a un poco de código, ¿de acuerdo? Vamos a ver un poco de código, chicos. Si quieres seguir el código fuente, nuevamente todo ese código está disponible en ese enlace, o si escaneas ese código QR con tu teléfono.

De acuerdo, así que el primer paso para cualquier proyecto de IoT, si este es tu primer proyecto de IoT, el primer paso que debes hacer es hacer un LED. LED, en blanco. Básicamente, solo asegura que tus circuitos estén configurados, que tu placa esté bien, que puedas comunicarte con ella y hacer que haga lo que quieres. Y al igual que la programación, iteramos en eso y construimos. De hecho, puedes ver que tengo las celdas de carga preparadas al lado o al lado de eso.

6. Controlando LED con Johnny-5

Short description:

Para encender y apagar el LED, utilizamos Johnny-5 con el paquete Raspberry Pi. Inicializamos una nueva placa Johnny-5 para Raspberry Pi, esperamos a que esté lista y luego inicializamos un LED en el pin GPIO 13. Solo se necesitan unas pocas líneas de código para que nuestro hola mundo funcione.

Y simplemente hago que el LED se encienda y apague. Eso es todo. Bien, ¿cómo lo hacemos? Con Johnny-5, es bastante fácil. Johnny-5 funciona con muchas placas diferentes. Entonces necesitamos importar el paquete Raspberry Pi. Y volvemos a inicializar una nueva placa Johnny-5 y le decimos, hey, hoy vas a trabajar con una placa Raspberry Pi. Muy bien. Y luego esperamos a que esa placa esté lista para comenzar a escuchar. Y luego simplemente inicializamos un nuevo LED en el pin GPIO 13. No sé qué es eso. Tengo que buscarlo en Google cada vez que lo conecto. Y luego solo tiene una función incorporada que dice en blanco. Pero eso es todo. ¿Qué es eso? Son como, no sé, menos de 10 líneas de código para que nuestro hola mundo funcione con nuestro Johnny-5.

7. Convirtiendo un LED en un Inodoro

Short description:

Para convertir un LED en un inodoro, utilizamos una placa Raspberry Pi y un interruptor magnético para determinar el modo de mantenimiento de la caja. Dependiendo de si está abierta o cerrada, se puede cambiar el estado de la caja. La Raspberry Pi lee los eventos en tiempo real, lo que hace que sea un proceso sencillo.

Muy sencillo. OK. Entonces, ¿cómo convertimos un LED en un inodoro? Buena pregunta. Necesitamos hacer lo mismo. Vamos a utilizar esa placa Raspberry Pi y, en lugar de usar un LED, vamos a utilizar un interruptor magnético para determinar si la caja está en modo de mantenimiento o no. Y luego, dependiendo del estado de si está abierta o cerrada, podemos cambiar el estado de la caja.

OK, veámoslo en la práctica. Te voy a mostrar la placa o cómo lo hago yo. Y puedes ver el pequeño interruptor allí, esa pequeña cosa blanca. Ese es el interruptor magnético. Hay uno en cada lado. Y a medida que abro y cierro esa caja, puedes ver que esos eventos se leen en tiempo real por mi Raspberry Pi y se determina en qué estado se encuentra la caja. Bastante, bastante sencillo.

8. Resolviendo el Problema de la Celda de Carga

Short description:

Tuve que ser creativo para resolver el problema de la celda de carga, ya que no pude encontrar una biblioteca con Johnny-5 para interactuar directamente con las celdas de carga. En su lugar, utilicé el proceso Spawn Child en Node Core para ejecutar un script de Python y enviar los datos a mi programa Node.

Muy bien, las celdas de carga. Esta parte es un poco más complicada. Tengo que ser un poco creativo en cómo resuelvo este problema. Debería terminar usando, porque no pude encontrar una biblioteca con Johnny-5 que pudiera interactuar directamente con las celdas de carga que compré. Vaya figura, ¿verdad? Pero de hecho, encontré una biblioteca de Python que podía hacerlo. Así que terminé utilizando el proceso Spawn Child, que está integrado en Node Core, para crear un subproceso hijo que ejecuta un script de Python y envía los data de ese script de Python al proceso principal. Y luego puedo hacer lo que quiera con él en mi programa Node. Bastante simple. Es Node y JavaScript, pero también fui un poco creativo en ello.

9. IoT Data and Box Assembly

Short description:

Cada décima de segundo, se lee y envía el peso base de la caja. Es posible registrar en tiempo real los cambios de peso. Los datos de series temporales de IoT se almacenan en una base de datos MongoDB, con nuevos documentos creados cada 24 horas. La matriz de eventos captura las entradas del gato y la limpieza de la caja, diseñada para facilitar los informes. El montaje de la caja implica montar el Pi y conectar los cables.

Así que cada décima de segundo, simplemente lee el peso base de la caja y lo envía. Lo convierto en un número decimal, actualizo el promedio y luego solo espero que suceda ese evento del tamaño de un gato.

Muy bien, echemos un vistazo. Debajo de esa pieza de contrachapado, tengo las celdas de carga en cada esquina. Y es difícil porque no pude alejarme lo suficiente, pero estoy presionando sobre la tabla. Y verás aquí en un momento, esas presiones se están registrando en realtime en mi aplicación Node. Así que puedo registrar y ver en realtime lo que está sucediendo o, como, el peso de la caja en todo momento.

De acuerdo, te prometí que hablaría sobre mis IoT datos de series temporales aquí. Y todavía voy a cumplir esa promesa. Así es como se ve. Cada 24 horas, creo un documento nuevo en mi MongoDB database. Y allí tengo algunos metadatos sobre mí y el gato en caso de que quisiera ampliar esto a varias cajas, gatos y propietarios. Y tengo una matriz de eventos. Entonces, en mi matriz de eventos, cada vez que un gato entra en la caja o limpio la caja, agrego un documento o subdocumento nuevo a esa matriz de eventos. Lo diseñé de esta manera debido a cómo lo usamos, ¿verdad? Estoy leyendo estos data para mostrarlos en un panel de control. Y quiero mostrar todos los eventos por día de lo que está sucediendo. Así que diseñé mi esquema de IOT para que sea fácilmente legible para los informes que estoy haciendo sobre esto. Que es, como, la regla número uno del diseño del esquema de MongoDB. Solo design tu esquema en función de las necesidades de tu aplicación. ¿Cómo vas a utilizar esos data? Y así es como lo voy a utilizar. Puedes hacer esto, como, una vez a la semana, una vez al año. Pero para una caja pequeña como esta, tiene sentido hacerlo una vez al día.

Muy bien, genial. Asamblea de la caja. Armo toda la caja. Puedes ver el Pi montado en el interior allí. Tengo algunos cables. Y tengo un pequeño cable para enchufarlo. Y eso es todo. Es bastante simple.

10. The Future of IoT and How to Get Started

Short description:

Sabes, no se ve elegante cuando abres la caja. Pero funciona. Se ve bastante bien cuando está cerrada. Y ahí está mi gato. Tuve que sobornarlo con algunas golosinas para obtener esta foto. El futuro de IoT: los dispositivos serán más pequeños y más potentes, se integrarán en más cosas, JavaScript se compilará en tamaños más pequeños para IoT y dispositivos integrables, mejor soporte de hardware, se solucionarán los problemas de los sensores, las baterías seguirán siendo un cuello de botella. Para convertirte en un maestro de IoT, JavaScript o MongoDB, sal y hazlo. Elige un proyecto. Crea algo divertido. Solo juega.

Sabes, no se ve elegante cuando abres la caja. Pero funciona. Se ve bastante bien cuando está cerrada. Y ahí está mi gato. Tuve que sobornarlo con algunas golosinas para obtener esta foto.

De acuerdo, casi terminado aquí, lo prometo, el futuro de IoT. Hagamos algunas predicciones aquí. En primer lugar, creo que, por supuesto, los dispositivos serán más pequeños y más potentes en el futuro. Ya estamos viendo esto. Se integrarán en aún más cosas a medida que avancemos. De hecho, ya estamos viendo esto, pero JavaScript se está compilando en tamaños más pequeños para IoT y dispositivos integrables, ¿verdad? Son más simplificados. Y tienen un recolector de basura más pequeño para ser más eficientes en energía y memoria, por lo que son más efectivos en dispositivos más pequeños. Ya estamos viendo que esto sucede. Veremos un mejor soporte de hardware. Por cierto, te dije que tenía algunos problemas con los sensores de esas celdas de carga. Pude encontrar una biblioteca de Python. Pero en el futuro, creo que eso se solucionará. Y, por supuesto, las baterías son y seguirán siendo el cuello de botella. A medida que los dispositivos se vuelven más potentes, también generan más calor, lo que consume más energía, desafortunadamente, ¿verdad? Entonces, especialmente los dispositivos integrados que no están conectados las 24 horas, como mi caja, la energía es y sigue siendo un problema a medida que los vemos en más lugares.

De acuerdo. Entonces, si hoy los he inspirado a querer convertirse en maestros de IoT, JavaScript o MongoDB, ¿cómo lo hacen? Bueno, escuchar cómo hablo de esto es una cosa. La otra cosa que recomendaría hacer es simplemente salir y hacerlo. Elijan un proyecto. No tiene que ser genial. Hagan algunas tonterías en casa. Simplemente hagan algo divertido. Hagan un LED en blanco. Pueden conseguir una Raspberry Pi en la mayoría de las tiendas de informática por unos $25 a $35. Y también pueden conseguir un paquete de inicio de un pequeño dispositivo IoT en Amazon por unos $20. Simplemente jueguen.

11. Conclusion and Poll Results

Short description:

No te preocupes por monetizar o hacer algo profesional o genial. Explora y comparte tus proyectos. Conéctate conmigo en Twitter en Joe Carlson1. Gracias a todos por ser increíbles. Discutamos los resultados de la encuesta: el 50% no tiene experiencia con IoT, el 34% tiene un poco de experiencia, el 16% ha realizado un proyecto y el 0% trabaja a tiempo completo en IoT.

Creo que no te preocupes por tener que monetizarlo o hacer algo que sea profesional o genial. Creo que es divertido simplemente explorar y ver qué obtienes. Y trata de compartirlo si puedes. Me encanta ver esas cosas. Me encantaría ver en qué estás trabajando.

De acuerdo. Estoy en el chat si alguien tiene alguna pregunta. De lo contrario, definitivamente puedes contactarme en Twitter en Joe Carlson1. Y, sí, me encantaría conectarme contigo de todos modos, incluso si no tienes preguntas. Todos los enlaces para esta charla, video diapositivas, ejemplos de código, todo está disponible en el enlace allí o si escaneas ese código QR.

Muchas gracias a todos. Han sido increíbles. Me lo he pasado genial aquí. Adiós.

Ahora hablemos de la encuesta. La pregunta es, ¿cuál es tu experiencia con IoT? Sin juicios. Solo curiosidad. Ninguno dijo que el 50% de ellos no tiene experiencia. Solo interesados en potencialmente ingresar algún día. Un poco. Con un 34%. Un poco, he hecho uno en blanco una vez. El 16% respondió que tengo un par de proyectos en mi haber. Y el 0% dijo que trabajo a tiempo completo en IoT. Nadie lo hace a tiempo completo. Pero la mayoría de ellos sí lo ha hecho. Eso es más o menos lo que esperaba. Eso es más o menos lo que esperaba. Quiero decir, esta es una introducción suave a los inodoros de Internet. Espero que incluso si has sido un maestro, aún puedas aprender algo nuevo.

QnA

Cool IoT Projects and Small Experiments

Short description:

Pero sabes que este es un gran momento para los principiantes. Eso es genial. Increíble. Vamos a la sesión de preguntas y respuestas. Cuéntame sobre otros proyectos geniales de IoT en los que hayas estado trabajando. Recientemente hice el proyecto del espejo mágico, que consiste en colocar un monitor detrás de un espejo bidireccional y conectarlo a una Raspberry Pi. También hice mis propias hojas nano conectadas a Internet utilizando una impresora 3D y LEDs. Otro proyecto en el que trabajé fue una pizarra digital de graffiti que permite a las personas dibujar en ella usando sus teléfonos. Si eres nuevo en la programación de IoT, te recomiendo conseguir una Raspberry Pi y experimentar haciendo que un LED parpadee o creando una aplicación web que traduzca texto a código Morse.

Pero sabes que este es un gran momento para los principiantes. Eso es genial. Increíble. Vamos a la sesión de preguntas y respuestas.

Así que tenemos. Cuéntame sobre otros proyectos geniales de IoT en los que hayas estado trabajando. Oh, gran pregunta. Sí. Un montón. No inventé este proyecto, pero recientemente hice el proyecto del espejo mágico, que básicamente consiste en colocar un monitor detrás de un espejo bidireccional y luego conectarlo a una Raspberry Pi y ejecutar una pequeña aplicación web con Electron. Es muy divertido, honestamente es lo más útil que he hecho. Es tan divertido. También hice unas hojas nano. Esas hojas geniales y elegantes que se iluminan y se pueden colocar en la pared. También son muy caras, pero hice las mías propias conectadas a Internet, al menos con la impresora 3D y algunos LEDs y una pequeña aplicación web para controlarlas. Fue muy divertido. Fue un proyecto muy divertido. Y luego, ¿he hecho algo más? No, esos son los dos. Esos son los grandes, y mi caja de arena conectada a Internet, creo que son simplemente divertidos. Oh, también hice una pizarra digital de graffiti hace un par de semanas. Sí, la idea era como una obra de arte o como algo que podría tener en el fondo cuando estoy dando una charla como esta, y la gente podría unirse y dibujar en ella con sus teléfonos, interactuar con ella en la vida real. Gracias Liz, soy parcial pero estoy totalmente de acuerdo contigo. Son realmente divertidos e increíbles. Mi pregunta es, ¿algún experimento pequeño que sea fácil de comenzar con IoT y JavaScript? Sí, hablé un poco de esto en la charla, pero mi recomendación si eres nuevo en la programación de IoT, consigue una Raspberry Pi, es como un entorno basado en UNIX, así que si estás acostumbrado a programar en una Mac o en Linux, es lo mismo. Sí, obtén un entorno Node completo en él y simplemente juega, lo más fácil de hacer es hacer que un LED parpadee, encenderse y apagarse, como, sí. Ni siquiera sé, en realidad, uno de mis primeros proyectos fue una aplicación web que podía traducir texto a código Morse, así que simplemente parpadeaba código Morse para el mensaje que estuvieras haciendo. Sí, no sé. Me gusta, quiero decir, ese fue un circuito tan fácil, pero hacer un divertido proyecto web con él fue muy divertido. Sí, ya no está en funcionamiento.

Practical IoT Projects and Conclusion

Short description:

Si estás comenzando con IoT, es mejor hacer lo que sabes. Hay muchos proyectos prácticos y cotidianos de IoT que puedes explorar, como bloqueadores de anuncios en toda la red y almacenamiento conectado a la red. También puedes crear proyectos de arte o simplemente experimentar con proyectos para principiantes de Raspberry Pi. Únete a Joe en sus salas de conferencias en Spatial Chat para más discusiones.

Sí, creo que todos los que comienzan con IoT siempre comienzan con el roster, es el más común y sí. Oh, totalmente. Y como no puedes meterte en ello, yo me metí en los chips embebidos más avanzados y cosas más pequeñas y geniales, pero si estás comenzando, ¿por qué complicarte la vida? simplemente haz lo que sabes, sabes, estoy de acuerdo.

Entonces, la pregunta es, en tu opinión, ¿cuáles son algunos otros proyectos prácticos o cotidianos de IoT que has encontrado? Um, quiero decir, cualquier cosa que tenga un chip. Personalmente, me gustan un montón de proyectos privados geniales que son proyectos de IoT, como mi pie hole, es una de las cosas más geniales que uso actualmente. No hice pie hole, es como un bloqueador de anuncios en toda la red que funciona en el DNS, lo cual es súper genial. Hice un NOS o almacenamiento conectado a la red con Raspberry Pi, lo cual es genial. Pequeños proyectos de arte. La idea es que puedes hacer cosas prácticas para tu hogar, puedes hacer proyectos de arte tontos, puedes hacer cosas inútiles. Depende de lo que quieras hacer. Solo búscalo en Google como proyectos para principiantes de Raspberry Pi, encontrarás un montón de cosas geniales para hacer. Ese es un gran consejo. Gracias, Joe.

Parece que no tenemos más preguntas, pero por favor únete a Joe en sus salas de conferencias en Spatial Chat. El enlace para unirse está en la línea de tiempo. Gracias Joe. Nos vemos más tarde. Gracias. Adiós. Adiós.

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

It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
Do you know what’s really going on in your node_modules folder? Software supply chain attacks have exploded over the past 12 months and they’re only accelerating in 2022 and beyond. We’ll dive into examples of recent supply chain attacks and what concrete steps you can take to protect your team from this emerging threat.
You can check the slides for Feross' talk here.
Towards a Standard Library for JavaScript Runtimes
Node Congress 2022Node Congress 2022
34 min
Towards a Standard Library for JavaScript Runtimes
Top Content
You can check the slides for James' talk here.
Out of the Box Node.js Diagnostics
Node Congress 2022Node Congress 2022
34 min
Out of the Box Node.js Diagnostics
In the early years of Node.js, diagnostics and debugging were considerable pain points. Modern versions of Node have improved considerably in these areas. Features like async stack traces, heap snapshots, and CPU profiling no longer require third party modules or modifications to application source code. This talk explores the various diagnostic features that have recently been built into Node.
You can check the slides for Colin's talk here. 
ESM Loaders: Enhancing Module Loading in Node.js
JSNation 2023JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
Native ESM support for Node.js was a chance for the Node.js project to release official support for enhancing the module loading experience, to enable use cases such as on the fly transpilation, module stubbing, support for loading modules from HTTP, and monitoring.
While CommonJS has support for all this, it was never officially supported and was done by hacking into the Node.js runtime code. ESM has fixed all this. We will look at the architecture of ESM loading in Node.js, and discuss the loader API that supports enhancing it. We will also look into advanced features such as loader chaining and off thread execution.
Node.js Compatibility in Deno
Node Congress 2022Node Congress 2022
34 min
Node.js Compatibility in Deno
Can Deno run apps and libraries authored for Node.js? What are the tradeoffs? How does it work? What’s next?
Multithreaded Logging with Pino
JSNation Live 2021JSNation Live 2021
19 min
Multithreaded Logging with Pino
Top Content
Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user.In the upcoming version 7, we will solve this problem and increase throughput at the same time: we are introducing pino.transport() to start a worker thread that you can use to transfer your logs safely to other destinations, without sacrificing neither performance nor the developer experience.

Workshops on related topic

Node.js Masterclass
Node Congress 2023Node Congress 2023
109 min
Node.js Masterclass
Top Content
Workshop
Matteo Collina
Matteo Collina
Have you ever struggled with designing and structuring your Node.js applications? Building applications that are well organised, testable and extendable is not always easy. It can often turn out to be a lot more complicated than you expect it to be. In this live event Matteo will show you how he builds Node.js applications from scratch. You’ll learn how he approaches application design, and the philosophies that he applies to create modular, maintainable and effective applications.

Level: intermediate
Build and Deploy a Backend With Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Build and Deploy a Backend With Fastify & Platformatic
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.
0 to Auth in an Hour Using NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
Building a Hyper Fast Web Server with Deno
JSNation Live 2021JSNation Live 2021
156 min
Building a Hyper Fast Web Server with Deno
WorkshopFree
Matt Landers
Will Johnston
2 authors
Deno 1.9 introduced a new web server API that takes advantage of Hyper, a fast and correct HTTP implementation for Rust. Using this API instead of the std/http implementation increases performance and provides support for HTTP2. In this workshop, learn how to create a web server utilizing Hyper under the hood and boost the performance for your web apps.
GraphQL - From Zero to Hero in 3 hours
React Summit 2022React Summit 2022
164 min
GraphQL - From Zero to Hero in 3 hours
Workshop
Pawel Sawicki
Pawel Sawicki
How to build a fullstack GraphQL application (Postgres + NestJs + React) in the shortest time possible.
All beginnings are hard. Even harder than choosing the technology is often developing a suitable architecture. Especially when it comes to GraphQL.
In this workshop, you will get a variety of best practices that you would normally have to work through over a number of projects - all in just three hours.
If you've always wanted to participate in a hackathon to get something up and running in the shortest amount of time - then take an active part in this workshop, and participate in the thought processes of the trainer.
Mastering Node.js Test Runner
TestJS Summit 2023TestJS Summit 2023
78 min
Mastering Node.js Test Runner
Workshop
Marco Ippolito
Marco Ippolito
Node.js test runner is modern, fast, and doesn't require additional libraries, but understanding and using it well can be tricky. You will learn how to use Node.js test runner to its full potential. We'll show you how it compares to other tools, how to set it up, and how to run your tests effectively. During the workshop, we'll do exercises to help you get comfortable with filtering, using native assertions, running tests in parallel, using CLI, and more. We'll also talk about working with TypeScript, making custom reports, and code coverage.