ISKBoard example project
guowenxue
7 days ago 9d92def44dc84a0fd125850c81ec99aecee2b899
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,20 +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)
  {
     HAL_Delay(5000);
     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);
     }
     HAL_Delay(10);
    /* USER CODE END WHILE */