From a903b916f09419e7324a2352232e601acc598d67 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Thu, 28 Jan 2021 17:13:32 +0800 Subject: [PATCH] update lightd main.c, add lux sensor support and test ok --- lightd/main.c | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lightd/main.c b/lightd/main.c index 03aee1a..db7e6b5 100644 --- a/lightd/main.c +++ b/lightd/main.c @@ -16,6 +16,7 @@ #include <getopt.h> #include <libgen.h> #include <string.h> +#include <math.h> #include <cjson/cJSON.h> #include <mosquitto.h> @@ -67,7 +68,7 @@ int debug = 0; int opt; char *progname=NULL; - double lux = 0.0; + float lux = 0.0; struct option long_options[] = { {"conf", required_argument, NULL, 'c'}, @@ -146,12 +147,25 @@ log_nrml("Start infrared monitor thread working...\n"); while( ! g_signal.stop ) - { + { + lux = tsl2561_get_lux(); + if( lux > hal_ctx->lux_threshold ) + { + log_nrml("Lux[%.3f] > Treshold[%.3f], don't need auto light.\n", lux, hal_ctx->lux_threshold); + sleep(30); + continue; + } + + log_nrml("start infrared monitor detect...\n"); if( infrared_detect() ) { log_nrml("Someone incoming detected by infrared\n"); - turn_light(LIGHT_HALLWAY, ON); - alarm(hal_ctx->light_intval); + if( lux < hal_ctx->lux_threshold ) + { + log_nrml("Lux[%.3f] < Treshold[%.3f], auto light on now..\n", lux, hal_ctx->lux_threshold); + turn_light(LIGHT_HALLWAY, ON); + alarm(hal_ctx->light_intval); + } } } @@ -280,7 +294,7 @@ else if( strcasestr(value, "off") ) { turn_light(LIGHT_LVROOM_RIGHT, OFF); - log_nrml("Turn on livingroom right light\n"); + log_nrml("Turn off livingroom right light\n"); } } -- Gitblit v1.9.1