Revista 100% Verde

Estación metereológica basada en Netduino+

Por Soloelectronicos @soloelectronico
En este estupendo proyecto   zmashiah   nos muestra una placa  Netdunio-Plus  usándola para mostrar la información actual y el pronóstico del tiempo en una   pantalla VGA  o  incluso en una pantalla LCD  todo ello  usando  la información de Weather Underground. El autor    ha publicado recientemente un proyecto similar en el que se utiliza una placa Arduino para mostrar el pronóstico del tiempo por medio del servicio Weather de Google. Este nuevo proyecto es totalmente automático, no requiere configuración, y además incluye arias mejoras en la visualización gráfica (y correcciones de errores). En el siguinte video podemos verlo en acción:

La salida es gráfica con iconos y con un poco de texto colorido, usando  un código de colores en función de los rangos de temperatura y tiempo. Este proyecto es  uno de esos gadgets que   zmashiah quería tener desde hace algún tiempo , es decir una pantalla de predicción del tiempo que está ahí al igual que el reloj de pared. Características
  • Identifica automáticamente la ubicación en el mundo
  • Determina automáticamente el horario de verano y la hora local
  • Muestra gráficamente la información actual y previsión del tiempo
  • Sincroniza automáticamente el ahorro de tiempo y la luz del día a través de Internet (utilizando el protocolo NTP)
  • Muestra:
    • Temperatura ,el tiempo, humedad, dirección y velocidad del viento
    • Actual presión barométrica tiempo
    • Tiempo condición texto y el icono
    • Hoy bajas y altas temperaturas
    • Fase de la luna para hoy
    • Salida y puesta del sol para hoy
    • El tiempo para los próximos 3 días, incluyendo:
      • Altas y bajas temperaturas
      • Tiempo condición texto y el icono
      • Humedad
      • Dirección del viento y velocidad
  • No requiere ningún PC de participar, totalmente independiente
  • Fácil de conectar y de reunión, sólo cable Ethernet y fuente de alimentación
  • Soporta DHCP para la conexión a la red
  • Soporta pantallas VGA y pequeñas pantallas 3.2 “

Algunos otras características incluyen el cambio de color de fondo entre la noche (azul oscuro) y el día (azul claro) para el reloj y el cambio de  texto color de fondo de las áreas de datos de tiempo en función de la temperatura (caliente en naranja, normales a la luz azul y frías en azul oscuro ). El ciclo de noche y día son detectados automáticamente por el servicio de Internet de Weather Underground (amanecer y atardecer).

Esta  versión no requiere la configuración de la ciudad en la que se  vive durante tiempo de compilación, y establece el ahorro de forma manual la a luz del día. Aquí todo es automático

.
Imagen de la estación meteorológica (metro) con Netduino

En comparación con Google wether  , ofrece características adicionales:

  1. Información Tiempo de hoy incluyendo la presión barométrica
  2. La previsión del tiempo incluye información humedad demasiado para cada día
  3. Tiempo y puesta del sol Sunrise están disponibles para hoy
  4. Información de fase lunar está disponible para hoy
  5. Sustancialmente más iconos en la pantalla y mejorar la visibilidad de la información existente
  6. Soporte para el horario de verano, la ubicación y la hora automática zona
  7. Se muestra Indicadores para la comunicación entre la pantalla y el tablero de acogida

Sin embargo, este proyecto  no puede  medir la temperatura interior y tampoco soporte del sensor de humedad.

Lo componentes que zmashiah  ha usado son los siguientes:
  1.  Netduino Plus ( http://www.sparkfun.com/products/10186 ) ~ $ 60
  2. Pantalla 4D Systems (uLCD-32PT) http://www.sparkfun.com/products/10089o adaptador de pantalla (uVGA II) http://www.sparkfun.com/products/10329~ $ 55 para VGA
  3. Una pantalla VGA en desuso
  4. Cables 5x Jumper (sólo 3 necesarios para el funcionamiento, 5 mientras programa de grabación), tenga el adaptador de pantalla y la pantalla tiene pines machos y Netduino viene con encabezados femeninos, por lo que necesitará un cable de puente que es conector macho en un extremo y conector hembra el otro extremo, como este http://www.ebay.com/itm/Arduino-Solderless-Dupont-Jumper-Wire-AWG-24-Male-Female-Protyping-QTY30-/251028328487?pt=LH_DefaultDomain_0&hash=item3a72745027#ht_1797wt_1393
  5. 2 GB o menos micro-SD (sólo necesita alrededor de 150 KB, así que si usted tiene uno de un teléfono antiguo, puede ser utilizado)
  6. Fuente de alimentación (7.5V o 9V)
  7. Cable Ethernet
  8. Caja para albergar todo el contenido

También para la construcción del aparato, necesitará la siguiente

  1. Tablero FTDI, mejor usar 5Volts uno como este uno.
  2. PC para la programación
  3. Un dispositivo lector de micro-SD
WeatherUnderground pantalla 0712.zip 581 KB
Imagen de Dónde comprar?
Todos los artículos se pueden comprar en Sparkfun o  en su tienda  componentes electrónicos favorita. En cuanto a la pantalla o adaptador de pantalla, vienen pre-cargado con uno de la SGC o GFX tipos de firmware. En realidad, no importa cuál  comprar, pues la conversión de un firmware para el otro es tarea muy sencilla realizada por una herramienta en el PC. Usted sólo necesitará su FTDI y el dispositivo de 4D. 1. Descargar e instalar herramientas
Después de comprar los componentes , descargar el software en su PC, incluyendo:
  1. Herramientas de Sistema 4D para la programación de sus adaptadores o pantallas de aquí
  2. Visual Studio 2010 Express o si tiene un Pro instalado, no hay problema (se puede descargar desde Netduino sitio abajo también)
  3. SDK Netduino de http://netduino.com/downloads/
  4. Microsoft .NET Micro Framework 4.1 de http://netduino.com/downloads /
  5. Registrarse con Weather Underground y generar   una clave 
  6. Modificar una llave en el código Netduino-Plus en la función ‘initlocation‘ en Program.cs archivos para que la línea que dice WeatherData = new WeatherUndergroundData (“<< >> yourkey”, myLocation.latitude, myLocation.longitude); será cambiado para tener la clave en forma de cadena (entre comillas) en lugar del yourkey.
  7. Registrarse con AskGeo.com y  generar una clave
  8. Actualice su clave AskGeo y cuenta ID en el  fichero NTPThread.cs archivos, buscar // <<< encontrar en qué parte del archivo

2. Cargar el firmware y el software de los dispositivos

  1. Conecte su pantalla 4D o adaptador de pantalla para el FTDI (Vcc a 5V, GND a GND, Rx a Tx y Rx Tx a, DTR en el FTDI restablecer pines) y el FTDI para USB de su PC
  2. Suba el firmware a la derecha en el adaptador de LCD o VGA 4D utilizando herramienta PMMC Loader desde 4D Systems (necesita la versión GFX).   lo ha comprobado con la versión de firmware 2.7
  3. Abra la herramienta Taller sistemas 4D; abrir el archivo de programa en el subdirectorio 4D del archivo ZIP en esta publicación. Siga los pasos como se muestra también en la imagen para que esta herramienta:
    1. Seleccione la pantalla derecha o modelo de adaptador
    2. Seleccione el puerto COM correcto (el que genera el FTDI)
    3. Elige la localidad como “Flash” y no “Ram” (no te olvides de esto!)
    4. Compilar y cargar el programa en la pantalla / adaptord)
  4. Conecte su tablero Netduino Plus a su PC
  5. Herramienta Ejecutar MFDeploy (parte del kit .NETMF y debe estar en C: \ Archivos de programa (x86) \ directorio de Microsoft .NET Micro Framework \ v4.1 \ Tools si está usando Windows 7 de 64 bits PC),
    1. Escoja USB como la conexión de dispositivos
    2. Elija el Netduino Plus
    3. Pulse el Ping para ver el dispositivo está conectado bien y responder
    4. En Target | Configuración | Network set el Netduino-Plus para usar DHCP o IP estática si está utilizando direcciones IP estática en su casa.
  6. Registrarse con AskGeo Servicios (AG) Tiempo-metro (WU) y. Usted debe obtener ID y clave.
  7. Ejecutar Visual Studio y cargar el proyecto para el programa Netduino (En subdirectorio NetduinoPlusWeatherUnderground en el archivo ZIP). Coloca los códigos que obtuvo de WU y AG en el código (búsqueda de los “<<<” marcas). Reconstruir y Desplegar en el tablero.
  8. Cargar la tarjeta micro SD a su lector de tarjetas SD, formato FAT si es necesario
  9. Cargue los iconos del directorio NetduinoPlusWeatherUnderground \ 4DIcons en el archivo ZIP en su tarjeta SD
  10. Extracción segura de la micro-SD del lector y lo coloca en la pantalla o display adaptador
  11. Desconecte la pantalla, el Netduino y el lector de tarjetas SD de su PC.

3. Conexión del hardware juntos
En los siguientes pasos obtendrá su conjunto terminado,

  1. Inserte la tarjeta micro SD para la visualización 4D o al adaptador de pantalla 4D
  2. Conecte la pantalla o adaptador de pantalla a su Netduino Plus (sólo 3 cables requeridos)
    1. Vin o Vcc desde el dispositivo 4D a 5V del tablero Netduino Plus
    2. GND del dispositivo 4D a GND de la junta Netduino Plus
    3. Rx del dispositivo 4D a Digital 3 pines de la placa Netduino Plus
  3. Conecte el Netduino Plus al puerto Ethernet en su router / red
  4. Si está utilizando la tarjeta de adaptador VGA, conecte la pantalla al adaptador 4D
  5. Conecte el suministro eléctrico de su Netduino Plus
Imagen ¿Está utilizando Celsius o Fahrenheit?
Este programa muestra la temperatura en grados Celsius. Sin embargo, si usted está usando grados Fahrenheit, se necesitarán ligeras modificaciones en el código:
  1. Edite el archivo de programa de visualización 4GL y cambiar el ShowCelsiusSymbol función y cambiar putStr (“C”); a putStr (“F”);
  2. Cambiar los umbrales de temperaturas para Hot e indicadores Labial (TEMP_THHOT y TEMP_THCOLD constantes) a lo que crees que es bueno para usted (89 y 68 son los equivalentes de mi configuración Celsius actuales).
  3. Edite el archivo WeatherUnderground.cs y cambie las líneas que recogen las temperaturas Celsius a Fahrenheit uno (temp_c a temp_f etc.) .:
  4. Usted también puede cambiar la información del viento a buscar Millas por hora en lugar de Kilómetro por hora uno
  5. Compilar y cargar los programas a los dispositivos
Imagen ¿Cómo funciona esto?
El Netduino Plus sirve como anfitrión, la conexión a internet, y envía información en el protocolo simple formato de la pantalla 4D (o adaptador de pantalla). La pantalla 4D manipula todas las imágenes en la pantalla. Pasos de la operación:
  1. Netduino-Plus primeros arrendamientos y dirección IP desde el servidor DHCP
  2. Netduino-Plus va al servicio de internet http://www.geobytes.com/ para averiguar en qué lugar del mundo se encuentra. La salida de este servicio incluye ciudad, país, etc, pero lo que tomamos de ella es la longitud y latitud.
  3. Netduino-Plus va al servicio de internet http://www.askgeo.com/ para averiguar cuál es el desplazamiento de su ubicación con respecto al UTC actual. De esta manera sabemos no sólo su zona horaria, sino también el horario de verano.
  4. Netduino-Plus va al servicio NTP en el Internet para obtener el tiempo atómico precisa y fija el reloj interno Netduino-Plus para esta época junto con el offset nos enteramos antes.
  5. Netduino-Plus va a Tiempo servicio Undergroundhttp://www.wunderground.com/ a buscar información actual y previsión del tiempo.
  6. Netduino-Plus envía los datos del tiempo y el reloj en el dispositivo 4D sobre interfaz serial (UART) utilizando el protocolo simple que voy a omitir la descripción de aquí. Es en el código.
  7. Tiempo de NTP se sincroniza cada 300 minutos (6 horas) que me pareció ser lo suficientemente preciso.
  8. La información meteorológica se descarga cada 10 minutos. Más que suficiente para la mayoría de la gente y de los casos. Actualizaciones más frecuentes de Weather Underground se requieren para ser un usuario pagar.
  9. Tiempo de NetduinoPlus se envía al dispositivo 4D cada 3 minutos (temporizadores Netduino encontraron un poco más preciso que los 4D)
  10. Los formatos de dispositivos 4D datos de flujo de texto que recibió de la Netduino-Plus para gráficos en la pantalla.

Algunas notas:
  le  pareció que  Netduino sería  mejor que Arduino  pues tiene algunos más recursos como la memoria y la CPU más rápida (16MHz en Arduino vs  a 48MHz de Netduino). También logró código  muy atractivo para este tipo de consultas en Internet … pero después supo que se carga el conjunto de analizador genérico XML para el huésped y  se ejecuta fuera de la memoria. Peor que eso, no fue suficiente para agregar las características que quería para la automatización de DST y la ubicación. Decepcionado decidió atenerse a lo que es importante, la automatización y sencillez, y pasar algunas pulsaciones tediosas en analizar XML. El estado de cosas ahora es que el Netduino-Plus está teniendo sus propios desafíos de memoria, y este proyecto encaja bien en y obras, pero hay muy poco espacio para añadir algo más. Así, en comparación con el anterior proyecto con Arduino , en éste no está a la temperatura interior y la humedad. Además, los sensores DHT22 de bajo precio no están apoyados en  Netduino( tampoco  en  .NETMF 4.2 )

El análisis de XML se realiza mediante la lectura de un byte en un momento de la toma de internet. Como este es el código administrado, funciona terriblemente lento. Toma en un  Netduino-Plus unos 19 segundos para analizar la secuencia XML de Weather Underground. Se  podria  optimizarlo para un rendimiento mucho mejor, como el uso de clase Stream y todo, pero ¿adivinen qué? Se queda sin memoria al hacer eso. La verdad del asunto es que podría importar menos si la  CPU de Netduino-Plus  gaste  9 segundos hibernada o procesar  trozos de Weather Underground. No hay da mejor para que haga y aunque quisiera, se deja sin memoriasi hace algo más. Por lo tanto, esos 19 segundos no debería importar mucho a cualquiera.Usted se dará cuenta de que el led de a bordo LED en el Netduino (azul uno frío) se iluminará cuando  hace su análisis de los datos XML.

También el autor ha reutilizado el botón de a bordo en el Netduino-Plus para actuar como “tiempo de sincronización y la información del tiempo ahora” en lugar de reset. Este cambio fue útil para depurar y el autor esta  contento con el reciclaje de energía como de reposición de bienes de todos modos.

Los chicos de Weather Underground realmente hacen cumplir los límites de 500 llamadas diarias o 10 por minuto. Así que es por eso zmashiah no esta compartiendo la clave aquí y también usted  debería evitar hacer eso. Ademas ha incluido su logotipo y esas cosas como sus términos de condiciones requieren.

El servicio AskGeo estaba en alfa o beta cuando empezo a usarlo el autor ,pero despues se trasladaron a la nube de Amazon e hicieron ligeras modificaciones en los servicios. zmashiah  ha actualizado el código en consecuencia, por lo que no debería molestarse con nada de eso. Tenga en cuenta que usted debe registrarse con ellos  también y no debe  compartir su clave pública.

Sobre el “truco” para averiguar la ubicación, no es, sin limitaciones. Debería funcionar en cualquier red en casa, pero en la oficina  podría ser un poco un desafío. Si la red está pasando por un proxy muy remoto, como muchas organizaciones se sigue utilizando para conectar oficinas remotas a Internet, entonces la ubicación del Netduino-Plus es donde se encuentra el servidor proxy . Es bastante fácil de cambiar el código Netduino-Plus para usar ubicación fija en lugar de auto-detección, y zmashiah   vaa dejar que aquellos que estén interesados ​​lo hacen ellos mismos.

Sugerencia: Todo lo que necesita es el uso fijo longitud y latitud en la función ‘initlocation’ codificado en los Program.cs archivos

Código  fuente puede obtenerse  en     https://github.com/zmashiah/netduino-projects-netdunoPlusWeatherUnderground Fuente   aqui
Estación metereológica basada en Netduino+

Volver a la Portada de Logo Paperblog