Väderstation baserat på Raspberry Pi (5 / 11 steg)
Steg 5: Main program
Huvudprogrammet är temp-monitor.py
Du bör ha python installerade, om inte, bara att följa http://raspberry.io/wiki/how-to-get-python-on-your-raspberrypi/
Den första delen av programmet visar de bibliotek som behövs.
importera Adafruit_BMP. BMP085 som BMP085
importera smbus
importera os
importera sys
importera getopt
importera sqlite3
importera matematik
importera pigpio
Importera tid
Efter programmet har vi 2 funktioner som kommer att läsa fuktighet. Read_temperature är en funktion som kommer att läsa temperaturen av HUT21D för ersättning vid beräkning av den relativa luftfuktigheten. Det är nödvändigt för den följande funktion read_humidity.
Det finns några beräkningar i dessa funktioner, men detta är alla enligt sensorer databladet. Inte importante grejer, men du cam Kontrollera alltid dem om du vill
BMP180 http://www.vssec.vic.edu.au/media/41229/BMP180-datasheet.pdf
HTU21D http://www.meas-spec.com/downloads/HTU21D.pdf
Cmd-variabeln är ansvarig för att skicka data till www.wundergroud.com med curl. Denna webbplats ger några riktigt fina statistik och grafer. Du måste registrera dig (it's free) ett konto för att ladda upp data.
Efter att har du ett ID och ett lösenord som du kan ändra i cmd-variabeln som visas
cmd = "krypa"+"' http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID= & lösenord = & dateutc = nu & tempf="+str((temp*1.8)+32) +" & humidity="+str(round(humidity,2)) +" & baromin="+str((pressure/100)*0.0295299) +" & action = updateraw +"'"
Du måste sedan ändra igen /etc/rc.local och infoga en rad för programmet att starta när Rpi startas:
sudo python /usr/lib/cgi-bin/temp-monitor.py &
Den & symbol är viktigt eftersom det kommer att sätta ditt program i minnet och släppa kommandoraden för att användas.
UPPDATERING
För nyfikna sinnen är temp-monitor-online.py det aktuella programmet jag använder, med värden för temperatur, tryck, luftfuktighet, daggpunkt, vindens hastighet och riktning och UV- och solinstrålning.