Qt加树莓派读取ds18b20温度传感器的值
来源:互联网 发布:c面向对象编程 编辑:程序博客网 时间:2024/06/06 16:26
一:DS18B20文件读取参考资料
二:DS18B20编程思路
在linux下一切皆文件,DS18B20当然也不例外,所以在树莓派上编写ds18b20只需想办法读出ds18b20所对应的文件就可以了。
1,每个ds18b20所对应的文件名都不一样,想要读取文件内容,首先需确定文件名。
解决方案:在Qt下,进入DS18b20所在文件父目录,遍历整个文件名,找到ds18b20对应的文件,在进入子目录,打开对应的文件,读取对应的数据。
三:所用到的主要函数
1, 得到对应目录下的所有文件列表
//设置ds18b20的文件所在位置
QDir tempPath("/sys/bus/w1/devices/");
//得到所有的文件列表
QStringList fileList=tempPath.entryList();
2,根据字符定位在字符串中的函数
QString str="123";
str.indexOf('2'); 返回值为1
3,字符内容截取函数
QString str="123";
QString s=str.mid(1,1);
截取内容为:s=2;
4,判断字符串中是否包含某个字符串
QString str="asdf";
str.contains("a"); //返回结果为真
三:程序源码
temperatureMeasurement()
{
//加载单总线DS18b20所需的模块
system("sudo modprobe w1-gpio");
system("sudo modprobe w1-therm");
QString tempFile="/sys/bus/w1/devices/"; //ds18b20文件路径
QString tempData; //读出的ds18b20的温度
//设置ds18b20的文件所在位置
QDir tempPath("/sys/bus/w1/devices/");
//得到所有的文件列表
QStringList fileList=tempPath.entryList();
//遍历所有文件,找到关于ds18b20的文件
int i=0;
while(i<fileList.size())
{
if(fileList.at(i).contains("28-"))
{
tempFile.append(fileList.at(i)); //已经找到了文件
break;
}
i++;
}
//打开ds18b20d的温度存储文件
tempFile.append("/w1_slave");
QFile file(tempFile);
if(!file.open(QIODevice::ReadOnly|QFile::Text))
{
QMessageBox::information(this,tr("温度测量"),tr("请检测温度传感器是否有问题!"));
return;
}
QTextStream in(&file);
//根据存储的文件找到需要的数据
QString str=in.readAll(); //读出所有内容
tempData=str.mid(str.indexOf('t')+2,3); //定位数据的位置,找到所需要的数据,精度可以达到小数点后三位,本程序只 需一位
file.close();
}
注意:驱动程序写死了单总线引脚的定义,需要修改的话,只能修改内核代码
- Qt加树莓派读取ds18b20温度传感器的值
- 读取温度传感器DS18B20的实例
- 温度传感器--DS18B20的使用
- DS18b20温度传感器的使用
- S3C6410 DS18B20温度传感器驱动(四) --- 读取温度的应用程序
- ds18b20温度传感器
- DS18B20温度传感器
- ds18b20温度传感器
- 温度传感器 DS18B20
- 基于ARM-LINUX的温度传感器驱动-DS18B20
- 基于Linux的温度传感器DS18B20驱动程序设计
- 智能温度传感器DS18B20的原理与应用
- 基于FPGA的ds18b20温度传感器设计程序
- S3C2440 温度传感器ds18b20的焊接测试
- STC15系列读取DS18B20温度传感器串口显示代码
- DS18B20数字温度传感器介绍
- linux ds18b20 温度传感器驱动
- DS18B20温度传感器示例
- 前端优化点
- 第十五周项目一(2)——验证算法之快速排序
- LInux-003 Ubuntu16.04设置root用户可登录图形界面、关闭来宾账户。
- PaaS会成为云计算领域最后一块“黄金宝地”吗?
- python基础学习(三)
- Qt加树莓派读取ds18b20温度传感器的值
- 集合框架练习
- ORM/EF 几种模式
- Lunix基础指令
- Windows安装配置Nexus3.6与Maven3.3.9配置
- Django上传图片到七牛云
- Hello World
- 第15周 数据结构例程——插入排序之直接插入排序
- 第十周 项目 1