Paso 5: ¿Cómo funciona esta?
Pasos de la operación:
- Netduino-Plus primera contratos de arrendamiento y la dirección IP del servidor DHCP
- Netduino-Plus va a servicio de internet http://www.geobytes.com/ para saber donde en el mundo se encuentra. La salida de este servicio incluye la ciudad, país etc. pero lo que tenemos de él es la longitud y latitud.
- Netduino-Plus va a servicio de internet http://www.askgeo.com/ para saber lo que es el desplazamiento actual de su ubicación de UTC. De esta manera sabemos que no sólo su zona horaria, pero también ahorro de luz del día.
- Netduino-Plus va a Servicio NTP en internet para conseguir tiempo atómico exacto y reloj interno establece el Netduino-Plus por este tiempo junto con el desplazamiento nos enteramos antes.
- Netduino-Plus va a Weather Underground service http://www.wunderground.com/ para obtener información actual y previsiones del tiempo.
- Netduino-Plus envía los datos de tiempo y reloj para el dispositivo de 4D largo serial (UART) interfaz usando simple protocolo que omitirá la descripción de aquí. Es en el código.
- Tiempo de NTP se sincroniza cada 300 minutos (6 horas) que encontré sea suficientemente precisa.
- La información meteorológica se descarga cada 10 minutos. Más que suficiente para la mayoría de las personas y casos. Actualizaciones más frecuentes de Weather Underground requieren ser usuario de pago.
- Tiempo de NetduinoPlus se envía al dispositivo D 4 cada 3 minutos (contador de Netduino encontró un poco más precisa que el 4D los)
- El dispositivo D 4 formatos de datos de secuencia textual obtenido Netduino-Plus para gráficos en la pantalla.
Algunas notas:
Mi proyecto anterior cuando ya fue un reto desde la perspectiva de la memoria a la placa Arduino usando Arduino, y estaba seguro la información adicional de Weather Underground no encajaría, para no hablar de los trucos de automatización para encontrar lugar y DST. Parecía a mí el Netduino sea mejor adecuado para el trabajo ya que tiene algunos recursos más como memoria y CPU más rápida (48MHz y 16MHz en Arduino). También código administrado fue muy atractivo para estas consultas de internet... pero más tarde descubrió que una vez que carga la Asamblea XML parser genérico al host, se está quedando sin 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 decidí pegar lo que es importante, la automatización y la simplicidad y pasar algunas teclas tediosos yo en análisis sintáctico XML yo mismo. Bueno, nada es nunca tan brillante como originalmente visto por optimistsï. El estado de la materia ahora es que el Netduino-Plus tiene sus propios desafíos de memoria y este programa ya que es aquí encaja bien y funciona, pero hay muy poco espacio para agregar nada más. Así, en comparación con el anterior proyecto, este no mide temperatura interior y humedad. Además, los sensores de DHT22 a un precio bajo que bien no son compatibles con el Netduino. Hay rumores de con que trabaja. 4.2 NETMF que está en beta, pero una vez que he subido el. 4.2 NETMF en el Netduino, no había espacio suficiente para el programa incluso antes de agregar el código de sensor. Así que otra vez, tomé automatización y simplicidad sobre funcionalidad más rica.
El análisis sintáctico de XML se realiza mediante la lectura de un byte en un momento de la toma de internet. Como esto es código, funciona horriblemente lento. Toma mi Netduino-Plus buena 19 segundos para procesar la secuencia XML de Weather Underground. ¿Creo que yo sé cómo optimizar para rendimiento mucho mejor, como usar la clase Stream y todo, pero adivinen que? Se quede sin memoria al hacerlo. La verdad del asunto es que me pude no importa menos si el CPU de Netduino-Plus es gasto 19 segundos en el sueño o masticar pedacitos de Weather Underground. Tengo nada mejor que hacer y si quería, se quede sin memoria para hacer nada más. Así, déjalo gatear a través de la corriente a su propia pasta, y esos segundos 19 no debe importar mucho a nadie. Usted notará que el LED a bordo en el Netduino (uno azul fresco) se iluminará cuando lo hace su tortuga análisis de los datos XML.
Yo también repurposed el botón incorporado en el Netduino-Plus para actuar como "Sincronizar tiempo y el tiempo en información ahora" en vez de reset. Este cambio fue útil al depurar y estoy contento con poder reciclar como verdadero reset de todos modos.
Los chicos de Weather Underground realmente hacer cumplir los límites que es 500 llamadas diarias o 10 minutos. Así que por esta razón no estoy compartiendo mi llave con usted aquí y también se debe evitar hacerlo. He incluido su logo y esas cosas como los términos de las condiciones requieren.
El servicio de AskGeo fue en alfa o beta cuando empecé a usarlo. Ahora se traslada a la nube de Amazon y había hecho ligeras modificaciones en los servicios. He actualizado el código en consecuencia, por lo que no debe molestar con nada de eso. Por favor nota que usted debe registrarse con ellos demasiado y taladro mismo no compartir su clave pública.
Sobre el "truco" para encontrar la ubicación, no es sin limitación. Debería funcionar en cualquier red doméstica, pero en la oficina podría ser un poco un desafío. Si su red está pasando por un proxy muy remoto, como muchas organizaciones todavía se utiliza para conectadas oficinas remotas a internet, entonces la ubicación Netduino-Plus encuentra donde es el servidor proxy. Es bastante fácil de cambiar el código Netduino-Plus para utilizar ubicación fija en lugar de auto-detecting y dejaré los interesados hacen ellos mismos. Consejo: Todo lo que necesitas es usar fija longitud y latitud en la función 'InitLocation' en el archivo Program.cs