这一次准备利用人体感应模块+蓝牙实现一个感应到是否有人,可以从蓝牙APP里获取相关信息。
蓝牙部分的话还是利用蓝牙的DEMO,读取UUID:C101,READ VALUES 01表示有人来,00表示没有人。
外部中断(EXINT)与NVIC直接连接, EXINT包含23个边沿检测器,用于产生中断请求。每个中断线都可以独立地配置它的触发事件(上升沿、下降沿、或双边沿),
并能够单独地被屏蔽;挂起寄存器维持所有中断请求的状态。外部中断其中最多有16根可从GPIO中选择连接。
人体感应模块
在通过放大器是BISS0001将脉冲信号转化为更直观的高低电平输出,有人输出高,无人输出低。
模块接口只有三个脚,地、电源、数据线;分别计为GND、VCC、OUT
探头检测到有人移动时,OUT=1;没人移动时,OUT=0;
因此我们可以把它当成一个独立按键,按下时(有人移动)为1,松开时(没人移动)为0。
之前网友提醒注意电压问题,需要连接FT管脚,比如PA8等
把中断配置和中断处理函数移植到蓝牙DEMO程序里。初始化函数中加入中断的初始化,中断句柄也添加至DEMO中。
if(flag_hw == 1)
{
at_cmd_send(AT_RESULT_OK1);
}
else
{
at_cmd_send(AT_RESULT_OK0);
}
下载程序的时候和之前一样,先删除之前的老的,添加新的固件
下载后,连接蓝牙测试。
有人走过和无人走过环境测试
01代表检测到人
00代表没有检测到人
测试结果,有人来的话蓝牙读取到01 ,蓝牙很稳定,没有出现断线状况。