物联网人体红外检测系统详解
/*------------------------------------------------------------------------------
* @文件名 : handle
* @描述 : 用户处理函数
* @作者 : 物联网项目组
* @日期 : 2023/04/01
* @版本 : V0.0.2
*******************************************************************************
功能介绍:
1、显示屏初始化显示;
2、人体红外检测状态并显示。
******************************************************************************/
#include "handle.h"
#include "gpio_api.h"
#include "lcd.h"
#include "stdio.h"
#include "string.h"
#include "body.h"
/********************************************************************************
* 名 称:LCD_Display_Init
* 功 能:显示屏上电初始化显示
* 入口参数:无
* 返 回 值:无
* 说 明:无
********************************************************************************/
void LCD_Display_Init(void)
{
/*显示屏初始化界面*/
LCD_Init();
LCD_Fill(0,lcddev.height-20,lcddev.width,lcddev.height,BLUE);
LCD_Fill(0,0,lcddev.width,20,BLUE);
Gui_StrCenter(0,2, BLUE,BLUE," ",16,0);
Gui_StrCenter(0,40,BLUE,WHITE,"人体红外检测实验",24,1);
Gui_StrCenter(0,lcddev.height-18,BLUE,BLUE," ",16,0);
}
/********************************************************************************
* 名 称:Body_Handle
* 功 能:人体红外检测处理函数
* 入口参数:无
* 返 回 值:无
* 说 明:无
********************************************************************************/
void Body_Handle(void)
{
static uint8_t as312_state_rev = 2;
uint8_t as312_state = 0;
static uint32_t tickstart;
if((HAL_GetTick() - tickstart) >= 1000) //1000ms检测一次
{
tickstart = HAL_GetTick();
/*****************************code 2 start*************************************/
as312_state =Infrared_Read_State();
if(as312_state==1)
{
LCD_draw_bmp(36,120,48,gImage_Body);
LCD_Fill(96,178,137,194,WHITE);
Show_Str(96,178,BLUE,WHITE,"someone",16,1);
}
else if(as312_state==0)
{
LCD_draw_bmp(96,120,48,gImage_Body_hui);
LCD_Fill(96,178,137,194,WHITE);
Show_Str(96,178,BLUE,WHITE,"no one",16,1);
}
if(as312_state != as312_state_rev)
{
if(as312_state==1)
{
printf("**读取人体红外传感器数据\r\n");
printf("**人体红外传感器数据:someone\r\n\r\n");
}
else if(as312_state==0)
{
printf("**读取人体红外传感器数据\r\n");
printf("**人体红外传感器数据no one\r\n\r\n");
}
as312_state_rev = as312_state;
}
/*****************************code end***************************************/
led_toggle(LED1_PORT);
}
}