#Fun- #IoT Dispositivos (muy) inteligentes en el baño? Claro que si !!!

Hola !

Todavía no tengo internet en Toronto, así que todos mis planes para el blog están en PAUSA. Eso sí, cuando consigo un poco de WiFi, y entro en el fabuloso submundo de internet, me dejo apuntes que son geniales.

Por ejemplo, durante los últimos años he escrito bastante sobre la parte técnica del Internet de las Cosas (IoT, Internet of things). Especialmente sobre dispositivos como Arduino, Netduino, Intel Galileo y Raspberry Pi. Una vez que sabes lo que es posible hacer con estos devices, lo siguiente es comenzar a trabajar en una idea. Y que mejor idea que esta

CONOCE TU PESO ANTES Y DESPUÉS DE ENTRAR AL BAÑO. ES ENTRAR, SENTARTE Y … YA SABES

Clipboard01

Fácil de entender? Otro par de imágenes más explicativas

haikun2haikun3

Luego de leer este tipo de noticias, realmente me doy cuenta de que esta es (tal vez) la mejor época en la historia de la humanidad para vivir !!!

Greetings @ Toronto

-El Bruno

References

Advertisements

#IoT – Novedades en #Raspberry Pi 3

rpi3

Hola !

Días agitados en Toronto, entre la nieve y los primeros pasos en Avanade Canada, me estoy quedando atrasado con los posts que tengo pendiente. Por ejemplo, necesito internet @home para poder terminar mis demos sobre Azure-Garmin, así que aprovecharé para hablar de un notición de hace un par de días: el lanzamiento de Raspberry Pi 3.

Un par de detalles interesantes sobre el device

  • Nueva arquitectura: 64-bit processor, casi un 50% más rápido que Raspberry Pi 2
  • Conectividad integradada, ahora con 802.11n WiFi y Bluetooth 4.1
  • Compatibilidad completa con Raspberry Pi 1 y 2
  • El precio $35 !

 

Si quieres probar Windows 10 IoT Core, o alguna otra cosa compatible con Raspberry Pi, este es el momento de comprar una online !!!

Greetings @ Toronto

-El Bruno

References

#AZURE – Ejemplo de #AzureIoT con Windows Universal Apps

Hola !

Después de un par de semanas aprendiendo a usar Garmin ConnectIQ SDK, ahora tengo mi Garmin device listo para empezar a trabajar en modo Cloud. Como mi idea es utilizar Azure IoT como hub para el envío y recepción de mensajes, escribiré un par de posts al respecto como pequeña introducción. La primera parte de este post se basa en este artículo del portal de Azure donde comentan como crear un ejemplo con Console Apps. Yo lo he evolucionado un poco y he terminado usando Windows Universal Apps.

2016 02 28 Azure Iot Wua Samples

Create the Azure IoT Hub

Vamos a empezar desde el principio. En primer lugar, necesitamos una cuenta de Azure (puede ser un trial). Y desde el Portal de Azure, creamos un nuevo AzureIot Hub.

image

Yo lo he llamado IoTGarminLabs

Importante: El valor por defecto para el precio del hub es S1, yo lo he cambiado a Free para las pruebas.

image

Después de un par de minutos, el IoT Hub estará creado. Si existe algún tipo de problema durante la creación, en la sección de alertas veremos unos agradables mensajes de error.

image

Una vez que las configuración y los datos son correctos, se creará el IoT Hub. La información importante que necesitaremos más adelante es el nombre de Host: <YourIoTHubName>.azure-devices.net y también las credenciales y la cadena de conexión. Para acceder a esta información:

  • Click en la llave en la barra de herramientas
  • Click en iothubowner policy
  • Copiar la connection string primary key value

image

Create sample Visual Studio Console App projects

Ahora ya podemos ir a Visual Studio y crear una Console App para conectar y probar el Iot Hub. Mi proyecto de prueba se llama“ConsoleAzureIoT01

image

Agregamos el paquete NuGet Microsoft.Azure.Devices

image

En este momento el tutorial explica como registrar nuestro device y obtener la clave del mismo en este IoT Hub. El siguiente código fuente realiza este proceso de registro

Importante: Reemplazar la IoT Connection String (line 11) y elegir el nombre del device (line 12) .

image

Cuando ejecutemos la app de Consola, el device se registrará y podremos además, copiarla clave del mismo.

image

En el portal de Azure podremos ver un device registrado en nuestro IoT Hub “IoTGarminLabs

image

Ok, el siguiente paso en el tutorial es crear otra Console App para leer los mensajes device-to-cloud messages desde el IoT Hub. En mi ejemplo esta app se llama“ConsoleAzureIoT02”, y utiliza el paquete NuGet “WindowsAzure.ServiceBus”.

image

Poniendo la cadena de conexión correcta y un par de líneas ya podemos tener la app recibiendo mensajes.

image

Finalmente crearemos una 3ra Console app para publicar mensajes al IoT Hub.

Name: ConsoleAzuireIot03

NuGet packages: Microsoft Azure Devices Client

image

En este caso tenemos que usar parte de la información que generamos con la app ConsoleAzureIot01.

image

Si en este momento ejecutamos las apps 02 y 03, veremos como cada un segundo la app 03 envía mensajes al IoT Hub y como la app 02 recibe y muestra los mismos. Si accedemos al portal de Azure, veremos además que el número de mensajes procesados se ha incrementado.

image

Sample using Visual Studio Windows Universal App projects

Este es el ejemplo de MSDN y para comenzar es genial, sin embargo yo quería darle una vuelta y es por esto que decidí implementar lo mismo con Windows Universal App projects.

Los datos de la primera WUA son los siguientes

Name: WuaAzureIotSendMessage

Objective: Send messages with a button

image

Moviendo un poco de código, no iba a ser todo tan fácil. La primera vez que ejecuté la app me encontré con este error

System.NotImplementedException occurred
HResult=-2147467263
IsTransient=false
Message=Amqp protocol is not supported
Source=Microsoft.Azure.Devices.Client
StackTrace:
at Microsoft.Azure.Devices.Client.DeviceClient.CreateFromConnectionString(String connectionString, TransportType transportType)

Parece que hay un problema con las WUA apps y AMQP (Todavía no tengo mi Raspberry PI 3 aquí en Toronto para probarlo con Windows IoT Core). Me puse a investigar y leer un poco y me dí cuenta de que era posible configurar la conexión en la WUA app para que utilice HTTP como protocolo de transporte en lugar de AMQP. Line 22

image

Luego cree otra app para recibir los mensajes con los siguientes datos

Name: WuaAzureIotReceiveMessage

Objective: Receive messages and display Toast notification into the Windows 10 Action Center

image

Aquí el problema era más feo ya que no podía utilizar el paquete NuGet de WindowsAzure.ServiceBus. No está soportado para Universal Apps (glup!). La solución fue Azure SB Lite del gran Paolo Patierno para gestionar la recepción de mensajes desde Azure Service Bus.

Finalmente, cuando la app recibe un mensaje, mi idea era mostrar una Toast notification utilizando otro paquete NuGet Notification Extension Win 10

Y ahora ya puedo volver al video del principio y tener las apps up and running !!!.

Greetings @ Toronto

-El Bruno

References

#Garmin – Mostrar gráficos e información de varios sensores al mismo tiempo

Hola !

El post de hoy es uno de los rápidos. Durante estos últimos días, mi principal objetivo era completar todo lo necesario para poder comenzar a vivir en Toronto, y aprovechando huecos de ocio, me puse a conocer el Garmin ConnectIQ SDK.

Como se puede ver en el siguiente video, hoy he llegado a un punto donde he creado una app

  • Que puede leer información de diferentes sensores: posición y ritmo cardíaco
  • En base a una muestra SDK la app puede dibujar un gráfico con los datos del sensor de latidos de corazón
  • La app crea un diseño de forma dinámica con colores diferentes (y bastante feos) para cada línea de texto, cuando el dispositivo está utilizando datos de sensores

2016 02 25 Garmin display multiple sensors

Sobre la app, un par de detalles a tener en cuenta

  • La app debe configurarse para utilizar sensores y obtener información, en las propiedades de aplicación

image

  • La clase App inicializará los eventos para la captura de datos de los sensores y el posicionamiento global. En cada evento de captura de datos, se invocará la clase View para mostrar estos datos
  • La clase de vista tiene algún código para dinámicamente trabajar en el diseño para crear textos y gráficos para la View

image

  • El gráfico utilizado para los datos de frecuencia cardíaca es un archivo de Graph.mc de los ejemplos del SDK

Y eso es todo! la aplicación es lo suficientemente inteligente y sencilla como para mostrar información en tiempo real de sensores y posiciones de una manera muy sencilla!

GitHub Source Code: https://github.com/elbruno/Blog/tree/master/Garmin

Saludos @ Toronto

-El Bruno

References