這篇文章來(lái)源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。在Crystal Signal Pi系列第3部分,我們終于要制作工具了!今天,我們將嘗試使用Crystal Signal Pi和溫度傳感器(DS18B20)來(lái)根據(jù)溫度變化生成警報(bào)。
原文最初由deviceplus.jp發(fā)布,本文為英譯版。
在本文中,我們將使用與上次相同的Raspberry Pi設(shè)置(主板:Raspberry Pi 3/操作系統(tǒng):Raspbian Jessie Lite)。
當(dāng)您已經(jīng)可以從瀏覽器訪問(wèn)Raspberry Pi IP地址的時(shí)候,我們就可以開始了。(本文使用的IP地址是“192.168.0.9.”)。
自定義之前(安裝samba 和 bc)
安裝samba包可以使過(guò)程變得更加簡(jiǎn)單,因?yàn)槟梢灾苯訌耐獠繉?duì)文件進(jìn)行編輯。
在編輯nano時(shí),打開smb.com,并添加以下行。
/etc/samba/smb.conf
每個(gè)文件夾中的內(nèi)容應(yīng)如圖所示。
接下來(lái),讓我們嘗試對(duì)這些文件的訪問(wèn)權(quán)限進(jìn)行編輯。由于您也可以編輯現(xiàn)有文件,所以顯示內(nèi)容如下圖所示(*當(dāng)不需要編輯時(shí),將訪問(wèn)權(quán)限修改至適用的個(gè)人)
在GitHub頁(yè)面中,將顯示如下警告。我們需要注意盡量不要將腳本文件命名為相同的名稱。
警告:作為示例的腳本將在中間件更新時(shí)被覆蓋。如果您想自定義該腳本,請(qǐng)復(fù)制文件并以不同的名稱命名。不要直接進(jìn)行編輯。
這次我們將使用shell腳本,并編寫新的源代碼,其中會(huì)使用“bc”命令進(jìn)行涉及小數(shù)的計(jì)算,因此如果需要,請(qǐng)先安裝bc包。
準(zhǔn)備溫度傳感器
我們先在適當(dāng)?shù)臈l件下對(duì)溫度傳感器進(jìn)行設(shè)置。
Crystal Signal Pi使用了12個(gè)引腳與Raspberry Pi進(jìn)行連接,因此我們按照?qǐng)D3所示方式進(jìn)行接線。本次我們將GPIO23用于信號(hào)線連接。
然后添加以下行,末尾的數(shù)字來(lái)自于GPIO(本示例為23)。
重啟后,1-Wire將被激活,并在“/sys/bus/w1devices”目錄中生成一個(gè)文件。
圖4是我們剛剛在“samba”上設(shè)置的“root”目錄。為了獲取溫度值,我們將使用圖4中顯示的文件名。在本次示例中,文件名為“28-0000006470bec”。
然后我們將會(huì)得到用于測(cè)量溫度的指令,如下所示。
第二行末尾的“t=”表示溫度值的1000倍。在圖5中,該數(shù)字所表示的溫度為26.812攝氏度。
創(chuàng)建一個(gè)程序
接下來(lái),我們參考“scripts(腳本)”目錄下的中間件腳本來(lái)創(chuàng)建一些程序!我們將要?jiǎng)?chuàng)建一個(gè)在以下條件下可發(fā)出兩種類型警報(bào)的程序。
- 溫度超過(guò) 27℃ → 閃爍紅燈
- 當(dāng)溫度低于 20℃ → 閃爍藍(lán)燈
/var/lib/crystal-signal/scripts/temperature.sh
因?yàn)樵跍囟冗m中(本示例中約為20-27℃)的情況下很難判斷是否有問(wèn)題發(fā)生,所以我們使用“非同步閃爍”模式,平穩(wěn)閃爍時(shí)表示一切正常。
在“Settings(設(shè)置)”屏幕上,我將會(huì)對(duì)Crystal Signal Pi的按鈕操作進(jìn)行設(shè)置。
對(duì)于“熄滅”的常規(guī)按鈕操作,我們會(huì)將其設(shè)置為“temperature.sh”,同時(shí),將“Ack.sh”用于“點(diǎn)亮”的常規(guī)按鈕操作(刪除警報(bào)操作)。
另外,為了停止警報(bào)的同時(shí)重新啟動(dòng),我將“點(diǎn)亮”的長(zhǎng)按按鈕操作設(shè)置為“temperature.sh”。
- 按下按鈕,啟動(dòng)temperature.sh(非同步閃爍)
- 當(dāng)溫度低于20℃時(shí)→閃爍藍(lán)光
- 按下按鈕,停止警報(bào)(Ack.sh)
- 按下按鈕,啟動(dòng)temperature.sh(非同步閃爍)
- 當(dāng)溫度高于27℃時(shí)→閃爍紅光
- 按下按鈕,停止警報(bào)(Ack.sh)
這就是視頻中所播放的基本流程。通過(guò)一個(gè)低溫絕緣體和我們的手指可以實(shí)現(xiàn)冷熱環(huán)境之間的切換,從而對(duì)溫度傳感器進(jìn)行測(cè)試。這種方法可以測(cè)試出設(shè)備對(duì)溫度變化響應(yīng)的靈敏度。
“日志”屏幕變成了如下圖所示的樣子。
每當(dāng)溫度低于20℃和高于27℃發(fā)生警報(bào)時(shí),這些警報(bào)信息都會(huì)顯示在“Info”以一欄中,同時(shí)記錄溫度信息。
總結(jié)
現(xiàn)在,我們就可以使用溫度傳感器和Crystal Signal Pi來(lái)制作工具了!只需要在中間件中選擇一個(gè)腳本,我們就能以一種相對(duì)容易的方式創(chuàng)建按鈕功能。雖然這部分包含了一些電子領(lǐng)域的工作,會(huì)有一定困難,但我還是強(qiáng)烈推薦Raspberry Pi的初學(xué)者來(lái)嘗試完成本項(xiàng)目!
不過(guò)看著這酷炫的燈光,也無(wú)需我再多說(shuō)什么了吧!
DevicePlus 編輯團(tuán)隊(duì)
審核編輯黃宇
評(píng)論