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.

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
La neurotecnología es el uso de herramientas tecnológicas para entender más sobre el cerebro y permitir una conexión directa con el sistema nervioso. La investigación en este campo no es nueva, sin embargo, su accesibilidad para los desarrolladores de JavaScript sí lo es.En los últimos años, los sensores cerebrales se han puesto a disposición del público, con herramientas que hacen posible que los desarrolladores web experimenten construyendo interfaces controladas por el cerebro.A medida que esta tecnología evoluciona y desbloquea nuevas oportunidades, vamos a analizar uno de los últimos dispositivos disponibles, cómo funciona, las posibilidades que abre y cómo empezar a construir tu primera aplicación controlada por la mente usando JavaScript.
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á
Descubre cómo aprovechar el aprendizaje automático en JavaScript utilizando TensorFlow.js en el navegador y más allá en esta charla rápida. Inspírate a través de un montón de prototipos creativos que empujan los límites de lo que es posible en el navegador web moderno (las cosas han avanzado mucho) y luego da tus primeros pasos con el aprendizaje automático en minutos. Al final de la charla, todos entenderán cómo reconocer un objeto de su elección que luego se puede utilizar de cualquier manera creativa que puedas imaginar. Se asume familiaridad con JavaScript, pero no se requiere experiencia en aprendizaje automático. ¡Ven y da tus primeros pasos con TensorFlow.js!
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
WebAssembly es una característica del navegador diseñada para brindar un rendimiento predecible y alto a las aplicaciones web, pero sus capacidades a menudo son mal entendidas.
Esta charla explorará cómo WebAssembly es diferente de JavaScript, desde el punto de vista tanto del desarrollador como del motor del navegador, con un enfoque particular en la implementación V8/Chrome.
WebVM es nuestra solución para ejecutar eficientemente binarios x86 sin modificaciones en el navegador y muestra lo que se puede hacer con WebAssembly hoy en día. Se discutirá una descripción general de los componentes del proyecto, incluido el motor JIT, la capa de emulación de Linux y el backend de almacenamiento, seguido de demostraciones en vivo.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!
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
Experiencia en pruebas de rendimiento que se ha desarrollado durante mucho tiempo. Para medir el rendimiento de su servidor, necesita una herramienta que pueda simular eficientemente muchas habilidades y proporcionarle buenas mediciones según sus criterios de análisis.La biblioteca NPM de Autocannon me dio exactamente eso: esa biblioteca es muy fácil de instalar y tiene una API muy simple con la que trabajar. En un corto período de tiempo, puede comenzar a realizar pruebas de rendimiento en su aplicación y obtener buenas mediciones en el entorno de desarrollo y en sus laboratorios de rendimiento, y generar escenarios de prueba complicados.En esta charla presentaré Autocannon, explicaré cómo analizar eficientemente el rendimiento de su servidor con él y mostraré cómo me ayudó a entender problemas de rendimiento complicados en mis servidores Node.js. Al final de esta conferencia, los desarrolladores tendrán la capacidad de integrar una herramienta rápida y fácil para medir el rendimiento de su servidor.
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
En esta charla mostraré Makepad, una nueva pila de UI que utiliza Rust, Wasm y WebGL. A diferencia de otras pilas de UI, que utilizan un enfoque híbrido, todo el renderizado en Makepad se realiza en la GPU. Esto permite aplicaciones altamente pulidas y visualmente impresionantes que hasta ahora no han sido posibles en la web. Debido a que Makepad utiliza Rust, las aplicaciones se ejecutan tanto de forma nativa como en la Web a través de wasm. Las aplicaciones de Makepad pueden ser muy pequeñas, del orden de solo unos pocos cientos de kilobytes para wasm, hasta unos pocos megabytes con nativo. Nuestro objetivo es desarrollar Makepad en la pila de UI de elección para aplicaciones multiplataforma ligeras y de alto rendimiento. Tenemos la intención de enviar con nuestra propia aplicación de diseño e IDE.

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