硬件开发_基于物联网的老人跌倒监测报警系统
一.系统概述
跌倒监测报警系统的功能如下:
- 传感器功能:配备三轴三轴加速度传感器和心率传感器,用于监测用户运动状态及心率变化;
- 跌倒监测:检测到用户跌倒时,自动触发跌倒检测算法;
- 语音播报功能:集成的语音模块在确认用户跌倒后,会自动播报“有人人跌倒,请求帮助”;
- 报警信息发送:将跌倒报警信息及GPS位置信息发送至指定监护人的手机APP,确保及时通知与救援;
- 实时监测和通知:系统可实时监测用户运动状态,及时发现跌倒并发送报警信息,提升救援效率与用户安全性。
二.电路设计
电路图采用Altium Designer设计,具体如下:
- 以STM32F103C8T6单片机为主控,其最小系统电路为整个电路的核心;
- 采用ADXL345加速度传感器进行摔倒检测,通过IIC总线与单片机通信;
- 借助pulse sensor心率传感器检测心率,其数字输出端连接至单片机的GPIO脚;
- 利用GPS定位模块ATGM336H检测位置,通过UART串口与单片机连接;
- 通过ESP8266-01S将检测数据上传至上位机,二者通过UART串口通信;
- 0.96寸OLED12864用于数据显示,采用IIC总线与单片机进行通信;
- 使用JR6001实现语音播报功能,通过UART串口与单片机连接。
三.程序设计
#include “sys.h”
#include “delay.h”
#include “adc2.h”
#include “math.h”
#include “adc.h”
#include “key.h”
#include “OLED_I2C.h”
#include “Control_Report_To_Police.h”
u8 datatemp[SIZE];
int main(void)
{
u8 i;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600);
TIM4_Init(300,7200);
switch_Init();
Beep_init();
OLED_Init();
OLED_CLS();
OLED_ShowCN(32,2,0);
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
UART1Write(“AF:35”);
delay_ms(1000);
OLED_CLS();
Adc_Init();
KEY_Init();
TIM2_Int_Init(1999,71);
while(ADXL345_IIC_GPIO_Init()) //3D加速度传感器初始化
{
}
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
STEPS = (datatemp[0]-0x30)*10000+(datatemp[1]-0x30)*1000+(datatemp[2]-0x30)*100+(datatemp[3]-0x30)*10+(datatemp[4]-0x30);
OLED_ShowCN(0,0,4);
OLED_ShowCN(0+16,0,5);
OLED_ShowCN(16,2,14);
OLED_ShowCN(16+16,2,15);
OLED_ShowCN(0,4,8);
OLED_ShowCN(0+16,4,9);
OLED_ShowCN(0,6,10);
OLED_ShowCN(0+16,6,11);
while(i!=200)
{
i++;
UART1Write(“B0”);
delay_ms(100);
UART1Write(“AF:35”);
delay_ms(100);
}
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-39