Väderstationen 5 (6 / 8 steg)
Steg 6: Arduino skisser
Det finns två skisser, en för PCB monterad i inneslutningen kallas Weather5.ino. Och en för PCB i mitt hus som kallas W5Receive.ino
nrf24L01
Detta är en uppdaterad version av maniacBug bibliotek
https://Arduino-info.wikispaces.com/Nrf24L01-2.4Ghz-howto
https://github.com/TMRh20/RF24
Nätverksbiblioteket är i bifogade zip-filen
RF24Network-Development.zip
PROBLEM/lösning: Jag hoppades att skicka alla data på en gång men jag hade problem så jag delat upp det i två paket:
struct payload_t1
{
osignerade långa strid; 4 byte
dubbla TempC; 4 byte
dubbel RH; 4 byte
dubbel Vcc; 4 byte
dubbel BP; 4 byte
} payload1;
struct payload_t2
{
dubbla RainAccum; 4 byte
dubbel MPH; 4 byte
dubbla GustMPH; 4 byte
dubbla WDIR; 4 byte
} payload2;
Detta fungerar bättre.
BMP180
Jag använde Sparkfun sfeBMP180 bibliotek.
Jag använde metoden bibliotek för att beräkna barometertryck
Dessa kräver höjd i meter. Jag använde:
#define höjd 1417.0 / / höjd meter
DHT22
Jag använde detta bibliotek:
https://github.com/markruys/Arduino-DHT
HMC5883L
Jag använde de Adafruit biblioteken
https://github.com/adafruit/Adafruit_Sensor
https://github.com/adafruit/Adafruit_HMC5883_Unified
Weather5 skiss slingan ganska komplicerande. En förenklad förklaring:
Vindens hastighet måste övervakas kontinuerligt. Jag räkna numrera av rotationer och kan beräkna RPM. Eftersom detta är samma vindmätaren används i min föregående väderstation, har jag värdet att konvertera detta till MPH.
Vindstöt hastighet beräknas genom att hitta den kortaste tiden mellan revolutioner och konvertera det till MPH.
Regn måste också övervakas kontinuerligt, jag räkna bara antalet hink tips. Detta konverteras inte till inches.
Övriga data behöver inte övervakas kontinuerligt så att det erhålls endast innan du skickar paket. Detta är batteriets spänning, temperatur, RH, BP och vind riktning.
En gång i minuten, skickas alla data till W5Receive PCB.
W5Receive skiss får alla data.
Alla här gör är konvertera TempC till TempF och beräknas Wind Chill.
Den senaste formeln, jag kunde hitta för Wind Chill är den här en.
http://usatoday30.USATODAY.com/Weather/Winter/Windchill/Wind-Chill-formulas.htm
All denna information skickas ut den seriella porten.
PROBLEM: Jag försökt den här för ett par dagar och hittade ett problem. Batterierna dränering för fort.
Lösning: Jag gjorde en snabb åtgärd av nuvarande förbrukning. Det handlade om 67mA. Jag tyckte detta var lite hög. Jag var ganska säker största avloppet var nrf24L01 så jag gjorde en del efterforskningar och räknat ut hur makten det ner efter paket som skickas och driver det upp bara rätt innan du skickar paket. Detta minskar strömmen till om 6mA. Förhoppningsvis kommer detta att räcka.
Skisser är kopplade.