Raspberry Pi övervakning av hemmet med Dropbox (5 / 7 steg)
Steg 5: Gräva djupare i koden
När du öppnar skriptet, kommer du att märka att det består av tre funktioner tillsammans med ett kodblock som implementerar dessa funktioner när skriptet körs. Funktioner använder Dropbox API och och åt den DS18B20 temperatur loggfilen för att lyssna på kommandon från Dropbox och ladda upp den senaste temperatur behandlingen. Nedan följer en översikt över vad funktioner gör, och hur de används för att övervaka systemet att fungera:
- poll_parameter():
Denna funktion visar syftet med Dropbox parametern filerna vi skapat i steg 3. Det söker efter en fil som innehåller texten i Dropbox app mappen "param =". Då extraheras texten efter '=' och försöker att omvandla det till ett heltal. Du kan se att detta ger oss möjlighet att kontrollera programmet genom att lägga till numren på de berörda i slutet av parametern filerna manuellt. Nästa steg kommer att innehålla en kort bruksanvisning visar hur du kan använda parametern filer för att styra en aspekt av programmet.
- set_parameter():
Denna funktion kan du byta namn på en parameterfilen i Python. Detta sker vid ett par tillfällen, främst för att minska behovet av överdriven manuell byta namn på filerna.
- set_latest_temp():
Denna funktion använder set_parameter() för att överföra de senaste temperaturen till Dropbox app mapp genom att filen "temperatur" parameter läggs. Funktionen läser senaste temperaturen från de DS18B20 loggfil (som finns på Linux på vägen av variabeln THERMOMETER_FILE).
Den sista delen av programmet innehåller koden som ska köras när skriptet körs. Efter några installationsstegen krävs för DS18B20 sensorn, det öppnar en Dropbox session med din tillgång Token och använder pygame för att söka reda på din webbkamera. Om en webbkamera finns, kommer det in en loop där den använder poll_parameter() för att extrahera information från Dropbox och agera på det.
Viktigt: du kommer att märka den följande lina av koden:
cam = pygame.camera.Camera (cam_list [0], (864, 480))
... detta försök att skapa en användbar kamera gränssnitt från första webbkameran att pygame upptäcker. I resolutionen kan behöva ändras för att matcha din webbkamera. Experimentera med ett antal värden att hitta vad som fungerar bäst.