From cd006b9357bcb632a2d4539c086fb93ca6ae23c6 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Mon, 17 Nov 2025 23:37:49 +0800
Subject: [PATCH] Update lightd to support DS18B20 and TLS2561

---
 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