Automatización con Alexa y Raspberry Pi


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 encender 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).

 

esquema.PNG

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/
  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.                                                             texto alternativo
  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)                                                                                                texto alternativo
  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 «cmd» y escriba arp -a en el símbolo del sistema. Busque la «Dirección física» que comienza con b8-27 * y tome nota de la dirección de Internet. 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                   texto alternativo
  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 para la contraseña ingrese «raspberry» y presione enter. Debería ver el  prompt  «pi @ raspberrypi: ~ $».                             texto alternativo
  11. Escriba «sudo raspi-config» y vaya a «Opciones de interfaz» y habilite VNC. Reinicie pi3 escribiendo este comando «sudo reboot«. Perderá la conexión ssh.
  12. (Opcional) Puede descargar e instalar el cliente de VNC en su pc https://www.realvnc.com/download/vnc/windows/ . Conecte VNC a Respberry Pi3 usando la dirección IP. Inicie sesión con el nombre de usuario «pi» y la contraseña «raspberry«.Debería ver el escritorio de la Raspberry Pi 3.           texto alternativo
  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…

 

Anuncio publicitario

Primeros pasos en IoT con Raspberry Pi


La Raspberry Pi es una  plataforma muy popular para la creación de prototipos, lo que hacen que sea  también sea una  plataformas interesante para el Internet de las Cosas (IOT) gracias a su potencia  y bajo coste.  Pero la construcción de un dispositivo IoT no  es simplemente crear una aplicación ya que  realmente se necesita  una gran cantidad de infraestructura de apoyo a la  solución de la IoT.

MyDevices es una empresa de orientación al IoT  que  desarrolla plataformas de  IoT  creando  soluciones de aplicaciones que simplifican el mundo conectado,  siendo  la primera en crear una solución basada en arrastrar y soltar del mundo IoT llamada Cayenne.

Resumidamente algunas  características clave de esta novedosa  plataforma son las siguientes:

  •  Una aplicación móvil para configurar, el monitor y los dispositivos de control y sensores desde cualquier lugar.
  • Fácil instalación que conecta rápidamente los dispositivos, sensores, actuadores, y las extensiones en cuestión de minutos.
  • Motor de reglas para desencadenar acciones a través de dispositivos.
  • Panel personalizable con widgets de visualización de arrastrar y soltar.
  • Programación de las luces, motores y actuadores
  •  Control de GPIO que se pueden configurar desde una aplicación móvil o en el salpicadero.
  • Acceso remoto instantáneo desde el teléfono o la computadora.
  • Para construir un proyecto de la IO a partir de cero se ha logrado el objetivo de proporcionar  un Proyecto Generador de IO que reduce el tiempo de desarrollo de horas en lugar de meses.

 

Como veremos , hablamos de un constructor de sitio web fácil de usar, pero para proyectos de IOT, así que veamos  los pasos para crear un proyecto de IoT con esta potente herramienta usando  su Raspberry Pi

Paso1

En primer lugar , si no  tiene instalado Raspbian en su Raspberry Pi,  tendrá que crearse una nueva imagen  con esa distribución .

Para instalar Raspbian vaya a esta url . Verá que hay  dos versiones:

  • RASPBIAN JESSIE :Imagen de escritorio completo basado en Debian Jessie
    Versión: mayo de 2016
    Fecha de publicación: 27/05/2016
    Versión de kernel: 4.4
  • RASPBIAN JESSIE LITE:versión  mínima de la imagen basada en Debian Jessie
    Versión: mayo de 2016
    Fecha de publicación: 27/05/2016
    Versión de kernel: 4.4

Obviamente si la SD es suficiente grande , lo interesante es descargar la primera  en lugar de la versión mínima

Una vez decidida,  descargue la imagen correspondiente  en su ordenador y siga los siguientes pasos:

  • Inserte la tarjeta SD en el lector de tarjetas SD  de su ordenador comprobando cual es la letra de unidad asignada. Se puede ver fácilmente la letra de la unidad, tal como G :, mirando en la columna izquierda del Explorador de Windows.
  • Puede utilizar la ranura para tarjetas SD, si usted tiene uno, o un adaptador SD barato en un puerto USB.
  • Descargar la utilidad Win32DiskImager desde la página del proyecto en SourceForge como un archivo zip; puede ejecutar esto desde una unidad USB.
  • Extraer el ejecutable desde el archivo zip y ejecutar la utilidad Win32DiskImager; puede que tenga que ejecutar esto como administrador. Haga clic derecho en el archivo y seleccione Ejecutar como administrador.
  • Seleccione el archivo de imagen que ha extraído anteriormente de Raspbian.
  • Seleccione la letra de la unidad de la tarjeta SD en la caja del dispositivo. Tenga cuidado de seleccionar la unidad correcta; si usted consigue el incorrecto puede destruir los datos en el disco duro de su ordenador! Si está utilizando una ranura para tarjetas SD en su ordenador y no puede ver la unidad en la ventana Win32DiskImager, intente utilizar un adaptador SD externa.
  • Haga clic en Escribir y esperar a que la escritura se complete.
  • Salir del administrador de archivos  y expulsar la tarjeta SD.
  • Ya puede insertar la SD en su Raspberry Pi en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspeberry arranca con la nueva imagen

 

Paso 2:

Para comenzar la configuración de su Raspberry   ,lo primero es crear una cuenta gratuita en cayenne-mydevices.com que servirá tanto para entrar en la consola web como en la aplicación movil.

Para ello, vaya a la siguiente url  e introduzca simplemente su nombre ,dirección de correo y una clave de acceso  que  utilizara para validarse.

paso1.png

 

 

Paso 2

Una vez registrado , solamente tendrá que elegir la plataforma  para avanzar en el asistente. Obviamente   seleccionamos  en nuestro caso   Raspberry Pi.

paso2.png

Paso 3

Para  avanzar  en el asistente deberemos  tener instalado   Raspbian en nuestra Raspberry Pi que instalamos en el paso 1  .

Esta versión trae pre-instalado con un montón de software para la educación,  programación y uso general contando con  Python, Scratch, Sonic Pi, Java

Es interesante destacar  que Raspbian  se puede instalar con NOOBS o descargando  la imagen   siguiendo la  guía de instalación explicada en el paso 1.

 

 

 

paso3

 

 

paso 4

paso4

 

Ahora lo siguiente es instalar la aplicación móvil   , que esta disponible tanto para IOS como Android.

En caso de Android este es el enlace para su descarga en Google Play

Es muy interesante destacar que  desde la aplicación para el  smartphone  se puede automáticamente  localizar e instalar el software  myDevices Cayenne en su Raspberry Pi, para lo cual ambos ( smarphone y Raspberry Pi )  han de estar conectados a la misma red,por ejemplo la  Raspberry Pi al router con un cable ethernet  y su samartphone a la wifi de su hogar ( no funcionara si esta conectada por 3G o 4G)

Una vez instalada la app , cuando hayamos introducido nuestras credenciales , si esta la Raspberry en la misma red  y no tiene instalado el agente instalara automáticamente este   como podemos ver en el siguiente video

Hay otra opción de instalar  myDevices Cayenne en su Raspberry  Pi, usando el  Terminal en su  Pi o bien pr SSH.

Ejecute tan sólo los dos siguientes comandos ::

wget https://cayenne.mydevices.com/dl/rpi_f0p65dl4fs.sh
sudo bash rpi_f0p65dl4fs.sh -v

 

 

!Ya esta listo! Ya sólo tiene que empezar a conectar dispositivos y sensores a sus raspberry Pi por medio del conector  GPIO  y  por supuesto  también añadirlos en la consola de Cayenne  ,  y con esto ya podrá ver el hw  que añada  en tiempo real tanto en el interfaz web como en su smartphone.

Por supuesto podrá ver el historial , programar eventos , etc, pero toda esa configuración la reservamos para un nuevo post

 

Por ultimo mencionar que estan  ofreciendo 50 dólares a través de PayPal a cualquier usuario para cada proyecto que se suaba a  Cayyene con el objetivo de mostrar que muchos, muchos usuarios vean a Cayyenne como uan aplicación práctica.

Todos los  lectores de este sitio son bienvenidos a entrar, !Ademas  se puede enviar varios proyectos  por cada participante!

Puede consultar  mas detalles de esta oportunidad en la siguinte url: http://community.mydevices.com/t/submit-your-cayenne-projects-50-just-for-participating/1158