资讯详情

树莓派DS18B20温度传感器获取温度

树莓派使能DS18B20-toc" style="margin-left:0px;">树莓派使能DS18B20

C程序获取DS18B20温度


配置树莓派,启动1-Wire完成使能

重启树莓派,完成配置

可以查看当前系统支持的单总线协议模块

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

(这是设备的特定序列号)

即可查看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; }

标签: 水温传感器1171水温显示传感器cd61传感器水温传感器6水温传感器2112001水温传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台