簡體   English   中英

Raspberry Pi Sense帽子

[英]Raspberry Pi Sense Hat

嘗試使用帶有raspberry pi的感應帽來監視房間中的溫度並將數據流傳輸到plot.ly。 我一切都很好。 下一步是將Picamera添加到項目中,以便當溫度達到特定點時,相機將打開並每5分鍾開始記錄圖片,同時仍將數據流傳輸到plot.ly。 我單獨創建了這些腳本,然后將它們從bash腳本運行到后台,但是問題是數據變得“混亂”並給出了錯誤的溫度。 我在看子進程,但是它停止了其中一個腳本的運行。 如何同時運行兩者,並且彼此之間不會相互影響,所以我將實時傳輸數據,並且如果滿足條件,照相機將為您拍照。

這是我的數據流代碼:

##### 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腳本:

##### 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)

我認為您要避免兩個程序同時訪問SenseHAT。 通過共享內存,信號量和事物,有許多復雜的方法可以做到這一點。

但是,一種非常簡單的方法是保持溫度監視腳本不變,但是在讀取溫度時,如果溫度高於45.2,則創建一個名為“ / HOT”的空文件,如果溫度低於該溫度,則刪除該文件。 “/熱”。

然后,在攝像機腳本中,運行一個循環,檢查文件“ / HOT”是否存在,並相應地啟動/停止攝像機。

這樣,只有一個進程將在讀取SenseHAT。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM