一、问题和解决方法

问题:

在网上关于DS18B20温度传感器的教程有很多,但大部分都是基于老版本内核的例子。在入手树莓派2代后,加上DS18B20,按照他们的方法就是找不到对应的28-****文件,在经过几天研究实验,以及查阅相关资料后。发现官方给出的说法是:升级新内核之后,防止gpio冲突,使用了新的dt策略。然后问题就来了。

解决方法:

在/boot/config.txt配置文件的最后添加如下内容: dtoverlay=w1-gpio-pullup,gpiopin=4

然后按照正常的流程就可以看到那个期待已久的28-****文件了

二、实验操作


1、材料:

树莓派开发板(我的是2代RS版本),DS18B20传感器(我的是论坛淘宝店,板载已添加上拉电阻的那个),杜邦线若干,足额5V电源,内存卡,扩展板(可选),面包板(可选),排线(可选)

2、接线:

VCC 接  3.3V 的gpio接口

GND 接  GND 的gpio接口

DQ  接   GPIO7(#4)的gpio接口

3、然后采用VNC Viewer登陆,

4、温度操作

(1)、首先升级内核(可忽略,但如果版本较老,可能影响设备读取)

1

2

apt-get update

apt-get upgrade

(2)、确认设备是否生效

1

2

3

4

sudomodprobe w1-gpio

sudomodprobe w1-therm

cd/sys/bus/w1/devices/

ls

       显示结果:

1

2

3

pi@raspberrypi:~$ cd /sys/bus/w1/devices/

pi@raspberrypi:/sys/bus/w1/devices$ ls

28-00000494cb79 w1_bus_master1

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

(3)、查看当前温度

1

2

cd28-00000494cb79

catw1_slave

       显示结果:

1

2

70 01 4b 46 7f ff 10 10 e1 : crc=e1 YES

70 01 4b 46 7f ff 10 10 e1 t=23000

       第二行的t=23000就是当前的温度值,要换算成摄氏度,除以1000,即当前温度为23000/1000=23摄氏度。

(4)、接下来就可以编程读出该温度了:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>#define  BUFSIZE  128int main(void)
{float temp;int i, j;<span style="white-space:pre">    </span>int fd;int ret;char buf[BUFSIZE];char tempBuf[5];fd = open("/sys/bus/w1/devices/28-00000494cb79/w1_slave", O_RDONLY); //以只读方式打开ds18b20设备文件if(-1 == fd){                          //打开设备文件出错perror("open device file error");          //打印出错信息(原因)return 1;}while(1){ret = read(fd, buf, BUFSIZE);          //将设备文件中的内容读入buf中if(0 == ret){                                   //返回0表示读文件结束break;                                  //跳出循环体}if(-1 == ret){                         //读文件出错if(errno == EINTR){                    //出错是由中断引起的continue;                   //继续读文件}perror("read()");                      //打印出错信息(原因)close(fd);                       //关闭文件return 1;}}for(i=0;i<sizeof(buf);i++){if(buf[i] == 't'){                       //如果读到‘t’,说明后面马上出现温度值for(j=0;j<sizeof(tempBuf);j++){tempBuf[j] = buf[i+2+j];    //将温度值以字符串的形式写入tempBuf中}}  }temp = (float)atoi(tempBuf) / 1000;        //将字符串转换为浮点型温度数据printf("%.3f C\n",temp);              //打印出温度值close(fd);                 //关闭文件return 0;
}

5、然后就可以上传到yeelink上,或者做个微信公众平台,控制获取温度。


—— 2018-08-05 ——

【树莓派】关于树莓派2代,更新最新内核后,DS18B20温度传感器无法找到对应文件的问题的解决相关推荐

  1. 更新Ubuntu内核到最新版本

    想起自己多年前玩Linux的时候知道了两个命令: sudo apt-get update sudo apt-get upgrade 以为是能够更新所有软件的,后来发现.系统还是不能够更新的. 那么,系 ...

  2. 香蕉派M1,R1最新内核,通用版本正式发布,欢迎下载测试

    2019独角兽企业重金招聘Python工程师标准>>> 香蕉派M1,R1最新内核,通用版本正式发布,欢迎下载测试 发布日期:2015-2-8 19:21:47 经过开发者的无私贡献与 ...

  3. OpenCV加mySQL树莓派_树莓派3B/3B+和4B安装OpenCV教程 (详细教程)

    安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: 1 $ ...

  4. 树莓派4做服务器哪个系统好,【树莓派】树莓派4无痛安装系统(NOOBS篇)

    前言 此篇文章面向对象:刚刚接触树莓派的小白,推荐的新手系统,简单易懂,一看就会,10分钟内搞定,快速爽上流,让刚拿到树莓派的你快速开启你的学习(受苦 )之旅shell 1.准备工做 树莓派3(略有磨 ...

  5. 【树莓派】树莓派3B+搭建Ubuntu

    相关硬件 树莓派3 B+ 内存卡 Sandisk 32GB 高清HDMI线一条 树莓派电源线一条(5V3A) 读卡器一个 usb键鼠 支持HDMI的显示器 准备SD卡 清空SD卡后,如果当前系统是 L ...

  6. 【树莓派】树莓派开放WiFi热点

    树莓派4B上创建WiFi热点(真实可用) 第一步: 给树梅派4B刷写系统,我用的是目前最新的官方系统,镜像名称为2021-01-11-raspios-buster-armhf.img.第一次进系统时请 ...

  7. 树莓派 文件服务器,树莓派安装配置NFS文件存储服务器

    前言 树莓派有一个非常好的优点就是功耗特别低,大概只有3W的样子.因此如果在树莓派上搭建一个NFS家庭文件服务器是非常理想的设备,因为树莓派功耗底所以没有风扇等机械结构自然也就没有噪音等困扰,可以说是 ...

  8. 【树莓派】树莓派4无痛安装系统(NOOBS篇)

    [树莓派]树莓派3Pi4无痛安装系统(新手NOOBS篇) 前言 一.准备工作 桌面端软件 二.系统下载 TF卡准备工作 四.树莓派部分 五.VNC & SSH(远程桌面) SSH 简单测试SS ...

  9. gpio引脚介绍 树莓派3b_树莓派3bgpio引脚介绍

    第4章 GPIO接口 本章内容: ? GPIO接口时通用输入输出端口,通俗的说,就是 一些引脚,可以通过它们输出高低电平或者通过 它们读入引脚状态--是高电平还是低电平.... 更强的"盒子 ...

最新文章

  1. 《Java程序设计》第十一周学习总结
  2. 维修技嘉B250M-DS3H不开机一例
  3. python网络爬虫抓取图片
  4. JSP JAVA 自定义 错误页面(404,505,500)
  5. Web.config的配置
  6. 浏览器加载js的阻塞与非阻塞
  7. 【2015.9.1】微信开放平台
  8. 中国近红外成像行业市场供需与战略研究报告
  9. 单片机之步进电机速度控制篇(三)
  10. 不定积分24个基本公式整理
  11. PAT-ADVANCED1013——Battle Over Cities
  12. AutoJs学习-传感器图像
  13. [云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤
  14. xman_2019_format(非栈上格式化字符串仅一次利用的爆破)
  15. HBuilder的常用快捷键
  16. 大学python挂科补考_大学挂科后补考不过怎么样一种体验?
  17. Python:利用matplotlib库绘制统计图(饼图、直方图、散点图、极坐标图和网格图)
  18. UDP通信,看我如何一步一步攻克面试官
  19. H5性能测试入门及优化建议
  20. SQLmap在进行SQL注入时的整个流程

热门文章

  1. 又一所985大学改考408!中国海洋大学计算机专硕
  2. 数据指标拆解(一)社区团购--美团优选
  3. R语言 无法打开文件: No such file or directory
  4. xilinx基础篇Ⅰ(3)ISE14.7下载FPGA
  5. VVC码率控制中的质量依赖因子QDF
  6. 前HP大中华区总裁孙振耀退休感言
  7. 做自媒体必备,16个高质量素材网站
  8. 【工具篇】最好用在线免费caj转PDF教程 caj2pdf在线
  9. 元素和小于等于阈值的正方形的最大边长(来源:力扣(LeetCode))
  10. 【 CF1186D,E,F】Vus the Cossack and Numbers/Vus the Cossack and a Field/Vus the Cossack and a Graph