Cómo he estado utilizando JavaScript para automatizar mi casa

Rate this content
Bookmark

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.

22 min
16 Jun, 2022

Video Summary and Transcription

La charla cubre varios experimentos con JavaScript y C++, incluyendo el control de luces y la creación de un sistema de control de automóviles. El orador comparte sus experiencias con la automatización del hogar y los desafíos de ocultar cables. Explora el uso de JavaScript con Esperino para reconocimiento facial y discute los beneficios y limitaciones de la plataforma. La charla concluye con sugerencias para utilizar JavaScript en proyectos de hardware y oportunidades de aprendizaje.

Available in English

1. Introducción a los experimentos de JavaScript y C++

Short description:

Hola, amigos. Estoy emocionado de compartir algunos consejos y experimentos con JavaScript y C++. El desarrollo de software no es simple, y les mostraré algunos de mis fracasos con hardware. Raspberry Pi es como una supercomputadora con su propio sistema operativo, mientras que los microcontroladores son más pequeños y más baratos. Tienen memoria limitada pero pueden funcionar en paredes y controlar luces.

Hola, amigos. ¿Cómo va todo, gente? ¿Todo bien? Estoy muy emocionado. Ha pasado un tiempo desde mi pandemia y todo esto. Estoy un poco nervioso, pero creo que esto es algo como mi experiencia trabajando en casa y volviendo loca a mi esposa en casa, así que también voy a dar algunos tips al respecto, ¿de acuerdo?

Así que he estado hablando sobre JavaScript, compartiendo un poco de mi conocimiento también. Y hoy les mostraré algo de contenido que he estado haciendo. Todo lo que está aquí ya está en línea, así que pueden tomar fotos, publicar. Por favor, mencionen también el evento, nos ayuda mucho también. Y aquí voy a mostrar algunos experimentos usando tanto JavaScript como C++. Pero no me culpen, no soy un desarrollador de C++, solo estoy tratando de experimentar y en realidad volver loca a mi esposa, ¿verdad? Todo este discurso es solo para volverla loca.

Bueno, sabemos que el software no es algo simple, ¿verdad? Sabemos que luchamos mucho. No soy un experto en lo que he estado haciendo, esto son solo experimentos. Así que más tarde en la sesión de preguntas y respuestas puedo mostrarles algunos fracasos que tuve con mi hardware. De acuerdo. Cuando empecé a trabajar con cosas de IoT, lo primero que pensé fue, oh, debería usar Raspberry Pi para todo. Y luego me di cuenta de que en realidad no es así, ¿verdad? Así que podría usar Raspberry y microcontroladores. Y no sabía qué significaba eso.

Bueno, para responder a esta primera pregunta, una Raspberry Pi es en realidad una supercomputadora, ¿verdad? Tiene su propio sistema operativo. Puedes ejecutar juegos, puedes ejecutar procesamiento. También puedes usarlo para programar si quieres. Puedes usar Linux, Windows y muchos otros sistemas operativos. Y en realidad, puedes expandir la memoria. Es increíble. La gente está usando Node.js dentro de ella para crear aplicaciones de producción. No lo recomiendo, ¿verdad? Pero también puedes hacerlo. De acuerdo. Cuando pasamos al mundo de los microcontroladores, los microcontroladores son un poco más pequeños, ¿verdad? Los llamamos como los microservicios del hardware. Es como una pequeña unidad de procesamiento. Puedes ejecutarlo en tus paredes, controlar tus luces, pero es mucho más barato, ¿verdad? A veces puedes comprarlo por $1 en Aliexpress. Bueno, como pueden ver, todo el sistema tiene alrededor de 320 kilobytes de memoria, ¿verdad? A los desarrolladores de JavaScript no les importa mucho la memoria, ¿verdad? Así que este fue mi primer desafío, y más adelante les mostraré. Es un solo núcleo, pero también podemos simular hilos y otras cosas.

2. Introducción al Proyecto Beer Cane

Short description:

Pero es posible que también hayas oído hablar de los Arduinos. Esta es la versión brasileña. Soy brasileño, así que también traje algo de nuestro país. Pensé, ¿por qué no hacer mi propio asistente? Primero entendamos el proyecto. Esta es mi primera demostración, funcionando dentro de la caña de cerveza. Todo el proyecto fue bueno, pero encender un LED es como un 'hola mundo' más difícil, ¿verdad?

¿Quién ha oído hablar de Arduino? Muy popular, ¿verdad? Esta es la versión brasileña. Soy brasileño, así que también traje algo de nuestro país para mostrarles.

De acuerdo, ahora les presento lo que he estado haciendo o cuál es la diferencia para ustedes para tener un poco de contexto. Y ahora les mostraré algunos experimentos y algunas cosas que no han salido bien también. Al principio pensé, hombre, Raspberry Pi, la gente está usando Raspberry para crear servidores HTTP. Esto es tan aburrido. Curds. Ya no me importan los curds. Creando productos y ese tipo de cosas. Pensé, debería hacer algo interesante.

Me gustan las cervezas. Pensé, ¿por qué no hacer mi propio asistente, verdad? Así que aquí tengo mi caña de cerveza y allí tengo una Raspberry Pi. Les mostraré más tarde cómo funciona. Primero entendamos el proyecto, ¿de acuerdo? Así que podría tener mi caña de cerveza en mi pared principal. Tengo una cámara justo allí. Y cuando vea a un amigo, simplemente lo reconoceré. Y mi caña de cerveza dirá, `oh, bienvenido a casa`. O simplemente hará algunas bromas. Y eso es todo. Pensé, sí, hagámoslo.

Bueno, esta es mi primera demostración. Aquí tengo una Raspberry Pi, una supercomputadora, funcionando dentro de la caña de cerveza, y en el otro lado, tengo otra para reconocer amigos, ¿de acuerdo? Aquí tengo una cámara y estoy usando la API de Azure. No sé nada de machine learning aquí. Solo estoy usando APIs. Pero luego reconozco a mis amigos. Y luego envía un mensaje a través de la caña de cerveza. Cuando reconoce, dice, `oh, bienvenido de nuevo`. Esto es tan... Como dije, todo el proyecto fue bueno, pero encender un LED es como un 'hola mundo' más difícil, ¿verdad? Bueno, pensé...

3. Creando un Sistema de Control de Automóviles

Short description:

Vi a un niño en la película Purge moviendo un automóvil con unas gafas de realidad virtual, y pensé que podría hacer algo similar. Así que hackeé mi controlador de PS3 utilizando Bluetooth y utilicé otros microcontroladores para controlar diferentes aspectos. Funciona bien y ayuda a entender los hilos de procesamiento de diferentes unidades.

Debería hacer algo más interesante, ¿verdad? He visto la película Purge. Vi a un niño moviendo un automóvil con unas gafas de realidad virtual. Pensé... podría hacer algo así. Esta fue mi versión. Bueno, es un MVP, ¿verdad? Soy un desarrollador de backend. Esto es el backend del hardware. Así que simplemente hackeé mi controlador de PS3 utilizando Bluetooth. Allí tengo otros microcontroladores controlando otras cosas. Y aquí, está funcionando. Bueno, esto es algo bueno para entender. Como hilos, ¿verdad? Porque cuando estás acelerando, si intentas tocar la bocina, el automóvil simplemente se detiene. Así que tienes que hacerlo en diferentes unidades de procesamiento. Pero está funcionando muy bien allí. De acuerdo.

4. Experimentos en Casa y Automatización

Short description:

Comencé a probar más en casa, construyendo cables e interfaces para controlar las luces y la puerta principal. Fue una lucha, pero lo suficientemente bueno. Para aquellos que viven con alguien, tengan en cuenta el desorden y los cables. Me mudé a una casa más grande y quería automatizar el apagado de las luces por la noche.

Bueno, comencé a probar más en mi casa. Así que construí algunos cables. Ahora, comienza el desorden, ¿verdad? Pero aquí tengo una interfaz justo aquí. Cuando presiono un botón, las luces cambian un poco. Pero esto controlará mi puerta principal justo allí. Veamos. Como, las luces están cambiando. Voy más rápido allí. Y luego puedo ver que mi puerta está abierta.

Bueno, tuve muchas dificultades aquí. Y tengo muchos cables de los que podemos hablar un poco más tarde. Pero sí. Está bien. Es lo suficientemente bueno.

Pero como dije, tengo algunos tips para aquellos de ustedes que viven con alguien más. Entonces, ¿cuántos de ustedes viven con alguien? Como, padres. De acuerdo. Deberían estar un poco atentos. Porque su fin de semana debería verse así. Como, toda la mesa principal de la cena con muchos de nuestros dispositivos. Muchos de nuestros amigos vienen allí, haciendo muchos proyectos. Y creo que no les gusta ver muchos cables allí. De acuerdo. Comenzando con todo el tema de la automatización. Me acabo de mudar a una casa más grande allí. Y pensé, por la noche, tengo que caminar por toda mi casa. Como, apagando todas las luces. Estaba como, mmm... Soy programador. Soy una persona perezosa.

5. Controlling Light Switch and Adding Sensors

Short description:

Entonces, la idea principal aquí era controlar el interruptor de luz utilizando el microcontrolador ESP8266 y un relé. Tuve algunas dificultades para entenderlo, pero logré hacer que funcionara. También agregué sensores de humedad y temperatura para crear un panel de control. Sin embargo, ocultar los cables fue un desafío y la caja para ocultarlos resultó ser más cara que todo el proyecto. A pesar de eso, mi esposa aprobó el proyecto e incluso lo probó en su Instagram. A lo largo de este proyecto, utilicé C++ y encontré una plataforma que facilitó la carga de código y la gestión de dependencias.

Entonces, intentemos hacer algo. La idea principal aquí era controlar primero el interruptor de luz. ¿De acuerdo? Busqué en Google y utilicé el ESP8266, como un microcontrolador, y tengo un relé. Básicamente, envío un uno al relé y simplemente cortará la energía. Si envío un cero, la energía seguirá fluyendo. Sí, está muy invertido. También tuve algunas dificultades para entenderlo. Pero sí, tengo una cosa para cada luz, y así es como debería funcionar.

Bueno, simplemente encender y apagar los botones no fue suficiente, así que estaba a punto de obtener algunos sensores. Así que obtuve sensores de humedad y temperatura, para poder tener un panel de control. Y empezaré a pensar cómo puedo hacer que las luces se enciendan y apaguen automáticamente. Esto fue el MVP. MVP, ¿verdad? Puedes ver muchos cables ahí. Mi esposa se volvió loca conmigo. Ella dijo que de ninguna manera íbamos a hacer esto. Pero funciona, ¿verdad? Cuando presiono los botones, podemos ver que funciona. Solo una cosa.

Bueno, descubrí otro problema. Toda la idea de IoT es que sea barato, ¿verdad? Pero la pieza más cara fue ocultar los cables. Esta pequeña caja fue más cara que todo el proyecto. Así que podría imprimirlo. Todo el asunto. Pero pensé, bueno, hagamos feliz a mi esposa. Mi esposa aprobó. Vi en su Instagram que lo estaba probando. Y pensé, oh, aprobado por QA, ¿verdad? Para todo este proyecto, he estado utilizando C++. No soy un desarrollador de C++, pero encontré una plataforma que me ayudó mucho a cargar el código, generar las dependencias y funcionar muy bien. Ahí podemos ver, como, puedes tener un archivo YAML en el que puedes poner todas tus configuraciones, tus dependencias y muchas cosas más.

6. Working with Hardware and Node-RED

Short description:

Como desarrollador web, encontré fascinante trabajar con hardware. Escribí tareas de integración y publiqué mi código en la placa para asegurarme de que los sensores funcionaran correctamente. Utilicé Node-RED para crear flujos y una interfaz para mostrar la temperatura, humedad y otros datos. También trabajé en hacer que las luces se encendieran y apagaran como parte de mi MVP.

Pero para mí, como desarrollador web, esto fue lo más interesante. Imagina una cosa. No eres un experto como yo, trabajando con hardware. ¿Qué pasa si pones algún cable en la entrada equivocada? Nunca lo sabrás, ¿verdad? Ya está en la pared. ¿Cómo lo sabes? Así que aquí escribí algunas tareas, algunas tareas de integración que publiqué en mi código en la placa, y luego veo que todos los sensores funcionan bien, y luego puedo ver, realmente, si está funcionando o no. Así que esto fue realmente emocionante para mí. Y como desarrollador, soy una persona perezosa, ¿verdad? Así que he estado usando Node-RED, sin código en este caso. Aquí puedes ver todos mis flujos en la pantalla izquierda para ti, ¿de acuerdo? Y en la pantalla derecha, tenemos los resultados aquí mismo. Así que voy a mostrar primero la interfaz. Así que si haces clic en todos los botones de los interruptores, puedes ver en el backend, simplemente cambiando todos los mensajes, puedes ver la temperatura, la humedad, y aquí voy a mostrar algunos flujos. Bueno, cuando alguien presiona un botón, solo estoy mostrando los registros aquí, no algo como confuso, no algo difícil de hacer. Pero para el clima, tengo dos propiedades JSON que estoy convirtiendo y mostrando en la interfaz también. Y luego, en el último, estoy registrando algunos datos más y tratando de hacer el primer MVP para encender y apagar las luces. Pero esto es solo otro tema, ¿de acuerdo? Bueno, yo era, como desarrollador, ¿verdad?, intentamos automatizar algo.

7. Automatización de tareas y sobreingeniería

Short description:

A veces, automatizar tareas puede llevar más tiempo que hacerlas manualmente. Me enfrenté a una situación similar cuando automatizé la tarea de encender las luces en mi habitación principal. Sin embargo, mi esposa no estaba muy contenta con la solución, ya que encontraba más fácil simplemente hacer clic en un botón.

Automatizar algo que podrías haber hecho en 20 minutos y llevar dos horas, ¿verdad? Así que aquí estaba yo pensando que esto no era lo suficientemente inteligente. Porque tenía algunos botones, ¿verdad?, y creé otro problema. Imagina, voy a mi habitación principal con mis platos y digo, oh, enciende la luz, ¿verdad? Así que pongo toda la comida en la mesa, cojo mi teléfono, me conecto al Wi-Fi, abro la aplicación, hago clic en el botón y luego la luz se enciende, ¿verdad? No te puedes imaginar a mi esposa, ¿verdad?, no estaba muy contenta con eso. Ella decía, oh, ¿no es más fácil simplemente hacer clic en el botón, ¿verdad?, sobreingeniería en mi propia casa.

8. Reconociendo rostros con JavaScript y Esperino

Short description:

A mi esposa le resultaba incómodo hacer clic en un botón para encender las luces, así que decidí probar algo nuevo. Utilicé un sensor ultrasónico para detectar movimiento, pero no siempre era preciso. Entonces pensé, ¿por qué no intentar reconocer rostros? Utilicé un microcontrolador con 5 megabytes de capacidad de procesamiento para crear una prueba de concepto. Inicialmente, tuve dificultades con C++, así que cambié a JavaScript utilizando Esperino, que permite cargar fácilmente código a través de la red. Con solo 120 de memoria flash, podemos hacer que todo funcione con JavaScript.

Ella decía, oh, ¿no es más fácil simplemente hacer clic en el botón, ¿verdad?, sobreingeniería en mi propia casa. Así que pensé, bueno, vamos a intentar hacer algo. Este es mi hermanito y estábamos dibujando una prueba de concepto justo aquí. Estoy utilizando aquí un sensor ultrasónico, es como un radar, simplemente envía señales y las recibe de vuelta. Pero el problema era, somos desarrolladores, ¿verdad? Sabemos que a veces no es 100% seguro.

Bueno, mi esposa le tiene miedo a los fantasmas. Este sensor simplemente está reverberando. Así que a veces las luces se encienden. Imagina en medio de la noche, las luces se encienden de repente. Bueno, pensé, tenemos potencia ahora mismo. Tenemos capacidad de procesamiento ahora mismo que podemos utilizar. Intentemos reconocer rostros. Así que aquí utilizo el microcontrolador que no solo promete detectar rostros, sino también reconocer que eres tú. Hombre, esto es 5 megabytes de capacidad de procesamiento que puede hacer muchas cosas. Bueno, para hacer mi primera prueba de concepto, no intentaba usarlo en la máquina porque era C++. Pensé, oh Dios mío, esto es un desastre. C++ es difícil, sí, claro. Y aquí solo estaba tomando fotos, mirando mis notas y rascando un poco la pantalla aquí. Puedes ver que el video no es muy bueno porque lo estaba publicando en Instagram mientras obtenía algunos resultados. Bueno, C++ es difícil. Es realmente difícil para mí que nunca he tocado C++. Pensé, ¿qué tal si intentamos usar JavaScript para aprovechar mis conocimientos de la web en el hardware, ¿verdad? Para realmente sentir el poder. Descubrí Esperino. ¿Cuántos de ustedes han oído hablar de Esperino? Oh, genial. Esperino tiene muchos beneficios que les mostraré más adelante. Pero lo primero es que es JavaScript. También puedes arrastrar y soltar cosas, pero también puedes cargar tu código usando SSH a través de la red. Así que puedes tener todas las máquinas conectadas a la pared y, a través de la red, puedes enviar señales y cargar nuevo código. Esto es realmente, realmente bueno. Aquí, una cosa en la que debemos tener cuidado cuando usamos microcontroladores es que sabemos que la memoria y el procesamiento son limitados, ¿verdad? Pero aquí, podemos ver que solo se utilizan 120 de memoria flash para hacer que todo funcione con JavaScript.

9. Usando JavaScript con Esperino

Short description:

Es como un intérprete pequeño, muy pequeño, en el que podemos usar JavaScript. Encontré la documentación y decidí reescribir todo. Sin embargo, no funcionó debido a las limitaciones de memoria y procesamiento. Cambiar a la placa ESP32 resolvió el problema. JavaScript es poderoso y usar Esperino facilita el desarrollo. La plataforma tiene margen de mejora y algunas características pueden no funcionar. Sin embargo, JavaScript ofrece beneficios como no necesitar volver a compilar el proyecto cada vez y la capacidad de trabajar de forma remota a través de SSH.

Es como un intérprete pequeño, muy pequeño, en el que podemos usar JavaScript. Bueno, pensé, hombre. Muy fácil, ¿verdad? Vamos a reescribir todo. Simplemente convertir todo a JavaScript. Bueno, encontré la documentación justo aquí, y en la documentación, pensé, bueno, vamos a usar la documentación, vamos a reescribir todo, y luego mi código era algo como esto. Tenía un intervalo, enviar los data, recibir los data, y también enviar la densidad de luz. Y luego puse este código en mi máquina.

Bueno... No funciona, ¿verdad? Simplemente usé toda la memoria y el procesamiento, y pensé, oh, Dios mío, no puedo usar JavaScript para esto. Pero simplemente cambié la placa a ESP32, y todo volvió a funcionar. Así que esta es mi prueba de concepto final para la pieza que pasará a través de la pared, y hagámoslo funcionar. Aquí puedes ver muchos registros. A los desarrolladores de back-end nos encantan los registros, ¿verdad? Tenemos todas las demás cosas funcionando aquí. Pero puedes ver que la cámara aún no funciona correctamente, porque aún no he terminado este proyecto.

Bueno, JavaScript es mágico, ¿verdad? Podemos usar muchas cosas, y para esto, realmente siento el poder. Así que si quieres usar Esperino, puedes usar la interfaz o la terminal y hacer que todo funcione tan fácilmente. Esto no es un tutorial, ¿verdad? Solo estoy mostrando algunos de los desafíos. Bueno, el primer desafío estaba destinado a funcionar en dispositivos Esperino, por lo que usar dispositivos genéricos puede no funcionar bien. La plataforma tiene mucho que mejorar, como algunos errores genéricos, por lo que debemos usarla más para poder mejorarla más. Y para mí, me sentí un impostor cuando vi que asyncuate no funciona. Entonces, muchas características no funcionan en este intérprete, porque es solo una cosa pequeña, ¿verdad? Bueno, y finalmente algunos beneficios, ¿verdad? Creo que eso es todo en esta charla. No necesitas volver a compilar el proyecto cada vez. Cuando trabajaba con C++, era como ir y venir. Compilo, veo errores. Vuelvo, compilo, veo errores. Y a la tercera vez funciona. Así que pensé, no. Usar JavaScript es mucho mejor porque puedes hacerlo a través de SSH de forma remota. Y esa es más o menos la idea. Ayuda mucho, minimiza tu código.

10. Final Thoughts on JavaScript and C++ Experiments

Short description:

Puedes utilizar menos memoria en el procesamiento. Y puedes reutilizar tus conocimientos en JS. Intenta agregar más sensores, no solo botones móviles. Crea algo inteligente para tomar decisiones también. Aprende JavaScript. Todas mis presentaciones están en mi sitio web. Echa un vistazo a mi nuevo curso sobre flujos de Node.js. Sígueme en Twitter y muéstrame tus experimentos. Muchas gracias por recibirme. ¡Woo! ¡Woo! Eso fue alucinante. Me encanta.

Puedes utilizar menos memoria en el procesamiento. Y puedes reutilizar tus conocimientos en JS. Eres un desarrollador web. Puedes hacer algo para asustar a tu mamá. Para mejorar a tu gato. Para jugar con tus amigos por ti si no quieres, ¿verdad?

Somos desarrolladores. Bueno, algunas palabras finales para ti. Creo que esta conferencia es increíble. Es tan bueno estar de vuelta. Todo esto aquí es solo para nosotros... Sé que CRUD paga las cuentas, ¿verdad? Creando productos, creando servicios. Pero cuando intentamos desafiarnos a nosotros mismos, cuando intentamos hacer algo para nosotros, cuando vemos un automóvil en movimiento, podemos enfrentar muchos desafíos nuevos y podemos sentir esa adrenalina, que estamos como, oh, no estoy seguro de si funcionará. Pero cuando funciona, es indescriptible, ¿verdad? Y si estás tratando de comenzar en esto, intenta agregar más sensores, no solo botones móviles. Intenta hacer algo inteligente para tomar decisiones también. Y en realidad, aprende JavaScript, ¿verdad? Sin Async08, podemos volver a los callbacks. Así que sí, es difícil, ¿verdad? Pero también vamos a aprender mucho de JavaScript puro.

Bueno, todas mis presentaciones ya están en mi sitio web si quieres echar un vistazo, todo sobre Node.js, JavaScript que también he estado publicando allí. De hecho, acabo de lanzar un nuevo curso ahora mismo. Es sobre flujos de Node.js. Si quieres aprender la característica más poderosa de Node.js, ve allí y mira, está en prelanzamiento. Y si quieres ver los videos, mi sitio web, sígueme en Twitter, toma algunas fotos. Muéstrame tus experimentos en Twitter, por favor ve allí. Bueno, muchas gracias por recibirme. ¡Woo! ¡Woo! Muchas gracias, Eric. Vamos a seguir transmitiendo. Cree. Muy bien. Bueno, eso fue alucinante. Creo que te excediste. Me encanta.

QnA

Q&A on Learning and HomeKit Support

Short description:

Puedo imaginar que es divertido y desafiante. La mejor manera de aprender es buscar en Google o YouTube. Construir es más barato y más divertido. Probé Azure y Node-RED, pero el cableado lleva más tiempo. No tengo idea sobre el soporte de HomeKit.

Así que puedo imaginar que es muy divertido trabajar en esas cosas. Un poco desafiante. La primera pregunta es de Jen. Oh, es solo un cumplido para tu esposa. Dedicación especial a tu esposa que resistió el divorcio. ¿Sigues usando un anillo? Sí, está tatuado, ¿verdad? Oh, tatuado, así que no puedes divorciarte. Sí, muy inteligente, muy inteligente.

Pregunta de Jaylen. ¿Dónde es el mejor lugar para comenzar a aprender cómo implementar características similares en mi propia casa? Oh, es difícil, ¿verdad? Es como Google, eso es correcto. Oh, justo antes de irnos, tomemos una foto con todos, con las manos para allá, ¿verdad? Solo un segundo. ¿Debo tomarla? Sí, sí, claro. Contemos hasta tres, y luego hagamos algo de ruido, ¿de acuerdo? Cinco, uno, dos, tres, ¡hey! Soy brasileño, tengo que hacer esto, ¿verdad? Una vez más, una vez más. Una vez más. Tres, dos, uno, ¡hey! Bueno, la mejor manera de aprender esto es buscar en Google, ¿verdad? O en YouTube. Intenté encontrar nuevos proyectos sobre James Bond en IoT. Hay algunos chicos con, como, relojes, mostrando llamas y fuegos en el reloj inteligente, ¿verdad? Así que esto es algo que podemos encontrar muchas cosas nuevas también. Sí. Entonces, la siguiente pregunta es de Brittany Joiner. ¿Qué te hizo querer construir esto cuando ya existen aplicaciones y luces inteligentes que puedes automatizar de fábrica? Bueno, creo que lo primero que debemos saber es que somos programadores, ¿verdad? Aprendemos a hacer cosas nuevas. Pero para mí es el precio. Gasto, como, un dólar en un microcontrolador. Si quiero comprar, pagaría como $100, $20, ¿verdad? Y nos perderíamos toda la diversión, ¿verdad? Para nosotros construir algo y crear un nuevo producto es muy barato, ¿verdad? No olvides que tu tiempo tampoco es gratuito. Sí, sí, pero creo que es divertido, ¿verdad? Sí, sí. Muy bien. La siguiente pregunta es de PiroPiro. ¿Alguna vez has probado la plataforma Arduino IoT Cloud en tus proyectos? No, he probado un poco de Azure. He probado Node-RED, pero para el tipo de cosas que he estado haciendo, paso más tiempo intentando cablear los cables que programando o configurando la nube en sí, ¿verdad? De acuerdo. Y la última pregunta es de Anónimo. ¿Cómo es el soporte para HomeKit? Oh, ¿para HomeKit? Para Apple HomeKit. Oh, no tengo idea.

Ideas for Assistant Skills and Beer Can Project

Short description:

Tengo algunas ideas para las habilidades de Google Assistant y Alexa. En el proyecto de la lata de cerveza, puedo instalar y conectar todo para tomar decisiones. Gracias, Eric, por tu charla y por cubrir a última hora. Si quieres hablar con Eric sobre automatización del hogar, visita el stand del ponente.

Tengo- Solo necesitas escribir algunos complementos. Oh. O tal vez un Google- Assistant. Habilidades de Google Assistant. Sí. Algunas habilidades de Alexa, pero eso supongo que es un proyecto completamente diferente.

No, en realidad en la lata de cerveza que construí, puedo instalar y conectar todo y también tomar decisiones. Sí. Muy genial.

Bueno, disfruté mucho tu charla, Eric. Así que gracias también por cubrir el puesto a última hora. Muchas gracias, Eric. Si quieres hablar con Eric, ve al stand del ponente y hablaremos más sobre la automatización del hogar. Gracias, Eric. Valeu. Gracias. Gracias.

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

JSNation Live 2021JSNation Live 2021
27 min
Building Brain-controlled Interfaces in JavaScript
Top Content
Neurotechnology is the use of technological tools to understand more about the brain and enable a direct connection with the nervous system. Research in this space is not new, however, its accessibility to JavaScript developers is.Over the past few years, brain sensors have become available to the public, with tooling that makes it possible for web developers to experiment building brain-controlled interfaces.As this technology is evolving and unlocking new opportunities, let's look into one of the latest devices available, how it works, the possibilities it opens up, and how to get started building your first mind-controlled app using JavaScript.
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: ML in the Browser and Beyond
Discover how to embrace machine learning in JavaScript using TensorFlow.js in the browser and beyond in this speedy talk. Get inspired through a whole bunch of creative prototypes that push the boundaries of what is possible in the modern web browser (things have come a long way) and then take your own first steps with machine learning in minutes. By the end of the talk everyone will understand how to recognize an object of their choice which could then be used in any creative way you can imagine. Familiarity with JavaScript is assumed, but no background in machine learning is required. Come take your first steps with TensorFlow.js!
JSNation 2022JSNation 2022
21 min
Crafting the Impossible: X86 Virtualization in the Browser with WebAssembly
WebAssembly is a browser feature designed to bring predictable high performance to web applications, but its capabilities are often misunderstood.
This talk will explore how WebAssembly is different from JavaScript, from the point of view of both the developer and the browser engine, with a particular focus on the V8/Chrome implementation.
WebVM is our solution to efficiently run unmodified x86 binaries in the browser and showcases what can be done with WebAssembly today. A high level overview of the project components, including the JIT engine, the Linux emulation layer and the storage backend will be discussed, followed by live demos.
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Atomic Deployment for JS Hipsters
Deploying an app is all but an easy process. You will encounter a lot of glitches and pain points to solve to have it working properly. The worst is: that now that you can deploy your app in production, how can't you also deploy all branches in the project to get access to live previews? And be able to do a fast-revert on-demand?Fortunately, the classic DevOps toolkit has all you need to achieve it without compromising your mental health. By expertly mixing Git, Unix tools, and API calls, and orchestrating all of them with JavaScript, you'll master the secret of safe atomic deployments.No more need to rely on commercial services: become the perfect tool master and netlifize your app right at home!
TestJS Summit 2021TestJS Summit 2021
36 min
Effective Performance Testing to your Server with Autocannon
Top Content
Performance testing expertise that is developed for a long time. In order to measure your server performance you need a tool that can efficiently simulate a lot of abilities and give you good measurements according your analysing criteria.Autocannon NPM library gave me exactly that - that library is super easy to install and has a very simple API to work with. Within a really short amount of time you can start do performance testing to your application and get good measurements in development environment and in your performance labs, and generate complicated testing scenarios.In this talk I will introduce Autocannon, explain how to efficiently analyse your server performance with it, and show how it helped me to understand complicated performance issues in my Node.js servers. At the end of this lecture, developers will be able to have the ability to integrate a fast and easy tool in order to measure your server performance.
JSNation 2022JSNation 2022
22 min
Makepad - Leveraging Rust + Wasm + WebGL to Build Amazing Cross-platform Applications
Top Content
In this talk I will show Makepad, a new UI stack that uses Rust, Wasm, and WebGL. Unlike other UI stacks, which use a hybrid approach, all rendering in Makepad takes place on the GPU. This allows for highly polished and visually impressive applications that have not been possible on the web so far. Because Makepad uses Rust, applications run both natively and on the Web via wasm. Makepad applications can be very small, on the order of just a few hundred kilobytes for wasm, to a few megabytes with native. Our goal is to develop Makepad into the UI stack of choice for lightweight and performant cross-platform applications. We intend to ship with our own design application and IDE.

Workshops on related topic

TestJS Summit 2021TestJS Summit 2021
85 min
Automated accessibility testing with jest-axe and Lighthouse CI
Workshop
Do your automated tests include a11y checks? This workshop will cover how to get started with jest-axe to detect code-based accessibility violations, and Lighthouse CI to validate the accessibility of fully rendered pages. No amount of automated tests can replace manual accessibility testing, but these checks will make sure that your manual testers aren't doing more work than they need to.
TestJS Summit 2022TestJS Summit 2022
163 min
Automated Testing Using WebdriverIO
Workshop
In this workshop, I cover not only what WebdriverIO can do, but also how you'll be using it day-to-day. I've built the exercises around real-world scenarios that demonstrate how you would actually set things up. It's not just "what to do," but specifically "how to get there." We'll cover the fundamentals of Automated UI testing so you can write maintainable, useful tests for your website and/or web app.
TestJS Summit 2021TestJS Summit 2021
111 min
JS Security Testing Automation for Developers on Every Build
WorkshopFree
As a developer, you need to deliver fast, and you simply don't have the time to constantly think about security. Still, if something goes wrong it's your job to fix it, but security testing blocks your automation, creates bottlenecks and just delays releases...but it doesn't have to...

NeuraLegion's developer-first Dynamic Application Security Testing (DAST) scanner enables developers to detect, prioritise and remediate security issues EARLY, on every commit, with NO false positives/alerts, without slowing you down.

Join this workshop to learn different ways developers can access Nexploit & start scanning without leaving the terminal!

We will be going through the set up end-to-end, whilst setting up a pipeline, running security tests and looking at the results.

Table of contents:
- What developer-first DAST (Dynamic Application Security Testing) actually is and how it works
- See where and how a modern, accurate dev-first DAST fits in the CI/CD
- Integrate NeuraLegion's Nexploit scanner with GitHub Actions
- Understand how modern applications, APIs and authentication mechanisms can be tested
- Fork a repo, set up a pipeline, run security tests and look at the results
GraphQL Galaxy 2021GraphQL Galaxy 2021
82 min
Security Testing Automation for Developers on Every Build
WorkshopFree
As a developer, you need to deliver fast, and you simply don't have the time to constantly think about security. Still, if something goes wrong it's your job to fix it, but security testing blocks your automation, creates bottlenecks and just delays releases, especially with graphQL...but it doesn't have to...

NeuraLegion's developer-first Dynamic Application Security Testing (DAST) scanner enables developers to detect, prioritise and remediate security issues EARLY, on every commit, with NO false positives / alerts, without slowing you down.

Join this workshop to learn different ways developers can access NeuraLegion's DAST scanner & start scanning without leaving the terminal!

We will be going through the set up end-to-end, whilst setting up a pipeline for a vulnerable GraphQL target, running security tests and looking at the results.

Table of contents:
- What developer-first DAST (Dynamic Application Security Testing) actually is and how it works
- See where and how a modern, accurate dev-first DAST fits in the CI/CD
- Integrate NeuraLegion's scanner with GitHub Actions
- Understand how modern applications, GraphQL and other APIs and authentication mechanisms can be tested
- Fork a repo, set up a pipeline, run security tests and look at the results
JSNation Live 2021JSNation Live 2021
105 min
Build an IoT App With InfluxDB
Workshop
InfluxDB is an open source time series database that empowers developers to build IoT, analytics and monitoring software. It is purpose-built to handle the massive volumes and countless sources of time-stamped data produced sensors, applications and infrastructure.
This workshop showcases a fully functional sample application called IoT Center that is built on InfluxDB. This application demonstrates the capabilities of the InfluxDB platform to develop a JavaScript-enabled time-series-based application. It collects, stores and displays a set of values that include temperature, humidity, pressure, CO2 concentration, air quality, as well as provide GPS coordinates from a set of IoT devices. With this data stored in InfluxDB, the application can query this data for display as well as write data back into the database.
This hands-on workshop will show students how to install this open source code to learn how to query and write to InfluxDB using the InfluxDB JavaScript client, and gain familiarity with the Flux lang query language which is designed for querying, analyzing, and acting on time series data. And finally, collect and visualize performance data of the Node JS application.
Node Congress 2021Node Congress 2021
131 min
IoT Center Workshop by InfluxData
Workshop
InfluxDB is an open source time series database that empowers developers to build IoT, analytics and monitoring software. It is purpose-built to handle the massive volumes and countless sources of time-stamped data produced sensors, applications and infrastructure. This workshop showcases a fully functional sample application called IoT Center that is built on InfluxDB. This application demonstrates the capabilities of the InfluxDB platform to develop a JavaScript-enabled time-series-based application. It collects, stores and displays a set of values that include temperature, humidity, pressure, CO2 concentration, air quality, as well as provide GPS coordinates from a set of IoT devices. With this data stored in InfluxDB, the application can query this data for display as well as write data back into the database.
This hands-on workshop will show students how to install this open source code to learn how to query and write to InfluxDB using the InfluxDB JavaScript client, and gain familiarity with the Flux lang query language which is designed for querying, analyzing, and acting on time series data. And finally, collect and visualize performance data of the Node JS application.
Prerequisites
Registered free InfluxDB Cloud account at https://cloud2.influxdata.comThree options available (via Google account, via Microsoft account or via email)Test login after the registration and save credentials for the workshopInstallation of the git tool (e.g. from https://git-scm.com/downloads)IoT Center cloneRun: git clone https://github.com/bonitoo-io/iot-center-v2Installed nodejs (from https://nodejs.org/en/download)Installed yarn package manager (from https://classic.yarnpkg.com/en/docs/install)Installed required packagesIn the cloned directoryRun: cd appRun: yarn install