Como usar la extensión de IoT para Azure CLI 2.0 para gestionar dispositivos de Azure IoT Hub


La Extensión de la IoT para Azure CLI 2.0 es una nueva extensión para IoT en código  abierto que añade a las capacidades de Azure CLI 2.0, la cual como vamos a ver  incluye comandos para interactuar con el administrador de recursos Azure como por ejemplo, puede utilizar Azure CLI 2.0 para crear una VM de Azure o un IoT Hub.

Una extensión CLI permite un servicio de Azure incrementar el Azure CLI dando  acceso a funciones adicionales específicas de servicio como vamos a ver.

La extensión de IoT da IoT permite a los  desarrolladores y aficionados acceso desde línea de comandos a todos los  IoT Hub, IoT Edge, y las capacidades  de  IoT Hub Device Provisioning Service

Algunos ejemplos de posibilidades que ofrece esta extension:

Opción de manejo Tarea
Métodos directos Hacer un dispositivo actuar como arrancar o parar el envío de mensajes o reiniciar el dispositivo.
Propiedades de dos deseadas Poner un dispositivo en algunos estados, tales como poner establecer un LED a verde o establecer el intervalo de enviar telemetría cada 30 minutos.
Doble registrados propiedades Obtener el estado que informó  un dispositivo. Por ejemplo, el dispositivo informa que el LED parpadea ahora.
Etiquetas de doble funcion Almacenar metadatos específicos del dispositivo en la nube. Por ejemplo, la situación de la implementación de una máquina expendedora.
Consultas de doble dispositivo Consulta todos los gemelos de dispositivo para recuperarlas condiciones arbitrarias, tales como identificar los dispositivos que están disponibles para su uso.

Device twins (Gemelos de dispositivo) son documentos JSON que almacenan información de estado del dispositivo (metadatos, configuraciones y condiciones). Eje de IoT persiste a una doble dispositivo de cada dispositivo que se conecta a él.

Extensión de IoT para Azure CLI 2.0

Vamos   a ver  usar  la extensión de IoT para Azure CLI 2.0 con varias opciones de manejo en nuestra máquina de desarrollo ejecutando Azure CLI 2.0 y la extensión de IoT para Azure CLI 2.0 con varias opciones de gestión.

Para poder usar esta extensión necesitaremos  haber configurado el dispositivo completo  de Iot  cubriendo los siguientes requisitos:

    • Una suscripción activa de Azure.
    • Un centro de Azure IoT bajo su suscripción.
    • Una aplicación de cliente que envíe mensajes a su hub de IoT de Azure.

Debemos asegurarnos de que el dispositivo se está ejecutando con la aplicación de cliente .Por ejemplo un método muy cómodo de comprobarlo es usando la herramienta  Microsoft Azure Storage siempre que hayamos vinculado nuestro  Hub de Iot a Azure Storage (como vimos es este post) ,pues desde esta herramienta podremos ver fácilmente el contenido de los mensajes enviados por el dispositivo

azurestorage

Microsoft Azure IoT Extension for Azure CLI 2.0  proporciona nuevos y emocionantes comandos y capacidades de IoT centrados en los servicios IoT Hub y IoT Device Provisioning. La funcionalidad se proporciona como un paquete de extensión CLI de Azure para una integración perfecta con la funcionalidad de línea de comandos existente.

La extensión aumenta el Azure CLI IoT de Azure agregando o modificando el espacio de comando existente. La extensión incluye capacidades en las siguientes categorías:

  • IoT Hub
  • IoT Edge
  • IoT Device Provisioning Service (DPS)

Instalación  

Paso1; Instalación de Python.

Como requisito previo se necesita instalar Python en el equipo de desarrollo. Podemos instalar  Python 2.7 x o Python 3.x. Python 3.65 es la ultima version disponible y que podemos instalar. Simplemente ir a   https://www.python.org/downloads/  pinchar sobre enlace para descargar la ultima version  y después ejecutar el instalable para lanzar la instalación.

Paso 3:Instalar Azure CLI 2.0 

Tambien necesitamos instalar el cliente de Azure CLI 2.0  para  agregar despuesla extensión IoT. Podemos instalar  directamente con un  instalador desde  Windows  el cliente CLI , para ello descargaremos MSI y luego lo  instalaremos en nuestro equipo de desarrollo

azure cli.PNG

Como mínimo, la versión Azure CLI 2.0 debe ser 2.0.24 o superior. Esta versión admite los comandos de extensión az e introduce el marco de comandos knack, es por eso que podemos utilizar para comprobarlo el comando desde linea de comandos (cmd): 

 az --version .

Por ejemplo este el resultado de la ejecución de este comando con la ultima version instalada (2.0.31) del cliente de Azure:

C:\Users\Carlos>az –version
azure-cli (2.0.31)
acr (2.0.23)
acs (2.0.31)
advisor (0.5.1)
appservice (0.1.31)
backup (1.1.1)
batch (3.2.0)
batchai (0.2.0)
billing (0.1.8)
cdn (0.0.14)
cloud (2.0.13)
cognitiveservices (0.1.12)
command-modules-nspkg (2.0.1)
configure (2.0.15)
consumption (0.3.0)
container (0.1.22)
core (2.0.31)
cosmosdb (0.1.20)
dla (0.0.19)
dls (0.0.21)
eventgrid (0.1.12)
eventhubs (0.1.2)
extension (0.0.12)
feedback (2.1.1)
find (0.2.9)
interactive (0.3.19)
iot (0.1.19)
keyvault (2.0.21)
lab (0.0.21)
monitor (0.1.5)
network (2.0.28)
nspkg (3.0.2)
profile (2.0.22)
rdbms (0.2.1)
redis (0.2.12)
reservations (0.1.2)
resource (2.0.27)
role (2.0.22)
servicebus (0.1.2)
servicefabric (0.0.12)
sql (2.0.25)
storage (2.0.31)
vm (2.0.30)
Python location ‘C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe’
Extensions directory ‘C:\Users\Carlos\.azure\cliextensions’
Python (Windows) 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]
Legal docs and information: aka.ms/AzureCliLegal

También puede seguir las instrucciones de instalación en Microsoft Docs configurar Azure CLI 2.0 en su entorno.

Paso 4: Instalación  de la extensión de cliente de Azureo pare IoTI

Finalmente también  tenemos que instalar la extensión de la IoT ahora que tiene una extensión de  cliente de Azure compatible instalado.

Cuando se instala una extensión, cualquier dependencia adicional de Python requerida se descarga  y se instala automáticamente.
Hay múltiples opciones para la instalación. Después de instalar la extensión, puede usar una lista de extensiones az para validar las extensiones instaladas actualmente o la extensión az show – nombre azure-cli-iot-ext para ver detalles sobre la extensión IoT.
En todos los casos, asegúrese de que la extensión IoT sea la versión 0.3.2 o superior.

La extensión está diseñada para ser plug-and-play con Azure CLI. Incluso si tiene Azure CLI instalado, asegúrese de que esté actualizado.La forma más sencilla es ejecutar el siguiente comando.

az extension add --name azure-cli-iot-ext

Puede usar el comando  az list list-available para ver todas las extensiones disponibles en el índice y es posible tambien actualizar una extensión en su lugar utilizando la extensión az update –name, Asimismo El IoT extensión archivo Léame describe varias maneras de instalar la extensión.

Paso 5:Inicie sesión  en Azure

Inicie sesión su cuenta Azure ejecutando el siguiente comando:

az login

Ahora  vaya a la  pagina   https://microsoft.com/devicelogin  e    introduzca el código que devuelve el comando    en  la  pagina anterior   para validarse.

 

inicioazure.PNG

Una vez aceptada en la página nos pide nuestro login de la cuenta de Azure  y tras aceptarse  ya  no es necesario continuar en el navegador   y a partir de aqui ya estan disponible los comandos  posibles de Azure  CLI

login.PNG

Una  validado  nos dará un mensaje de finalizacioó

fin.PNG

 

Ahora desde linea de comando tenemos muchas posibilidades :

Hub

Command group: az iot hub

az iot hub query

az iot hub generate-sas-token
az iot hub show-connection-string

az iot hub apply-configuration

az iot hub invoke-device-method
az iot hub invoke-module-method

Hub Device Identity

Command group: az iot hub device-identity

az iot hub device-identity create
az iot hub device-identity show
az iot hub device-identity list
az iot hub device-identity update
az iot hub device-identity delete

az iot hub device-identity show-connection-string

az iot hub device-identity import
az iot hub device-identity export

Hub Device Twin

Command group: az iot hub device-twin

az iot hub device-twin show
az iot hub device-twin replace
az iot hub device-twin update

Hub Module Identity

Command group: az iot hub module-identity

az iot hub module-identity create
az iot hub module-identity show
az iot hub module-identity list
az iot hub module-identity update
az iot hub module-identity delete

az iot hub module-identity show-connection-string

Hub Module Twin

Command group: az iot hub module-twin

az iot hub module-twin show
az iot hub module-twin replace
az iot hub module-twin update

Edge Deployment

Command group: az iot edge deployment

az iot edge deployment create
az iot edge deployment show
az iot edge deployment list
az iot edge deployment update
az iot edge deployment delete

Device

Command group: az iot device

az iot device send-d2c-message
az iot device simulate
az iot device upload-file

Device c2d-message

Command group: az iot device c2d-message

az iot device c2d-message receive

az iot device c2d-message complete
az iot device c2d-message abandon
az iot device c2d-message reject

DPS Enrollment

Command group: az iot dps enrollment

az iot dps enrollment create
az iot dps enrollment show
az iot dps enrollment list
az iot dps enrollment update
az iot dps enrollment delete

DPS Enrollment Group

Command group: az iot dps enrollment-group

az iot dps enrollment-group create
az iot dps enrollment-group show
az iot dps enrollment-group list
az iot dps enrollment-group update
az iot dps enrollment-group delete

DPS Registration

Command group: az iot dps registration

az iot dps registration show
az iot dps registration list
az iot dps registration delete

 

Importante:

Añada –help o -h a un grupo de comandos o comando para obtener más información.
Para grupos de comandos, esto revelará los comandos del grupo objetivo
Para los comandos, esto revelará información sobre los parámetros y puede incluir ejemplos de uso.

 

Algunos ejemplos de uso prácticos:

  • Metodos directos :  Se puede invocar directamente desde linea de comandos:                az iot hub invoke-device-method –device-id –hub-name –method-name –method-payload
  • Propiedades del dispositivo gemelo deseado: Por ejemplo se puede establecer una  propiedad de  intervalo = 3000 ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.desired.interval = 3000                                  Esta propiedad  puede ser leída tamnbien  desde  su dispositivo.
  • Propiedades del doble dispositivo registrados : se pueden obtener las propiedades divulgadas del dispositivo ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.reported.interval = 3000 .  Una de las propiedades es $metadata. $lastUpdated que muestra la última vez que este dispositivo envía o recibe un mensaje.
  • Etiquetas de doble dispositivo: Se pueden mostrar las etiquetas y propiedades del dispositivo ejecutando el siguiente comando: az iot hub device-twin show –hub-name –device-id                                                                                                            Agregar una función de campo = temperatura & humedad al dispositivo ejecutando el siguiente comando:az iot hub device-twin update –hub-name –device-id –set tags = ‘{“role”:”temperature&humidity”}}’
  • Consultas de doble dispositivo :Consulta de dispositivos con una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command “SELECT * FROM devices WHERE tags.role = ‘temperature&humidity’
  • Consulta todos los dispositivos excepto los que tienen una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command “SELECT * FROM devices WHERE tags.role != ‘temperature&humidity'”

 

 

 

Hemos visto por tanto cómo controlar mensajes de dispositivo a nube y enviar mensajes de dispositivo de nube entre su dispositivo de IoT y Azure IoT Hub.

Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-device-management-iot-extension-azure-cli-2-0

Anuncios

Visualizar datos de sensores en tiempo real de Azure IoT Hub usando BI


Antes de empezar este post  deberíamos   tener configurado  un dispositivo Iot de Azure como por ejemplo  algunos que hemos visto como puede ser una Raspberry Pi 3  , un ESP8266  o incluso un dispositivo simulado.

En todos los  dispositivos de Azure IoT  hub comentados debemos implementar una aplicación de ejemplo para ejecutar en estos dispositivos, la cual  enviará  datos que  los sensores recogen del mundo físico ( humedad , temperatura, presencia, etc  ) a su hub de IoT.

Ahora ,una vez que tenemos un dispositivo IoT enviando mensajes  de telemetría a la nube de Azure Iot Edge, toca  crear una cuenta de Azure storage y una aplicación Azure  para poder almacenar los mensajes de hub de IoT en el almacenamiento blob, pero  como comentamos  al  principio , como requisito previo,    necesitamos  tener configurado su dispositivo de Iot  para cubrir los siguientes requisitos:

  • Una suscripción activa de Azure
  • Un centro de IoT bajo su suscripción
  • Una aplicación que envíe mensajes a su hub de IoT
  • Una cuenta  de BI. (Tratar de poder BI gratis)

 

Si  su dispositivo de IoT  ya esta enviando mensajes al Hub de Iot  excepto que haya instalado en una maquina Linux el explorador de mensajes de Azure  olo haga desde la consola  no podrá ver el contenido  de esos mensajes.  Precisamente para solucionar este problema, podemos conectar el sistema de almacenamiento de Azure con los mensajes del dispositivo para que sean almacenados como BLOB’s en el la nube de Azure,como vimos en  un post anterior 

 

En  este  post veremos como  visualizar de una forma gráfica   precisamente esos  datos del sensor en tiempo real que recibe de su hub de Azure IoT por medio de BI , aunque como veremos mas adelante en otro post si usted quiere tratar de visualizar los datos en su hub de IoT con aplicaciones Web e puede hace con otra herramienta  Azure Web Apps

 

Añadir un grupo de consumidores a su hub de IoT

Grupos de consumidores son utilizados por aplicaciones para extraer datos desde Azure IoT. Por esta razon  crearemos un grupo de consumidores para ser utilizado por un servicio de Azure que viene para leer datos de su centro de IoT.

Para agregar un grupo de consumidores a su hub de IoT, siga estos pasos:

  1. En el portal de Azure, abra su hub de IoT.
  2. En el panel izquierdo, Mensajeria –>Puntos de acceso
  3. Haga clic en el panel central en Events
  4. Ahora introduzca un nombre en grupos de consumidores en el panel derecho ( en el ejemplo lo hemos llamado “Device-to-cloud-settings” )
  5. Haga clic en Guardar.puntos de coenxion.PNG

Crear, configurar y ejecutar un trabajo de Stream Analytics

Crear un trabajo de Stream Analytics

  1. En el portal de Azure, haga clic en crear un recurso > Internet de las cosas > Stram Analytics (aálisis de flujo de trabajo)streamanalitycs.PNG
  2. Introduzca la siguiente información para el trabajo.Nombre del trabajo: el nombre del trabajo que debe ser  único en el sistema.                                                                                                                                            Suscripción: Evaluación gratuita.Grupo de recursos: utilizar el mismo grupo de recursos que utiliza el hub de IoT.

    Ubicación: utilizar la misma ubicación como el grupo de recursos.

    Anclar al panel: Seleccione esta opción para acceder a su centro de IoT desde el panel de entrada de Azurestreamjob.PNG

  3. Haga clic en Crear.

Agregar una entrada para el trabajo de Stream Analytics

  1. Abrir el trabajo de Stream Analytics.
  2. En la Topología de trabajo, haga clic en entradas.
  3. En el panel de entradas , haga clic en Agregary especifique la siguiente información:Alias de la entrada: escriba un nombre  único para el alias la entrada.Fuente: seleccione centro de IoT.

    Grupo de consumidores: seleccione el grupo de consumidores que acaba de crear.

  4. Haga clic en crear.centro deiot.PNG

Añadir una salida a la tarea de Stream Analytics

  1. En Topología de trabajo, haga clic en resultados.
  2. En el panel resultados , haga clic en Agregary luego ingrese la siguiente información:Alias de salida: el único alias para la salida.Tipo: seleccione Power BI.
  3. Haga clic en autorizar  para lo cual necesitará  una cuenta profesional  o bien probarlo con  una version gratuita salidapowerbi
  4. Ingrese a su cuenta Power BI y autorice esta salida .
  5. Una vez autorizado, introduzca la siguiente información:Espacio de trabajo de grupo: Seleccione su área de trabajo de grupo de destino.Nombre de conjunto de datos: Introduzca un nombre de conjunto de datos.

    Nombre de la tabla: escriba un nombre de tabla.

  6. Haga clic en crear.

Configurar la consulta del trabajo de análisis de secuencia

  1. En la Topología de trabajo, haga clic en consulta.
  2. Reemplace con el alias de entrada del trabajo.[YourInputAlias]
  3. Reemplace con el alias de salida del trabajo.[YourOutputAlias]
  4. Haga clic en Guardar.

Ejecutar el trabajo de análisis de secuencia

En el trabajo de análisis de secuencia, haga clic en Inicio > ahora > iniciar. Una vez que el trabajo se inicia con éxito, el estado del trabajo cambia de parado a correr.

Crear y publicar un informe de Power BI para visualizar los datos

  1. Garantizar que la aplicación de ejemplo se ejecuta en el dispositivo.
  2. Inicie sesión su cuenta de Power BI .
  3. Ir al espacio de trabajo de grupo que se establece cuando se crea la salida para el trabajo de análisis de secuencia.
  4. Haga clic en conjuntos de datos de Streaming.Debería ver el conjunto de datos lista que especificó cuando creó la salida para el trabajo de análisis de secuencia.
  5. En acciones, haga clic en el primer icono para crear un informe.
  6. Crear un gráfico de líneas para mostrar la temperatura en tiempo real con el tiempo.
    1. En la página de creación de informe, agregar un gráfico de líneas.
    2. En el panel de campos , expanda la tabla que especificó cuando creó la salida para el trabajo de análisis de secuencia.
    3. Arrastre EventEnqueuedUtcTime al eje de en el panel de visualización .
    4. Arrastre la temperatura a los valores.Ahora se crea un gráfico de líneas. El eje x muestra la fecha y la hora en la zona de tiempo UTC. El eje y muestra la temperatura del sensor. 
  7. Crear otro gráfico de líneas para indicar humedad en tiempo real con el tiempo. Para ello, siga los mismos pasos anteriores y coloque EventEnqueuedUtcTime en el eje x y la humedad en el eje y.
  8. Haga clic en Guardar para guardar el informe.
  9. Haga clic en archivo > publicar para la web.
  10. Haga clic en crear incrustar códigoy luego haga clic en publicar.

Está previsto el enlace del informe para que se pueda compartir  para el acceso de informe y un fragmento de código para integrar el informe en su blog o sitio Web.

Microsoft también ofrece aplicaciones móviles power BI  para ver e interactuar con sus dashboards de power BI e informes en su dispositivo móvil.

powerbi.PNG

Hemos visto como utilizar  Power BI para visualizar datos de los sensores en tiempo real desde su  hub de IoT de Azure. Como comentamos existe también  una forma alternativa de visualizar datos de Azure IoT Hub  mediante  Azure Web Apps para visualizar datos de los sensores en tiempo real desde Azure IoT que trataremos en un  proximo post.

 

 

 

Fuente   https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-live-data-visualization-in-power-bi

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