树莓派连接DS18B20记录温度
时间:2022-08-28 22:00:01
最近尝试用DS18B20通过连接树莓派来记录温度。DS18B20是一种非常便宜、精度高的温度传感器(±0.5°C),即使使用多个传感器,也只需要占用覆盆子派的一个针脚来完成数据传输。
DS18B20温度传感器接口定义
DS18B20温度传感器
如上图所示,DS18B温度传感器有三个阵脚,
1脚Ground
2脚Data
3脚3.3v or 5v
从DS18B20的datasheet可见,我们需要在引脚2和3之间跨接4.7 k的电阻.
树莓派读取DS18B20温度传感器数据
Rasbian系统内建在GPIO 4 针脚支持单总线协议(1-wire),我们需要连接DS18B20的针脚。参照下面的电路图连接所有零件,并将其连接起来DS18B201号引脚连接到树莓派GND,并在DS18B202号和3号针脚跨接4号.7 k电阻,将DS18B203号引脚和树莓派3号.3V连接,然后将DS18B20的2号引脚连接到树莓派的GPIO 4。
在访问传感器之前,您需要尝试加载两个模块的命令:
sudo modprobe w1-gpio
sudo modprobe w1-therm
上述命令运行后,似乎什么也没发生,您可以输入以下命令查看传感器:
ls /sys/bus/w1/devices
这是在我的机器上运行后获得的输出。传感器显示在28开头的字符串,后面的数字对每个设备都不一样(这是唯一的地址),所以你看到的和我的不一样。
28-000004e53685 w1_bus_master1
使用以下命令读取传感器数据:(需要使用)XXXXXXX更换您的设备)
cat /sys/bus/w1/devices/28-xxxxxxxxxxxx/w1_slave
在输出结果中,如果第一行是YES最后,温度是可用的,温度值将显示在第二行,如下:
a6 01 4b 46 7f ff 0a 10 f6 : crc=f6 YES
a6 01 4b 46 7f ff 0a 10 f6 t=26375
在获得温度值后,我们需要将其转换为摄氏度,可以使用2637/1000=26.375c。,也就是说,读取的温度值除以1000摄氏度。到目前为止,它是通过树莓派读取的DS18B20温度传感器值成功。