树莓派开发界面显示温度_树莓派4B+ubuntu20.04读取ds18b20温度传感器数据

a437da3e6edb113f53187244fa34916c.png

测试环境

树莓派4B 8G + Ubuntu20.04 64位

1. 断电取下内存卡插入到win10电脑上,修改内存卡下的usercfg.txt文件

5c1da0f1a6058e95d6380aa0fc61c3b6.png

2. 在usercfg.txt下添加如下内容:

#ds18b20dtoverlay=w1-gpio-pullup,gpiopin=4

修改如下图所示:

36b93e87449c21c0f914533452b49b63.png

3. 接线

将传感器DQ引脚接GPIO.7引脚上、VCC接3.3V、GND接GND

f95e5f08c2e7b7554603501a53e880b9.png

d7c665a3caebeec67e791f98269601be.png

4. 连接树莓派

①挂载设备驱动

sudo modprobe w1-gpiosudo modprobe w1-therm

② 确认设备是否生效

cd /sys/bus/w1/devices/
ls

ff27f1aa1768c38c3db90ed706ed0b81.png

28-011939632f5b就是外接的温度传感器设备,但并不是每个客户端都显示一样的,这个是传感器的序列号。

④编写c代码读取传感器数据

#include #include #include #include #include #include #include #include int Open_send(char *base){//打开发送数据    int fd, size;    char buffer[1024];    fd = open(base,O_RDONLY);    lseek(fd,69,SEEK_SET);    size = read(fd,buffer,sizeof(buffer));    close(fd);    printf("temp ℃ = %f\n",(float)atoi(buffer)/1000.0);    return 0;}int readFileList(char *basePath){//文件查找    DIR *dir;    struct dirent *ptr;    char base[1024];    if ((dir=opendir(basePath)) == NULL){        perror("Open dir error...");        exit(1);    }    while ((ptr=readdir(dir)) != NULL)    {        if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0){//current dir OR parrent dir            continue;        } else if(ptr->d_type == 10){            memset(base,'\0',sizeof(base));            sprintf(base,"%s",ptr->d_name);            if((strcmp("27",base)<0)&&(strcmp("29",base)>0)){                sprintf(base,"%s/%s/w1_slave",basePath,ptr->d_name);                //printf("%s\n",base);                while(1)                Open_send(base);            }        }    }    closedir(dir);    return 1;}int main(void){    DIR *dir;    char basePath[1024];    memset(basePath,'\0',sizeof(basePath));    strcpy(basePath,"/sys/bus/w1/devices");    readFileList(basePath);    return 0;}

⑤编译后运行

gcc -o ds18b20 ds18b20.c./ds18b20 

8ec809f090114d7ba4de2d40fec08c37.png

—— END ——

c90a5462bf57b4f86332e2625fb53ffb.png

关注微信公众号:物联网智能传感器

了解更多知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值