Creación de un detector de habitaciones para dispositivos IoT en Mac OS

 

 

 

  • Clase magistral de CSS moderno avanzado, con Manuel Matuzović
  • Implemente rápidamente. Implementar inteligentemente

  • Índice
    1. Lecturas adicionales sobre SmashingMag:
  • Requisitos previos
  • Paso 0: configurar el entorno de trabajo
  • Paso 1: Aplicación de escritorio inicial
  • En este tutorial, creará una aplicación de escritorio que predice en qué habitación se encuentra utilizando un algoritmo simple de aprendizaje automático: mínimos cuadrados. El código se aplica a cualquier plataforma, pero solo proporcionamos instrucciones de instalación de dependencias para Mac OSX.

     

    Saber en qué habitación se encuentra habilita varias aplicaciones de IoT, desde encender la luz hasta cambiar los canales de televisión. Entonces, ¿cómo podemos detectar el momento en que usted y su teléfono están en la cocina, el dormitorio o la sala de estar? Con el hardware básico actual, existen innumerables posibilidades:

    Una solución es equipar cada habitación con un dispositivo bluetooth . Una vez que su teléfono esté dentro del alcance de un dispositivo bluetooth, sabrá en qué habitación se encuentra, según el dispositivo bluetooth. Sin embargo, mantener una variedad de dispositivos Bluetooth supone una sobrecarga importante, desde reemplazar baterías hasta reemplazar dispositivos disfuncionales. Además, la proximidad al dispositivo Bluetooth no siempre es la respuesta: si estás en el salón, junto a la pared compartida con la cocina, los electrodomésticos de tu cocina no deberían empezar a producir comida.

    Otra solución, aunque poco práctica, es utilizar el GPS . Sin embargo, tenga en cuenta que el GPS funciona mal en interiores, donde la multitud de paredes, otras señales y otros obstáculos causan estragos en la precisión del GPS.

    Nuestro enfoque, en cambio, es aprovechar todas las redes WiFi dentro del alcance , incluso aquellas a las que su teléfono no está conectado. Así es como: considere la potencia del WiFi A en la cocina; digamos que es 5. Dado que hay una pared entre la cocina y el dormitorio, podemos esperar razonablemente que la potencia de WiFi A en el dormitorio sea diferente; digamos que es 2. Podemos aprovechar esta diferencia para predecir en qué habitación estamos. Es más: la red WiFi B de nuestro vecino solo se puede detectar desde la sala de estar, pero es efectivamente invisible desde la cocina. Eso hace que la predicción sea aún más fácil. En resumen, la lista de todos los WiFi dentro del alcance nos brinda abundante información.

    Este método tiene las distintas ventajas de:

    1. no requerir más hardware;
    2. confiar en señales más estables como WiFi;
    3. Funciona bien donde otras técnicas como el GPS son débiles.

    Cuantas más paredes, mejor, ya que cuanto más dispares sean las potencias de la red WiFi, más fácil será clasificar las habitaciones. Creará una aplicación de escritorio simple que recopila datos, aprende de ellos y predice en qué habitación se encuentra en un momento dado.

     

    Lecturas adicionales sobre SmashingMag:

    • El auge de la interfaz de usuario conversacional inteligente
    • Aplicaciones del aprendizaje automático para diseñadores
    • Cómo crear prototipos de experiencias de IoT: construcción del hardware
    • Diseñando para el Internet de las cosas emocionales

    Requisitos previos

    Para este tutorial, necesitará una Mac OSX. Si bien el código puede aplicarse a cualquier plataforma, solo proporcionaremos instrucciones de instalación de dependencias para Mac.

    • Mac OS X
    • Homebrew, un administrador de paquetes para Mac OSX. Para instalar, copie y pegue el comando en brew.sh
    • Instalación de NodeJS 10.8.0+ y npm
    • Instalación de Python 3.6+ y pip. Consulte las primeras 3 secciones de "Cómo instalar virtualenv, instalar con pip y administrar paquetes"

    Paso 0: configurar el entorno de trabajo

    Su aplicación de escritorio se escribirá en NodeJS. Sin embargo, para aprovechar bibliotecas computacionales más eficientes como numpy, el código de entrenamiento y predicción se escribirá en Python. Para comenzar, configuraremos sus entornos e instalaremos dependencias. Cree un nuevo directorio para albergar su proyecto.

    mkdir ~/riot

    Navegue hasta el directorio.

    cd ~/riot

    Utilice pip para instalar el administrador de entorno virtual predeterminado de Python.

    sudo pip install virtualenv

    Cree un entorno virtual Python3.6 denominado riot.

    virtualenv riot --python=python3.6

    Activa el entorno virtual.

    source riot/bin/activate

    Su mensaje ahora está precedido por (riot). Esto indica que hemos ingresado exitosamente al entorno virtual. Instale los siguientes paquetes usando pip:

    • numpy: Una biblioteca de álgebra lineal eficiente
    • scipy: Una biblioteca informática científica que implementa modelos populares de aprendizaje automático.
    pip install numpy==1.14.3 scipy==1.1.0

    Con la configuración del directorio de trabajo, comenzaremos con una aplicación de escritorio que registra todas las redes WiFi dentro del alcance. Estas grabaciones constituirán datos de entrenamiento para su modelo de aprendizaje automático. Una vez que tengamos los datos a mano, escribirá un clasificador de mínimos cuadrados, entrenado con las señales WiFi recopiladas anteriormente. Finalmente, usaremos el modelo de mínimos cuadrados para predecir la habitación en la que te encuentras, en función de las redes WiFi dentro del alcance.

    Paso 1: Aplicación de escritorio inicial

    En este paso, crearemos una nueva aplicación de escritorio usando Electron JS. Para comenzar, usaremos el administrador de paquetes de Node npmy una utilidad de descarga wget.

    brew install npm wget

    Para comenzar, crearemos un nuevo proyecto de Node.

    npm init

    Esto le solicitará el nombre del paquete y luego el número de versión. Presione ENTERpara aceptar el nombre predeterminado rioty la versión predeterminada de 1.0.0.

    package name: (riot)version: (1.0.0)

    Esto le solicita una descripción del proyecto. Agregue cualquier descripción que no esté vacía y que desee. A continuación, la descripción esroom detector

    description: room detector

    Esto le solicitará el punto de entrada o el archivo principal desde el que ejecutar el proyecto. Ingresar app.js.

    entry point: (index.js) app.js

    Esto le solicita el test commandy git repository. Presione ENTERpara omitir estos campos por ahora.

    test command:git repository:

    Esto le solicita keywordsy author. Complete los valores que desee. A continuación, utilizamos iot, wifipara palabras clave y uso John Doepara el autor.

    keywords: iot,wifiauthor: John Doe

    Esto le solicitará la licencia. Presione ENTERpara aceptar el valor predeterminado de ISC.

    license: (ISC)

    En este punto, npmle aparecerá un resumen de la información hasta el momento. Su resultado debería ser similar al siguiente.

    { "name": "riot", "version": "1.0.0", "description": "room detector", "main": "app.js", "scripts": { "test": "echo "Error: no test specified"" exit 1"" } 




    Tal vez te puede interesar:

    1. Hacer un Polyfill completo para el elemento de detalles HTML5
    2. Más allá del navegador: de aplicaciones web a aplicaciones de escritorio
    3. Creación de una aplicación basada en Spotify utilizando Nuxt.js
    4. Cómo crear una API de Node.js para Ethereum Blockchain

    Creación de un detector de habitaciones para dispositivos IoT en Mac OS

    Creación de un detector de habitaciones para dispositivos IoT en Mac OS

    Clase magistral de CSS moderno avanzado, con Manuel Matuzović Implemente rápidamente. Implementar inteligentemente Índice

    programar

    es

    https://aprendeprogramando.es/static/images/programar-creacion-de-un-detector-de-habitaciones-para-dispositivos-iot-en-mac-os-939-0.jpg

    2024-05-20

     

    Creación de un detector de habitaciones para dispositivos IoT en Mac OS
    Creación de un detector de habitaciones para dispositivos IoT en Mac OS

    Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

     

     

    Top 20