From 24345339421493cdacdbaae0248c3928ea9404c2 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 18 Nov 2025 12:41:40 +0800
Subject: [PATCH] update proc.h and utils.h
---
project/lightd/hal/ds18b20.c | 42 +++++++++++++++++++++++++++---------------
1 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/project/lightd/hal/ds18b20.c b/project/lightd/hal/ds18b20.c
index 2037af5..aa1e01b 100644
--- a/project/lightd/hal/ds18b20.c
+++ b/project/lightd/hal/ds18b20.c
@@ -1,15 +1,27 @@
/*********************************************************************************
- * Copyright: (C) 2018 LingYun IoT System Studio
+ * Copyright: (C) 2023 LingYun IoT System Studio
* All rights reserved.
*
* Filename: ds18b20.c
* Description: This file is temperature sensor DS18B20 code
*
- * Version: 1.0.0(2018/10/14)
+ * Version: 1.0.0(2023/8/10)
* Author: Guo Wenxue <guowenxue@gmail.com>
- * ChangeLog: 1, Release initial version on "2018/10/14 12:13:26"
+ * ChangeLog: 1, Release initial version on "2023/8/10 12:13:26"
+ *
+ * Pin connection:
+ *
+ * DS18B20 Module Raspberry Pi Board
+ * VCC <-----> #Pin1(3.3V)
+ * DQ <-----> #Pin7(BCM GPIO4)
+ * GND <-----> GND
+ *
+ * /boot/config.txt:
+ *
+ * dtoverlay=w1-gpio-pullup,gpiopin=4
*
********************************************************************************/
+
#include <stdio.h>
#include <stdlib.h>
@@ -26,7 +38,7 @@
pi@raspberrypi:~/guowenxue $ cat /sys/bus/w1/devices/28-041731f7c0ff/w1_slave
3a 01 4b 46 7f ff 0c 10 a5 : crc=a5 YES
3a 01 4b 46 7f ff 0c 10 a5 t=19625
- */
+ */
int ds18b20_get_temperature(float *temp)
{
@@ -41,7 +53,7 @@
if( !temp )
{
- return -1;
+ return -1;
}
/*+-------------------------------------------------------------------+
@@ -49,7 +61,7 @@
*+-------------------------------------------------------------------+*/
if((dirp = opendir(w1_path)) == NULL)
{
- log_error("opendir '%s' error: %s\n", w1_path, strerror(errno));
+ log_error("opendir error: %s\n", strerror(errno));
return -2;
}
@@ -60,15 +72,15 @@
/* find and get the chipset SN filename */
strcpy(chip,direntp->d_name);
found = 1;
- break;
+ break;
}
}
closedir(dirp);
if( !found )
{
- log_error("Can not find ds18b20 in %s\n", w1_path);
- return -3;
+ log_error("Can not find ds18b20 in %s\n", w1_path);
+ return -3;
}
/* get DS18B20 sample file full path: /sys/bus/w1/devices/28-xxxx/w1_slave */
@@ -78,21 +90,21 @@
/* open file /sys/bus/w1/devices/28-xxxx/w1_slave to get temperature */
if( (fd=open(w1_path, O_RDONLY)) < 0 )
{
- log_error("open %s error: %s\n", w1_path, strerror(errno));
- return -4;
+ log_error("open %s error: %s\n", w1_path, strerror(errno));
+ return -4;
}
if(read(fd, buf, sizeof(buf)) < 0)
{
- log_error("read %s error: %s\n", w1_path, strerror(errno));
- return -5;
+ log_error("read %s error: %s\n", w1_path, strerror(errno));
+ return -5;
}
ptr = strstr(buf, "t=");
if( !ptr )
{
- log_error("ERROR: Can not get temperature\n");
- return -6;
+ log_error("ERROR: Can not get temperature\n");
+ return -6;
}
ptr+=2;
--
Gitblit v1.9.1