Construya su propia consola de juegos con Orange Pi



RetrOrange Pi es es un sistema operativo completo que funciona sobre las placas Orange Pi sin fines de lucro.
Consiste en una configuración básica del Retropie con más núcleos Libretro encima previamente instalada una versión de Jessie Desktop Armbian incluye ademas una horquilla OpenELEC 
Esta distribución se  ha  desarrollado y mantenido por Stevie Whyte y Alerino Reis con colaboración de Wang Matt.
RetrOrangePi es compatible con placas  equipados con CPU H3 y GPU Mali 400, es decir la mayoría Orange Pi, Banana Pi M2 +, Beelink X 2 y NanoPi M1. Se basa, como comentabamos en Armbian (Linux Debian 8) y RetroPie.

Además, a esta distribución de Linux , se incorporan otras herramientas orientadas a la emulación de videojuegos y entretenimiento  que  son realmente la potencia de este paquete.

RetroPie y Kodi son pues los núcleos del proyecto que seguramente llenarán las horas de entretenimiento a muchos usuarios de Orange Pi.

 

En cuanto a consolas emuladas, los usuarios de RetrOrange Pi podrán jugar a videojuegos de PlayStation, MAME, Nintendo NES, SNES, Dreamcast, PSP, Atari, Sega, Nintendo 64 o ScummVM entre otras muchas (unas 64  en total).

Para tener RetrOrange Pi, necesitamos una placa Orange Pi, una tarjeta microsd de al menos 16 Gb de capacidad y el sistema operativo RetrOrange Pi

Gran parte del software incluido en la imagen tienen licencias no comerciales. Debido a esto, vender una imagen preinstalada de RetrOrange no es legal, ni por supuesto  incluirlo en  un  producto comercial
retropie.PNG

Componentes  necesarios

Los componentes que necesitaremos para llevar a cabo este proyecto son los siguientes:

  • Orange Pi PC
  • Caja para Orange Pi
  • Alimentador  de 5V DC
  • Microsd de al menos  8Gb
  • Cable hdmi a hdmi
  • Mando  USB  o en su defecto teclado USB

Montaje

Dada la dificultad obtener una carcasa a media , lo mas sencillo es imprimir  en 3D la caja que contendrá la Orange Pi. Un diseño muy sencillo y rápido es el siguiente  que podemos obtener de thinginverse   el cual esta adaptado perfectamente a la Orange Pi PC.

Este es el link correspondiente:https://www.thingiverse.com/thing:1565411

Otra vía  si no se dispone de impresora 3D es usar una caja de platico  y practicar los agujeros correspondientes para el modelo de orange pi  que vayamos a usar

 

IMG_20180325_123125[1]

Mandos

Para que la experiencia sea  completa  necesitaremos un mando compatible  Retropi System ,es decir un Mando genérico USB donde solo necesita conectarse a un puerto USB y este listo para funcionar.
Los mandos genéricos funcionan con la mayoría de emuladores pues los controladores son compatibles  con el original de SNES.

Por ejemplo este modelo funciona igual que el original tanto con la Raspberry Pi como la Orange Pi . El cable proporcionados  USB es de 1,5 metros y  sus botones son súper sensitivos y de alta precisión.
Las botones que incluye estos mandos   son :

  • Un botón «Start»
  • Un botón «Select»
  • Cruz de control de movimiento.
  • Cuatro botones A,,B,X,Y
  • Dos botones laterales de disparo

El modelo   descrito  tiene  un clásico diseño retro pero se adapta perfectamente a la mano y es relativamente económico ( dos mandos por menos de 9€).

 

 

El mando descrito (el  de las fotos) se puede conseguir en Amazon por unos 8€

Instalación  sistema  operativo

  1.  Debe descargar la imagen más reciente desde el sitio RetrOrangePi  la versión más reciente: RetrOrangePi 4.1  segun su placa :  Plátano Pi M2 + BeeLink X2 OrangePi Lite OrangePi uno OrangePi PC PC OrangePi + OrangePi + 2e OrangePi Plus/Plus2 Versión PAL de cero OrangePi Versión NTSC de cero OrangePi OrangePi cero Plus 2 H3 NanoPi M1(coming soon) OrangePi 2 (próximamente)VERSIÓN COMPLETA – SERVIDOR DE EUROPAPlátano Pi M2 +BeeLink X2OrangePi LiteOrangePi unoOrangePi PCPC OrangePi +OrangePi + 2eOrangePi Plus/Plus2Versión PAL de cero OrangePiVersión NTSC de cero OrangePiOrangePi cero Plus 2 H3OrangePi 2 (próximamente)NanoPi M1 (próximamente) (Debe descargar  de servidores mas cercanos al sitio de la descarga  y acorde  con la placa Orange Pi exacta que se tenga )
  2. Descomprimir la imagen  descargada  en el paso anterior . Idealmente lo mejor es  usar con el programa   7-Zip .
  3. Asegúrese de obtener un archivo con extensión .img. El tamaño del archivo es ~ 5GB por lo que se requiere una tarjeta SD de 8GB mínimo(idealmente al menos de 16GB).
  4. Formatear la microsd si es  que contiene otra versión o imagen antigua de sistema operativo por ejemplo con el programa SC Card Formatter
  5. Incorporar  la imagen flash obtenida al descomprimir en una tarjeta SD  usando el programa  Win32DiskImager

 

 

 

Configuración

 

  1. . Insertar  la tarjeta  en su  placa Orange Pi
  2. Conecte al menos un teclado usb o  un mando usb ( no es necesario conectar un teclado si va a insertar al menos un  mando USB)
  3. Conecte  mediante hdmi desde la Raspberry Pi a un TV o monitor 
  4. Finalmente proporcione alimentación de 5v DC  a la   placa .Atencion!  ! tenga mucho cuidado con este punto !, porque algunos modelos no se alimentan mediante el microusb sino por un conector propietario  o bien desde el conector de expansión , eso sí también a 5V DC.
  5. Necesitamos obtener la dirección IP de la Orange Pi , por lo que dado que el comando ifconfig   puede fallar en esta distribución , lo más sencillo es  usar el programa Fing desde su smartphone o tableta.
  6. Tenga en cuenta que el terminal   y la OrangePi deben estar conectados a la misma red. Esta app , como se puede ver en la imagen de mas abajo , al actualizar el estado nos devuelve la IP de la RETRORANGEPI directamente:                                                                                                                                                                              Screenshot_2018-03-22-22-33-10-808_com.overlook.android.fing[1]
  7. Conociendo ya la dirección IP, y manteniendo encendido nuestra OrangePi, necesitamos un programa cliente FTP para conectar nuestro ordenador, donde tenemos nuestras ROMs listas para copiar, a RetrOrangepie. Existen numerosas aplicaciones para ello, como por ejemplo FileZilla,Winscp, etc

Notas :

  • La contraseña para conectar por FTP es usuario: root contraseña: orangepi
  • Atajos de teclado (excepto Dreamcast PPSSPP, LinApple, Commodore…)

    · Select + Start → salida juego
    · Select + derecha hombro → Guardar estado
    · Select + izquierda hombro → carga estado
    · Select + derecha → guardar ranura aumento
    · Select + izquierda → guardar disminución de ranura
    · Menú de SELECT + X → RetroArch
    · Select + B → reiniciar juego

Copiar ROMs a RetroOrangepie

Una vez la Orange PI tenga  el sw de RetroOrangepie funcionando  necesitamos instalar alguna ROM  de algún juego para  disfrutar de esta .

Las ROMs(es decir volcados de memoria de los juegos )    a pesar  de tener bastantes años y no tener un valor comercial concreto , al estar sujetas a derechos de autor , no deberíamos publicar las  urls’s para su descarga , pero si se ha comprado con alguno  de estos juegos se supone podríamos hacer  uso de estas debido a los años transcurridos. Dada su gran popularidad estos volcados son  muy fácil  obtenerlos  con una sencilla búsqueda en Google  (por ejemplo emuparadise es una referencia) .

Conociendo la dirección IP  obtenida con el Fing,  la manera mas sencilla  de copiar esas ROMs  es  manteniendo encendida nuestra placa  y  por supuesto teniendo la placa conectada a la red  , usar  un programa cliente FTP para conectar desde nuestro ordenador ( donde tenemos nuestras ROMs listas para copiar)  a la OrangePIe. Existen numerosas aplicaciones para ello, como por ejemplo FileZilla,WinScp, etc

Una vez abierta nuestra aplicación de FTP, necesitamos indicar una serie de parámetros para realizar la conexión:

  • Dirección del servidor (Server Address o Host Name): La dirección IP que hemos averiguado anteriormente  con el programa Fing.
  • Nombre de usuario (UserName): root
  • Contraseña (Password): orangepi
  • Puerto (Port Number): 22

Conectamos y aparecerá un árbol de directorios que comienza desde la ruta /home/pi. Desde ahí accedemos al directorio Retropie y después a roms. Aquí se encuentran todos los directorios disponibles para copiar ROMs. Simplemente debemos copiarlas desde nuestro ordenador al directorio que corresponda y listo.

Cada emulador busca sus ROMs en un directorio específico, por lo que el único secreto aquí es saber a qué destino debe ir cada ROM. Para saberlo, lo mejor es consultar la página correspondiente a cada sistema en el wiki de Retropie,pero en general es bastante sencillo pues  colgara de /home/pi/retropi/roms/ .

Así, por ejemplo, si deseamos copiar ROMs de Megadrive, entramos en su página del wiki y vemos que la ruta que corresponde es /home/pi/RetroPie/roms/megadrive, aunque en este caso también se puede usar la ruta /home/pi/RetroPie/roms/genesis.

En caso de ROMs para la Nintendo64 por ejemplo ,  la  ruta es /home/pi/retropi/roms/n64

 

IMG_20180325_123115[1].jpg

PROBLEMAS :

  • En caso que la placa no parece arrancar, intente formatear su sd tarjeta con SDFormatter 4.0  (con ajuste de tamaño sobre) o, probar una fuente de alimentación diferente (real 2A) y una nueva sd (class10 original, recomendado), y por último pero no menos importante, asegúrese de conectarse su  TV es compatible con HDMI 720 (sin los adaptadores DVI)
  • En el primer arranque automáticamente se instala el sistema, cambia el tamaño de la tarjeta sd y en ocasiones se reinicia otra vez, asi que por favor sea paciente
  • Por defecto el nombre de usuario y contraseñas son: pi de usuario / contraseña pi / superusuario root / contraseña orangepi
  • Los emuladores ya están instalados, pero sólo aparecen en EmulationStation al agregar roms.
  • Para agregar ROMs, simplemente soltar archivos en la carpeta de la consola de /home/pi/RetroPie/roms/$, donde $CONSOLE es el nombre de la consola de destino, por ejemplo snes o arcade. Puede lanzar el escritorio de EmulationStation y enchufe una unidad USB con tus ROMs. Carpetas roms son también acciones de samba.
  • Debido a nuestra configuración personalizada, por favor no ejecutar ‘sudo apt-get upgrade’. Se pueden romper algunas cosas.
  • Las ROMs   a pesar  de tener bastantes años y no tener valor comercial al estar sujetas a derechos de autor , no podemos  publicar las  urls’s para su descarga , pero dado su gran popularidad es muy fácil obtenerlas  con una sencilla búsqueda en Google (por ejemplo emuparadise es una referencia) .

 

Azure IoT Edge en una Raspberry Pi 3


OK, gracias a un post anterior  teníamos dentro de nuestro equipo  un dispositivo basado en Windows  simulado enviando datos a la nube, todo en nuestra propia máquina de desarrollo (es decir sin necesitar otro equipo en el que instalar sw adicional). Obviamente estos es interesante desde el punto de vista del aprendizaje pues nos muestra  como es un dispositivo dedicado de Edge  IoT de Azure.¿No?

¿Necesita ese equipo? OK, vamos a estudiar hacer  algo para  salir de este  usando otro hw  diferente  asi que el siguiente paso en el viaje es poner Edge IoT de Azure en un dispositivo real, es decir   instalar el sw de Azure Iot Edge en algún otro lugar, como por ejemplo  en una  Raspberry Pi 3.

Si nunca ha trabajado con una Raspberry Pi 3, no se preocupe! Es muy simple empezar pues en realiad  sólo se puede imaginar la Raspberry Pi 3 como un equipo súper pequeño que pasa a tener también GPIO (con fines generales entrada/salida)  para poder controlar cosas como motores y leer cosas de sensores. Es fácil ver el IPC como el, porque eso es lo que es.

Por 35€ más o menos, tiene un procesador de 1,3 GHZ quad-core ARM, GPU, cuatro puertos USB, un puerto Ethernet, Wi-Fi a bordo y Bluetooth y un salida HDMI, así como los mencionados pines GPIO. Es un terreno intermedio: es un equipo endeble pero un dispositivo de IoT muy potente.

Este hw  es una gran elección  para estar a si desea ejecutar Microsoft Azure IoT Edge pues necesita suficiente potencia para ejecutar lenguajes de alto nivel como Java o C#, pero no necesita ejecutar Crysis 3 con todos los ajustes en lo alto.

Requisitos previos

  • Raspberry Pi 3,
  • BME280
  • Monitor de PC con entrada HDMI
  • Cable de HDMI
  • Tarjeta micro SD (con cualquier adaptador necesita conectarlo al ordenador)
  • Fuente de alimentación USB (5 voltios, por lo menos 2,5 amperios) con cable USB a micro-USB
  • Teclado y ratón USB

Configuración de la Raspberry Pi 3

Después de haber  conectado todos los periféricos de la RPi y tiene una pequeña computadora con un nido de  cables para el ratón, teclado y monitor, usted podría preguntarse cómo vamos a poner Windows en él.

Bueno, no es necesario pues  pondremos  Raspbian en él, un sabor de Linux. ¡Ataque! Si pensabas que estaban a salvo de las artes oscuras de Linux, con este post es sobre un producto de Microsoft, usted sería confundir urgentemente.

Raspbian es una versión ligera de Linux creado específicamente para el Raspberry Pi. Tiene un proceso de instalación simple y un lindo GUI, incluyendo juegos de escritorio y algunos programas preinstalados  No, es probablemente la solución ideal que se desea utilizar para correr una gateway IoT muy crítica, pero proporciona una buena introducción a la instalación de Microsoft Azure IoT Edge en un dispositivo de Linux.

Si tapan sus oídos y cierra los ojos cuando escuche «Linux», no se preocupe, si se siente más cómodo manejando dispositivos de Windows, tenga en cuenta que Edge del IoT también funciona en entornos Windows. Sin embargo, incluso  Microsoft  parece favorecer Linux para poner Edge de IoT en  producción.

Incluso para Linux noobs, Raspbian es fácil de instalar. De hecho, puede utilizar un gestor de arranque llamado «NOOBS» para facilitar un poco el proceso. El proceso es muy sencillo:  sólo necesita descargar los archivos Raspbian NOOBS, formatear la  tarjeta micro SD, poner esos archivos en ella y luego conectar esa tarjeta SD en el Pi y el siguiente es la  pantalla de  instrucciones.

Una vez que haya descargado e instalado Raspbian, es el momento de instalar Edge del IoT de Azure. El proceso como vamos a ver es similar a como es con la demo simulada de windows  pero  en Linux: se  bajan  los últimos archivos desde el repositorio git de Edge IoT y se genera la aplicación. Recuerde, Edge  IoT git repo no incluye el código compilado para que tenga que hacer esa parte. !No se preocupe, es incluso más sencillo en Linux lo que es en Windows!.

Una vez que haya instalado Edge del IoT, se puede  modificar el archivo JSON con el nombre de eje de IoT y sufijo, ID de dispositivo y las teclas de los dispositivos simulados, y el comando para iniciar y ejecutar la aplicación …

Veamos el proceso en detalle:

Paso 1: Configuración de Raspberry Pi

Instalar el sistema operativo Raspbian para Pi

Lo hemos visto en numerosas ocasiones en este blog ,pero esta ocasión lo haremos de una manera mucho mas sencilla usando Edger  .Simplemente son unos pasos:

  1. Descargue  Raspbian Jessie con el escritorio (el archivo .zip).
  2. Extraiga la imagen de Raspbian en una carpeta del equipo.
  3. Descargue e instale la utilidad de grabadora de tarjetas SD Etcher.
  4. Ejecute Etcher y seleccione la imagen de Raspbian
  5. Seleccione la unidad de la tarjeta microSD. Tenga en cuenta que es posible que Etcher ya haya seleccionado la unidad correcta.
  6. Haga clic en Flash para instalar Raspbian en la tarjeta microSD.
  7. Quite la tarjeta microSD del equipo cuando se complete la instalación. Es seguro quitar la tarjeta microSD directamente porque Etcher expulsa o desmonta la tarjeta microSD automáticamente al acabar.
  8. Inserte la tarjeta microSD en la Pi.

Habilitar SSH e I2C

  1. Conecte Pi al monitor, el teclado y el mouse, inicie Pi y luego inicie sesión en Raspbian con pi como nombre de usuario y raspberrycomo contraseña.
  2. Haga clic en el icono de Raspberry > Preferencias > Configuración de Raspberry Pi.                                                      Menú Preferencias de Raspbian
  3. En la pestaña Interfaces, establezca I2C y SSH en Habilitar y luego haga clic en Aceptar. Si no tiene sensores físicos y desea usar datos de detección simulados, este paso es opcional                  .Habilitar I2C y SSH en Raspberry Pi

 Conexión de Pi a la red

Encienda la Pi mediante un cable microUSB y la fuente de alimentación. Use el cable Ethernet para conectar Pi a la red cableada o siga las instrucciones de Raspberry Pi Foundation para conectar Pi a la red inalámbrica:

  1. Las conexiones LAN inalámbricas se pueden hacer mediante el icono de red en el extremo derecho de la barra de menús. Si usas un Raspberry Pi 3, o un modelo anterior con un dongle WiFi conectado, este icono con el botón izquierdo se abrirá una lista de redes WiFi disponibles.
  2. Si no se encuentran redes, aparecerá el mensaje: esperen unos segundos sin cerrar el menú, y debe encontrar en la red."No APs found - scanning..."
  3. Los iconos a la derecha muestran si una red está asegurada o no y su intensidad de la señal. Haga clic en la red que desea conectarse. Si está asegurado, aparecerá un cuadro de diálogo solicitándole que ingrese la clave de red.
  4. Introduzca la clave y presione OK, luego esperar un par de segundos. El icono de red parpadea brevemente para mostrar que se está realizando una conexión. Una vez listo, el icono deja de parpadear y muestra la intensidad de la señal.

Después de que Pi se ha conectado correctamente a la red, debe anotar la dirección IP de su Pi abriendp una ventana LXTerminal y escriba el siguiente comando: sudo ifconfig

Junto a la entrada de wlan0 vera inet addr: 192.168.1.10 que es la dirección IP de la Raspberry Pi 3 ( en su placa la IP puede ser otra  distinta del tipo 192.168.1.xxx).

Asegúrese de que la Pi se conecta a la misma red que el equipo. Por ejemplo, si el equipo está conectado a una red inalámbrica mientras Pi está conectada a una red cableada, es posible que no vea la dirección IP en la salida de devdisco.

Conectar el sensor a Pi

El BME280 es una placa de gran precisión con un sensor de temperatura, humedad y presión   basado  en  el famoso sensor  Bosch sensortec ME280 que va integrado en la propia placa .
La placa tiene un exclusivo puente de dirección l2C (enlace soldado GS2), resistencia de polarización I2C, 7 conectores Berg de 2,54 mm, y dos agujeros de montaje de 3,5 mm.

Tiene las mismas especificaciones, pero se puede usar  bien via  I2C o bien por SPI , aunque para un cableado más simple, elija el I2C. Sin embargo si  quiere conectar un montón de sensores sin preocuparse por la colisión de direcciones en I2C, elija el SPI

En este ejemplo al necesitar solo un sensor usaremos I2C.

Este sensor de precisión de Bosch es la mejor solución para la medición de la presión barométrica  y temperatura. Debido a que los cambios de presión con altitud y las mediciones de presión son tan buenas, también puede usarlo como altímetro con precisión por metro .

Asimismo los sensores de humedad y de presión puede ser activados/desactivados de forma independiente.

La tensión de alimentación VDD principal atencion esta entre 1,71 V a 3,6 V  de modo que no debemos superar los 3.6V

El conexionando  del sensor  a la Raspberry Pi 3 , puede usar el siguiente cableado:

BME280 Raspbery Pi 3 Color de cable
VCC Potencia 3,3 V (patilla 1) Cable blanco
GND GND (patilla 6) Cable marrón
SDA I2C1 SDA (patilla 3) Cable rojo
SCL I2C1 SCL (patilla 5) Cable naranja

El led lo  colocaremos  directamente entre el pin GPIO 24 (pin18)  de la Raspberry Pi 3  y la masa ( por ejemplo pin 20 de la Raspberry Pi 3)

Conexión de Raspberry Pi y el sensor

Cuando ejecutemos al aplicación en python de demostración  y hayamos concluido los pasos siguientes  ,el sensor BME280 recopilará datos sobre la temperatura y la humedad, y el LED parpadeara si se produce comunicación entre el dispositivo y la nube.

Paso 2 :Crear un centro de IoT

  1. Inicie sesión en Azure Portal.
  2. Seleccione Crear un recurso > Internet de las cosas > IoT Hub.iothub.PNG
    • Nombre: cree un nombre para su centro de IoT. Si el nombre que escribe es válido, aparece una marca de verificación verde.En el panel Centro de IoT, escriba la información necesaria para su centro de IoT: IoT Hub puede detectarse públicamente como un punto de conexión DNS, por tanto, procure evitar cualquier información confidencial al darle el nombre.
    • Nivel de precios y de escala: en este tutorial, seleccione el nivel F1 – Gratis.
    • Grupo de recursos: cree un grupo de recursos para hospedar el centro de IoT o use uno existente.
    • Ubicación: seleccione la ubicación más cercana a usted.
    • Anclar al panel: active esta opción para facilitar el acceso al IoT Hub desde el panel                                                                     .centro de iot.PNG
  3. Haga clic en Crear  . El centro de IoT puede tardar varios minutos en crearse. Puede ver el progreso en el panel Notificaciones.

Ahora que ha creado un centro de IoT, busque la información importante que usa para conectar a él dispositivos y aplicaciones.

  1. Después de crear el centro de IoT, haga clic en él en el panel. Anote el Nombre de host y haga clic en Directivas de acceso compartido.hi.png
  2. En el panel Directivas de acceso compartido, haga clic en la directiva iothubowner y, luego, copie y anote la cadena de conexión de su centro de IoT.En algunos  ejemplos , quizás no necesite esta cadena de conexión iothubowner. Sin embargo, puede necesitarla  en diferentes escenarios de IoT después de realizar esta configuración. Tome nota pues del valor Cadena de conexión (clave principal)

directivas.png

Paso  3 :Registro de su dispositivo en IoT Hub

  1. En Azure Portal, abra su centro de IoT.
  2. Haga clic en EXPLORERS ->Explorador de dispositivos.
  3. En el panel Explorador del dispositivo, haga clic en Agregar para agregar un dispositivo a su centro de IoT. A continuación, haga lo siguiente:Id. de dispositivo: escriba el identificador del nuevo dispositivo. Los identificadores de dispositivos distinguen mayúsculas de minúsculas.explores.PNGTipo de autenticación: seleccione Clave simétrica.Generar claves automáticamente: active esta casilla de verificación.Connect device to IoT Hub (Conectar dispositivos a IoT Hub): haga clic en Habilitar.

    El identificador del dispositivo puede estar visible en los registros recopilados para soporte técnico y solución de problemas del cliente, por tanto asegúrese de evitar cualquier información confidencial al darle el nombre.

  4. Haga clic en Guardar.
  5. Después de crear el dispositivo, ábralo en el panel Explorador de dispositivos.
  6. Anote la clave principal de la cadena de la cadena de conexión pues es la que qeu permitirá conectarse a un dispositivo conectarse con el Centro de IoT.

Paso 4: Ejecutar una aplicación en la Raspberry Pi

Instalar los paquetes de requisitos previos

Use uno de los siguientes clientes SSH del equipo host para conectar con Raspberry Pi.

  1. Si  no lo tiene ,descargue e instale PuTTY para Windows.
  2. Copie la dirección IP de Pi en la sección de nombre de host (o dirección IP) y seleccione SSH como el tipo de conexión.
  3. Si no lo ha cambido ,el nombre de usuario predeterminado es pi y la contraseña es raspberry.

Configurar la aplicación de ejemplo

  • Clone la aplicación de ejemplo mediante el comando siguiente:
cd ~
git clone https://github.com/Azure-Samples/iot-hub-python-raspberrypi-client-app.git

Obtendrá una respuesta similar a la siguiente:

cd ~

git clone https://github.com/Azure-Samples/iot-hub-python-raspberrypi-client-app.git
Cloning into ‘iot-hub-python-raspberrypi-client-app’…
remote: Counting objects: 114, done.
remote: Total 114 (delta 0), reused 0 (delta 0), pack-reused 114
Receiving objects: 100% (114/114), 98.63 KiB | 0 bytes/s, done.
Resolving deltas: 100% (56/56), done.

  • Abra el archivo config mediante la ejecución de los comandos siguientes:
cd  iot-hub-python-raspberrypi-client-app
nano config.py

Hay cinco macros en este archivo que se pueden configurar. La primera es MESSAGE_TIMESPAN, que define el intervalo de tiempo (en milisegundos) entre dos mensajes que se envían a la nube configtrado por defecto a 2000. La segunda es SIMULATED_DATA, un valor booleano que indica si se usan los datos de sensor simulados o no.Si no tiene el sensor, establezca el valor en True para que la aplicación de ejemplo cree y use datos de sensor simulados.  I2C_ADDRESS es la dirección de I2C a la que está conectado el sensor BME280 (por defecto al pvalor 0x77)  . GPIO_PIN_ADDRESS es la dirección GPIO del LED (por defecto a 24) . La última de ellas es BLINK_TIMESPAN, que define el intervalo de tiempo cuando se activa el LED en milisegundos(por defecto al valor 1000).python app.pi

  • Guarde y salga al presionar Control-O > Entrar > Control-X.

config

Compilar y ejecutar la aplicación de ejemplo

  1. Compile la aplicación de ejemplo con el comando siguiente: Dado que los SDK de Azure IoT para Python son contenedores que funcionan sobre el SDK de C de dispositivos de Azure IoT, debe compilar las bibliotecas de C si desea o necesita generar las bibliotecas de Python a partir del código fuente.
    sudo chmod u+x setup.sh
    sudo ./setup.sh
    

    La ejecución de este comando  se llevara su tiempo ( aproximadamente una hora o mas )  dependiendo  ademas de que  la conexión de red  sea ethernet  o por wifi .  NO tiene demasiado sentido repetir el log completo de ejecución  ,pero lo importante es que debería terminar  de un modo similar a  este……

    Installed /usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-1.0.3-py2.7.egg
    Processing dependencies for Adafruit-GPIO==1.0.3
    Searching for adafruit-pureio
    Reading https://pypi.python.org/simple/adafruit-pureio/
    Downloading https://pypi.python.org/packages/55/fa/99b1006fb4bb356762357b297d8db6ec9ffa13af480692ab72aa4a0dd0c4/Adafruit_PureIO-0.2.1.tar.gz#md5=5b3276059eb55d6c37429a8413a92029
    Best match: Adafruit-PureIO 0.2.1
    Processing Adafruit_PureIO-0.2.1.tar.gz
    Writing /tmp/easy_install-fN1TPJ/Adafruit_PureIO-0.2.1/setup.cfg
    Running Adafruit_PureIO-0.2.1/setup.py -q bdist_egg –dist-dir /tmp/easy_install-fN1TPJ/Adafruit_PureIO-0.2.1/egg-dist-tmp-f0Y_C9
    zip_safe flag not set; analyzing archive contents…
    Moving Adafruit_PureIO-0.2.1-py2.7.egg to /usr/local/lib/python2.7/dist-packages
    Adding Adafruit-PureIO 0.2.1 to easy-install.pth file

    Installed /usr/local/lib/python2.7/dist-packages/Adafruit_PureIO-0.2.1-py2.7.egg
    Searching for spidev==3.3
    Best match: spidev 3.3
    Adding spidev 3.3 to easy-install.pth file

    Using /usr/lib/python2.7/dist-packages
    Finished processing dependencies for Adafruit-GPIO==1.0.3

  2.  En caso de error » :No module named ‘iothub_client‘  se deba probablemente porque no  se ha  terminado de  construir  la aplicación  correctamente   bien por falta de memoria de swapping  o porque ya existe alguna otra aplicación  instalada  de Iot  que hace un uso también de librerías comunes ( por ejemplo las librerías de Cayenne).

    El motivo pues se debe que al compilar la biblioteca cliente de Python (iothub_client.so) en dispositivos Linux que tienen menos de 1GB de RAM, puede ver que la construcción se atasca al 98% al construir iothub_client_python.cpp como se muestra a continuación [98%] Construyendo el objeto CXX python / src / CMakeFiles /iothub_client_python.dir/iothub_client_python.cpp.o. Si se encuentra con este problema, verifique el consumo de memoria del dispositivo mediante el comando free -m en otra ventana de terminal durante ese tiempo. Si se está quedando sin memoria mientras compila el archivo iothub_client_python.cpp, es posible que tenga que aumentar temporalmente el espacio de intercambio para obtener más memoria disponible para compilar correctamente la biblioteca del SDK del dispositivo del lado del cliente de Python.    La solución mas sencilla  si no quiere probar otras , es  repetir la instalacion de la SD.

  3. Ahora ya puede ejecutar la aplicación de ejemplo mediante el comando siguiente:
    python app.py 'cadena de conexion clave primeria'
    

    Asegúrese de que copia y pega la cadena de conexión del dispositivo entre las comillas simples. Y si usa la versión 3 de Python, puede utilizar el comando python3 app.py ''.

Debería ver un  resultado similar al siguiente, que muestra los datos del sensor y los mensajes que se envían a IoT Hub.

salida.PNG

 

 

Ya hemos ejecutado una aplicación de ejemplo basada  en Python  que es capaz de recopilar datos de un  sensor  conectado a la Raspberrry Pi  via I2C   y enviarlos a IoT Hub de Azure  asi  que ya tenemos las bases para seguir creando sistemas de Iot  basados en Raspberry Pi  y la nube de Azure  usando la novedosa tecnologia de Azure Iot Edge .

Fuente  https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-raspberry-pi-kit-python-get-started