From 9d92def44dc84a0fd125850c81ec99aecee2b899 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 07 Oct 2025 01:25:58 +0800
Subject: [PATCH] 楼道声光控灯项目程序

---
 Core/Src/main.c |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/Core/Src/main.c b/Core/Src/main.c
index 281d186..dec60e8 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -18,6 +18,8 @@
 /* USER CODE END Header */
 /* Includes ------------------------------------------------------------------*/
 #include "main.h"
+#include "adc.h"
+#include "usart.h"
 #include "gpio.h"
 
 /* Private includes ----------------------------------------------------------*/
@@ -37,7 +39,8 @@
 
 /* Private macro -------------------------------------------------------------*/
 /* USER CODE BEGIN PM */
-
+#define THRESHOLD_LUX       100
+#define THRESHOLD_NOISY     1000
 /* USER CODE END PM */
 
 /* Private variables ---------------------------------------------------------*/
@@ -65,7 +68,7 @@
 {
 
   /* USER CODE BEGIN 1 */
-
+  uint32_t      lux, noisy;
   /* USER CODE END 1 */
 
   /* MCU Configuration--------------------------------------------------------*/
@@ -86,33 +89,30 @@
 
   /* Initialize all configured peripherals */
   MX_GPIO_Init();
+  MX_USART1_UART_Init();
+  MX_ADC1_Init();
   /* USER CODE BEGIN 2 */
   init_relay();
-  init_led();
-
-  /* Turn on relay after 1 second */
   HAL_Delay(1000);
-  turn_relay(Relay1, ON);
+  printf("Auto light program start.\r\n");
   /* USER CODE END 2 */
 
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
   while (1)
   {
-	  /* Blink Red Led */
-	  turn_led(Led_R, ON);
-	  HAL_Delay(200);
-	  turn_led(Led_R, OFF);
-	  HAL_Delay(200);
+	  lux = noisy = 0;
+	  adc_sample_lux_noisy(&lux, &noisy);
+	  if( lux<=THRESHOLD_LUX && noisy>= THRESHOLD_NOISY )
+	  {
+		  printf("Lux:%lu Noisy:%lu, turn light on\r\n", lux, noisy);
+		  turn_relay(Relay1, ON);
+		  HAL_Delay(5000);
+		  printf("turn light off now\r\n");
+		  turn_relay(Relay1, OFF);
+	  }
 
-	  /* Blink Green Led */
-	  toggle_led(Led_G);
-	  HAL_Delay(200);
-	  toggle_led(Led_G);
-	  HAL_Delay(200);
-
-	  /* Blink Blue Led */
-	  blink_led(Led_B, 200);
+	  HAL_Delay(10);
 
     /* USER CODE END WHILE */
 

--
Gitblit v1.9.1