Versuchen, den Sinn Hut mit der raspberry pi
zu verwenden, um die Temperatur in einem Raum zu überwachen und die Daten zu plot.ly zu streamen. Ich habe das alles gut funktioniert. Der nächste Schritt war das Hinzufügen der Picamera
zum Projekt. Wenn die Temperatur einen bestimmten Punkt erreicht, schaltet sich die Kamera ein und beginnt alle 5 Minuten Bilder aufzunehmen, während die Daten weiterhin in plot.ly übertragen werden. Ich habe die Skripte separat erstellt und sie von einem Bash-Skript zum Hintergrund laufen lassen, aber das Problem ist, dass die Daten "durcheinander" geraten und die falsche Temperatur bekommen. Ich habe den Subprozess untersucht, aber es stoppt eines der Skripts. Wie kann ich beide gleichzeitig laufen lassen und sich nicht gegenseitig beeinflussen, also werde ich die Daten live streamen und die Kamera wird Bilder machen, wenn die Bedingung erfüllt ist?Raspberry Pi Sense Hut
Hier ist mein Code für Datenstrom:
##### Main Program #####
sense = SenseHat()
sense.clear()
####Graph####
stream_id = 'nync7etjej'
stream = dict(token=stream_id,maxpoints=60)
trace1 = go.Scatter(
x =[],
y=[],
mode='lines+markers',
stream=stream)
data= go.Data([trace1])
layout =go.Layout(title='Room Temperature')
fig = go.Figure(data=data,layout=layout)
py.plot(fig,filename="Server Room Temperature_01")
s = py.Stream(stream_id)
s.open()
time.sleep(5)
while True:
temp_h= sense.get_temperature()
temp_h=round(temp_h,1)
x=datetime.now()
y=temp_h
s.write(dict(x=x,y=y))
time.sleep(300)
s.close()
tls.embed('Streaming Temp','12')
Picamera Skript:
##### Main Program #####
sense = SenseHat()
sense.clear()
with picamera.PiCamera() as camera:
while True:
temp_h= sense.get_temperature()
temp_h=round(temp_h,1)
if temp_h >45.2:
camera.start_preview()
time.sleep(2)
for filename in camera.capture_continuous('/var/www/image/img{counter}.jpg'):
camera.stop_preview()
time.sleep(5)
Danke @MarkSetchell, das scheint den Job zu erledigen. Das Endproblem ist, dass ich die Kamera nicht zum Anhalten bringen kann, sobald die "Hot" -Datei gelöscht ist. Ich habe wenn nicht os.path.exists ('Hot') dann camera.close aber das funktioniert nicht wie ich denke das es jetzt in der Schleife fest ist wie echt. – Jason