【优比】基于STM32的紧急求助定位导盲仪系统

基于STM32的紧急求助定位系统,主要功能如下:


1. 核心安全监测功能

障碍物检测

通过距离传感器(变量a)检测前方障碍物
当距离≤150单位时:触发蜂鸣器报警+语音播报1(BO1引脚控制)

行人检测

通过PIR热释电红外传感器检测行人
当检测到人体时:触发蜂鸣器+语音播报2(BO2引脚控制)+LED闪烁报警


2. 紧急求助功能

按键触发

按下KEY按键后发送求助短信
短信内容包含:

固定求助信息"help me!"
当前GPS经纬度(格式:N:xxx.xxxxxx E:xxx.xxxxxx
GPS失效时发送"gps linking..."提示

短信配置

UART_SendStr(USART1 ,"AT+CMGS="+861787890000"
",26); //目标手机号
UART_SendStr(USART1 ,"help me!",8); //核心求助信息
UART_SendStr(USART1 ,Lin0_No,12);  //纬度
UART_SendStr(USART1 ,Lin1_Ea,12);  //经度
UART_SendStr(USART1 ,( char *)Crtl_Z, 1); //短信结束符0x1A

3. GPS定位处理

数据转换

void dealGps(void) {
              
  // 纬度处理(原始数据→度格式)
  Mid_Du = (gps_infor_weijing[0]-0x30)*10000000 + ... ;
  Mid_Fen = (gps_infor_weijing[2]-0x30)*10000000 + ... ;
  Mid_Fen = Mid_Fen/60; //分→度转换
  Mid_Vale = Mid_Du + Mid_Fen;
  
  // 格式化输出:N:xxx.xxxxxx
  Lin0_No[2]='0';
  Lin0_No[3]=Mid_Vale/10000000+0x30; //数字转ASCII
  ...
}

输出格式

纬度:N:000.000000(示例)
经度:E:000.000000(示例)
精度:小数点后6位(约0.1米精度)


4. 系统初始化

硬件初始化

delay_init();          //延时函数
NVIC_Configuration();  //中断配置
LED_Init();            //报警灯
KEY_Init();            //求助按键
uart_init(9600);       //GSM模块串口
uart2_init(9600);      //GPS模块串口
TIM3_Int_Init(499,7199);//50ms定时器

GSM模块配置

UART_SendStr(USART1 ,"AT+CMGF=1
",11);  //设置为文本模式
UART_SendStr(USART1 ,"AT+CSCS="GSM"
",15);//GSM字符集

5. 工作流程


关键特性总结

三重报警机制:声音(蜂鸣器)+ 语音(双播报模块)+ 灯光(LED闪烁)
精准定位:GPS原始数据转换为度格式(6位小数精度)
紧急通信:通过GSM模块发送含位置信息的求助短信
智能容错:GPS失效时自动发送连接状态提示
模块化设计:分离传感器处理、GPS转换、通信控制等模块

系统适用于老人监护、户外探险、紧急救援等场景,实现”监测-报警-定位-求助”全流程自动化处理。
> 有需要的可dd,可定制

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容