你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
作者 | Dan 羅傑瑞 |
難度 | ★★☆☆☆ |
所需時間 | 1.5 小時 |
製作一個自動環境監控系統可以說是打造智能屋系統的第一步。不論是對DIY愛好者或是IoT工程師而言,這是一個簡單且有用的專題作品。在這個專題中,會協助你熟悉基礎樹莓派系統、硬體及其周邊工具。本專題目的是使用Raspberry Pi 3B+、溫濕度感測器及一些周邊元件,製作一個環境溫濕度監控裝置。所需要的材料及其購買網址如下:
- Raspberry Pi 3B+
- 16GB或32GB 的micro SD卡
- 溫濕度感測器BME280
- 5V3A USB 變壓器
- 7 吋 Raspberry Pi 螢幕
- SD卡讀卡機(非必要)
製作步驟:
STEP1: 安裝Raspberry Pi作業系統
如果你還沒有安裝Raspberry Pi的作業系統,建議你先按照以下步驟安裝Raspbian作業系統。如果你已經安裝Raspbian作業系統,請跳過此步驟。
1.1 從官網上下載Raspbian作業系統
https://www.raspberrypi.org/downloads/raspbian/
1.2 將你的SD卡插入SD卡讀卡機,並連接上你的電腦。在電腦端下載SD卡刷新軟件,本專題中使用Rufus (https://rufus.ie/)做示範。 打開刷新軟件,選擇Raspbian 作業系統,副檔名會是.img (例如: 2019-07-10-raspbian-buster.img). 接著,點選START來刷新系統至你的空白SD卡。刷新過程需5-10分鐘。
1.3 完成後,把SD卡插入Raspberry Pi的SD卡插槽中。並將7吋螢幕與Raspberry Pi如下圖所示連接起來,對接兩邊的5V跟GND。這樣一來,當你將Raspberry Pi通電時,螢幕會同時亮起,不用分開供電。
1.4 將Raspberry Pi接上變壓器並供電。
1.5 螢幕亮起後,按照螢幕上的指示逐步完成Raspberry Pi的初始化設定。
STEP2: 硬體製作
2.1 在這個步驟中,我們要連接並測試溫濕度感測器BME280。首先,按照下圖中的腳位對應表格連接BME280與Raspberry Pi。
提醒1:購買BME280感測器時,有些沒有事先焊接pin腳,如果有這樣的情況發生,請另外購買2.54mm male pitch header做焊接。
提醒2: 不同的BME280 模塊可能對同樣的pin腳有不同稱呼,SCL有時被稱為SCK,SDA稱作 SDI。也有SD0 被稱為CS的情況。
2.2 在Raspberry Pi中啟用I2C接口。打開Raspberry Pi上的終端機並輸入以下指令
sudo raspi-config
輸入以上指令後,會顯示一個選擇窗口。 按以下順序選擇選項: Interfacing options → I2C → Yes
這樣做之後,返回到初始屏幕,然後按Finish。
2.3 現在,該測試BME280感測器是否正確連接了。 在同一終端窗口中輸入以下指令
sudo i2cdetect -y 1
如果成功,你應該能夠看到以下輸出:
我們輸入的指令會顯示所有連接到Raspberry Pi的I2C設備。 在這種情況下,我們可以看到一個十六進制地址為76或0x76的設備。 這是BME280的唯一I2C ID。 I2C是一個非常方便的接口,可以通過調用其唯一的I2C地址來同時連接多個傳感器。 如果看不到以下輸出,請重新檢查連接線。
STEP3: 安裝函式庫並下載程式
3.1 在開始於Raspberry Pi上撰寫程式之前,我們需要下載並安裝一些函式庫。 在此專題中,我們要使用PyQT5(Python的GUI函式庫)。 使用Raspberry Pi的終端,輸入以下指令
sudo apt-get install python3-pyqt5
3.2 接著,輸入以下指令安裝BME280 跟 SMBUS 函式庫
pip3 install RPi.bme280
pip3 install smbus2
3.3 從我們的資源庫中下載程式
git clone https://github.com/danrustia11/CaveduRS
STEP4: 執行程式
4.1 使用以下幾行指令來運行上一步下載的程式
cd /home/pi/CaveduRS/RaspberryPi/SmartTH
python3 smart_th_gui.py
如果沒有問題,您應該可以在屏幕上看到如下圖的GUI。
注意:如果要研究程式,只需打開文件smart_th_gui.py,然後查看註釋的解說。
GUI顯示五個資訊:時間、日期、溫度、濕度和酷熱指數。 最特殊的是酷熱指數,它是從溫度和濕度計算後得出的值,代表我們的身體對溫度跟濕度的實際感覺。 由於有時天氣太潮濕或太乾都會造成不適,因此這是一種測量房間狀況是否舒適的更準確的方法。
STEP5: 自動運行程式
由於你現在可以運行該程式,因此剩下的就是在讓Raspberry Pi開機時能自動運行該程式。
5.1 請創建一個名為run_th_gui.sh的新文件。 該文件是Linux腳本文件,用於通過終端運行多個命令。
然後,通過右鍵單擊圖標並單擊文本編輯器來編輯run_th_gui.sh文件。 打開後,輸入以下內容
cd /home/pi/CaveduRS/RaspberryPi/SmartTH
python3 smart_th_gui.py
5.2 接下來,通過打開終端並輸入以下命令來使腳本文件可執行:
sudo chmod u+x *.sh
這將使所有副檔名為.sh的文件成為可執行文件
5.3 最後,設定啟動後Raspberry Pi將運行哪個腳本文件。 我們可以通過編輯Raspberry Pi的自動啟動文件來實現。 輸入以下指令
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
在文件的最後一行加上
@lxterminal -e ./run_th_gui.sh
正常運作的情況下,你應該會看到如下圖的顯示畫面
警告: 要確保不要更動到既有的內容,否則可能會影響Raspberry Pi的啟動順序。
加上最後一行後,按順序操作鍵盤:CTRL+O → ENTER → CTRL+X
1.4 最後在終端機中輸入以下指令重啟Raspberry Pi
sudo reboot
STEP6: 大功告成
重新啟動後,Raspberry Pi應該會自動運行該程序,您將看到我們前一段時間看到的GUI顯示。 如果沒有問題,那麼恭喜你完成構建DIY智能居家系統的第一步。 你可以將完成的作品放在桌子上,或者甚至可以將其懸掛在房間周圍,以顯示房間內的溫度,濕度和熱量指數。
评论