Hemma temperaturövervakning med Raspberry Pi och Thingspeak (med BMP180) (6 / 7 steg)
Steg 6: Koden
Nu med konto och kanal setup alla. Vi flytta till den sista delen av skriva kod på RasPi skicka regelbundna uppdateringar på Thingspeak kanal. Koden läser temperatur och tryck från BMP180 och skickar till Thingspeak kanal att använda sig av anpassade skriver API-nyckel.
Du kan hämta filen eller följa nedan instruktioner-
Du måste logga in Raspberry Pi via SSH
- gör en mapp på kommandoraden (Välj ett namn för det) och cd (change directory) in i den.
- Skriv kommandot "git init" (installera git om den inte finns) följt av "git clone https://bitbucket.org/snippets/aslan_ali/bKKkM"
- CD till den nyskapade mappen "bKKkM" och kontrollera för "Thingspeak_bmp180.py" fil
- Redigera filen med nano redaktör att lägga till din skriva API-nyckel i params inuti loop av Main () funktion (som superanvändare)
- Spara och kör python skript med "sudo python Thingspeak_bmp180, py"
- gå till thingspeak kanal och kolla inuti fliken privat Visa ser du graferna uppdateras därför (med viss fördröjning antar jag cirka 10 sekunder)
Koden är skriven i Python på Raspberry Pi (som en matter-of-factly). Kodstycken göra främst alla de tunga lyft.
- RPi blir temperatur/tryck värden från BMP sensor- Python skript main () innehåller en readBMP180() funktion för att läsa både temperatur och tryck värden.
Bus = smbus. SMBus(1) #RPi rev2 använder 1
#Read temperatur
Bus.write_byte_data (addr, REG_MEAS, CRV_TEMP) #sending temperatur kontroll kommando till BMP180 frågat temperatur
Time.Sleep (0,005) #wait för 5ms
(msb, lsb) = bus.read_i2c_block_data(addr,REG_MSB,2)
UT = (msb << 8) + lsb # oraffinerad 16 byte temperatur genereras genom att lägga till lsb och 8-bitars vänster-SKIFT msb
#Read tryck
Bus.write_data_byte (addr, REG_MEAS, CRV_PRES + (OVERSAMPLE << 6))
Time.Sleep(0.04)
(msb, lsb, xsb) = bus.read_i2c_block_data(addr,REG_MSB,3)
UPP = ((msb << 16) + (lsb << 8) + xsb) >> (8-OVERSAMPLE) #unrefined tryck värde
< br >
Det behövs mer kod inuti main () för förskjutningar och raffinering av varje värde.
- RPi skickar informationen till Thingspeak kanal- Modulen httplib i python används till POST värden på Thingspeak kanal.
Conn = httplib. HTTPConnection("api.thingspeak.com:80")
headers = {"Content-type": "application/x-www-formuläret-uelencoded", "Acceptera": "text/plain"}
(temperature,pressure)=readBMP180()
params = urllib.encode ({"Fält1": temperatur, "Fält2": pressar, "viktiga": "Din skriver API-nyckel"})
Conn.Request("post","/Update",params,headers)
Response=Conn.GetResponse()
skriva ut response.status,response.reason
Conn.Close()
< br >
Obs - Lägg till din skriva API-nyckel inne "params" genom att byta ut "Din skriva API-nyckel". Också kan du avmarkera eller radera kanal inuti fliken Inställningar
Hoppas du gillade!