Raspberry Pi como alternativa al ChromeCast


Chromecast es un adaptador de medios de comunicación streaming de Google que permite a los usuarios reproducir contenidos online como videos y música en un televisor digital.
El adaptador es un dongle   de pequeño  tamaño qeu cuesta unos 40€   y que se conecta al puerto HDMI de la TV y por otro lado con un cable de  alimentación se conecta a un puerto USB del TV  solamente con fines de alimentación  proporcionando los 5V DC  para mantenerlo activo

Gracias a una aplicación móvil  Chromecast puede transmitir contenido desde un creciente número de fuentes incluyendo Netflix, Hulu Plus, YouTube, Google Play música y películas y el navegador Chrome. Esencialmente se   puede utilizar un smartphone, tablet tanto Android como Appple ( iPhone  o Ipad) , o incluso también  un ordenador portátil o  de escritorio como un control remoto de TV donde como peculiaridad , una vez que la transmisión comienza, no es necesario mantener la aplicación abierta, y el dispositivo puede utilizarse para otros fines.
Incluso  se puede convertir  una  TV en un marco de fotos o personalizada on Google Fotos, Facebook, titulares de noticias y mucho más.

Rasbebrry Pi puede usarse como alternativa  al Chromecast aunque con algunas limitaciones pues no es  un clon directo de Chromecast, pero  gracias a esta solución  que vamos a ver   será posible transmitir vídeos de Youtube así como audio local y archivos de vídeo directamente desde su smartphone utilizando  simplemente una aplicación de Android.

El  hardware necesario que lo permite es el siguiente :

  • Raspberry Pi 3 (unos 33€ en  Amazon)-  Todos los modelos funcionarán, pero entonces será necesario un dongle USB Wifi ai).
  • Carcasa para  Raspeberry Pi o en su defecto una caja de plastico reciclada (tipo “tupper pequeño”).
  • Disipadores de calor
  • Tarjeta micro SD para el almacenamiento(normalmente con 8GB es suficiente).
  • Micro cargador Usb y Cable
  • Cable HDMI
  • Ratón y teclado

Para empezar a usar la RP 3,  tenemos que conectar a una pantalla a través de un cable HDMI. También tenemos que conectar un ratón y un teclado USB  a respectivos conectores USB ( normalmente un combo inalámbrico sólo usara un puerto USB)

Asimismo debemos conectar el cable de alimentación de 5V al menos 1Amp   por el conector   micro usb

Por ultimo, esta el  tema de  la tarjeta SD donde necesitamos copiar un sistema operativo pues sin esta,  la RP3 no hará absolutamente nada ( ni siquiera habrá señal de vídeo). Para ello necesitamos una tarjeta SD de al menos 8 GB (preferiblemente 16 GB ) e  instalar un sistema operativo

En  la página web principal de la  fundación Raspberry Pi iremos a descargas, y aquí podemos descargar diferentes sistemas operativos, por ejemplo, Ubuntu mate o incluso windows 10.

También hay una herramienta llamada Noobs  que le permite instalar diferentes sistemas operativos de una manera muy fácil.

raspb.PNG

Existe una versión especial de ventanas especifico  para  la Raspberry  Pi  , y que es el más usado en esta placa llamado  Raspbian  y por tanto que es el mas  aconsejable . Nos iremos pues al sitio  oficial Raspbian   (en esta versión  están utilizando el mismo espacio de usuario de 32 bits Raspbian usada en otros dispositivos Raspberry Pi, pero en los próximos meses van a trabajar  el movimiento al modo de 64 bits.)

En la url de descarga, como se  aprecia en la imagen de abajo ,   se mantienen tanto la imagen de la versión previa mínima (Jessie Lite ) o la nueva de Jessie con escritorio:

jessie.PNG

Lógicamente o interesante es descargar la primera  en lugar de la versión mínima, que ademas no incluye ninguna novedad.

Una vez decidida,  lo primero  es descargar la imagen correspondiente  en su ordenador

Para crear la imagen en la sd existen dos métodos  principalmente  , veamos el procedimiento tradicional:

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

Existe un procedimiento alternativo que permite usar diferentes funcionalidades en diferentes sistemas operativos en una única herramienta

  • Ir a etcher.io donde podemos descargar el software para cada sistema operativo
    pudiéndose e elegir aquí el sistema operativo que desea para Mac, linux o Windows
  • Una vez descargado el sw  instale en su equipo y  ejecute
  • Ahora seleccione la imagen de Raspbian que descargo anteriormente del sitio  oficial Raspbian
  • Seleccione la unidad de tarjeta sd donde desee crear la imagen
  • Luego haga clic en flash, y la imagen será transferido a su tarjeta SD

etcher.PNG

Una vez creada la imagen de Raspbian en la SD ,ya puede insertar la SD en su Raspberry Pi 3 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 Raspberry arranca con la nueva imagen

Cuando la Raspberry  Pi 3 comienza a recibir energía el LED rojo marcado PWR se encenderá y el LED verde marcado OK o ACK en las versiones posteriores parpadeará en un patrón irregular para mostrar siempre que el Pi, seguidamente leera desde la tarjeta SD( tenga en cuenta que el BIOS para el RP3 esta almacenados en la tarjeta SD.  Si todo va bien, y carga con éxito , Raspbian comienza mostrando un texto de pantalla larga que le dice exactamente lo que está haciendo el so para empezar a trabajar.

La primera vez toma más tiempo para comenzar,pero después de un rato , la interfaz gráfica carga el escritorio pidiendo las credenciales por defecto (el nombre de usuario es “pi” y lla contraseña es Raspberry para iniciar sesión )

Si el arranque no tiene éxito,  no mostrará nada en la pantalla, por lo que si tiene problemas repita los pasos anteriores o pruebe con otra micro sd

 

Lo siguiente, es  configurar la Raspberry Pi 3  :

  • Abra una ventana de terminal y escriba “sudo raspi -config” .
  • Esto le llevará a la pantalla de configuración:
    • Puede ampliar el sistema de archivos si lo necesita
    • Puede cambiar el usuario y la contraseña
    • Puede cambiar, configurar el idioma y la configuración regional
    • Puede activar la cámara en las opciones avanzadas
    • Puede activar, activar o desactivar algunos periféricos
    • Debe  conectarse a su rede Wi-Fi para poder conectarse a Internet ,opción que debería  gestionar para dar conectividad  a  la placa
  • Habilitar SSH:Puede habilitar SSH navegando a Preferencias > Raspberry Pi configuraciones y haga clic en Interfaces y seleccione SSH

Ahora  teniendo la Raspberry Pi 3 configurada , tenemos que instalar  el software requerido por el omxiv  para ser compilado.

Conéctese desde consola   de la  Raspberry  Pi   y escriba :

$ sudo apt-get install libjpeg8-dev libpng12-dev

Desde el terminal  escribimos  también estos comandos para descargar y compilar el software, uno por uno:

$ git clone https://github.com/HaarigerHarald/omxiv
$ cd omxiv
$ make ilclient
$ make -j4
$ sudo make install

Una vez que todo está compilado , es necesario descubrir la dirección IP de su Pi para conectarse desde la red. Para ello,desde  la Terminal Raspbian escriba

“$ifconfig”

 

La salida de este comando encontrara la dirección IP inalámbrica (“inet addr”) bajo “wlan0” la direccion IP: tome nota de esta  pues es la que necesitara para conectarse a  la RP3 desde la red

 

Ahora solo queda descargar e instalar  en su terminal Android   el  programa  Raspicad desde Google Play  

Este programa entre sus facilidades destacan:

  • Transmitir videos de YouTube
  •  Transmitir contenido multimedia desde tu dispositivo Android
  •  Reproducir archivos multimedia locales en su Raspberry Pi
  • Reproducir secuencias de listas de reproducción (m3u, pls) en su Raspberry Pi

Antes  de  hacer el casting asegúrese de que su Raspberry  pi  3  y el teléfono están conectados a la misma red WiFi.  Después de que el se lo haya descargado e instalado , abra el software y haga clic en los tres puntos en la esquina superior derecha,

Le pedirá un nombre de host o dirección IP   donde deberá  insertar la dirección IP que obtuvo mediante el coamndo ifconfig  . también le pedirá  el nombre de usuario y contraseña de su Raspberry  pi(el nombre de usuario es “pi”) y el  Puerto que es el  22.   Ahora  ya puede abrir su aplicación de YouTube y seleccionar un vídeo para lanzarlo a su  TV :  simplemente  haga clic en el icono de compartir y busque “raspicast”.

También puede convertir imágenes, música y Videos  en su dispositivo directamente a destino destino.

Otras facilidades  destacables  es que es controlable a través de una barra de búsqueda, cuenta con  botones de volumen de hardware  y soporta a múltiples transmisiones de audio y subtítulos (formato srt)

 

 

Anuncios

Servidor para impresora 3d con Orange Pi PC


 

orangepi

 

 

 

En esta ocasión usaremos  la Orange Pi PC  para quitarnos el engorro de tener que colocar los modelos 3D en la tarjeta microsd cada vez que queramos imprimir o pasar a enviarlo por cable,

Asimismo el sw que vamos a instalar  trae otras utilidades como la de poder ver en tiempo real como va nuestra impresión desde cualquier lado gracias a una webcam que podemos conectarle, ver información y configuración de la impresora y de la impresión, que la impresora se apague sola cuando acabe de imprimir e incluso podemos hacer todas estas operaciones  desde nuestro teléfono móvil entre otras muchas opciones.

Antes de nada debemos  primero instalar un sistema operativo a  la Orange Pi PC , después accederemos por red a la misma,le  haremos una configuración básica, y luego le instalaremos el programa Octoprint (programa para manejar la impresora 3D de forma remota) que el sw que se encargara de toda la gestión con la impresora 3d

 

 

 

 

 

 

Shenzhen Xunlong dispone de la  placa Orange Pi PC ( y muchas variantes mas )  muy similares  em eencia  a la Raspberry Pi  pero con un coste   bastante inferior   siendo ademas abiertas y hackeables. Esta placa de desarrollo low cost compite abiertamente   con  otras tantas existentes  donde  la mas destacable es también la Banana Pi  ,  pretendiendo todas  ellas  competir  con la Raspberry Pi.

Esta placa integra una CPU basada en ARM Cortex A7 Dualcore y Quadcore (en la versión más potente), una GPU Mali compatible con OpenGL y 1GB DDR3 RAM, posibilidad de direccionar hasta 64GB de almacenamiento mediante tarjetas o por un puerto SATA, conexiones para audio, conector CSI para cámara, HDMI, VGA, USB OTG, USB 2.0, alimentación, GPIOs, IR, AV, receptor de infrarrojos, Ethernet RJ45 10/100M, tres puertos USB 2.0, uno microUSB OTG, un micrófono, un interfaz CSI para cámara y un encabezado de 40 pines compatible con Raspberry Pi,

Sobre diferencias respecto  a la original,ciertamente casi todas las placas SBC son bastante similares orientándose para ser clones  mas baratos  de  la Raspberry Pi. Es cuestión de gustos o necesidades, pues  como hemos visto no se pueden alegar diferencias sustanciales, excepto porque se basan en arquitecturas diferentes a la ARM (como las basadas en x86) de la cual se comenta tienden a calentarse mucho precisando normalmente de un radiador pasivo o si es posible mejor  activo (equipado con un miniventilador).

orange_pi

 

INSTALACION DE  UN SISTEMA OPERATIVO A LA ORANGE PI

Como la Orange Pi PC viene vacía tendremos que instalare un sistema operativo que la controle.

Nosotros usaremos el recomendado por el fabricante (armbian)  por lo que   también necesitaremos una microsd a poder ser de más de 8gb , el programa “SD Card Formatter” para formatear la microsd y el programa “Win32 Diskimager” para instalarle la imagen del armbian.

Los pasos a seguir son los siguientes:

  1.  Accedemos en un pc cualquiera con windows a la web de “armbian” y descargamos la última versión disponible:  https://www.armbian.com/orange-pi-pc/ (pincharemos en la descarga de  “Debian server”).armbian.png
  2. Si no lo tenemos instalado ,descargamos e instalamos el programa “SD Card Formatter” de:https://www.sdcard.org/downloads/formatter_4/eula_windows/
  3. Si no lo tenemos instalado ,descargamos el programa “Win32 Diskimager” de:
    https://sourceforge.net/projects/win32diskimager/files/Archive/
  4. Conectamos una microsd a nuestro pc Windows mediante un adaptador o lector de tarjetas.
  5.  Instalamos y ejecutamos “SD Card Formatter“, donde pone “Drive” deberá aparecer la letra de la unidad que representa a la microsd .Importamte :No hace falta mencionar que es muy importante asegurarse de que haber seleccionado la unidad donde esta conectada la microsd antes de continuar y no otra unidad pues obviamente se  va  borrar todo su contenido
  6. Pulsaremos en “Option” y donde pone “FORMAT SIZE ADJUSTMENT” seleccionaremos la opción “ON” para que la partición ocupe toda la microsd y  después le damos a “Format” y esperamos.
  7. Al  descargar la imagen de Debian el fichero viene comprimido en un fichero .7z, asi que debe descomprimirlo con el  programa  7zip  que  es gratuito  y open sw .Si no lo tiene instalado ,puede descargarlo desde http://www.7-zip.org/ 7zip.png
  8. Ahora instalamos y ejecutamos “Win32 Diskimager”
  9. Donde ponga “Image file” debemos cargar el archivo de armbian .img que  hemos descomprimido con el 7zip en el paso anterior  y donde pone “Device” debemos asegurarnos de nuevo que es la letra que representa nuestra microsd y luego pulsamos “Write“y esperamos.     
  10. Ya hemos acabado el proceso de instalación del sistema operativo en la Orange Pi PC . Ahora debemos quitar la microsd de nuestro ordenador e introducirla en su ranura/zócalo correspondiente de la Orange Pi PC

 

ACCEDIENDO A LA ORANGE PI PC POR RED LOCAL

Para acceder a la Orange Pi de forma remota tendremos que realizar los siguientes pasos:

1- Tenemos que conectar la Orange Pi a nuestro router con un cable de red ethernet y alimentarla con +5VDC.
2-En en nuestro ordenador tenemos que descargar un cliente SSH para
conectarnos  a la Orange Pi  como por ejemplo  el programa “Putty” que podemos descargar de:http://www.putty.org/
3-  Para usar el “Putty” lo único que hay que hacer es colocar la dirección IP que tiene la Orange Pi PC en nuestra red local donde pone “Host Name (or IP ADDRESS)” y luego pulsar en “Open” para acceder a la Orange Pi  para eso primero necesitamos saber la IP de la misma.

4-Una forma muy sencilla de obtener la IP de la Orange Pi PC es instalar el programa Fing en nuestro smartphone Android (debe estar conectado por wifi a nuestra misma red )

5 – Ya tenemos la IP de la Orange Pi que era lo que nos hacía falta para acceder a ella por SSH, ahora abrimos el “Putty” y donde pone “Host Name (or IP ADDRESS)” pegamos la IP y le damos a “Open”. Se nos abrirá una consola desde donde a partir de ahora interactuaremos con la Orange Pi

6- Lo primero que te pide es el usuario administrador para acceder al sistema, por defecto en “Armbian” es: root (lo escribimos y pulsamos enter). A continuación nos pedirá una contraseña; por defecto es:1234

7 – A continuación volverá a pedirá que cambie la contraseña del usuario root, primero introducimos la contraseña actual de nuevo:1234   y después introducimos la nueva contraseña larga de al menos 8 caracteres  y la repetimos para confirmar ( esta sera la nueva  contraseña  que tendra que usar para acceder a partir de ahora)

8- Para acabar el primer acceso nos pedirá que creemos un nuevo usuario, escribimos el
nombre que queramos y pulsamos enter. A continuación nos preguntará información que podemos dejar en blanco pulsando enter hasta que nos pregunte si queremos guardar el usuario, pulsamos la tecla Y (de yes) y luego enter y ya hemos acabado con el apartado de acceso a orange pi PC

CONFIGURACIÓN BÁSICA DE LA ORANGE PI PC

Ahora vamos a hacer una configuración básica para instalarle el Octoprint después.

  1. – Para empezar  lo mejor es reiniciar el sistema con:
    sudo reboot (cuando introduzca el omando el “Putty” se cerrará).
  2.  Esperamos a que se reinicie la Orange Pi y volvemos a abrir el “Putty” y a colocar la IP de la Orange Pi  para conectarnos de nuevo con el usuario root y con la nueva contraseña
  3.  Ahora nos movemos a la carpeta sources.list.d con el comando:
    cd /etc/apt/sources.list.d/
  4.  Aquí vamos a añadir un nuevo repositorio a la Orange Pi para que pueda descargar paquetes para sus programas cuando le haga falta, para eso tenemos que crear un archivo con el programa nano (el “block de notas” de linux xD) con el comando:sudo nano raspbian.list
  5. Se abrirá una nueva pantalla donde deberás pegar la siguiente línea:deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free
  6.  Una vez hayas pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y luego e al enter y Ctrl+x para salir del editor.
  7. – Una vez añadido  solo para el caso de otras placas con WIFI(por ejemplo la Orange Pi ZERO)  ,la IP con la que accedemos a la Orange Pi  se la ha dado tu router de forma dinámica/automática lo cual  quiere decir que en alguna ocasión podría cambiar y esto no es práctico a la hora de usar el Octoprint, por lo tanto tendreiamos  que ponerle una IP fija y única que no cambie tanto para el acceso de la Orange Pi  por cable de red.Para eso  usariamos el comando llamao “nmtui”, para ello ponemos:sudo apt-get install NetworkManager-tui   sudo apt-get install nmtui .  Riniciarimos la red y luego el sistema (lo cual nos cerrará el “Putty”) con:
    sudo /etc/init.d/networking restart  sudo reboot
  8. Ahora  revisamos si necesita instalar algún paquete nuevo y reiniciamos con:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
PD: Es posible que en algún momento de alguna instalación se pare y te pregunte si quieres continuar por seguridad, pulsa la tecla Y y luego enter para continuar.

 

 

INSTALACIÓN DE OCTOPRINT EN LA ORANGE PI

Ahora y por último vamos a instalar el programa Octoprint a nuestra Orange Pi , para ello:

  1.  Primero creamos un usuario llamado octoprint y le ponemos los privilegios necesarios con:
    sudo adduser octoprint
    sudo usermod -a -G tty octoprint
    sudo usermod -a -G dialout octoprint
    sudo adduser octoprint sudo
  2. Ahora ejecutamos el siguiente comando para editar el privilegio de administración del usuario octoprint:
    sudo visudo
  3. Se nos abrirá un archivo en el que tenemos que copiar y pegar la siguiente línea al final de todo el documento:
    octoprint ALL=(ALL) NOPASSWD:ALL
    Una vez haya pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y Enter. Para salir del editor usaremos Ctrl+x
  4. Ahora quitamos la contraseña del usuario Octoprint con privilegios con el siguiente
    comando e instalamos todos los paquetes y actualizaciones necesarias para el octoprint:
    sudo passwd octoprint -d
    sudo apt-get install python-pip python-dev g
  5. Vamos a la carpeta raíz de este usuario con:
    cd ~
  6. Instalamos de nuevo paquetes necesarios para el octoprint usando por orden estos
    comandos:
    wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz
    tar -zxf pyserial-2.7.tar.gz
    cd pyserial-2.7
    sudo python setup.py install
    sudo apt-get update
    sudo apt-get upgrade
  7.  Ahora el paso definitivo para instalar el octoprint, usaremos por orden estos comandos para su instalación:
    cd ~
    git clone https://github.com/foosel/OctoPrint.git
    cd OctoPrint
    sudo python setup.py install
  8.  Ya tenemos instalado el octoprint, lo único que tendríamos que hacer para iniciarlo es usar el comando:
    Octoprint

Lamentablemente  ocurre una cosa: cuando apaguemos la Orange Pi y la volvamos a encender el octoprint estará apagado, así que lo que podemos hacer por comodidad es crear un script para  hacer que se inicie automáticamente el octoprint cuando encendamos la Orange Pi :

  1.  Nos logeamos como superusuario con:
    sudo su
  2.  Vamos a la raíz y creamos un archivo llamado octoprint.sh con:
    cd ~
    sudo nano octoprint.sh
  3. Ahora se nos abrirá un archivo vacío en el que tenemos que pegar las siguientes líneas (tiene que quedar tal cual):
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides: octoprint
    # Required-Start: $syslog
    # Required-Stop: $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: octoprint
    # Description:
    #
    ### END INIT INFO
    su octoprint -c ‘octoprint’
  4. Después pulsamos Ctrl + X, luego pulse la letra Y , Enter y nuevamente Ctrl+x para salir del editor.
  5. Ahora le damos permisos de ejecución y lo copiamos a la carpeta de inicio de armbian:
    sudo chmod +x octoprint.sh
    sudo cp octoprint.sh /etc/init.d/
  6. Nos movemos a la carpeta y convertimos el script en un daemon (proceso de linux) para que se inicie con la Orange Pi:
    cd /etc/init.d/
    sudo update-rc.d octoprint.sh defaults
  7.  Ahora lo único que tenemos que hacer es reiniciar: (se cerrará el Putty)
    sudo reboot
  8. ¡¡Ya está terminado !! lo que tenemos que hacer ahora es alimentar  la Orange Pi   y sin hacer nada debería  conectarse a la red  e iniciar el octoprint.
  9. Esperaramos un poco a que cargue y a continuación en nuestro ordenador  abrimos un navegador  colocamos en la dirección url la ip  de la Orange Pi  (en mi caso 192.168.1.57 ) seguido del puerto :5000 y ya podremos acceder al ¡¡Octoprint!!

 

Primeros pasos con Ocoprint

  1. Una vez accedamos a la url  del octoprint , solo tenemos  que logearnos con el usuario octoprint, y configurar vuestra impresora 3D  en nuestro perfil.
  2. Empezara el asistente solicitándonos un usuario para    conectarnos desde nuestra red( y fuera )accesscontrol.png
  3. Si la verificación de conectividad está activada, OctoPrint verificará regularmente si está conectada a Internet. Esto es útil para evitar operaciones intensivas en recursos (como la búsqueda de actualizaciones) si ya está claro que no tendrán éxito de ninguna manera.

    Si está deshabilitado, OctoPrint siempre asumirá que tiene una conexión activa a Internet. Si ese no debería ser el caso, los inicios del servidor, las comprobaciones de actualización y similares podrían demorar más. Es muy interesante por tanto  comprobar la conectividad mediante el botón Test host & port   y después Enable Conectivity Chck antes de darle a continuar (Next)conectividad.png

  4. Para protegerse contra problemas graves conocidos con ciertas versiones de plugins de terceros, OctoPrint admite el uso de una lista negra de plugins centralizados para deshabilitar automáticamente dichas versiones de plugins antes de que puedan interferir con el funcionamiento normal, lo que le permite desinstalarlos o actualizarlos a una versión más nueva.De forma predeterminada, OctoPrint utilizará la lista negra alojada en plugins.octoprint.org/blacklist.json, que también puede ver en un formato legible más humano aquí.Por taantp hay que decidir si permite o no buscar y usar esta lista negra centralizada comenzando con el próximo inicio del servidor. También puede cambiar su decisión en cualquier momento a través de Configuración> Servidor desde OctoPrint.blacklist
  5. Toca configurar CuraEngine.La ruta de acceso a CuraEngine aún no se ha configurado, para poder usar CuraEngine para cortar debe especificarse.
  6. Descargue en su navegador y cópielo en una carpeta de su Pi, por ejemplo, a través de SSH o descárguelo en su Pi:                                                                                                      wget http://octoprint.org/files/octopi/cura_engine_14.12/cura_engine
  7. Hacer ejecutable: chmod + x /root / cura_engine
  8. Pruebe si se ejecuta: / root / cura_engine –help
  9. Configure / path / to / cura_engine como la ruta a CuraEngine en el complemento de Octocure Cura
  10. Ya hemos finalizado la instalación del octoprint, solo tenemos que apagarlo todo conectar nuestra impresora 3D con nuestra Orange Pi  mediante USB y encenderlo todo.

En este vídeo podemos ver este excelente programa  usando una Orange pi  comos servidor de impesión 3d y  su operativa básica para empezar a trabajar desde este entorno de red:

 

Todo el proceso de instalación del OctoPrint aquí explicado sirve igualmente para otras placas similares a la Orange Pi  con o  sin wifi  como es la Raspberry Pi  Zero o similares.  En el caso de disponer de una Raspberry Pi 3 el proceso puede sera un mas sencillo pues existe una distribución llamada Octopi  con todo preinstalado  así que no es necesario instalar nada (lo puede descargar desde https://octoprint.org/download/)
En próximos post    hablaremos  como configurar el octoprint con su impresora, como instalarle una webcam para ver a tiempo real el proceso, como vincular Octoprint con aplicaciones externas y móviles, como hacer que octoprint apague la impresora automáticamente cuando acabe de imprimir, así  como acceder desde cualquier parte del mundo a su Octoprint.

Monitor portatil casero


En este proyecto realizado   por  GreatScottlab  podemos ver   cómo utilizar  un LCD KIt de  1280 x 800  para construir un  mini -monitor  autoalimentado   por baterías, el cual  puede ser útil  para una cámara DSLR, como pantalla para la Raspberry Pi o simplemente para ampliar el campo de visión del ordenador.

Realmente la idea del circuito no  es mala porque no es habitual encontrar en el mercado  monitores alimentados a batería que puedan servir para nuestra Raspberry PI así que veamos como lo ha construido

A continuación  la lista de materiales usados por GreatScottlab :

  • 1 x 1280 x 800 LCD Kit
  • 5 x pulsadores táctiles:
  • 1 x 5mm verde y rojo:
  • 1 x interruptor
  • 1 cargador de celular solo x TP4056: Se puede comprar en Amazon por  unos 6€
  • 1 x XL6009 convertidor: Se puede compra en Amazon por menos de 5€ 
  • Baterías de ion de litio 2 x 18650 2800mAh.
  • 1 x trípode.
  • 1 x Mini trípode

 

El kit lcd

El proyecto  gira  en torno a  un  kit del módulo de pantalla lcd 10.1 pulgadas  y resolución 1280 * 800  especialmente diseñado como monitor para Raspberry PI 3/2 Model B b a +. Raspberry y B+ PI que puede adquirirse en ebay o en portales orientales

En caso de usarlo para la Raspberry Pi se sugiere editar el fichero config.txt para configurar el cable hdmi a la resolución nativa 1280 x 800 en caso de no detecte correctamente la resolución (la forma más fácil de editar el config.txt es poner la tarjeta microsd  de lapi en un ordenador y editar config.txt con cualquier editor de texto y guardar.

Las características del kit del panel son las siguientes:

  • Tamaño del panel: 10.1″
  • Resolución (rgb): wxga 1280 x 800.
  • Brillo: 350CD/m ^ 2
  •  Voltaje de funcionamiento: 12v (actual requisito 1a-2a)
  • La potencia nominal: 6-7w
  •  Entrada de señal: AV + VGA + HDMI (HDMI 1.2)

Pantalla dimensiones: 217 x 135 mm / 16:1010.1 pulgada 1280x800 exhibición del hd TFT Kit de módulo lcd para Raspberry Pi

Como vemos  el kit consta de una controladora , el panel lcd   y una pequeña botonera ambos unidos  por sendos cables de cinta.

10.1 pulgada 1280x800 exhibición del hd TFT Kit de módulo lcd para Raspberry Pi

Convertidor  DC

En el  proyecto se usa el modulo  DSN6009 , que  un módulo conversor dc-dc  de refuerzo de alto rendimiento (BOOST) con una corriente de conmutación de 4A.

La tensión de entrada soportada va  desde los  3V  hasta 32V, pero el mejor voltaje de funcionamiento es 5 ~ 32V.  La tensión de salida es variable entre 5v a 35V

Cuenta con un interruptor incorporado de tipo  MOSFET de  alta eficacia  soportando 4A, siendo la eficacia de hasta 94%; (la corriente LM2577 es sólo 3A)

Gracias a la alta frecuencia de conmutación de 400KHz, se puede alcanzar resultados muy buenos con una pequeña capacidad del condensador del filtro (la frecuencia de LM2577 es solamente 50KHz)

El conexionado, como vemos, es bastante sencillo  pues en los pines IN+  y IN – conectaremos el  polo +(IN+)     y la masa(IN-)    de  la  salida de 5V  procedentes de la salida del cargador de batería .  

Para este proyecto debe ajustarse el  modulo regulando el trimmer  para obtener una salida de 12V DC.

De los pines OUT + y OUT-  conectaremos bien mediante un jack   a la  placa del interfaz de la placa del lCD ( la masa del jack a OUT-   y el pin central al pin OUT+)  o bien soldandolos a la placa madre del kit lcd  como en la foto:

Picture of Get the Wiring Done!

Cargador batería

Para la gestión de la carga de las  baterías del tipo  18650  ,  se  usa un modulo  con chip TP4056 con sobre-protección de bajo voltaje.
Este modulo gestiona la  carga de una celda de carga de baterías con  una celda de litio 18650 energía con carga de hasta 1000 mAh
Se puede cargar baterías  18650  con 2600 mAh ( desarrolladas para  antiguos Notebook), lo cual significa que con el módulo también se permite la carga de baterías de litio de una mayor capacidad 1000 mAh ( el ejemplo de hecho se usan dos celdas en paralelo)
El tiempo de carga depende de la  corriente de entrada que introduciremos de 5V DC  por cable micro USB cable de carga o en los contactos “+ – ” junto a el puerto USB de soldar.
Se puede cargar con el cable USB de un cargador de un móvil o de  ordenador , tan pronto como el nivel de batería ha descendido.a 2.5 V .
Este modulo, ademas,  puede cargar sin  preocupaciones, mientras este conectada la entrada de alimentación y es usado el monitor
Características del modulo:
  • Voltaje de entrada: 4,5 hasta 5 V
  • Corriente de carga máxima 1000 milivatio amperios
  • Voltaje de apagado al cargar 4,2 V +/-1%
  • Protección de bajo voltaje de 2,5 V
  • Protección contra cortocircuitos en 3 amperios
  • Dimensiones: 26 x 17 x 2 mm
En la siguiente imagen podemos ver el modulo con las conexiones realizadas a las dos baterías en paralelo , los leds al panel   y  la salida que ira conectada al convertidor dc-dc:
Picture of Get the Wiring Done!

Construcción de la caja

No todo el mundo tiene disponible  un impresora 3d, asi que GreatScottlab    decidio hacer la caja con materiales tradicionales  como es la madera

En la foto  se pueden ver as las medidas de las piezas MDF que GreatScottlab creo para construir la caja.

Cableado

Finalmente en  al siguiente foto vemos el montaje final

Observese  que se han capturado los pulsadores del kit para hacerlos accesibles desde el exterior
Asimismo se ven los dos leds de estado de carga  y de la batería conectados justo debajo de los pulsadores
Asimismo se ha conectado  un interruptor de potencia para  conectar  o desconectar la unidad

El cableado  es pues sencillo  y cabe perfectamente dentro  de la caja así que de esta forma que todo debería funcionar bien.

Aqui podemos ver el resultado final

 

¡Acabamos de  ver como crear un monitor mini portátil casero!

 

Por si nos ha quedado alguna duda en los  dos siguientes videos  podemos ver el proceso de montaje  paso a paso con todo lujo de detalles desde las coenxiones electricas y pruebas pertinentes  a la construcción de la propia caja que contendrá  todas la electronica:

 

En el video continuacion del anteriro podemso  ver oda la información fundamental  del montaje  de kla caja que se  necesitaría  para la construcción de este proyecto:

 

 

¿Se  atrevería  a montarlo usted también?

 

 

 

 

Fuente Instructables.com

Contador con reconocimiento facial para Raspbery Pi 3


Con una Raspberry Pi se pueden hacer muchas cosas , pero seguramente  se sorprenda que incluso puede utilizar la cámara para experimentar  con reconocimiento facial, labor que ha hecho  DekuNukem utilizando una Raspberry Pi 3, el módulo de la cámara de Raspberry Pi y una pantalla OLED para la visualización de los datos

 El concepto es relativamente simple: la pi-camera toma una foto cada 15 segundos, de modo que  si se encuentra nuestra cara, la cual  previamente habremos cargado, se registra la hora actual. y el tiempo registrado se suma para calcular el  horario laboral exacto todas las semanas mostrándose el resultado en una pantalla OLED.

Para este proyecto  estrictamente como puede deducirse  no es necesario incluir la pantalla OLED  ya que nos  podemos  conectar  a la propia Raspberry Pi  3 para consultar ese dato , pero definitivamente la pantalla extra añade inmediatez y flexibilidad , dejando ver el tiempo diario y semanal de un vistazo sin tener que acceder su frambuesa Pi para ver  los datos.

 

dekuNukem facepunch raspberry pi facial recognition

 

Resumiendo estos son los componentes usados :

  • Raspberry Pi 3 Model B. También podría funcionar en Zero
  • Módulo de cámara Raspberry Pi
  • OPCIONAL : pantalla OLED de 1.3 pulgadas de 128×64. Pantallas de 0.96 pulgadas OLED también funcionan.Que sea  OLED es opcional; Omita los pasos relacionados con la pantalla si se opta por no usar  esta

Modulo de visualización

Se  puede conectar una OLED a la  Pi con el Pi interfaz I2C o SPI. En general, I2C utiliza menos pines  pero es algo más lenta. SPI es mas rápido, pero requiere un numero o de pines del GPIO  extra por lo que esta elección  debe considerarse en función de sus necesidades .

La interfaz I2C es la normal que se use por su mayor sencillez    pero para ‘escritura’ en la pantalla solamente, asi todavía tendrá el marco entero 512 bytes del búfer en el microcontrolador RAM  aunque no se podran  leer datos de lo OLED (aunque I2C es un protocolo bidireccional).

Antes de comenzar el cableado de la  pantalla , en muchas  de estas debe conectarse  una franja de pines que deben soldarse a la placa  OLED , pues no es posible  simplemente hacer las conexiones enrollándolos a las cabeceras

Si su OLED compatible con I2C y SPI, asegúrese de comprobar cómo se configuran los puentes de soldadura para configurar  la interfaz correcta, asi que para comenzar, usted necesitará  dos puentes en la parte posterior de la pantalla OLED de la soldadura. Debe soldarse como ‘cerrado’ para   configurar la pantalla en modo  I2C

 

Para usar la  Raspberry Pi  3 , habilitar I2C antes desde el interfaz  de Raspbian antes de cablearlo

Las conexiones necesarias son las siguientes:

  • Conectar pin 3  de GND   de la  Raspberry Pi  3 , al pin GND de la  pantalla  (cable negro).
  • Conectar  VIN  de la pantalla  al pin 1  Raspberry Pi  3 , de 3.3 voltios (cable rojo).
  • Conectar el terminal Reset de la pantalla al pin pin32 de la  Raspberry Pi  3 ,   (cable azul). Alternativamente puede usar cualquier pin digital libre de GPIO para el pin de reset.
  • Conecte el pin SCL de la pantalla  al pin 5 SCL de la   Raspberry Pi  3 ,  (cable morado).
  • Conectar el pin SDA  de la pantalla al pin 3 SDA de la  Raspberry Pi  3   (cable naranja).

 

 

El módulo de cámara es un complemento personalizado y diseñado para Rasbperry Pi. Se conecta a Raspberry Pi a través de uno de los dos pequeños conectores de la parte superior de la placa. La cámara debe ser  compatible con la última versión de Raspbian, el sistema operativo preferido de Raspberry Pi.

El módulo en sí, es pequeño, en torno a 25 mm x 20 mm x 9 mm. Se conecta a Raspberry Pi  3 mediante un cable plano flexible al conector  de cámara .

Sin título.png

Resto de conexiones

Como dekuNukem explica en el repositorio de GitHub para la construcción del prototipo se puede utilizar una placa de  prototipos para montar  incluso  la pantalla  adhiriendo  esta a la pcb , conectado el conjunto a la Raspberry  Pi  por el GPIO   ,lo cual es  una forma agradable y sencilla de tener  todo el proyecto juntos sin cables sueltos o incluso simplificar  si  se necesita modificarlo.

Puede colocar la cámara y el OLED juntos en una placa perforada que se conecta al bus GPIO  o por supuesto, puede colocarlos en otro lugar o diseñar su propia PCB.

 

Librerias necesarias

Para este proyecto se necesitan las siguientes librerias:

 

Proporcione su foto

El programa necesita una imagen de su rostro para saber cómo se ve. Obtenga una imagen de su cara bien iluminada con un fondo limpio, llamándola por ejemplo  me.jpg y colóquela en la carpeta del software.

La resolución debe ser de alrededor de 400×400, de lo contrario el tiempo de procesamiento va a ser largo. Ya se proporciona un ejemplo, así que simplemente reemplace esta  por el suyo.

Ejecucion del programa

Ejecute python3 detect.py para iniciar la detección de rostros y el registro.
Ejecute python3 display_oled.py para mostrar las estadísticas de tiempo en el OLED.
O si no usa un OLED, ejecute python3 display_text.py para imprimir las estadísticas en el terminal.
Es posible que tenga que expeimentar r con camera.rotation y camera.brightness al principio de detect.py, dependiendo de cómo esté orientada la cámara y de su condición de iluminación. Puede abrir image.jpg para ver la última foto tomada.
El pin de reinicio OLED predeterminado es 17, cámbielo a lo que usa en display_oled.py.

 

 

Esta  incursión en reconocimiento facial  puede  incorporarse  en  otros proyectos de automatización del hogar:  como por ejemplo  una identificación de usuario de Magic Mirror, quizás, o un timbre que reconoce a amigos y familiares.

En todo caso la idea presentada  en su simpleza destaca uan genialidad  pues  nos  da una estadística visual y desatendida de las horas que nos pasamos delante de la pantalla.

 

 

 

Control de GPIO de Raspberry Pi sobre MQTT usando ThingsBoard


ThingsBoard es una plataforma de servidor de código abierto que le permite monitorear y controlar dispositivos IoT. Es gratuita tanto para uso personal como comercial y puede implementarlo en cualquier lugar.

ThingsBoard es pues  una plataforma de IoT de código abierto que permite el desarrollo rápido, la gestión y la ampliación de los proyectos de IoT  de modo  que  puede:

  • Crear dispositivos de provisión y control.
  • Recopilar y visualizad datos de dispositivos.
  • Analizea datos del dispositivo y disparae alarmas.
  • Entregar datos del dispositivo a otros sistemas.
  • Habilitar las funciones específicas de casos de uso usando reglas y complementos personalizables.
  • Proporcionar la nube IoT lista para usar o ser la solución en las instalaciones que habilitará la infraestructura del lado del servidor para sus aplicaciones de IoT.

ThingsBoard es escalable pues es una plataforma escalable horizontalmente y compilación utilizando tecnologías líderes de código abierto, tolerante a errores  pues  no hay punto único de fallo ya que  cada nodo en el clúster es idéntico,es personalizable pues permite agregar nueva funcionalidad es fácil con widgets personalizables, motor de reglas y sistema de complementos, es s duradero  y es robusto y eficiente  pues  el nodo de servidor único puede manejar decenas o incluso cientos de miles de dispositivos según el caso de uso (un cluster ThingsBoard puede manejar millones de dispositivos). Asimismo también puede conectar dispositivos existentes a la plataforma usando ThingsBoard Gateway .

 

ThingsBoard le permite enviar llamadas de procedimiento remoto (RPC) desde aplicaciones del servidor a dispositivos y viceversa. Básicamente, esta característica le permite enviar comandos a dispositivos y recibir resultados de ejecución de comandos. Similarmente, puede ejecutar la solicitud desde el dispositivo, aplicar algunos cálculos u otra lógica del lado del servidor en el back-end y enviar la respuesta de regreso al dispositivo. Esta guía cubre las capacidades de ThingsBoard RPC. Después de leer esta guía, se familiarizará con los siguientes temas:

  • Tipos de llamadas RPC
  • Casos de uso de RPC básicos
  • Las API RPC del lado del cliente y del lado del servidor
  • Widgets RPC

Tipos de llamadas RPC

La característica de RPC de Thinsboard se puede dividir en dos tipos según el originador: llamadas RPC originadas en el dispositivo y originadas en el servidor. Para utilizar nombres más conocidos, denominaremos llamadas RPC originadas en el dispositivo como llamadas RPC del lado del cliente y llamadas RPC originadas en el servidor como llamadas RPC del lado del servidor .

imagen

Las llamadas RPC del lado del servidor se pueden dividir en un solo sentido y bidireccional:

  • La solicitud RPC unidireccional se envía al dispositivo sin confirmación de entrega y, obviamente, no proporciona ninguna respuesta del dispositivo. La llamada RPC puede fallar solo si no hay una conexión activa con el dispositivo objetivo dentro de un período de tiempo de espera configurable.imagen
  • La solicitud de RPC bidireccional se envía al dispositivo y espera recibir una respuesta del dispositivo dentro del tiempo de espera determinado. La solicitud del lado del servidor está bloqueada hasta que el dispositivo de destino responda a la solicitud.imagen

Vamos  a  ver una  aplicación de ejemplo    que  permitirá controlar GPIO de su dispositivo Raspberry Pi utilizando la interfaz de usuario web de ThingsBoard y observaremos el control de GPIO utilizando  un Led conectado a uno de los pines. El propósito de esta aplicación es demostrar las capacidades de ThingsBoard RPC .

Dispositivo RPC API

ThingsBoard está diseñado para ejecutarse y utilizarse en la mayoría del hardware, desde Raspberry PI local hasta potentes servidores en la nube. Las formas de configurar un cluster de ThingsBoard soporta los  siguientes sistemas operativos:

  • Windows : instale el clúster Thingboard en cualquier máquina preexistente que ejecute Windows.
  • Linux (Ubuntu y CentOS) : instala el clúster Thingboard en cualquier máquina preexistente que ejecute Linux.
  • Raspberry Pi 3 Modelo B (Raspbian Jessie) : instala el servidor Cassandra y Thingboard en una Raspberry Pi 3 modelo B.
  • Docker (Linux o Mac OS) : instala un clúster ThingsBoard de un nodo en tu máquina Linux o Mac OS para su desarrollo y prueba.
  • Docker (Windows) : instala un clúster ThingsBoard de un nodo en tu máquina con Windows para su desarrollo y prueba.
  • Instalación de AWC EC2 utilizando AMI : instale un clúster ThingsBoard de nodo único con AWI AMI público.

Asimismo , sin instalar nada ,también si esta es su primera experiencia con la plataforma, puede usar una demostración en vivo para ahorrar tiempo en la instalación (vea la página de documentación de demostración en vivo para más detalles).Ejempl

 

Ejemplo  control de un  led

En  este ejemplo  “hello world”   orientado a controlar un led usaremos  una   Raspberry Pi con una aplicación simple escrita en Python , que se conectará al servidor ThingsBoard a través de MQTT y escuchará los comandos RPC.

El estado GPIO actual y el widget de control GPIO se visualizaran utilizando el panel de control incorporado personalizable.

Por tanto tendrá que tener el servidor ThingsBoard en funcionamiento. Use Live Demo o la Guía de instalación para instalar ThingsBoard.

Lista de hardware y pinouts

  • Raspberry Pi : utilizaremos Raspberry Pi 3 Model B pero puede usar cualquier otro modelo.
  • Led y resistencia correspondiente
  • 2 cables de puente hembra a macho

Dado que nuestra aplicación permitirá controlar el estado de todos los pines GPIO disponibles, recomendamos conectar algunos LED a esos pines para mayor visibilidad. Puede usar culquier  instrucción básica u otra para cablear algunos LED.

Instalación de la biblioteca MQTT

El siguiente comando instalará la biblioteca MQTT Python:

sudo pip install paho-mqtt

La aplicación consiste en un único script python que está bien documentado. Tendrá que modificar la constante THINGSBOARD_HOST para que coincida con su dirección IP de instalación del servidor ThingsBoard o nombre de host. Utilice “demo.thingsboard.io” si está utilizando el servidor de demostración en vivo .

El valor de la constante ACCESS_TOKEN corresponde al dispositivo Raspberry Pi de muestra en datos de demostración preaprovisionados . Si está utilizando un servidor de demostración en vivo , obtenga el token de acceso para el “Dispositivo de demostración Raspberry Pi preaprovisionado”.

 

resources/gpio.py 
import paho.mqtt.client as mqtt
import RPi.GPIO as GPIO
import json

THINGSBOARD_HOST = 'YOUR_THINGSBOARD_IP_OR_HOSTNAME'
ACCESS_TOKEN = 'RASPBERRY_PI_DEMO_TOKEN'

# We assume that all GPIOs are LOW
gpio_state = {7: False, 11: False, 12: False, 13: False, 15: False, 16: False, 18: False, 22: False, 29: False,
              31: False, 32: False, 33: False, 35: False, 36: False, 37: False, 38: False, 40: False}


# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, rc, *extra_params):
    print('Connected with result code ' + str(rc))
    # Subscribing to receive RPC requests
    client.subscribe('v1/devices/me/rpc/request/+')
    # Sending current GPIO status
    client.publish('v1/devices/me/attributes', get_gpio_status(), 1)


# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    print 'Topic: ' + msg.topic + '\nMessage: ' + str(msg.payload)
    # Decode JSON request
    data = json.loads(msg.payload)
    # Check request method
    if data['method'] == 'getGpioStatus':
        # Reply with GPIO status
        client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
    elif data['method'] == 'setGpioStatus':
        # Update GPIO status and reply
        set_gpio_status(data['params']['pin'], data['params']['enabled'])
        client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
        client.publish('v1/devices/me/attributes', get_gpio_status(), 1)


def get_gpio_status():
    # Encode GPIOs state to json
    return json.dumps(gpio_state)


def set_gpio_status(pin, status):
    # Output GPIOs state
    GPIO.output(pin, GPIO.HIGH if status else GPIO.LOW)
    # Update GPIOs state
    gpio_state[pin] = status


# Using board GPIO layout
GPIO.setmode(GPIO.BOARD)
for pin in gpio_state:
    # Set output mode for all GPIO pins
    GPIO.setup(pin, GPIO.OUT)

client = mqtt.Client()
# Register connect callback
client.on_connect = on_connect
# Registed publish message callback
client.on_message = on_message
# Set access token
client.username_pw_set(ACCESS_TOKEN)
# Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
client.connect(THINGSBOARD_HOST, 1883, 60)

try:
    client.loop_forever()
except KeyboardInterrupt:
    GPIO.cleanup()

Este simple comando lanzará la aplicación:   python gpio.py

Visualización de datos

Para simplificar esta guía, en  “Raspberry PI GPIO Demo Dashboard” vemos los datos de demostración que están disponibles en cada instalación Thingboard. Aún puede modificar este panel: sintonizar, agregar, eliminar widgets, etc. Puede acceder a este panel iniciando sesión como administrador de inquilinos.

Utilizar en caso de instalación local de ThingsBoard.

 

Una vez que haya iniciado sesión, abra la página Dashboards-> Raspberry PI GPIO Demo Dashboard . Debe observar el tablero de demostración con el panel de control y estado de GPIO para su dispositivo. Ahora puede cambiar el estado de los GPIO usando el panel de control. Como resultado, verá que el estado de los LED cambia en el dispositivo y en el panel de estado.

A continuación se muestra la captura de pantalla del “Tablero Demo de Raspberry PI GPIO”.

imagen

 

 

El vídeo a continuación  resume  todo el proceso  citado llegando  hasta el resultado final :.

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…

 

Envío de datos de Iot en Raspberry Pi a la nube


Hoy vamos a  ver  lo fácil  que es conectar un sensor simple conectado a una Raspberry Pi a la nube de transmisión utilizando para ello  un sensor de temperatura digital, el popular DS18B20 y dos scripts de Python simples: uno para enviar los datos del sensor a la nube y el otro para recibirlo para su uso en alguna otra aplicación.
El código  para que pueda iniciarse esta disponible en un repositorio de GitHub .

CONEXIÓN DE UN SENSOR A SU RASPBERRY PI

Primero debe conectar el sensor a su Raspberry Pi. Debe conectar conectar al sensor una resistencia de Pull Uo  de 4,7 K entre  la linea de datos (que conectaremos al GPIO4 )  y la alimentacion de 3.3V

En la imagen se describe la sencilla conexión utilizando el bus 1wire con tres pines GPIO (alimentación, tierra y el pin de datos real).

Connection diagram for ds18b20 1-wire temperature sensor to Raspberry Pi GPIO

Después de hacer las conexiones  debe asegurarse de que el módulo kernel del dispositivo de comunicación 1wire esté cargado.

El procedimiento para hacerlo es ligeramente diferente entre las versiones de Raspberry Pi antes y después de enero de 2015, cuando kernel 3.18.8 se incluyó en Raspbian , la distribución de Linux más utilizada para Raspberry Pi. En las actualizaciones recientes debe modificar el archivo /boot/config.txt como se describe aquí:

# with a pre-3.18.8 kernel:
[email protected] ~ $ sudo modprobe w1-gpio && sudo modprobe w1_therm

# else:
[email protected] ~ $ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
[email protected] $ sudo nano /boot/config.txt
# add this line at the bottom (and then reboot):
# dtoverlay=w1-gpio

Ahora puede buscar los dispositivos 1wire respectivos en su sistema de archivos. Cada sensor DS18B20 tiene una identificación única que aparece en este directorio de dispositivos, en nuestro caso 28-000004a365ef .

La siguiente sección muestra cómo leer los datos del sensor para que puedan publicarse en la nube.

LECTURA DE LOS DATOS DEL SENSOR

Una vez que conozca la identificación única de su DS18B20 , puede acceder a los datos del sensor de una manera más reutilizable con una función de Python como la de read_temp.py .
Al ejecutar este código también se ejecutará un ciclo corto para leer y visualizar la temperatura ambiente alrededor del sensor. Intente tocar el sensor con los dedos para ver cómo afecta las lecturas.
Ahora que el sensor está funcionando y entrega datos, es hora de enviar esos datos a la nube , la cual en esta ocasion sera ofrecida por el proveedor europeo relayr

relayr.png

Si no tiene una cuenta de desarrollador relayr , tendrá que crear una. Una vez que tenga una cuenta, puede crear un prototipo de sensor simplemente accediendo a la página de dispositivos de su dispositivo y moviendo el puntero del mouse sobre el botón con el signo más en la esquina inferior derecha.
Luego, desplácese hacia abajo y seleccione “Continuar sin un modelo” para crear el dispositivo. Ahora, cambie el lenguaje de programación a “Python” y copie el código de firmware generado, que será útil para la siguiente sección.

PUBLICACIÓN  DE SUS DATOS DE SENSOR EN LA NUBE DE RELAYR

Puede publicar sus datos usando MQTT (un protocolo para comunicar mensajes de máquina a máquina). Si aún no está instalado, tendrá que configurarlo en su Pi. El paquete paho-mqtt proporciona soporte MQTT para Python y se puede instalar fácilmente como un paquete Python con pip como este (instale pip primero si aún no lo tiene):

 pi @ raspberrypi ~ $ sudo apt-get install python-pip
 pi @ raspberrypi ~ $ sudo pip install paho-mqtt == 1.1

Sabrá si lo ha instalado con éxito si puede ejecutar esta declaración en Python sin ningún error: import paho .
A continuación, puede copiar el fragmento de muestra de Python de la página del prototipo del panel que haya visto al crear un prototipo. Para hacer esto, reemplace el ciclo while en la parte inferior del código con el de publish_temperature.py (disponible en el repositorio).

No olvide incluir la función read_temperature desde arriba y también agregar su identificación de sensor única al ciclo while (la que encontró al configurar el sensor). Alternativamente, puede usar el código en publish_data_mqtt.py , asegurándose de cambiar las credenciales (con las de su panel) y el device_id en la parte inferior de la página.
Esto le permitirá ejecutar un ciclo sin fin, leer los valores de temperatura y publicarlos uno por segundo a la nube de retransmisión.

CONSULTA DE SUS  DATOS

A medida que introduce sus datos en la nube de relayr, puede ver los valores en tiempo real a medida que cambian en el tablero de relayr.

Screen_Shot_2016-07-12_at_16.12.28.png

Ver sus datos en el tablero de instrumentos a medida que cambia es genial, pero en algún momento querrá extraer los datos para usarlos. Para ello, puede acceder a sus datos a través de MQTT de nuevo escribiendo un script simple como el Llamado fetch_data_mqtt.py en el repositorio de GitHub .

Si ejecuta esa secuencia de comandos, mostrará los mensajes MQTT en vivo que contienen los valores de datos tal como se recibieron.

Para ello, utilice el SDK de Relayr Python instalando primero los paquetes necesarios (ejecute las líneas a continuación en su pi):

sudo pip install git + https: //github.com/relayr/pythonsdk

sudo pip install relayr upgrade

Si tiene una Raspberry Pi nueva, asegúrese  de actualizar su lista de paquetes Debian e instalar algunos paquetes de desarrollador antes de instalar el paquete más nuevo de GitHub de la siguiente manera:

  pi @ raspberrypi ~ $ sudo apt-get update 
  pi @ raspberrypi ~ $ sudo apt-get install python-dev libffi-dev libssl-dev 
  pi @ raspberrypi ~ $ pip install git + https://github.com/relayr/python-sdk 

Ahora puede usar el código en receive_data.py para recibir datos de la nube. Asegúrese de cambiar la identificación de su dispositivo y el token de acceso (omitiendo la parte “Portador” del token).


En este ejemplo ha visto cómo puede conectar un sensor de temperatura simple a una Raspberry Pi y publicar sus datos en la nube de transmisión . Esto le permite ver los datos en vivo en el tablero, o exportarlos para usarlos en una aplicación. Puede usar MQTT para publicar y recibir los datos del sensor, o usar uno de los SDK de Relayr, como el SDK de Python , para acceder a los datos de manera más conveniente.

También puede usar sensores más emocionantes y publicar valores de datos más complejos que un solo flotante (es decir, una lista de tres flotantes que representan información geoespacial). Siempre que proporcione una lecturaconocida en el panel de control de relayr, mostrará sus datos en un buen widget. Y también puede publicar algo aún más complicado, como un objeto con niveles de anidación más profundos. En ese caso, el tablero mostrará un widget genérico. ¡Depende de usted y de lo que quiera hacer!

El código del ejemplo esta disponible ena GitHub repository.