因为项目需要,要在上位机界面实时显示室内温度,上位机采用QT5.5编写,采用DS18B20采集数据,显示在控件lcdNumber上。DS18B20是一个比较常用的温度传感器,采用单总线控制,在linux中,一切都是文件,所以数据采集也是文件的读取。
一、修改配置文件
在/boot/config.txt文件后面添加下面这一句
sudo vi /boot/config.txt
dtoverlay=w1-gpio
这一句就是树莓派添加Device Tree设备,dtoverlay=w1-gpio表示添加单总线设备,也可以写成dtoverlay=w1-gpio,gpioin=4默认管脚为BCM编号4,如果DS18B20接到其他管脚则需要修改这个值,在微雪电子的树莓派扩展板上Pioneer 600扩展板DS18B20默认接到4,故不用修改。
二、查看模块是否启动
重启树莓派使设置生效,运行lsmod命令,如果发现红色方框的两个模块说明模块已启动。
如果没有发现,也可以运行如下命令加载模块
sudo modprobe w1_gpio
sudo modprobe w1_therm
三、 读取温度
如果没有问题,在/sys/bus/w1/devices中发现一个28-XXXX开头的文件夹,这个就是DS18B20的ROM,每个DS18B20都一样,连接多个18B20就会有多个这样的文件,在这个文件夹中再读取w1_slave文