Monitorizacion remota de IoT con notificaciones desde Azure en conexión de su hub de IoT


Azure Logic Apps proporciona una forma de automatizar procesos como una serie de pasos. Una aplicación lógica se puede conectar a través de varios servicios y protocolos. Comienza con un activador como ‘Cuando se agrega una cuenta’, y luego una combinación de acciones, una como ‘enviar una notificación de inserción’. Esta característica hace que Logic Apps sea una solución de IoT perfecta para la monitorización de dispositivos IoT, como por ejemplo para alerta ante anomalías, entre otros escenarios de uso.  

 

Resumidamente   estas son las cosas  que necesitaremos  hacer par lograr nuestro objetivo:

  • Crear un espacio de nombres del autobús de servicio y añadir una cola a él.
  • Añadir un punto final y una regla de enrutamiento a su hub de IoT.
  • Crear, configurar y probar una aplicación de la lógica.

Necesitaremos para ello como siempre tener configurado  un dispositivo de Iot enviando mensajes a la nube de Azure de Iot Hub.

 

Crear espacio de nombres de Servicio del Bus y añadirle una cola

Crear un espacio de nombres del bus de servicio

  1. En el portal de Azure, haga clic en crear un recurso >Enterprise Integration(Integración empresarial )> Service Bus.
  2. Proporcione la siguiente información:Nombre: el nombre del bus de servicios.Pricing tier  déjelo en Standard .
  3. En suscripción dejelo  en Evaluación gratuitaGrupo de recursos: utilizar el mismo grupo de recursos que utiliza el hub de IoT.

    Ubicación: utilizar la misma ubicación que utiliza el hub de IoT.

  4. Pinchar Anclar al panel
  5. Haga clic en crear.

Añadir una cola de autobús de servicio

  1. Abrir el espacio de nombres del Bus de servicio y haga clic en + Quue(cola.)
  2. Introduzca un nombre para la cola y haga clic en crear.
  3. Abrir la cola del Bus de servicio(entities-Queues-el nombre del la nueva cola )   y haga clic en CONFIGURACION  –Shared access policies (directivas de acceso compartido) > + añadir.
  4. Introduzca un nombre para la política de controlar administrar y haga clic en create (crear).

Añadir un punto final y una regla de enrutamiento a su hub de IoT

Añadir un punto final

  • Abrir su centro de IoT, haga clic en MensajeriaPuntos de conexión > + Añadir.
  • Introduzca la siguiente información:                                                                                 Nombre: el nombre del extremo.Tipo de punto final: seleccione Cola de autobús servicio.Espacio de nombres del servicio de bús: seleccionar el espacio de nombres que creó.

    Cola de Service Bus: seleccione la cola creada.

  • Haga clic en Aceptar.

Add an endpoint to your IoT hub in the Azure portal

Agregar una regla de enrutamiento

  1. En su centro de Internet, haga clic en  MENSAJERIA  – rutas > + añadir.
  2. Introduzca la siguiente información:Nombre: el nombre de la regla de enrutamiento.Fuente de datos: seleccionar DeviceMessages.Punto final: seleccione el punto final de ha creado.

    Cadena de consulta: entrar.temperatureAlert = "true"

  3. Haga clic en Guardar.

Add a routing rule in the Azure portal

Crear y configurar una aplicación de lógica

Crear una aplicación de lógica

  1. En el portal de Azure, haga clic en crear un recurso >Enterprise Integration( Integración empresarial )> Lógic app.
  2. Introduzca la siguiente información:Nombre: el nombre de la aplicación de la lógica.Grupo de recursos: utilizar el mismo grupo de recursos que utiliza el hub de IoT.Ubicación: utilizar la misma ubicación que utiliza el hub de IoT.
  3. Haga clic en crear.

Configurar la aplicación de la lógica

  1. Abra la lógica de la aplicación que se abre en el diseñador de aplicaciones de la lógica.
  2. En el diseñador de aplicaciones de lógica, haga clic en BlanK Logic App
  3. Haga clic en Service Bus.
  4. Haga clic en el Servicio de Bus cuando uno o varios mensajes en una cola (Autocompletar).
  5. Crear una conexión de bus de servicio.
    1. Introduzca un nombre de conexión.
    2. Haga clic en el espacio de nombres de servicio bus > la política de autobús servicio > crear.
    3. Haga clic en continuar después de la conexión de bus de servicio.
    4. Seleccione la cola que creó e introduzca para recuento de mensajes máximo175
    5. Haga clic en “Guardar” el botón para guardar los cambios.
  6. Crear una conexión de servicio de SMTP.
    1. Haga clic en nuevo paso > Agregar una acción.
    2. Tipo, haga clic en el servicio SMTP en el resultado de la búsqueda y haga clic en SMTP – envíe correo electrónico.SMTP
    3. Introduzca la información de SMTP del buzón y haga clic en crear.Obtenga la información de SMTP para Hotmail/Outlook.com, Gmaily Yahoo Mail. ( Nota :Su proveedor de servicios de correo electrónico necesitará verificar la identidad de remitente para asegurarse de que eres tú quien envía el correo electrónico9.
    4. Introduzca su dirección de correo electrónico para de y ay para asunto y el cuerpo.High temperature detected
    5. Haga clic en Guardar.

 

La aplicación de la lógica estará   en orden de funcionamiento en cuanto se guarde así que ya podemos probar su funcionalidad  así que :

  1. Inicie la aplicación cliente que implementa en el dispositivo en ESP8266 conectar a Azure IoT.
  2. Aumentar la temperatura del ambiente alrededor del Sensor por encima de 30 C.(por ejemplo, encendiendo una vela cerca del sensor ).
  3. Usted debe recibir una notificación por correo electrónico enviada por la aplicación .

     

Hemos visto lo relativamente sencillo que es  crear  una aplicación lógica que conecta el hub de IoT y buzón para monitorizar  temperatura y enviar notificaciones.

Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-monitoring-notifications-with-azure-logic-apps

Anuncios

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

Cómo visualizar datos de sensores en tiempo real desde su hub de IoT Azure


Vimos  en  un post anterior  cómo es  posible usar Power BI de Azure  para visualizar datos de los sensores en tiempo real desde Azure IoT, pues bien,  existe otra posibilidad para  visualizar datos de los sensores en tiempo real que el hub de IoT recibe , que es  ejecutando una aplicación web que está alojada en la nube de Azure .

Para  cumplir con nuestro propósito de ver los datos de telemetría de nuestro dispositivo de Iot conectado a la nube de Iot Azure Edge ,    veremos como crear una aplicación web en el portal de  Azure preparando su hub de IoT para acceso a datos mediante la adición de un grupo de consumidores. Hecho esto configuraremos una aplicación web para leer datos del sensor de su hub de IoT y subiremos  esta aplicación web  a la nube de Azure ,la cual  nos permitirá  ver desde un navegador los datos de telemetría enviados  desde su hub de IoT ¿le interesa el tema? pues si es así empezemos.

Antes de empezar   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.  Como hemos comentado en otros  posts todos esos  dispositivos de Azure IoT  hub  deben implementar una aplicación de ejemplo la cual  enviará  datos que  los sensores recogen del mundo físico ( humedad , temperatura, presencia, etc  ) a su hub de IoT.

Asimismo  teniendo dispositivos IoT enviando mensajes  de telemetría a la nube de Azure Iot Edge, para lograr persistencia en la nube de Azure  necesitamos una cuenta de Azure storage  así como  una aplicación Azure  para poder almacenar los mensajes de hub de IoT en el almacenamiento blob  como hemos visto en otros posts

Crear una aplicación web

  1. En el portal de Azure, haga clic en Crear un recurso > Web y móvilAplicación Web > Aplicación web
  2. Escriba un nombre único para la aplicacion  y anotar pues nos sera util para acceder a esta
  3. Verificar la suscripción  que para este ejmeplo pude ser “Evaluacion gratuita” si no dispone de otro recurso de este tipo
  4. Especifique un grupo de recursos  pinchando en Usar existente y  pinchando en el disponible
  5. Finalmente  seleccione Anclar al  panel y a continuación, haga clic en Crear.hestiaweb.PNG
  6. Este proceso puede tardar varios minutos dada la complejidad de  su realización ( localizar una máquina virtual disponible , obtener permisos , crear la instancia web ,etc)
  7. En este momento  , copie vaya nuevamente al servidor web –>introducción y copie el valor del campo URL ( sera del tipo   https://xxxx.azurewebsites.net/)    de modo que como debería estar  corriendo  su web se obtendrá una respuesta  parecida  la siguiente si copiamos dicha url en un navegador:azureweb.PNG

 

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

Los grupos de consumidores son utilizados por las aplicaciones para extraer datos desde Azure IoT, por ello necesitamos crear un grupo de consumidores para ser utilizado por un servicio de Azure para  leer los  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  casi en la parte más inferior en el apartado Mensajería , seleccione Puntos de conexión y  haga clic en este.
  3. Seleccione en el panel central  events  , introduzca un nombre en grupos de consumidores en el panel derecho y haga clic en Guardar.stream.PNG

Configurar la aplicación web para leer datos de su centro de IoT

  1. Abra en Azure la aplicación web que ha aprovisionado.
  2. Haga clic en el marco izquierdo casi  al final en CONFIGURACION->Configuración de la aplicación, y luego en configuración de la aplicación, agregue los siguientes pares clave/valor:
    Clave Valor
    Azure.IoT.IoTHub.ConnectionString Obtenidos desde el explorador de iothub  en  Azure IOT HUB >xx – Explorador de dispositivos–>OD del Dispositivo xxx –>cadena de conexion clave principal
    Azure.IoT.IoTHub.ConsumerGroup El nombre del grupo de consumidores que se agrega a su hub de IoT cumplimentado en el  apartado anterior

    hestiaweb_configuracion.PNG

  3. Haga clic en configuración de la aplicación, debajo de configuración General, activar la opción de  Web  Sockets  ( esta desactivado por defecto ) y a continuación, haga clic en Guardar.

Subir una aplicación web

En GitHub, Microsoft ha puesto a nuestra disposición muchas aplicaciones web de ejemplo para desplegar en Azure . Nos interesa  el código en node.js  de una aplicación  web completa que puede mostrar los  datos de telemetría  en tiempo real desde su hub de IoT .

Todo lo que se  necesita hacer es configurar la aplicación web para trabajar con un repositorio Git, descargar la aplicación web de GitHub y luego subir a Azure de la aplicación web al host.

El repositorio web-apps-node-iot-hub-data-visualization contiene el código en node para desplegar una aplicación web en la nube de Azure, que puede leer los datos de temperatura y humedad del IoT hub y mostrar los datos en tiempo real en un gráfico de líneas en una página web.

Los navegadores compatibles son

Navegador La menor versión
Internet Explorer 10
Borde 14
Firefox 50
Cromo 49
Safari 10
Ópera 43
iOS Safari 9.3
mini Opera TODAS
Navegador de Android 4.3
Chrome para Android 56

Los pasos  a seguir para desplegar esta aplicación son los siguientes:

  1. En la aplicación web, haga clic en IMPLEMENTACION ->Opciones de implementación > Elegir origen > Repositorio de Git Local y haga clic en Aceptar.Configure your web app deployment to use the local Git repository
  2. Tenga en cuenta que para modificar o eliminar  el origen de implementación  que acaba de crear is fuera el caso , primero necesitara desconectar este origen   por lo si lo hace tendrá  que volver a  ir a  IMPLEMENTACION ->Opciones de implementación   y volver a empezar con el proceso
  3. Haga clic en Credenciales de implementación, crear un nombre de usuario y contraseña para conectarse con el repositorio de Git en Azure y a continuación, haga clic en Guardar.
  4. Haga clic en Introducción y anote el valor de Git clone url (a la izquierda justo debajo de Git/nombre de usuario de implementación).Get the Git clone URL of your web app
  5. Abra una ventana de terminal en el equipo local o un comando.
  6. Descargar la aplicación web de GitHub y subirlo a Azure de la aplicación web al host. Para ello, ejecute los siguientes comandos:

giti clone.PNG

  • cd web-apps-node-iot-hub-data-visualization
  • git remote add webapp uri  (uri es la url del repositorio Git obtenida  en la página de Resumen de la aplicación web que se obtiene al pulsar Introducción).
  • git push webapp master:master  (se pedirán las credenciales  de Git que introdujo en en el apartado anterior en  la página de Overview , tenga en cuenta la Git clone url .)gitmanager
  • En resumen  estos son todos los comandos desde el interfaz  delñinea de comandos (cmd)    lanzados asi como la salida de esta:
C:\Users\Carlos>git clone https://github.com/Azure-Samples/web-apps-node-iot-hub-data-visualization.git
Cloning into ‘web-apps-node-iot-hub-data-visualization’…
remote: Counting objects: 35, done.
remote: Total 35 (delta 0), reused 0 (delta 0), pack-reused 35
Unpacking objects: 100% (35/35), done.
C:\Users\Carlos>cd web-apps-node-iot-hub-data-visualization
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>git remote add webapp https://[email protected]:443/Webestia.git
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>git push webapp master:master
Counting objects: 35, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (35/35), 77.64 KiB | 3.23 MiB/s, done.
Total 35 (delta 6), reused 0 (delta 0)
remote: Updating branch ‘master’.
remote: Updating submodules.
remote: Preparing deployment for commit id ‘4b9c09be9b’.
remote: Generating deployment script.
remote: Generating deployment script for node.js Web Site
remote: Generated deployment script files
remote: Running deployment command…
remote: Handling node.js deployment.
remote: KuduSync.NET from: ‘D:\home\site\repository’ to: ‘D:\home\site\wwwroot’
remote: Deleting file: ‘hostingstart.html’
remote: Copying file: ‘.eslintignore’
remote: Copying file: ‘.eslintrc’
remote: Copying file: ‘.gitignore’
remote: Copying file: ‘.travis.yml’
remote: Copying file: ‘LICENSE’
remote: Copying file: ‘package.json’
remote: Copying file: ‘README.md’
remote: Copying file: ‘server.js’
remote: Copying file: ‘IoThub\iot-hub.js’
remote: Copying file: ‘public\index.html’
remote: Copying file: ‘public\javascripts\Chart.min.js’
remote: Copying file: ‘public\javascripts\index.js’
remote: Copying file: ‘public\javascripts\jquery-2.1.4.min.js’
remote: Copying file: ‘public\stylesheets\style.css’
remote: Using start-up script server.js from package.json.
remote: Generated web.config.
remote: The package.json file does not specify node.js engine version constraints.
remote: The node.js application will run with the default node.js version 6.9.1.
remote: Selected npm version 3.10.8
remote: ….
remote: npm WARN deprecated [email protected]: This package is no longer supported. It’s now a built-in Node module. If you’ve depended on crypto, you should switch to the one that’s built-in.
remote: …………………………………………..
remote: [email protected] D:\home\site\wwwroot
remote: +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | `– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | `– [email protected]
remote: +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | `– [email protected]
remote: +– [email protected]
remote: `– [email protected]
remote: +– [email protected]
remote: `– [email protected]
remote:
remote: Finished successfully.
remote: Running post deployment command(s)…
remote: Deployment successful.
To https://webestia.scm.azurewebsites.net:443/Webestia.git
* [new branch] master -> master
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>
  • Ahora  ya puede abrir la aplicación web para ver los datos de temperatura y humedad en tiempo real desde su hub de IoT. En este momento  ,  vaya nuevamente al servidor web –>introducción y copie el valor del campo URL ( sera del tipo   https://xxxx.azurewebsites.net/)    de modo que como debería estar  corriendo  su web se obtendrá una respuesta  parecida  la siguiente si copiamos dicha url en un navegador:

 

En la página de su aplicación web, haga clic en la URL para abrir la aplicación web.

Get the URL of your web app

Debería ver los datos de temperatura y humedad en tiempo real desde su hub de IoT.

Web app page showing real-time temperature and humidity

Metodo alternativo sin usar los servicios web de Azure

Se necesita tener el  servidor node.js instalado.

  • Necesitara  dos  valores: valor1 y valor2:
    • El valor1 para  Azure.IoT.IoTHub.ConnectionString  se  obtiene  desde el explorador de iothub  en  Azure IOT HUB >CONFIGURACION -Directivas  de acceso compartido  –>cadena de conexión clave principal
    • El valor2 para  Azure.IoT.IoTHub.ConsumerGroup  se obtiene de del nombre del grupo de consumidores que se agrega a su hub de IoT cumplimentado en el  apartado anterior
  • Vaya al interfaz de comandos  , situase en el directorio donde descargo el ejemplo  y ejecute los siguintes comandos:
    • set Azure.IoT.IoTHub.ConnectionString=  valor1
    • set Azure.IoT.IoTHub.ConsumerGroup= valor 2
    • npm install
    • npm start​nodejsiothub
  • En este momento  ,simplemente acceda al fichero html y ejecútelos  de modo que como debería estar  corriendo el servidor node,js  se obtendrá  respuesta en un navegador similar a la anterior

 

 

.

 

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

Cómo verificar mensajes de Iot Azure Edge


 Azure Storage Explorer es  un aplicacion de Microsoft gratuita que  permite administrar fácilmente el almacenamiento en cualquier lugar desde  diferentes sistemas operativos como Windows, MacOS y Linux permitiendo acceder  a múltiples cuentas y suscripciones en Azure, Azure Stack y la nube.

Lo mas importante es que, como vamos a ver , se pueden crear, eliminar, ver y editar recursos de almacenamiento que están localizados en la nube de Azure.  Asimismo se pueden ver y editar Blob, Queue, Table, File, Cosmos DB storage y Data Lake Storage y obtener claves de firma de acceso compartido (SAS) .

Resumidamente están son algunas de su funcionalidades;

Respecto a gestión de blobs(objetos grandes de BBDD):

  • Ver, eliminar y copiar blobs y carpetas
  • Cargar y descargar blobs conservando la integridad de los datos
  • Administrar instantáneas para blobs

Respecto al almacenamiento de colas  ( Queue Storage):

  • Ojear los 32 mensajes más recientes
  • Ver y agregar mensajes, y quitarlos de la cola
  • Borrar la cola

 

Respecto a almacenamiento en tablas (Table Storage):

  • Consultar entidades con OData o el Generador de consultas
  • Agregar, editar y eliminar entidades
  • Importar y exportar tablas y resultados de consultas

Respecto a almacenaminento de ficheros (File Storage)

  • Navegar por archivos a través de directorios
  • Cargar, descargar, eliminar y copiar archivos y directorios
  • Ver y editar propiedades de archivo

Respecto a almacenamiento de Azure Cosmos DB

  • Crear, administrar y eliminar bases de datos y colecciones
  • Generar, editar, eliminar y filtrar documentos
  • Administrar procedimientos almacenados, desencadenadores y funciones definidas por el usuario

Respecto a Azure Data Lake Store

  • Navegar por recursos de ADLS en varias cuentas de ADL
  • Cargar y descargar archivos y carpetas
  • Copiar carpetas o archivos en el Portapapeles
  • Eliminar archivos y carpetas

 

 

Azure Storage Explorer

Antes de empezar   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.  Como hemos comentado en otros  posts todos esos  dispositivos de Azure IoT  hub  deben implementar una aplicación de ejemplo la cual  enviará  datos que  los sensores recogen del mundo físico ( humedad , temperatura, presencia, etc  ) a su hub de IoT.

Asimismo  teniendo dispositivos IoT enviando mensajes  de telemetría a la nube de Azure Iot Edge, para logar persistencia en la nube de Azure  necesitamos una cuenta de Azure storage  así como  una aplicación Azure  para poder almacenar los mensajes de hub de IoT en el almacenamiento blob  como hemos visto en otros posts

 

Veamos en esta ocasión como podemos usar Azure Storage Explorer , excelente herramienta gratuita de Microsoft  que nos permite inspeccionar los mensajes de IoT Azure  cuyo  funcionamiento hemos visto en posts anteriores.

Si  quiere usar Azure Storage  Explorer para inspeccionar mensajes de Iot Azure Edge ,puede seguir los siguientes pasos:

  1. Ejecute la aplicación de muestra en el dispositivo de Iot (  para enviar mensajes a su hub de IoT.
  2. Descargar  el explorador de almacenamiento de Azure.                                                   azurestorage.PNG
  3. Seleccione  el  SO de su equipo ( Windows ,Linux y Mac) y pulse el botón de descarga(Downloada Storage Explorer free)
  4. Una vez  descargada,  instalela  en su equipo  (necesitara unos 200MB libres en el disco del sistema)
  5. Nos pedirá  enseguida las credenciales de su cuenta de Azure
  6. Una vez validada la cuenta de Azure ,abra el explorador de almacenamiento, haga clic en Agregar una cuenta de Azure > registrarse y luego necesitara iniciar sesión nuevamente con sus credenciales de Azure.
  7. Le presentara  un mensaje de Microsft Account donde deberá chequear ambas items  ,aceptando especialmente  la suscripción gratuita: evaluacion garuita.PNG
  8. Haga clic en la suscripción de Azure > Almacenamiento cuentas > cuenta de almacenamiento > Blob contenedores > su contenedor ( por ejemplo los que hemos creado en post anteriores que recoge la telemetria desde un ESP8622).
  9. Ahora vaya a Evaluación gratuita seguido de su cuenta de Azure
  10. Pulse en Storage Accounts–>su hub de IoT
  11. Tras unos segundos aparecerán los recursos asociados como son: Blobs Containers, File Shares, Queues  y Tables
  12. Vaya  a Blobs Containers 
  13. Le aparecera el nombre del contenedor de recursos de Iot  y    ya desde ahi haciendo doble click le irán apareciendo  las carpetas  y subcarpetas correspondiente  dispositivo, año, mes , dia
  14. Ya debería ver  los mensajes enviados desde el dispositivo a su hub de IoT en el contenedor de blob.azureexplorer.PNG

 

 

Realmente , como vemos , Azure Storage Explorer , es un herramienta muy potente pero   al contrario de lo que se podría pensar  es  en realidad bastante  intuitiva y sencilla de manejar

Google y Xively


En  este blog hemos  hablado en otras ocasiones de la compañía  y su   gran trayectoria  primero con  el popular servicio de iot de  Pachube.com , después  con la adquisición por parte de  cosm.com  y  finalmente después comprada por logmeIn     reubatizando el servicio como  Xively.com,pues bien ahora podemos ver un nuevo cambio: su compra por parte de Google.

En efecto Google ha anunciado desde su blog  , que ha llegado a un acuerdo para adquirir Xively , una división de LogMeIn, Inc.( por USD50 millones )

Este nuevo movimiento alinea a Google con otros proveedores de la nube,  en especial  con  Amazon con su popular  AWS (Amazon Web Services ), que también han expandido sus propuestas IoT a través de adquisiciones, pero sin embargo, el momento y la naturaleza del acuerdo sugieren que puede estar impulsado por las ambiciones de Google en los productos electrónicos de consumo y el hogar inteligente, más que por la necesidad de agregar funciones genéricas a Google Cloud , pues  Google ya  lanzó su Cloud IoT Core para ofrecer servicios de alojamiento IoT basados ​​en su infraestructura en la nube en septiembre de 2017.

Con la adición de la plataforma Xively, Google aprovecharía su solución con un elemento de conectividad del dispositivo, ofreciendo una solución llave en mano para integrar dispositivos en la nube  así que la adquisición saca  a relucir  los intentos de Google de aumentar su participación en la cadena de valor de IoT. 

La movida de Google es similar  a otras empresas , pero es la mas tardía  que las realizadas por  sus rivales directos:

  • AWS compró 2lemetry en 2015.Las herramientas de IoT que AWS tiene, o está planificando, incluyen: IoT Core, Greengrass, IoT Device Management, IoT Device Defender, IoT analytics, FreeRTOS, IoT 1 clic y otros. AWS está tratando de proporcionar un conjunto completo de opciones para los desarrolladores de IoT en muchos mercados verticales y, al hacerlo, está dando menos espacio para que compitan los proveedores de nicho.
  • Microsoft Azure adquirió Solair en 2016.

 

Xively fue fundada en 2003 y ofrece una plataforma para la conectividad de dispositivos IoT.

 

xively

 

Tanto  AWS como  Azure utilizaron inicialmente su infraestructura en la nube para soportar los requisitos de hospedaje de datos para IoT y luego usaron la plataforma adquirida para avanzar a lo largo de la cadena de valor y simplificar el desarrollo de soluciones para los clientes.

Xively y otros desarrollos sugieren que Google apunta a fortalecer su rol en el negocio de la casa inteligente

A pesar de las similitudes con AWS y la compra de Azure de una plataforma IoT, Google puede estar intentando algo diferente con su adquisición de Xively pues si las capacidades de la plataforma IoT fueran tan importantes, podría haber comprado otra plataforma anteriormente, o incluso haber creado una internamente. Además, para competir con AWS u otros proveedores de plataforma como PTC ThingWorx, será necesario darle seguimiento con otras adquisiciones o desarrollos internos.

Xively puede ser parte de la estrategia de Google para desarrollar capacidades para productos electrónicos de consumo y dispositivos domésticos inteligentes, en lugar de una plataforma horizontal para todos los verticales.

Una semana antes del anuncio de Xively, la empresa matriz de Google, Alphabet, dijo que estaba incorporando Nest en Google para coordinar mejor estos productos inteligentes para el hogar con otros esfuerzos, como Pixel, Google Home y Chromecast. Con la adición de una plataforma, Google, no solo consolida sus productos de consumo de hardware y software, sino que también establece un ecosistema que conecta a las diferentes partes interesadas que operan en este mercado. El reciente alquiler de IoT de Google y las actividades de Xively sugieren que la adquisición de Xively podría respaldar el enfoque revisado de Google para el mercado de consumo inteligente y hogar inteligente.

 

edge

Xively, como muchas otras plataformas IoT, se posiciona como una plataforma horizontal,pero sin embargo, la mayoría de los casos de uso de Xively son para aplicaciones domésticas inteligentes y relacionadas con el consumidor  como hemos podido ver  con las numerosos ejemplos que podemos   usando  diferentes soportes y placas  que son de aplicacion en  calentadores de agua conectados, rastreadores de mascotas, termostatos , soluciones de iluminación y un largo etcétera.

Los antecedentes de usuarios y dispositivos de Xively combinados con el hardware y las aplicaciones de Google pueden ser parte de un esfuerzo para construir una plataforma de hogar inteligente más completa  asi que la venta de Xively puede representar una revisión del mercado de las plataformas de IoT

 

Para 2020 , se estima que alrededor de 20 mil millones de cosas conectadas entrarán en funcionamiento, y el análisis y el almacenamiento de datos en la nube ahora son la piedra angular de cualquier solución de IoT exitosa. Esta adquisición, sujeta a las condiciones de cierre, complementará los esfuerzos de Google Cloud para proporcionar un servicio de IoT completamente administrado que conecte, administre e ingestione de manera fácil y segura los datos de dispositivos dispersos a nivel mundial. Con la adición de la robusta plataforma IoT lista para la empresa de Xively, Google puede acelerar la línea de tiempo de sus  clientes desde la visión de IoT hasta el producto, a medida que buscan construir su negocio conectado.

A través de esta adquisición, Cloud IoT Core obtendrá tecnología de IoT profunda y experiencia en ingeniería, incluida la administración avanzada de dispositivos, la mensajería y las funciones de tablero de Xively. Los os clientes se beneficiarán del extenso conjunto de características y la plataforma flexible de administración de dispositivos de Xively, junto con la seguridad y la escala de Google Cloud. Con el profundo liderazgo de Google Cloud en el análisis de datos y el aprendizaje automático, sus  clientes también estarán en una posición única para desarrollar soluciones de IoT llave en mano y enfocarse en la creación de valor empresarial.

 

 

Fuente https://www.blog.google

Edge computing con Azure IoT Edge


La computación en nube (o Cloud Computing) ha dominado las discusiones de TI durante las últimas dos décadas, particularmente desde que Amazon popularizó el término en 2006 con el lanzamiento de Elastic Compute Cloud (ECC) . En su forma más simple, la computación en la nube es la centralización de los servicios informáticos para aprovechar una infraestructura de centro de datos compartida y gracias a la economía de escala para reducir los costos.

Sin embargo, la latencia, influenciada por el número de saltos de enrutadores,los  retrasos en los paquetes introducidos por la virtualización o la ubicación del servidor dentro de un centro de datos, siempre ha sido una cuestión clave de la migración en la nube y es aquí es donde entra en juego el Edge Computing (computación al borde) donde esencialmente se descentralizan los servicios de TI y acercándolos a la fuente de datos, lo cual puede tener un impacto significativo en la latencia, ya que puede reducir drásticamente el volumen de datos movidos y la distancia que recorre.

La naturaleza distribuida de la informática de borde significa que, junto con la reducción de la latencia  también mejora la resiliencia, reduce la carga de la red y es más fácil de escalar .

El procesamiento de los datos comienza en su origen  y una vez que se completa el procesamiento inicial, solo se deben enviar los datos que necesitan un análisis posterior o que requieren otros servicios lo cual  reduce los requisitos de red y la posibilidad de cuellos de botella en cualquier servicio centralizado.

Además, con otras ubicaciones de borde cercanas,  la posibilidad de almacenar datos en caché en el dispositivo, puede enmascarar interrupciones y mejorar la resistencia de su sistema lo cual  reduce la necesidad de escalar sus servicios centralizados ya que manejan menos tráfico. Ademas de la reducción del trafico  con el consiguiente mejora   también pueden reducir los costos, la complejidad de la arquitectura y la administración.

 

Azure IoT Edge

Las soluciones de nube híbrida e Internet de las cosas (IoT) son una realidad con Azure IoT Edge  un servicio completamente administrado que entrega inteligencia en la nube localmente implementando y ejecutando sin problemas inteligencia artificial, servicios Azure y lógica personalizada directamente en dispositivos IoT multiplataforma, desde una pequeña Raspberry Pi hasta grandes máquinas industriales administrando todo de manera centralizada en la nube  de Microsoft.

Algunas de las facilidades  que puede proporcionar esta   plataforma:

  • Habilitar inteligencia artificial y análisis avanzados en el borde:permite crear análisis avanzados, usar aprendizaje automático e inteligencia artificial en la nube y desplegarlo en dispositivos físicos utilizando IoT Edge. Un ecosistema de servicios de Azure y de terceros  ayudará a habilitar nuevas aplicaciones de IoT en sus dispositivos de borde. Se puede usar  Azure Machine Learning, Azure Stream Analytics, Azure Functions para crear soluciones de IoT más avanzadas con menos tiempo y esfuerzo.Cree fácilmente AI en el borde con AI Toolkit for Azure IoT Edge.
  • Reducir los costos de la solución IoT:Decida qué datos de IoT debe capturar y enviar a la nube programando su dispositivo de borde para procesar los datos localmente. Luego, envíe solo los datos que necesita almacenar y analizar en la nube. Al reducir la cantidad de datos que transmite de un dispositivo a la nube, reducirá los costos de ancho de banda y los costos asociados con el almacenamiento y análisis de datos en otras aplicaciones de negocios, pero aún así se beneficiará de las perspectivas mejoradas.
  • Simplificar el desarrollo:Facilite los esfuerzos de desarrollo para soluciones avanzadas de IoT aprovechando las habilidades y los recursos que ya tiene. Utilice herramientas de programación conocidas como Visual Studio y múltiples lenguajes de programación, incluidos C, Node.js, Java, Microsoft .NET y Python para optimizar y monitorear su solución de IoT, y aplique correcciones cuando sea necesario. Utilice los mismos modelos de programación que usa en la nube para crear y probar sus aplicaciones de IoT y luego empújelas a sus dispositivos de borde.
  • Operar fuera de línea o con conectividad intermitente:Con IoT Edge, sus dispositivos periféricos pueden operar de manera confiable y segura incluso cuando están desconectados o solo tienen conectividad intermitente a la nube. Una vez reconectados, los dispositivos periféricos sincronizan automáticamente su estado más reciente y continúan funcionando sin problemas, independientemente de la conectividad en curso.

 

Ejemplo de Azure IoT Edge

Podemos  probar gratuitamente  la interfaz en la nube Azure IoT Edge para implementar el código preconstruido de forma remota en un dispositivo IoT Edge.  Para realizar esta tarea, primero se necesita usar un dispositivo Windows para simular un dispositivo IoT Edge y  luego puede implementar un módulo en él.

Vamos a describir los pasos  a seguir pero antes si no tiene una cuenta activa a Azure, cree una cuenta gratuita antes de comenzar.

Requisitos previos

Asumims que está usando un ordenador  o máquina virtual que ejecuta Windows para simular un dispositivo de Internet de las cosas.  Si está ejecutando Windows en una máquina virtual, habilite la virtualización anidada y asigne al menos 2GB de memoria.

  1. Asegúres de estar usando una versión compatible con Windows:
    • Windows 10 Windows 10
    • Windows Server Servidor de windows
  2. Instale Docker para Windows y asegúrate de que esté ejecutándose.
  3. Instale Python 2.7 en Windows y asegúrese de que puede usar el comando pip.
  4. Ejecute el siguiente comando para descargar el script de control IoT Edge.
    cmdCopy
    pip install -U azure-iot-edge-runtime-ctl

Nota: Azure IoT Edge puede ejecutar contenedores de Windows o Linux.  Para usar contenedores de Windows, debe ejecutar:

  • Windows 10 Fall Creators Update, , o
  • Windows Server 1709 (Build 16299) o
  • Windows IoT Core (Build 16299) on a x64-based device Windows IoT Core (compilación 16299) en un dispositivo basado en x64

 Para Windows IoT Core, siga las instrucciones en Instalar el tiempo de ejecución de IoT Edge en Windows IoT Core . De lo contrario, simplemente configure Docker para usar contenedores de Windows y, opcionalmente, valide sus requisitos previos con el siguiente comando de PowerShell:

PowerShellCopy
Invoke-Expression (Invoke-WebRequest -useb https://aka.ms/iotedgewin)

Crear un concentrador de IoT con Azure CLI

Cree un concentrador de IoT en su suscripción de Azure.  El nivel gratuito de IoT Hub funciona para este inicio rápido. . Si ya usó IoT Hub y ya tiene un hub gratuito creado, puede omitir esta sección y pasar a Registrar un dispositivo IoT Edge  (en cada suscripción solo puede tener un centro IoT gratuito).

  1.  Inicie sesión en el portal de Azure .
  2.  Seleccione el botón Cloud Shell .Botón Cloud Shell
  3.  Cree un grupo de recursos. : El siguiente código crea un grupo de recursos llamado IoTEdge en la región oeste de EE. UU . :
    Azure CLICopy
    az group create --name IoTEdge --location westus
  4. . Cree un concentrador de IoT en su nuevo grupo de recursos. : El siguiente código crea un concentrador F1 gratuito llamado MyIotHub en el grupo de recursos IoTEdge :
    Azure CLICopy
    az iot hub create --resource-group IoTEdge --name MyIotHub --sku F1

 Registrar un dispositivo IoT Edge

Cree una identidad de dispositivo para su dispositivo simulado para que pueda comunicarse con su centro de IoT. Dado que los dispositivos IoT Edge se comportan y pueden administrarse de forma diferente a los dispositivos IoT típicos, usted declara que se trata de un dispositivo IoT Edge desde el principio.

  1. . En el portal de Azure, vaya a su centro de IdC.
  2.  Seleccione IoT Edge (vista previa) luego seleccione Agregar IoT Edge Device .Agregar dispositivo Edge IoT
  3. . Dele a su dispositivo simulado una ID de dispositivo única.
  4.  Seleccione Guardar para agregar su dispositivo.
  5. Seleccione su nuevo dispositivo de la lista de dispositivos.
  6. Copie el valor de la cadena de conexión-clave principal y guárdelo.  Utilizará este valor para configurar el tiempo de ejecución IoT Edge en la siguiente sección.

Configurar  IoT Edge runtime 

En tiempo de ejecución de IoT Edge se implementa en todos los dispositivos IoT Edge, el cual  comprende dos módulos:

  •   El agente IoT Edge que facilita la implementación y la supervisión de módulos en el dispositivo IoT Edge.  
  • El concentrador IoT Edge que gestiona las comunicaciones entre los módulos en el dispositivo IoT Edge y entre el dispositivo y el IoT Hub.

Configure el tiempo de ejecución con su cadena de conexión del dispositivo IoT Edge de la sección anterior.

cmdCopy
iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords

Comience el tiempo de ejecución.

cmdCopy
iotedgectl start

 Compruebe Docker para ver que el agente IoT Edge se está ejecutando como un módulo.

cmdCopy
docker ps

Ver edgeAgent en Docker

 Implementar un módulo

 Una de las capacidades clave de Azure IoT Edge es la posibilidad de implementar módulos en sus dispositivos IoT Edge desde la nube.  Un módulo IoT Edge es un paquete ejecutable implementado como un contenedor.

En este ejemplo desplegaremos un módulo que genera telemetría para su dispositivo simulado.

  1. En el portal de Azure, vaya a su centro de IdC.
  2. Vaya a IoT Edge (vista previa) y seleccione su dispositivo IoT Edge.
  3. Seleccione Establecer módulos .
  4. . Seleccione Agregar IoT Edge Module .
  5. . En el campo Nombre , ingrese tempSensor .
  6. . En el campo URI de la imagen , ingrese microsoft/azureiotedge-simulated-temperature-sensor:1.0-preview .
  7. Deje las otras configuraciones sin cambios, y seleccione Guardar .Guarde el módulo IoT Edge después de ingresar el URI de nombre e imagen
  8. . De vuelta en el paso Agregar módulos , seleccione Siguiente .
  9.  En el paso Especificar rutas , seleccione Siguiente .
  10. . En el paso de la plantilla Revisar , seleccione Enviar .
  11.  Regrese a la página de detalles del dispositivo y seleccione Actualizar . Debería ver el nuevo módulo tempSensor ejecutándose a lo largo del tiempo de ejecución de IoT Edge.Ver tempSensor en la lista de módulos implementados

 Ver datos generados

 En este ejemplo rápido, creó un nuevo dispositivo IoT Edge e instaló en tiempo de ejecución IoT Edge en él.  Luego, utilizó el portal de Azure para impulsar un módulo IoT Edge para que se ejecute en el dispositivo sin tener que realizar cambios en el dispositivo.

En este ejemplo el módulo que creo  transmite  datos ambientales que puede usar para los tutoriales,pero en una instalacion habitual manejaria muchos mas datos de telemetria,sensores, etc.

Para  ver si todo esta funcionando ,abra el símbolo del sistema en su ordenador  que ejecuta su dispositivo simulado de nuevo.  Confirme que el módulo implementado desde la nube se está ejecutando en su dispositivo IoT Edge.

cmdCopy
docker ps

Ver tres módulos en su dispositivo

 Vea los mensajes que se envían desde el módulo tempSensor a la nube.

cmdCopy
docker logs -f tempSensor

Ver los datos de tu módulo

También puede ver la telemetría que está enviando el dispositivo utilizando la herramienta de explorador IoT Hub .

 Limpiar recursos

Si desea eliminar el dispositivo simulado que creó, junto con los contenedores Docker que se iniciaron para cada módulo, use el siguiente comando:

cmdCopy
iotedgectl uninstall

Cuando ya no necesite el IoT Hub que ha creado, puede usar el comando az iot hub delete para eliminar el recurso y los dispositivos asociados con él:

Azure CLICopy
az iot hub delete --name {your iot hub name} --resource-group {your resource group name}

Obviamente esto es solo el primer paso para comprender la potencia de esta tecnología pues el  paso obvio es usar hardware dedicado de bajo consumo como puede ser ene fecto uan Raspberry Pi   para usarlo como dispositivo Iot Edge

 

Fuente : https://docs.microsoft.com/en-us/azure/iot-edge/quickstart

Detector de movimiento inteligente


En este ejemplo    volveremos a  usar  un economico NodeMCU ,junto con un  sensor de movimiento PIR  y la plataforma de IoT  Carriots para  construir, usando el IDE de Arduino, un  detector de movimiento inteligente para comerciales y hogar.

El tema  gira en torno a la seguridad de un edificio o casa o una zona restringida detectando cualquier movimiento dentro de un rango específico con un sensor PIR . Gracias al  IoT, además de detectar objetos en movimientos podemos hacer  muchas más cosas como por ejemplo:

  • Encender un dispositivo mediante un relé (en el ejemplo es una luz durante unos 30 segundos).
  •  Al mismo tiempo enviar un correo electrónico al usuario, utilizando la IOT – plataforma Carriots sobre WIFI.
  • El relé se puede conectar a cualquier luz del dispositivo, alarma, cámara, sistema de seguridad…
  • Incluso el disparo puede ser SMS, llamar a las autoridades, llamando a otros servicios…

Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  a los que indudablemente se une su bajisimo precio comparado con otras opciones.
De este componente destaca  integra capacidades de comunicación via WiFi , conteniendo en su interior  microprocesador que puede ser programado fácilmente usando en conocido lenguaje de programación Lua o vía Arduino IDE.

¿Se pregunta cómo controlar  su económico ESP8266 de forma remota desde cualquier lugar del mundo?

En este post repasaremos precisamente el proceso, paso a paso, de cómo escribir código en el IDE de Arduino y programar su ESP8266 permitiendo  que el código  escrito para  el ESP8266 se comunique con la plataforma  de Iot   Carrriots,  la cual  nos va  permitir monitorear  y controlar el ESP8266.

Los pasos  a seguir   para conectar un ESP8266   a  Carriots   son los siguientes:

  •  Instalación del IDE de Arduino .Si aun no lo tiene instalado ,se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino

esp

  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema)
Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Carriots es una Plataforma como Servicio (PaaS en sus siglas en inglés) diseñada para proyectos del Internet de las Cosas (IoT) y de Máquina a Máquina (M2M)

carriots

Carriots es una plataforma IoT creada en España  que  permite crear potentes productos y servicios IoT  haciendo posible conectar fácilmente “sus cosas” al Internet de las Cosas.

Se  pueden construya sus apps inteligentes con Carriots en pocos pasos.

  1. Conectar Dispositivos
  2. Recopilar Datos
  3. Gestionar Dispositivos y Datos
  4. Construir APPs

Principales ventajas

  • Listo para empezar a desarrollar.
  • Minimizar tiempo de desarrollo.
  • Gestión simplificada de múltiples proyectos: Arquitectura de 7 niveles
  • Amplia variedad de APIs y potente SDK: REST API y SDK
  • Escalabilidad inmediata
  • Inicio gratuito y pago por uso.
  • Alojamiento simplificado: Oferta PaaS para escalabilidad fiable.

Hardware

Ahora preparado el entorno , necesitamos el hw  que lo permita , el cual  como vamos a ver,  es muy simple reduciendose a la placa o NodeMCUuna placa de relé, el sensor PIR  y una fuente de 5V DC

Sensor PIR

El sensor PIR usado , es del tipo HC-SR501, de bajo coste   el cual es ampliamente utilizado en diversos equipos eléctricos de detección automática, productos para el control automático especialmente a batería.Tiene alta sensibilidad, alta fiabilidad, bajo consumo de energía, el modo de operación de bajo voltaje.

Especificaciones:

  •  Dimensiones: Cerca de 3,2 x 2,4 cm (L x W).
  •  Rango de tensión: 5V-20V DC.
  •  Corriente estática: < 50uA
  •  Voltaje de salida: 3,3 V (alto) / 0V (bajo)
  •  Modo del disparador: L (no se puede gatillo repetida), H gatillo repetida (Repetición predeterminado de disparo)
  •  El Tiempo de retardo: 0,3 seg 18 seg (ajustable)
  •  Temperatura De funcionamiento: -15 C a 70

 Placa de rele

Por  precio  es mucho mas asequible optar por una placa    de  2 reles    con salida de relé máxima: DC 30V / 10A, AC 250V / 10A. Es  importanet   que el interfaz de tarjeta de relé sea de 5v . En nuestro caso es de 2 canales y cada canal necesita 15-20mA actual controlador

Este tipo de placas es de fácil instalación por el microcontrolador como Arduino, 8051, AVR, PIC, DSP, BRAZO, MSP430, PLC, lógica TTL pues solo ha que conectar la alimentacion  y dos cables de datos en caso de necesitar los dos canales 

Resumiendo , estos son los componentes  necesarias:

  • Placa de desarrollo de NodeMcu Lua WIFI Internet de las cosas basado en ESP8266 – 1 (capacidad de MCU y WIFI)
  • Sensor PIR ( hemos hablado  en este blog )
  • 1 módulo de relé con opto aislamiento de  5V1
  • Fuente de alimentación conmutada  220V/5v ( nos sirve cuaqluier cargador de movil  con salida microusb)
  • Placa Protoboard

Diagrama del circuito:

El circuito   no incluye dificultad alguna ,pues se reduce a conectar el sensor PIR a +5V  y la salida binaria al pin D2, el módulo de rele a +5v   y al pin D2    y por  supuesto la alimentación del circuito que puede ser bien a baterías  o  bien por medio del  propio micro-usb   usado para programar el  NodeMcu

Resumiendo las conexiones con las siguientes:

  • NodeMCU (ESP8266 Dev Kit) D1—> INI del relé
  • NodeMCU (ESP8266 Dev Kit) D2—> Digital sensor PIR
  • NodeMCU (ESP8266 Dev Kit) VCC—> VCC (+) de la batería
  • NodeMCU (ESP8266 Dev Kit) GND—> GND (-) de la batería
  • Relé de VCC—> VCC (+) de la batería
  • Relé de tierra—> GND (-) de la batería
  • PIR Sensor VCC—> VCC (+) de la batería
  • PIR Sensor de tierra—> GND (-) de la batería

Software

Una vez el hardware  montado nos toca escribir el código  el código utilizando el IDE de Arduino para hacer que NodeMCU trabaje con un relé, sensor de movimiento PIR y utilizar IOT plataforma carriots sobre WIFI

El autor se  encontró con  algunos puntos problemas  en el diseño del programa  para ejecutar en la placa NodeMcu;

  • Compruebe que los pines de NodeMcu  están dando la entrada o salida correcta como se están asumiendo, por ejemplo, asegurándose  que usted no está tomando el pin 4 (GPIO) como un pin de entrada asi que por defecto que este pin debe leer…
  • Utilizar un método directo de get y post HTTP en lugar de utilizar una función de visualización por BLYNK o Thinger.io.
  • Observe  que el PIR da salida permanentemenet alta durante un par de envíos pero se necesita traer retraso para evitar el envío de múltiples correos electrónicos. Con algunos servicios como BLYNK este retraso causa un problema  asi que  es mejro a llamar a esa función una vez despues  de 6 o 7 seg.
  • Una vez satisfecha la condición de if loop, llamar a una función, en lugar de escribir todo con el bucle. Esto aporta claridad del código y ayuda en la resolución de problemas.
  • Se  puede  ajustar la sensibilidad del PIR para reducir el tiempo que permanece alta.

A continuación veamos el codigo completo del sw  que habrá que subir  a la placa desde el entorno  de Arduino:

#include “ESP8266WiFi.h”

const char * ssid = “NETGXXXXX”;   //red wifi a la que se conectara

const char * clave = “XXXXXXXXX”;  //clave red wifi para coenctarse

const char * servidor = “api.carriots.com”;

const String APIKEY = XXXXXXXXXX”; //Sustituir con su apikey de Carriots

 const  String DEVICE = “[email protected]”; //Reemplazar por el id_developer del dispositivo de  carriots

int ledpin = 4;

pirpin INT = 12;

int pirstate = LOW;

int val = 0;

void setup() {

Serial.Begin(115200);

Delay(10);

pinMode(ledpin,OUTPUT);

pinMode(pirpin,INPUT);

Serial.println(“calibrando”);

for (int i = 0; i < 20; i ++) {

Serial.Print(“.”);

Delay(1000);

}

//iniciar wifi

Serial.println();

Serial.println();

Serial.Print (“conectarse”);

Serial.println(SSID);

WiFi.begin (ssid, clave);

while  (WiFi.status()! = WL_CONNECTED) {

Delay(500);

Serial.Print(“.”);

}

Serial.println(“”);

Serial.println (“Wi-Fi conectado”);

Serial.println (“dirección IP:”);

Serial.println(WiFi.localIP());

}

//función para hablar con la plataforma Carriot

void sendStream()

{

String txt = “”; //Texto para enviar

if (pirstate == HIGH)

{/ / alarma

txt = “Detecta movimiento;”

} else {/ / alarma en

txt = “Algo mal”;

}

 

Serial.println(txt);

Serial.println(Val); / / para fines de depuración

Client WiFiClient;

const int httpPort = 80;

if  (client.connect (servidor, 80)) {/ / si hay una conexión exitosa

Serial.println(F(“Conectedo”));

//Construir el campo de datos

String json = “{\”protocol\”:\”v2\”,\”device\”:\””+DEVICE+”\”,\”at\”:\”now\”,\”data\”:{\”light\”:\””+txt+”\ “}}”;

//Realizar una solicitud HTTP

Client.println (“POST /streams HTTP/1.1”);

Client.println (“Host: api.carriots.com”);

Client.println (“Accept: aplicación/json”);

Client.println (“User-Agent: Arduino-Carriots”);

Client.println (“Content-Type: aplicación/json”);

Client.Print (“carriots.apikey:”);

Client.println(APIKEY);

Client.Print (“Content-Length:”);

int thisLength = json.length();

Client.println(thisLength);

Client.println (“conexión: cerrar”);

Client.println();

Client.println(JSON);

}

Else {}

//Si no tiene una conexión con el servidor:

Serial.println (F (“Conexión fallida”));

}

}

 

void loop() {}

Val = digitalRead(pirpin);

Serial.println(Val);

if(Val == HIGH) {}

digitalWrite(ledpin,HIGH);

if  (pirstate == LOW) {

Serial.println (“movimiento detectado”);

pirstate = HIGH;

Serial.println (F (“secuencia de enviar”));

sendStream();

Delay(30000);

}

/ * {while(client.available())}

String linea = client.readStringUntil(‘\r’);

Serial.Print(line);

Delay(30000);

} */

}

Else {}

digitalWrite(ledpin,LOW);

if(pirstate == HIGH) {}

Serial.println (“movimiento detectado correo enviado”);

pirstate = LOW;

}

}

}

Programación de disparadores de Carriots enviar Email:

Una vez   que  tenga desplegado el  sw en su  placa NodeMcu  ,la capacidad de activar un correo debe ser  programado o configurado en la plataforma de Internet para este producto que está utilizando (la plataforma Carriots IOT) . Si no sabe como hacerlo en el siguiente video podemso  ver  como  familiarizarse con las funciones y cómo utilizarlas:

 

Obviamente esto podría programarse para llamada, o un texto o una alarma a la policía o quien sea. !Como podemos adivinar   las posibilidades  son infinitas!.

Fuente