目录

树莓派使能DS18B20

C程序获取DS18B20温度


树莓派使能DS18B20

sudo raspi-config 进行配置树莓派,启动1-Wire完成使能

sudo reboot  重启树莓派,使其完成配置

lsmod | grep w1命令可以查看当前系统支持的单总线协议模块

(lsmod(list modules)命令用于显示已载入系统的模块)

cd /sys/bus/w1/devices/28-xxxxxxxxx(这是设备特定序列号)

cat w1_slave 即可查看DS18B20测量的温度值


C程序获取DS18B20温度

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>int get_temperature(float *temp);int main(int argc, char **argv)
{float    temp;int      rv;rv = get_temperature(&temp);if(rv < 0){printf("get temperature failure, return value: %d", rv);return -1;}printf("temperature: %f\n", temp);
}int get_temperature(float *temp)
{int              fd = -1;char             buf[128];char            *ptr = NULL;DIR             *dirp = NULL;struct dirent   *direntp = NULL;char             w1_path[64] = "/sys/bus/w1/devices/";char             chip_sn[32];int              found = 0;dirp = opendir(w1_path);if( !dirp ){printf("open folder %s failure: %sn", w1_path, strerror(errno));return -1;}while( NULL != (direntp = readdir(dirp)) ){if( strstr(direntp->d_name, "28-")){strncpy(chip_sn, direntp->d_name, sizeof(chip_sn));found = 1;}}closedir(dirp);if( !found ){printf("Can not find ds18b20 chipset\n");return -2;}strncat(w1_path, chip_sn, sizeof(w1_path)-strlen(w1_path));strncat(w1_path, "/w1_slave", sizeof(w1_path)-strlen(w1_path));if( (fd = open(w1_path, O_RDONLY)) < 0){printf("open file failure: %s\n", strerror(errno));return -3;}memset(buf, 0, sizeof(buf));if( read(fd, buf, sizeof(buf)) < 0){printf("read data from fd = %d failure: %s\n", fd, strerror(errno));return -4;}ptr = strstr(buf, "t=");if( !ptr ){printf("Can not find t= string\n");return -5;}ptr += 2;*temp = atof(ptr)/1000;close(fd);return 0;
}

树莓派DS18B20温度传感器获取温度相关推荐

  1. 第三十五篇、基于Arduino uno,获取DS18B20温度传感器的温度值——结果导向

    0.结果 说明:先来看看串口调试助手显示的结果,第一个值是空气温度值.如果是你想要的,可以接着往下看. 1.外观 说明:虽然DS18B20温度传感器形态各异,但是原理和代码都是适用的,就是接线可能有点 ...

  2. 树莓派+DS18B20+Canal 实现 温度报警系统

    本文所使用到的所有技术与对应的版本号如下: 树莓派:Raspberry Pi 4B:温度传感器:DS18B20:Python:3.7.3:数据库:MariaDB-10.0.28:Canal(Serve ...

  3. 51单片机驱动DS18B20温度传感器测量温度

    51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...

  4. java 获取温度_Java利用RXTX串口通信工具类获取DS18B20温度传感器的温度值

    环境:Windows10,Eclipse4.5.2,JDK1.7 设备:DS18B20温度传感器(4线,485接口),USB转485接口转换器,笔记本电脑 注意点:RTU传输,使用的是字节,那么在程序 ...

  5. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享

    以下内容为本人原创 原文链接:https://blog.csdn.net/Yhen1/article/details/113760948 作者:@Yhen 发布网站:CSDN 未经本人同意禁止转载,如 ...

  6. 树莓派+DS18B20温度传感器+yeelink物联网云

    本博文参考了网络上多篇树莓派操作DS18B20的博文,经过博主亲自实践,列出了详细的步骤,通过树莓派的单总线驱动来驱动DS18B20获取温度数据,并通过python读取温度值,上传到yeelink物联 ...

  7. Tcar:智能车之ds18b20温度传感器实现温度采集模块

    1.温度采集模块    // env/ds18b20.zip 1.1 硬件 温度传感器 ' ds18b20'  一线式设备( 1-wire)  ' 独立式供电': VDD接独立的电源  ' 寄生供电' ...

  8. android 温度传感器获取温度,Android 温度传感器返回当前的温度

    1)温度传感器返回当前的温度,单位是摄氏度(°C). 2)具体代码如下 package com.example.androidapp; import android.hardware.Sensor; ...

  9. DS18B20温度传感器解读单线协议

    单总线协议意思就是一个线就可以完成数据的发送和接收.IIc通信有两根线:SCL时钟线和SDA数据线,通过两根线的完美配合完成读写操作.具体可以参考第一篇文章.SPI通信有四根线:片选线,时钟线,主机输 ...

最新文章

  1. 获取Java系统相关信息
  2. 常见面试题学习(1)
  3. 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶
  4. python3的flask出现UnicodeDecodeError UnicodeDecodeError
  5. 0基础学python要多久-零基础学Python的过程有多难?需要多久?
  6. 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI
  7. 通过IO口控制STC15F2K60S2系列单片机输出pwm
  8. 哔哩哔哩助手:bilibili综合辅助扩展Chrome插件
  9. 机器学习实战 | 综合项目-电商销量预估进阶方案
  10. 虚拟机不能清空回收站_回收站不能清空怎么办?清空回收站无反应的解决方法...
  11. html的视频字幕制作步骤,十大字幕制作软件
  12. 【计算机网络】1.计算机网络与因特网概述
  13. CEILING_2_POWER
  14. 《人无信不立》你是一个有信用的人吗?
  15. 建筑施工复习资料-立杆基础
  16. mysql 1亿条数据建索引时间_单表 13 亿记录创建索引需要多长时间?
  17. 前Worldpay美国高管加入BitPay成为其新首席财务官
  18. Google Earth Engine(GEE)——将影像中的云层显示出来并添加到影像波段中(Landsat8 oil)
  19. 学好UG编程之后,为什么要学习自己制作UG后处理?
  20. 微信小程序的制作方法步骤和流程

热门文章

  1. Git Cheat Sheet——Git的常用命令和最佳做法
  2. 对地理信息标准化的思考
  3. 做影视后期需要学习哪些行业软件?
  4. 如何利用 Essentials for Python 轻松管理 CaDS 资源存储库
  5. PDF文件打开密码忘记了
  6. python 安装教程
  7. java swing mysql项目_java swing mysql 实现的家庭收支管理系统项目源码
  8. Java使用hotmail的SMTP服务器转发邮件出错
  9. 什么是数据恢复?数据丢失的最常见原因有哪些?
  10. [leetcode] 64 : 二进制求和