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.

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

FAQ

Una Raspberry Pi es una supercomputadora pequeña que tiene su propio sistema operativo, permitiendo ejecutar juegos, procesamiento y programación. Se pueden usar varios sistemas operativos como Linux y Windows, y es posible expandir su memoria. Aunque es factible utilizarla para crear aplicaciones de producción con Node.js, no es lo más recomendado.

Los microcontroladores son dispositivos más pequeños comparados con computadoras completas y actúan como microservicios del hardware. Son útiles para tareas específicas como controlar luces o cualquier otro dispositivo electrónico debido a su bajo costo y capacidad de procesamiento limitada.

En proyectos de IoT, una Raspberry Pi puede ser usada para desarrollar servidores HTTP, controlar dispositivos como cámaras y sensores, y hasta realizar tareas más complejas como reconocimiento facial y procesamiento de datos con ayuda de APIs y hardware adicional.

El presentador enfrentó varios desafíos, incluyendo la comprensión y manejo de C++, problemas con la memoria y el procesamiento en microcontroladores, y la implementación de funcionalidades complejas como el control de dispositivos a través de diferentes tipos de señales y sensores.

El presentador sugiere utilizar plataformas como Node-RED para facilitar la programación sin código y aprovechar lenguajes como JavaScript para reutilizar conocimientos existentes. Además, recomienda usar plataformas que faciliten la carga de código y la gestión de dispositivos a través de redes.

Esperino es una plataforma que permite programar microcontroladores usando JavaScript. Ofrece la posibilidad de arrastrar y soltar componentes y cargar código a través de SSH, facilitando la gestión de dispositivos conectados sin necesidad de interacciones físicas directas.

La automatización no solo simplifica tareas repetitivas y mejora la eficiencia en el hogar, sino que también representa una oportunidad para aprender y aplicar conocimientos de programación en proyectos personales, agregando valor y personalización a la experiencia del hogar inteligente.

Erick Wendel
Erick Wendel
22 min
16 Jun, 2022

Comments

Sign in or register to post your comment.

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.

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é...

QnA

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

Construyendo Interfaces Controladas por el Cerebro en JavaScript
JSNation Live 2021JSNation Live 2021
27 min
Construyendo Interfaces Controladas por el Cerebro en JavaScript
Top Content
Learn how to build brain-controlled interfaces using JavaScript and brain sensors. Understand the functions of different parts of the brain and how they relate to sensor placement. Explore examples of calm and focus detection, as well as the Kinesis API for mental commands. Discover the applications of brain-controlled interfaces, such as scrolling web pages and password-less authentication. Understand the limits and opportunities of brain control and the potential for using brain sensors in medical applications.
Creando lo Imposible: Virtualización X86 en el Navegador con WebAssembly
JSNation 2022JSNation 2022
21 min
Creando lo Imposible: Virtualización X86 en el Navegador con WebAssembly
ChirpX is a technology to securely run binary code in the browser, written in C++ and compiled to JavaScript WebAssembly. It can run a full virtualized system in the browser, including Bash and other languages like Python and JavaScript. ChirpX aims for scalability and the ability to work with large code bases, supporting multiprocessing and multithreading. It uses a two-tiered execution engine with an interpreter and a JIT engine. Future plans include running the full X.Org server in the browser and implementing the Windows system call. WebVM, the underlying technology, has a virtual file system backed by Cloudflare.
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
This Talk discusses atomic deployment for JavaScript and TypeScript, focusing on automated deployment processes, Git hooks, and using hard links to copy changes. The speaker demonstrates setting up a bare repository, configuring deployment variables, and using the post-receive hook to push changes to production. They also cover environment setup, branch configuration, and the build process. The Talk concludes with tips on real use cases, webhooks, and wrapping the deployment process.
Pruebas de rendimiento efectivas para su servidor con Autocannon
TestJS Summit 2021TestJS Summit 2021
36 min
Pruebas de rendimiento efectivas para su servidor con Autocannon
Top Content
Tamar is an experienced code writer and architect with expertise in Node.js. Performance testing can be confusing, but understanding terms like throughput and the 99th percentile is crucial. The 99th percentile is important for making commitments and ensuring customer satisfaction. AutoCanon is a powerful tool for simulating requests and analyzing server performance. It can be installed globally or used as a library in Node.js. Autocannon is preferred over Gatling for performance testing and can be integrated with end-to-end tests in Cypress.
Makepad - Aprovechando Rust + Wasm + WebGL para construir aplicaciones multiplataforma increíbles
JSNation 2022JSNation 2022
22 min
Makepad - Aprovechando Rust + Wasm + WebGL para construir aplicaciones multiplataforma increíbles
Top Content
Welcome to MakePad, a new way to build UI for web and native using WebAssembly and Rust. JavaScript is not suitable for complex applications like IDEs and design tools. Rust, a new programming language, was used to reimagine MakePad, resulting in a fast and efficient platform. MakePad offers live editing, high CPU performance, and the ability to load native instrument components. The future of MakePad includes an open-source release, a design tool, and support for importing 3D models.

Workshops on related topic

Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
TestJS Summit 2021TestJS Summit 2021
85 min
Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
Workshop
Bonnie Schulkin
Bonnie Schulkin
¿Incluyen tus pruebas automatizadas verificaciones de accesibilidad? Este masterclass cubrirá cómo comenzar con jest-axe para detectar violaciones de accesibilidad basadas en código, y Lighthouse CI para validar la accesibilidad de las páginas completamente renderizadas. Ninguna cantidad de pruebas automatizadas puede reemplazar las pruebas manuales de accesibilidad, pero estas verificaciones se asegurarán de que tus probadores manuales no estén haciendo más trabajo del necesario.
Automatización de pruebas utilizando WebdriverIO
TestJS Summit 2022TestJS Summit 2022
163 min
Automatización de pruebas utilizando WebdriverIO
Workshop
Kevin Lamping
Kevin Lamping
En este masterclass, cubro no solo lo que WebdriverIO puede hacer, sino también cómo lo utilizarás día a día. He construido los ejercicios en torno a escenarios del mundo real que demuestran cómo realmente configurar las cosas. No es solo "qué hacer", sino específicamente "cómo llegar allí". Cubriremos los fundamentos de las pruebas automatizadas de UI para que puedas escribir pruebas mantenibles y útiles para tu sitio web y/o aplicación web.
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
TestJS Summit 2021TestJS Summit 2021
111 min
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
WorkshopFree
Oliver Moradov
Bar Hofesh
2 authors
Como desarrollador, necesitas entregar rápido y simplemente no tienes tiempo para pensar constantemente en seguridad. Aún así, si algo sale mal, es tu trabajo arreglarlo, pero las pruebas de seguridad bloquean tu automatización, crean cuellos de botella y solo retrasan las versiones... pero no tiene por qué ser así...

El escáner de seguridad de NeuraLegion, enfocado en los desarrolladores, Dynamic Application Security Testing (DAST), permite a los desarrolladores detectar, priorizar y remediar problemas de seguridad de manera TEMPRANA, en cada confirmación, sin falsos positivos/alertas, sin ralentizarte.

¡Únete a esta masterclass para aprender diferentes formas en que los desarrolladores pueden acceder a Nexploit y comenzar a escanear sin salir de la terminal!

Recorreremos la configuración de principio a fin, mientras configuramos un pipeline, ejecutamos pruebas de seguridad y analizamos los resultados.

Tabla de contenidos:
- Qué es realmente DAST (Dynamic Application Security Testing) enfocado en los desarrolladores y cómo funciona
- Ver dónde y cómo encaja un DAST moderno y preciso en el CI/CD
- Integrar el escáner Nexploit de NeuraLegion con GitHub Actions
- Comprender cómo se pueden probar las aplicaciones modernas, las API y los mecanismos de autenticación
- Hacer un fork de un repositorio, configurar un pipeline, ejecutar pruebas de seguridad y analizar los resultados
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.
Automatización de pruebas de seguridad para desarrolladores en cada compilación
GraphQL Galaxy 2021GraphQL Galaxy 2021
82 min
Automatización de pruebas de seguridad para desarrolladores en cada compilación
WorkshopFree
Oliver Moradov
Bar Hofesh
2 authors
Como desarrollador, necesitas entregar rápido y simplemente no tienes tiempo para pensar constantemente en seguridad. Aún así, si algo sale mal, es tu trabajo arreglarlo, pero las pruebas de seguridad bloquean tu automatización, crean cuellos de botella y solo retrasan las versiones, especialmente con graphQL... pero no tiene por qué ser así...

El escáner de seguridad de NeuraLegion, enfocado en los desarrolladores, permite detectar, priorizar y remediar problemas de seguridad de manera temprana, en cada confirmación, sin falsos positivos o alertas, sin ralentizarte.

Únete a esta masterclass para aprender diferentes formas en las que los desarrolladores pueden acceder al escáner de seguridad de NeuraLegion y comenzar a escanear sin salir de la terminal!

Recorreremos la configuración de principio a fin, mientras configuramos un pipeline para un objetivo GraphQL vulnerable, ejecutamos pruebas de seguridad y analizamos los resultados.

Tabla de contenidos:
- Qué es realmente el escáner de seguridad de NeuraLegion enfocado en los desarrolladores (Dynamic Application Security Testing) y cómo funciona
- Ver dónde y cómo encaja un escáner moderno y preciso enfocado en los desarrolladores en el CI/CD
- Integrar el escáner de NeuraLegion con GitHub Actions
- Comprender cómo se pueden probar las aplicaciones modernas, GraphQL y otras API y mecanismos de autenticación
- Hacer un fork de un repositorio, configurar un pipeline, ejecutar pruebas de seguridad y analizar los resultados
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