Revista 100% Verde

Automatización con Alexa y Raspberry Pi

Por Soloelectronicos @soloelectronico

Usando una Raspberry Pi y un placa de relés se puede realizar un dispositivo de automatización del hogar gracias a Alexa , !eso si , si domina el ingles!.
En este breve post vamos a ver cómo poder controlar múltiples dispositivos conectados a la Raspberry Pi vía comandos de voz en ingles, de tal modo que como veremos, podamos ontrolar todos los pines GPIO para controlar los dispositivos conectados al GPIO mediante relés u otros circuitos de control y con ello e ncender o apagar cualquier dispositivo eléctrico conectado a estos, simplemente dando las ordenes vocales a Alexa.

Como vemos, pues solo se necesita una Raspberry Pi 3 con una SD, una placa de Reles y por supuesto un altavoz inteligente con Alexa para automatizar cualquier función que deseemos gracias al reconocimiento automático de voz de Alexa.

En el esquema siguiente podemos ver como solo se usa un solo pin de e/s digital : el GPIO 4 para controlar un relé , pero este esquema ,si se requiere, se puede ampliar hasta el máximo de los 24 terminales de e/s de los que dispone una Raspberry Pi.

Es de destacar que ademas el cable de datos, incluso la alimentación del relé se obtiene de los 5V DC de la propia Raspbery Pi, por lo que para la conexión de un circuito de un rele sólo se necesitan 3 cables para comandar la placa (un cable para el control y los dos de la alimentación DC 5v).

Automatización  con Alexa y Raspberry Pi

Los pasos para instalar el software que permitirá interactuar con Alexa en la Raspberry Pi 3 son los siguientes :

  1. Descargue "RASPBIAN STRETCH WITH DESKTOP" y descomprima el fichero "2017-04-10-raspbian-jessie.zip" https://www.raspberrypi.org/downloads/raspbian/
    Automatización  con Alexa y Raspberry Pi
  2. Descargue el programa "win32diskimager-1.0.0-install.exe" de la siguiente URL https://sourceforge.net/projects/win32diskimager/files/latest/download
  3. Instalar "win32diskimager-1.0.0-install.exe"
  4. Conecte la tarjeta mini-sd a su ordenador. Desde el explorador de windows, haga clic derecho en la letra de su unidad de tarjeta SD y haga clic en el menú de formato. En la ventana de formato, seleccione "FAT" en la lista "Sistema de archivos" y haga clic en iniciar. Espere a que la tarea se complete.
    Automatización  con Alexa y Raspberry Pi
  5. Inicie el programa "win32diskimager". Seleccione el archivo de imagen "2017-04-10-raspbian-jessie.img" y la letra de su unidad de tarjeta SD y haga clic en "Escribir" (Espere a que el programa termine de escribir la imagen RASPBIAN en la tarjeta SD)
    Automatización  con Alexa y Raspberry Pi
  6. Una vez que se completa la escritura de la imagen, copie "ssh" (el archivo ssh está vacío) y "wpa_supplicant.conf" a la raíz de la tarjeta sd. Abra "wpa_supplicant.conf" en el editor de texto y actualice ssid (wi-fi name) y contraseña a los valores de su red Wifi.
  7. Inserte la tarjeta SD en Raspberry Pi 3 ,conecte la alimentación y espere a que arranque durante unos 10 segundos
  8. En Windows vaya a ejecutar y escriba "Busque la "Dirección física" que comienza concmd" y escriba b8-27 * y tome nota de la dirección de Internet. arp -a en el símbolo del sistema. Esta es su dirección IP Raspberry Pi3 Wi-Fi en su red. Este resultado también se puede obtener con otras herramientas como WireShark (pc) o Fing (android), siempre que ambos equipos este conectados a la misma red. La dirección MAC generalmente comienza desde b- así que una vez que encuentre la dirección MAC, puede buscar la dirección IP en la columna Internet Address y esta es su dirección IP. Tenga en cuenta esta dirección IP porque necesitará esto para conectar su sesión SSH y también para conectarse por el VNC
    Automatización  con Alexa y Raspberry Pi
  9. Descargue "Putty.exe" de la siguiente URL https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  10. Ejecute "Putty.exe" y escriba la dirección IP en el campo de nombre de host y haga clic en el botón de inicio y haga clic en Sí para abrir una ventana emergente. En la línea de comando del putty, escriba como Login "pi" y p ara la contraseña ingrese "raspberry" y presione enter. Debería ver el prompt "pi @ raspberrypi: ~ $".
    Automatización  con Alexa y Raspberry Pi
  11. Escriba "Reinicie pi3 escribiendo este comando "sudo raspi-config" y vaya a "Opciones de interfaz" y habilite VNC. sudo reboot". Perderá la conexión ssh.
  12. (Opcional) Puede descargar e instalar el cliente de VNC en su pc Inicie sesión con el nombre de usuario "https://www.realvnc.com/download/vnc/windows/ . Conecte VNC a Respberry Pi3 usando la dirección IP. pi" y la contraseña "raspberry". Debería ver el escritorio de la Raspberry Pi 3.
    Automatización  con Alexa y Raspberry Pi
  13. Inicie la sesión de Pi ssh con putty a o localmente a través de VNC y escriba los dos comandos a continuación desde el símbolo del sistema de Pi para actualizarlo: "sudo apt-get update" y "sudo apt-get upgrade" (Esto llevará un tiempo)
  14. Descargue este proyecto github como archivo zip con el siguiente comando "wget https://github.com/nassiramalik/IOT-Pi3-Alexa-Automation/archive/master.zip "
  15. Descomprima el archivo zip descargado con el comando "unzip master.zip" y escriba el comando "cd IOT-Pi3-Alexa-Automation-master" una vez que haya terminado de descomprimir
  16. (Opcional) Ejecute el comando "sudo pip install virtualenv" para instalar virtualenv en Pi
  17. (Opcional) Ejecute el comando "virtualenv ipaa-env" para crear un entorno virtual para su proyecto
  18. (Opcional) Ejecute el comando ". Ipaa-env / bin / activate" para activar el entorno virtual de su proyecto
  19. Ahora ejecute el comando "sudo python3 RPi_name_port_gpio.py" para ejecutar el programa Pi IOT que controla un relé asociado al GPIO4 . También puede usar el comando " "sudo python 3RPi_name_port_gpio_8_Relays.py" para controlar hasta 8 dispositivos o invertir la polaridad en caso de que necesite algunas de esas funcionalidades. Como puede adivinar este es el archivo que ejecutará para iniciar el programa en su Raspberry Pi iniciando un servidor así que presiona enter el programa se inicia en Raspberry Pi y se quedara esperando a Alexa para darle comandos al código Python.
  20. En el código se ha escrito el nombre del dispositivo como "office" (oficina) , pero puede cambiarlo por lo que quiera, simplemente puede entrar y cambiar este texto de la oficina al nombre que desea dar a este dispositivo y Alexa
  21. Ya puede empezar a probar ALexa de modo que puede darle un comando de voz a Alexa para descubrir dispositivos "Alexa discover devices" (Alexa descubre dispositivos), por lo que buscará en su red y descubrirá su Raspberry Pi 3 como un dispositivo IOT.
  22. Dele un comando de voz a Alexa "Turn on the office" (Enciende la oficina), deberá escuchar un sonido de clic de rele y encenderá cualquier carga que tenga coenctada a este
  23. Dele un comando de voz a Alexa "Turn on the office" (Apagar la oficina), debería escuchar un sonido de clic de relevo y la carga conectada al rele dejara de estar alimentada

Alexa siempre necesitara descubrir los nuevos dispositivos de la red , por lo que para que empiece el descubrimiento de dispositivos IOT que hay en su red interna para ello debe presionar el botón para su descubrimiento en la botonera del altavoz o también dele un comando de voz a Alexa para descubrir dispositivos " Alexa discover devices" (Alexa descubre dispositivos) lo cual enviara una difusión para descubrir dispositivos en nuestra red y en la Raspberry pi debería estar respondiendo.

Es obvio que cualquier entrada analógica ( como por ejemplo temperatura ,detección de humedad,luminosidad, ect) también seria interesante poder ser soportada pero eso lo dejaremos para futuras actualizaciones de este interesante proyecto

En el vídeo siguiente nos explican nuevamente los pasos ya comentados:

GitHub Project: https://github.com/nassir-malik/IOT-P...


Volver a la Portada de Logo Paperblog