很多人对智能家居感兴趣,觉得很高端。其实一块树莓派配几个传感器,就能做出简单有用的东西。我带你动手做一个,控制家里的小灯,或者监控温度。
先准备东西。你需要一块树莓派,型号随意,3B+或者4B都行。一个继电器模块,这个可以控制220V的灯,安全第一,买5V的。一个DHT11温湿度传感器,便宜好用。还有杜邦线,母对母的那种。另外买个小面包板,方便接线。这些东西加起来不到一百块。
接线不难。把树莓派关机断电,别带电操作。继电器模块的VCC接树莓派的5V引脚,GND接GND,信号脚接GPIO17。DHT11传感器VCC接3.3V,GND接GND,信号脚接GPIO4。面包板把正负极连好。你第一次接线可能会害怕,我刚开始也是。别怕,接错不会烧,最多不工作,重新接就行。
写代码要装个库。打开树莓派终端,输入sudo pip3 install RPi.GPIO Adafruit_DHT。等它装好。然后新建一个文件,叫smart_light.py。
用nano编辑器打开。输入下面代码。注意缩进要对齐。
import RPi.GPIO as GPIO import Adafruit_DHT
import time
GPIO.setmode(GPIO.BCM)
relay_pin = 17
dht_pin = 4
GPIO.setup(relay_pin, GPIO.OUT)
GPIO.output(relay_pin, GPIO.HIGH)
while True:
humidity, temperature = Adafruit_DHT.read_retry(11, dht_pin)
if temperature is not None:
print(f温度:{temperature:.1f}C, 湿度:{humidity:.1f}%)
if temperature > 30:
GPIO.output(relay_pin, GPIO.LOW)
print(太热了,开灯散热)
else:
GPIO.output(relay_pin, GPIO.HIGH)
print(温度合适,关灯)
else:
print(读取失败)
time.sleep(2)
保存退出后,用sudo python3 smart_light.py运行。你会看到终端不断打印温度和湿度。超过30度时,继电器会咔哒一声响,灯就亮了。低于30度,灯自动关掉。
这里有个关键点:继电器模块是低电平触发。所以我们判断温度高时输出LOW,灯才亮。新手最容意搞反。
你可能会问,这有什么用?把灯泡换成小风扇,夏天自动开。换成加湿器,湿度低时自动喷水。这就组成了智能环境监控系统。成本就几十块钱,比买成品便宜太多。成就感也完全不同。
调试时如果灯不亮,先检查接线脚位对不对。再看代码里引脚号是否一致。还不行就测一下继电器输入电压。这些排查方法比网上搜半天管用。
有人觉得学树莓派要懂电路,要会Linux。其实不用。你把代码复制进去,照着教程接好线,就能跑起来。稍微改改温度阈值,就能变成自己的作品。把你的代码改一改,比如把温度改到25度,或者加上湿度控制。每个改动都会让你更有底气。
你做完这个,就等于拿到了物联网的入门钥匙。后续可以加个WiFi模块,把数据传到手机上。甚至做个网页开关。思路打开了,智能家居就不再是玄学。
朋友,迈出第一步就行。我当初也是被这个简单项目点燃了兴趣。现在家里几个传感器都运行一年多了。动手试试,你会发现很多东西没那么难。