树莓派DS18B20温度传感器获取温度
目录
树莓派使能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温度传感器获取温度相关推荐
- 第三十五篇、基于Arduino uno,获取DS18B20温度传感器的温度值——结果导向
0.结果 说明:先来看看串口调试助手显示的结果,第一个值是空气温度值.如果是你想要的,可以接着往下看. 1.外观 说明:虽然DS18B20温度传感器形态各异,但是原理和代码都是适用的,就是接线可能有点 ...
- 树莓派+DS18B20+Canal 实现 温度报警系统
本文所使用到的所有技术与对应的版本号如下: 树莓派:Raspberry Pi 4B:温度传感器:DS18B20:Python:3.7.3:数据库:MariaDB-10.0.28:Canal(Serve ...
- 51单片机驱动DS18B20温度传感器测量温度
51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...
- java 获取温度_Java利用RXTX串口通信工具类获取DS18B20温度传感器的温度值
环境:Windows10,Eclipse4.5.2,JDK1.7 设备:DS18B20温度传感器(4线,485接口),USB转485接口转换器,笔记本电脑 注意点:RTU传输,使用的是字节,那么在程序 ...
- 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
以下内容为本人原创 原文链接:https://blog.csdn.net/Yhen1/article/details/113760948 作者:@Yhen 发布网站:CSDN 未经本人同意禁止转载,如 ...
- 树莓派+DS18B20温度传感器+yeelink物联网云
本博文参考了网络上多篇树莓派操作DS18B20的博文,经过博主亲自实践,列出了详细的步骤,通过树莓派的单总线驱动来驱动DS18B20获取温度数据,并通过python读取温度值,上传到yeelink物联 ...
- Tcar:智能车之ds18b20温度传感器实现温度采集模块
1.温度采集模块 // env/ds18b20.zip 1.1 硬件 温度传感器 ' ds18b20' 一线式设备( 1-wire) ' 独立式供电': VDD接独立的电源 ' 寄生供电' ...
- android 温度传感器获取温度,Android 温度传感器返回当前的温度
1)温度传感器返回当前的温度,单位是摄氏度(°C). 2)具体代码如下 package com.example.androidapp; import android.hardware.Sensor; ...
- DS18B20温度传感器解读单线协议
单总线协议意思就是一个线就可以完成数据的发送和接收.IIc通信有两根线:SCL时钟线和SDA数据线,通过两根线的完美配合完成读写操作.具体可以参考第一篇文章.SPI通信有四根线:片选线,时钟线,主机输 ...
最新文章
- 获取Java系统相关信息
- 常见面试题学习(1)
- 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶
- python3的flask出现UnicodeDecodeError UnicodeDecodeError
- 0基础学python要多久-零基础学Python的过程有多难?需要多久?
- 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI
- 通过IO口控制STC15F2K60S2系列单片机输出pwm
- 哔哩哔哩助手:bilibili综合辅助扩展Chrome插件
- 机器学习实战 | 综合项目-电商销量预估进阶方案
- 虚拟机不能清空回收站_回收站不能清空怎么办?清空回收站无反应的解决方法...
- html的视频字幕制作步骤,十大字幕制作软件
- 【计算机网络】1.计算机网络与因特网概述
- CEILING_2_POWER
- 《人无信不立》你是一个有信用的人吗?
- 建筑施工复习资料-立杆基础
- mysql 1亿条数据建索引时间_单表 13 亿记录创建索引需要多长时间?
- 前Worldpay美国高管加入BitPay成为其新首席财务官
- Google Earth Engine(GEE)——将影像中的云层显示出来并添加到影像波段中(Landsat8 oil)
- 学好UG编程之后,为什么要学习自己制作UG后处理?
- 微信小程序的制作方法步骤和流程