你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
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
1.3 最后,设定启动后Raspberry Pi将运行哪个脚本文件。 我们可以通过编辑Raspberry Pi的自动启动文件来实现。 输入以下指令
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
在文件的最后一行加上
@lxterminal -e ./run_th_gui.sh
正常运作的情况下,你应该会看到如下图的显示画面
5.4 最后在终端机中输入以下指令重启Raspberry Pi
sudo reboot
STEP6: 大功告成
重新启动后,Raspberry Pi应该会自动运行该程序,您将看到我们前一段时间看到的GUI显示。 如果没有问题,那么恭喜你完成构建DIY智能居家系统的第一步。 你可以将完成的作品放在桌子上,或者甚至可以将其悬挂在房间周围,以显示房间内的温度,湿度和酷热指数。