En efecto , aunque hemos hablado en muchísimas ocasiones de múltiples ejemplos en c# usando la plataforma Netduino es poco frecuente ver aun ejemplos que usen la plataforma de desatollo de Microsoft de IoT en otros entornos.
Precisamente en el siguinte ejemplo de como implementar una estación meteorológica en una Raspberry Pi , se demuestra cómo aprovechar la potencia de Windows 10 IO Core, y crear una estación meteorológica con un escudo de Sparkfun(Sparkfun DEV-12081) en una Raspberry pi que corre Windows 10 (puede ser la versión 2 o también la 3).
Este proyecto forma parte de la iniciativa de Microsoft llamada Hack the Home , que proporciona componentes de código abierto para minimizar el esfuerzo en la creación de interfazes con los dispositivos y servicios a usar para enfrentarse a sus hogares.
Antes de describir como lo han hecho en el vídeo podemos ver una introducción a la plataforma de windows IoT;
El nuevo espacio de nombres Windows.Devices de las API de Windows Plataforma universal (UWP) en Windows 10, permite a los desarrolladores aprovechar la potencia de Windows en la interacción con el mundo real a través de sensores y actuadores utilizando el bus I2C y los puertos de uso general de entrada / salida (GPIO) disponibles en el Raspberry Pi 2, para crear una estación meteorológica conectada a Internet utilizando la protección contra la intemperie Sparkfun.
Las instrucciones proporcionadas darán un desarrollador de primera mano la configuración del hardware requerida junto con la escritura y depuración de Windows recientemente disponible en windows 10 llamada UWP Windows.Devices API’s.
En este ejemplo, también se demostrará cómo agregar sus datos en la nube utilizando el Azure Event Hub y ConnectTheDots API.
Para empezar , lo primero es conexionar los pines desde la Raspberry Pi 2 a la placa Sparkfun(Sparkfun DEV-12081)
Este es el conector de la Raspberry Pi 2:
El diagrama de conexiones de la Raspberry Pi hacia la placa de Sparkfun es el siguiente:
- GND (negro) —— GND
- 5V (rojo) ——— VIN
- 3V3 ——- (marrón) —— 5V (escudo truco; no es un error)
- GPIO2 —– (amarillo) —- SDA
- GPIO3 —- (naranja) —- SCL
- GPIO5 —– (verde) —– D8
- GPIO6 —– (azul) ——- D7
Con la placa Weather Shield es muy fácil de hacer funcionar con Arduino ofreciendo de por sí la presión barométrica, humedad relativa, luminosidad y temperatura. También hay conexiones para sensores opcionales tales como la velocidad del viento, dirección, pluviómetro y GPS para la ubicación.
Utiliza el sensor de humedad HTU21D, de presión barométrica MPL3115A2, un sensor de luz ALS-PT19 y se basa en la librería HTU21D y MPL3115A2 para Arduino. Dispone de dos posiciones para soldar conectores RJ11 (para sensores opcionales de lluvia y viento) y un conector GPS de 6 pines (para conectar un GPS opcional). Puede funcionar desde 3.3V hasta 16V y tiene un regulador de voltaje integrado.
En cuanto al sw de la estación meteorológica en realidad se compone de dos aplicaciones:
- La primera es una bucle largo por tiempo indefinido, que trabaja de fondo leyendo el estado de los sensores y actúando como un servidor de estación meteorológica.
- La segunda, una interfaz de usuario que realiza una solicitud al puerto 50001 del servidor mostrando los datos. La aplicación de interfaz de usuario es universal y se puede implementar en cualquier dispositivo Windows desde el Raspberry Pi 2 hasta el final a un PC de escritorio – y en cualquier lugar en el medio!
Es necesario encontrar la siguiente línea en el archivo `Mainpage.xaml.cs` del proyecto` build2015-tiempo-station`, y vuelva a colocar el nombre del equipo, “MINWINPC”, en la dirección URL con el nombre de su dispositivo IO.
//TODO: On the following line, replace "minwinpc" with the computer name of your IoT device (ie "http:// :50001").
private Uri weatherUri = new Uri("http://minwinpc:50001");
Activar la pantalla “Lista de tareas”
Haga doble clic en cualquier elemento de la lista y pasar directamente al código fuente:
Cada // TODO: es precedida por comentarios y consejos para ayudarle con las secciones que faltan.
Instalar la aplicación estación meteorológica:
1-Clonar el repositorio relacionado (con --recursive
flag))
- Seleccionar la rama “TAb” (por defecto), si quiere aprender el nuevo UWP Windows.Devices API y completar el código manualmente
- Seleccionar la rama “master” si desea que el código completo
Abrir “WeatherStation \ WeatherStation.sln” en Visual Studio 2015
2-Vaya a “WeatherShield.cs” en el panel “Explorador de soluciones”
3-Si ha elegido la rama de laboratorio, vaya a “Ver >> Otros >> Lista de tareas de Windows”, para ver el resto del trabajo (se representa más arriba).
Usted notará que hay poco de detalle en loss comentarios para ayudarle a completar la tarea. Sin embargo, si todavía necesita mas ayuda extra, habrá una “pista” proporcionado para recordarle que debe mirar al código cercano en busca de ayuda (véase el dibujo).
4-Una vez que el TODO //: ‘s se han completado, haga clic en el elemento de menú “Test“, y seleccionar “Propiedades WeatherStation …”
5-En la pestaña “Debug” (Depuración), en la sección “Opciones de inicio”
- Seleccione “Dispositivo remoto” como “dispositivo de destino:”
- Introduzca la dirección IP de su dispositivo de Windows Core IO en la “máquina remota:” campo
6-Implementar en el dispositivo Windows Core IO
Interfaz con y / o depurar la aplicación:
Hay dos vias para depurar la aplicación recién implementada:
VIA 1
- Establecer un punto de interrupción en “WeatherStationTask.cs”, en la función “PopulateWeatherData”
- Paso a través de las transacciones I2C individuales a medida que se producen
VIA2:
- Haga ping a la dirección IP de su dispositivo Windows Core IO en el puerto 50001 en una ventana del navegador de Internet (por ejemplo, http:.. // Xxx xxx xxx xxx:. 50001)
Integración con connectthedots en la nube de Azure:
2
1-Seleccione la rama “lab_ConnectTheDots”, si desea aprender a utilizar connectthedots y completar el código manualmente
2-Abrir “WeatherStation \ WeatherStation.sln” en Visual Studio 2015
3-Vaya a “WeatherStationTask.cs” en el panel “Explorador de soluciones”
4-Utilice la “Lista de tareas” para saltar a cada “TODO //:” y escribir el código necesario
Los archivos AppSettings, ConnectTheDotsSensor, y ConnectTheDotsHelper son parte del código creado para ayudarle a utilizar la interfaz connectthedots al Hub Evento Azure.
AppSettings: Guarda los ajustes para la conexión al hub de eventos
Esta información se puede encontrar bajo su ServiceBus en Azure.
5-Vaya a su “* ns” instancia ServiceBus -> Evento Ejes -> ehdevices -> Información de conexión -> Busca el SAS “D1”
6-Copiar la cadena de conexión que debe tener este aspecto (Contiene información para sus AppSettings)
"Endpoint=sb://iotbuildlab-ns.servicebus.windows.net/;SharedAccessKeyName=D1;SharedAccessKey=iQFNbyWTYRBwypMtPmpfJVz+NBgR32YHrQC0ZSvId20="
- servicio de espacio de nombres de autobús (Ej: “iotbuildlab-ns”)
- nombre del evento cubo (Ej: “ehdevices” – siempre usar esto)
- nombre de la clave (Ej: “D1”)
- clave (Ej: “iQFNbyWTYRBwypMtPmpfJVz + NBgR32YHrQC0ZSvId20 =”)
- nombre de visualización (Ej: “WeatherStation1” – Esto le da un nombre a los datos del dispositivo)
- organización (Ej: “Construir la IO Lab” – Cambio de personalizar)
- ubicación (Ej: “EE.UU.” – Cambio de personalizar)
ConnectTheDotsSensor: Contiene la información de un sensor
- GUID
- mostrar nombre
- organización
- ubicación
- nombre de la medida
- unidad de medida
- hora de creación
- valor
ConnectTheDotsHelper: Las funciones auxiliares para inicializar el Hub de eventos
- establece la conexión
- crea los tokens de autenticación
Si desea iniciar su propio concentrador de sucesos de servicios de fondo, siga las instrucciones del connectthedots GitHub repositorio:https://github.com/msopentech/connectthedots/blob/master/Azure/AzurePrep/AzurePrep.md
7-Una vez que haya que desplegado, debe iniciar el envío de datos al cubo evento y los datos debe ser visible en http://iotbuildlab.azurewebsites.net/ o en su propio sitio web.
Fuente aqui