嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

用Raspberry Pi打造智能居家監控系統(繁體)

作者 Dan 羅傑瑞
難度 ★★☆☆☆
所需時間 1.5 小時

 

製作一個自動環境監控系統可以說是打造智能屋系統的第一步。不論是對DIY愛好者或是IoT工程師而言,這是一個簡單且有用的專題作品。在這個專題中,會協助你熟悉基礎樹莓派系統、硬體及其周邊工具。本專題目的是使用Raspberry Pi 3B+、溫濕度感測器及一些周邊元件,製作一個環境溫濕度監控裝置。所需要的材料及其購買網址如下:

  1. Raspberry Pi 3B+ 
  2. 16GB或32GB 的micro SD卡
  3. 溫濕度感測器BME280 
  4. 5V3A USB 變壓器
  5. 7 吋 Raspberry Pi 螢幕 
  6. SD卡讀卡機(非必要)

0118_06212479cb9bed5e24676826ae110fca92e20303.png

製作步驟:

STEP1: 安裝Raspberry Pi作業系統

如果你還沒有安裝Raspberry Pi的作業系統,建議你先按照以下步驟安裝Raspbian作業系統。如果你已經安裝Raspbian作業系統,請跳過此步驟。

1.1 從官網上下載Raspbian作業系統
https://www.raspberrypi.org/downloads/raspbian/

0214_06d1ea55554902b8adc8ebe951d7e53d694a073e.png

1.2 將你的SD卡插入SD卡讀卡機,並連接上你的電腦。在電腦端下載SD卡刷新軟件,本專題中使用Rufus (https://rufus.ie/)做示範。 打開刷新軟件,選擇Raspbian 作業系統,副檔名會是.img (例如: 2019-07-10-raspbian-buster.img). 接著,點選START來刷新系統至你的空白SD卡。刷新過程需5-10分鐘。

0316_8711e912a86244a4165f28c8e09dd46b91262998.png0415_143f13bda9449de55fb0c8aef2e1484d1f97657d.png

1.3 完成後,把SD卡插入Raspberry Pi的SD卡插槽中。並將7吋螢幕與Raspberry Pi如下圖所示連接起來,對接兩邊的5V跟GND。這樣一來,當你將Raspberry Pi通電時,螢幕會同時亮起,不用分開供電。
0511_5ab9f728d362abff39d33b4279eac40750978af9.png

1.4 將Raspberry Pi接上變壓器並供電。
065_3bb882a3556ae89e64df59dfa6344db8e75f8aa3.jpg

1.5 螢幕亮起後,按照螢幕上的指示逐步完成Raspberry Pi的初始化設定。
073_7e21609b446072f7740af3e5dfbabc903e65ad6f.jpg

STEP2: 硬體製作

2.1 在這個步驟中,我們要連接並測試溫濕度感測器BME280。首先,按照下圖中的腳位對應表格連接BME280與Raspberry Pi。
0810_87220ced1c161a362fee9a190651002c8375535f.png

提醒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

098_02a8419a93d6750490f90f8bf2367b09aa6a0c52.png

輸入以上指令後,會顯示一個選擇窗口。 按以下順序選擇選項: Interfacing options → I2C → Yes
1027_96b5524d2b726bee529b441e3bf7b24fe9a8f457.jpg

1136_1097cb72a42ba43051ecdd05793c90e708bcf410.jpg

1231_b598193d1238f2fba2b46c848dbe63902b6fe5d6.jpg

這樣做之後,返回到初始屏幕,然後按Finish。
1327_9d59467df2f2162a814487cc187aacec3e1bbeb8.jpg

2.3 現在,該測試BME280感測器是否正確連接了。 在同一終端窗口中輸入以下指令

sudo i2cdetect -y 1

如果成功,你應該能夠看到以下輸出:
1424_1e927aa5c52e473a80bfa9c0c13dbe6feb6f15d8.jpg

我們輸入的指令會顯示所有連接到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

1522_b9d47f66266cf66795a45cfa9d3b2d20f013efc0.jpg

如果沒有問題,您應該可以在屏幕上看到如下圖的GUI。
1623_48a3f78330ecadc00ec58b955a1f8bfd1607c380.jpg

注意:如果要研究程式,只需打開文件smart_th_gui.py,然後查看註釋的解說。
GUI顯示五個資訊:時間、日期、溫度、濕度和酷熱指數。 最特殊的是酷熱指數,它是從溫度和濕度計算後得出的值,代表我們的身體對溫度跟濕度的實際感覺。 由於有時天氣太潮濕或太乾都會造成不適,因此這是一種測量房間狀況是否舒適的更準確的方法。

STEP5: 自動運行程式

由於你現在可以運行該程式,因此剩下的就是在讓Raspberry Pi開機時能自動運行該程式。

5.1 請創建一個名為run_th_gui.sh的新文件。 該文件是Linux腳本文件,用於通過終端運行多個命令。
1723_c62c8454f05690167c274a04dec2c7e82489c7e8.jpg

然後,通過右鍵單擊圖標並單擊文本編輯器來編輯run_th_gui.sh文件。 打開後,輸入以下內容

cd /home/pi/CaveduRS/RaspberryPi/SmartTH
python3 smart_th_gui.py

1823_6ef7c153618fa0b3dfffb9a53914c0f6fb09af7f.jpg

5.2 接下來,通過打開終端並輸入以下命令來使腳本文件可執行:

sudo chmod u+x *.sh

1921_dcceebf6c6291282046431abfe7157f57fd5722f.jpg

這將使所有副檔名為.sh的文件成為可執行文件

5.3 最後,設定啟動後Raspberry Pi將運行哪個腳本文件。 我們可以通過編輯Raspberry Pi的自動啟動文件來實現。 輸入以下指令

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

在文件的最後一行加上

@lxterminal -e ./run_th_gui.sh

正常運作的情況下,你應該會看到如下圖的顯示畫面
2013_416e8f6245cffff2a3d019af2ae511ca87ac5f24.png

警告: 要確保不要更動到既有的內容,否則可能會影響Raspberry Pi的啟動順序。
加上最後一行後,按順序操作鍵盤:CTRL+O → ENTER → CTRL+X

1.4 最後在終端機中輸入以下指令重啟Raspberry Pi

sudo reboot 

STEP6: 大功告成

重新啟動後,Raspberry Pi應該會自動運行該程序,您將看到我們前一段時間看到的GUI顯示。 如果沒有問題,那麼恭喜你完成構建DIY智能居家系統的第一步。 你可以將完成的作品放在桌子上,或者甚至可以將其懸掛在房間周圍,以顯示房間內的溫度,濕度和熱量指數。

CAVEDU Education is devoted into robotics education and maker movement since 2008, and is intensively active in teaching fundamental knowledge and skills. We had published many books for readers in all ages, topics including Deep Learning, edge computing, App Inventor, IoT and robotics. Please check CAVEDU's website for more information: http://www.cavedu.com, http://www.appinventor.tw
DesignSpark Electrical Logolinkedin