入手树莓派已有一段时间,做了一个基于采集串口设备的web应用后因为工作太忙没时间折腾,趁着这两天闲暇把手头几个模块测试了一遍。
- DHT11温湿度模块
- HC-SR04超声波模块
- 光敏电阻模块
- PCF8591模块

图片来至 树莓派实验室
DHT11温湿度模块接线及代码
vcc 接 BOARD 2
gnd 接 BOARD 6
data 接 BOARD 12
在GitHub上找到 pi-dht11 ,作者对读取DHT11做了封装,设置 BOARD 编码即可实现读取DHT11的湿度。
获取代码:
1 | git clone https://github.com/LeStarch/pi-dht11.git |
修改test-sensor.py代码:
1 | #!/usr/bin/env python3 |
执行:
1 | ./test-sensor.py |
报错:1
NameError: name 'sys' is not defined
查看源码,貌似作者忘了导入sys库,在dht11.py首行加入
1 | import sys |
因为对 python2 比较熟悉,fork了一份改成 python2 版本,传送门
HC-SR04超声波模块接线及代码
vcc 接 BOARD 2
gnd 接 BOARD 6
data 接 BOARD 12
光敏电阻模块接线及代码
vcc 接 BOARD 2
gnd 接 BOARD 6
data 接 BOARD 16
测试代码如下:
1 | import RPi.GPIO as gpio |
光敏电阻模块同时提供了 DO 和 AO 两种输出方式,在 这里 提供了以 AO 方式的操作方法。
PCF8591模块接线及代码
PCF8591实现了AD/DA转换,但是需要树莓派开启I2C功能,关于I2C功能的开启,参考 Enabling The I2C Interface On The Raspberry Pi。由于手头没有更多模块,将就拿光敏电阻模块的 AO 作为信号源。
vcc 接 BOARD 2
gnd 接 BOARD 6
SCL 接 BOARD 5
SDA 接 BOARD 3
AINO 接 光敏电阻模块的 AO
参考 树莓派学习笔记——I2C Tools 学习笔记 测试I2C:
1 | i2cdetect -l |
由于对I2C一窍不通,又涉及到电子部分,只好硬着头皮google。找到GitHub上的一个项目:pcf8591,该项目使用python的smbus库获取 PCF8591 4路 AO 的值并通过 Tkinter 框架实现数值显示。根据该项目,编写测试代码如下:
1 | import smbus |
对于树莓派并不需要界面部分,因此fork一份并做了修改,传送门