Paso 6: Arduino bocetos
Hay dos dibujos, uno para el PWB montado en el recinto llamado Weather5.ino. Y uno para el PWB en mi casa llamado W5Receive.ino
nrf24L01
Se trata de una versión actualizada de la biblioteca de maniacBug
https://Arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HOWTO
https://github.com/TMRh20/RF24
La biblioteca de red está en el archivo zip adjunto
RF24Network-Development.zip
Solución de problema: Tenía la esperanza de enviar todos los datos a la vez pero tuve problemas así que lo dividí en dos paquetes:
struct payload_t1
{
sin firmar largo contador; 4 bytes
doble TempC; 4 bytes
Derecho doble; 4 bytes
doble Vcc; 4 bytes
BP doble; 4 bytes
} payload1;
struct payload_t2
{
doble RainAccum; 4 bytes
doble MPH; 4 bytes
doble GustMPH; 4 bytes
WDIR doble; 4 bytes
} payload2;
Esto funciona mejor.
BMP180
He utilizado Sparkfun sfeBMP180 biblioteca.
Utilicé el método de las bibliotecas de cálculo de la presión barométrica
Estos requiere altitud en metros. He utilizado:
#define 1417.0 altura / / metros de altitud
DHT22
Utilicé esta biblioteca:
https://github.com/markruys/Arduino-DHT
HMC5883L
He utilizado las bibliotecas Adafruit
https://github.com/Adafruit/Adafruit_Sensor
https://github.com/Adafruit/Adafruit_HMC5883_Unified
El bucle de bosquejo de Weather5 está complicando bastante. Una explicación simplificada:
Velocidad del viento debe ser monitoreado continuamente. I contar el número de revoluciones y puede calcular RPM. Ya que es el mismo anemómetro utilizado en mi estación meteorológica anterior, tengo el valor de ajuste para convertir esta en MPH.
Velocidad de ráfaga se calcula encontrando el tiempo más corto entre las revoluciones y convirtiendo a millas por hora.
Lluvia también necesita ser monitoreada continuamente, sólo contar el número de consejos de cubo. Esto no se convierte a pulgadas.
Los demás datos no necesitan ser monitoreado continuamente por lo que se obtiene solamente antes de enviar los paquetes. Este es el voltaje de la batería, temperatura, RH, BP y dirección del viento.
Una vez por minuto, todos los datos se envían a W5Receive PCB.
Bosquejo W5Receive recibe todos los datos.
Ello no es convertir el TempC a TempF y calcula el Wind Chill.
La última fórmula que pude encontrar para Wind Chill es este.
http://usatoday30.Usatoday.com/Weather/Winter/Windchill/Wind-chill-formulas.htm
Todos estos datos se envía por el puerto serie.
Problema: Probé esto por unos días y encontré un problema. Las baterías fueron drenando demasiado rápido.
Solución: Hice una rápida medida de consumo de corriente. Se trataba de la 67mA. Pensé que esto era un poco alto. Estaba bastante seguro de que el drenaje más grande era el nrf24L01 así que hice algunas investigaciones y averiguado cómo él abajo después de paquetes enviados y encender justo antes de enviar los paquetes. Esto reduce la corriente acerca de 6mA. Ojala, esto será suficiente.
Se adjuntan dibujos.