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

Conversión de una tableta con la pantalla rota en una estación meteorológica


A estas alturas debido al bajo precio así como la rápida obsolescencia de las tabletas  de origen asiático, no  siempre merece la pena reparar una tableta  pues en la mayoría de las ocasiones las piezas de repuesto, casi siempre vienen de Asia, y al precio de compra hay que sumarle el costo del transporte desde allí y no siempre compensará el gasto adicional de piezas para su reparación.

Entre los elementos  que se suelen romper con más frecuencia en una tableta, como se ha comentado ya en este blog, destaca por  su enorme fragilidad  el panel táctil o digitalizador   el cual   en la practica hace inservible la tableta porque impide cualquier interacción con esta.

El digitalizador o panel táctil va superpuesto al  panel  lcd, es decir   pegado con un adhesivo a la pantalla LCD  , así que lo primero que tendremos que hacer es eliminar esta parte  para poder ver claramente la imagen del TFT .  Obviamente  pude sustituirse por otra nueva pero hay  un problema pues normalmente  esta  parte  es  especifica  para cada tableta   de modo que  según marca y modelo puede ser muy  caro conseguir  otro para reemplazarlo.

Afortunadamente aunque  se nos haya roto el digitalizador   normalmente la pantalla TFT  al ir separada debajo no se suele estropear ( a no ser que haya «derrame» del propio liquido del tft)  por lo que todavía puede utilizarse  usando solo la pantalla siempre que  usemos  otro interfaz via OTG , como por ejemplo  un ratón para operar con esta.

Suponiendo que el TFT de la tableta aun funcione  y hayamos descartado reemplazar el digitalizador por otro nuevo, veamos los pasos  a seguir  para darle una nueva vida a su tableta :

 

PASO 1: Desmontaje del digitalizador

Antes de desmontar la tapa de su tableta , NO OLVIDAR  EXTRAER LA MICRO-SD pues de no quitarla  nos arriesgamos a romper esta , y lo peor : que  queden partes en el lector  que luego puedan cortocircuitar  la alimentación  o los pines del lector de la micro-sd  llegando a poder romper la placa madre

Lo siguiente  que tendremos que hacer después de quitar la sd , es desmontar la tableta.   siendo lo más habitual  que la tapa trasera y la parte frontal vayan encajadas con pestañas de plástico.

Para quitar la  tapa  lo mejor es separar las dos partes con  púas de plástico ( como las usadas para tocar la guitarra) , la capucha de un bolígrafo,   o  mucho mejor con  herramientas de desmontaje  de  plástico   especificas para el desmontaje de teléfonos    y   tabletas

 

Una vez abierta la  tapa tenemos que desmontar  toda la electronica  como es la placa madre,la batería ,etc con sumo cuidado   para llegar a la pantalla con el tft (cada uno suelen llevar un  cable de cinta diferenciado)

Una vez hayamos alcanzado el conjunto pantalla y  digitalizador   tenemos  que despegar el digitalizador o sensor táctil del  tft  con mucho cuidado de no cortar

Hay personas  como Posoco que incluso con el cristal roto pueden reciclarlo  mediante un método muy sencillo para que  una  parte que este operativa del panel  utilizarla como sensor capacitivo de un solo canal

En este vídeo podemos ver en detalle como quitar el digitalizador  roto  para dejar visible la propia pantalla y también si aun queremos  usar la parte del digitalizador que no este rota

 

 

 

PASO 2: Adición de un ratón a la tableta por OTG

Gracias a la  tecnología OTG  (USB On-The-Go ) podemos conectar  desde un puerto micro USB 2.0 B hembra o micro USB 2.0 AB hembra  un dispositivo convencional  con conector usb convencional  (ratón,teclado, receptor de ratón y teclado, etc.  )

 

Hablamos  básicamente de un cable adaptador ( unos 2€ en Amazon)   que cuenta pues  por un lado el micro-usb para conectar a la tableta  y por  otro lado un conector hembra USB convencional   permitiendo  usar  dispositivos USB   convencionales que nos permitirán interactuar con la tableta.

No se recomienda  auto-construirse este cable pues para el OTG se necesitan 5 conexiones   y no nos valdrá un conector micro-usb  convencional de los usados para cargar nuestros smartphones.

 

IMG_20180414_133134[1]

Obviamente  la experiencia no sera la misma pero podremos hacer prácticamente lo mismo que desde el interfaz táctil y  gracias al uso   de reloj con previsión del tiempo o le daremos una segunda oportunidad a la tableta

PASO 3: Alimentación  de la tableta

Necesitamos  alimentar la tableta   (eso es una obviedad) para que funcione,  y máxime cuando la idea es tenerla conectado permanentemente.

En el caso de que la tableta no disponga de una conexión aparte para alimentarla no podremos usar el conector micro-usb  ,así que tenemos que buscar algún modo de cargar la batería

Un solución de muy bajo coste puede pasar por conectar  dos cables directamente a la batería  ya que son muy fáciles de identificar   y por medio de un diodo alimentar esta directamente. No es la solución  ideal  y lo purista seria usar un gestor de carga  o capturar el circuito de carga de la tableta ,  pero normalmente con el diodo  funcionará   perfectamente ya que las baterías  suelen ser de 3,8 V    y colocando el diodo en serie  provocara la caída de 0,6V a 0,8V     bajando la tensión  de 5v DC del usb a   unos 4.2 a 4,4V  todavía admisibles por una batería  de litio .

Para realizar la alimentición de la tableta  y la carga de su batería , pues únicamente soldaremos dos cables directamente en el cable  y rojo de la batería  y  nos los llevaremos al exterior por medio de un pequeño orificio que practicaremos en la tapa.

 

IMG_20180414_133020[1]

Una vez  hayamos sacado los cables , podemos reciclar un cable usb  viejo que no gastemos ( por ejemplo el de una impresora)   que  cortaremos  en un extremo  dejando solo  los cables negro   y rojo  de +5v y GND.

Ahora  con un cuidado extremo de no equivocarnos en la polaridad  uniremos   el negativo del conector  usb al cable procedente del negativo de la batería  .

Respectos a los polos positivos interconectaremos un diodo en serie de potencia   (hemos usado un diodo  1N5822) entre el positivo del USB  con el positivo de la  batería con la punta o cátodo apuntando  hacia la tableta:

IMG_20180414_132902[1].jpg

 

Opcionalmente si se deseamos mejorar el audio   de la tableta también  podemos  eliminar el altavoz  interno y  conectar dos cables hacia fuera  conectándolos a  otro altavoz de mejor calidad ,lo cual sin duda mejorara la experiencia.

IMG_20180414_133052[1]

PASO 4:  SOFTWARE

Ahora  que tenemos alimentado  y controlada la tableta  por medio de un ratón externo vía OTG   toca la hora de darle otro uso diferente al tradicional

Hay muchas opciones  de dar una segunda oportunidad  a una tableta, por ejemplo destacar algunas de ellas:

  • Despertador
  • Centro multiemdia
  • Radio por internet
  • Marco de fotos
  • Reloj con estación meteorológica
  • etc

En  el caso de este blog hemos optado por usarla  como reloj  que por  cierto se actualizara automáticamente   juntos con datos  referentes a la previsión del tiempo ( es decir usarla a modo de estación meteorológica)

IMG_20180414_132708[1]

 

Antes de empezar con la personalización del sw con la   que deseemos  dar otro uso a la tableta ,sin embargo tendremos  que superar un ultimo escollo  que es precisamente impedir el apagado el tiempo pasado un tiempo prefijado, lo cual podemos lograr por medio de la app  gratuita Keep Screen ON  ( aunque hay otras que cumplen esta funcionalidad)

KEEP SCREEN ON

Esta aplicación es gratuita y no contiene anuncios lo cual es de gradecer .La aplicación es simple, estable, ultraligera  y se ejecuta en todos los dispositivos Android. Esta aplicación cuenta con una especie de selector  que al estar la aplicación abierta , mediante la  casilla de palanca «Mantener la luz de fondo» se  puede  activar / desactivar la pantalla aplicación( seleccione opciones de iluminación adecuadas)
.
KEEP SCREEN ON.PNG
Características:
• Mantenga su retroiluminación de la pantalla encendida de forma permanente.
• Mantenga la retroiluminación del teclado conectado permanentemente (sólo para algunos modelos de teléfono !!!).

Este ese el link de descarga  en Google Play

 

SENSE FLIP CLOCK WEAHER

Sense flip clock & world weather es una aplicación de reloj digital y pronóstico del tiempo con todas las funciones y totalmente personalizables

Hay muchas mas aplicaciones similares a esta en Google Play  pero hemos usado esta pues puede ser una buena opcion

Esta aplicación contiene lo siguiente:

  •  3 tamaños de widget – 4×1, 4×2 y 5×2
  •  Muchas opciones de widget skins (películas de fondo para el widget)
  •  Diferentes películas de fondo para los iconos de las condiciones climáticas (icon skins)
  •  Diferentes tipos de fuente para la hora
  •  Localización automática (desde móvil/wifi o GPS) o manual (especificada por el usuario) de la ubicación
  •  El tiempo y la hora en el mundo: visualización de información sobre la hora y el tiempo local para cualquier número de ubicaciones diferentes en todo el mundo
  •  Temperatura en Celsius o Fahrenheit
  •  Período de actualización de las condiciones climáticas automático o manual
  •  Pronóstico del tiempo detallado que incluye lo siguiente:Hora local y zona horaria (para la ubicación),Hora de la salida y la puesta del sol, Duración del día, Condiciones actuales y temperatura, temperaturas mínimas y máximas del día
  • Condiciones de humedad y viento
  •  Fase lunar actual (icono)
  •  Pronóstico del tiempo para 4 días
  •  Fondo para el pronóstico del tiempo, en función de las condiciones climáticas y la hora (día/noche)
  •  Varios hotspot widgets (todos ellos definidos por el usuario para iniciar aplicaciones específicas)

 

tiempo.PNG

 

 

Este ese el link de descarga  en Google Play

https://play.google.com/store/apps/details?id=com.droid27.senseflipclockweather

 

¿Se le ocurre alguna otras   utilidad de  nuestra tableta recién reparad?  esperamos ansiosos  sus ideas.