本设计:
基于STM32老人防跌倒报警GSM短信GPS定位设计(程序+原理图+PCB)
编号C0025

下载链接
C0025 网盘链接

功能描述:
本系统由基于STM32单片机的核心板、ADXL345加速度传感器、GSM、GPS模块、指示灯、按键电率+蜂鸣器报警及电源组成。
1、板子正常情况下是竖直装在口袋里的(adxl345模块在下角竖直立着),一旦倾角传感器检测到平放即摔倒,蜂鸣器报警,且摔倒的时间持续超过15秒短信报警(15秒是为了确定老人已经跌倒且15秒钟都没有自行爬起来,需要报警提醒周围的人帮忙)。如果老人没有跌倒,而是弯腰等等,这属于误报警,则老人可以自己用按键取消键取消警报。
2、触发GSM模块实现短信的发送, 设备将会向人员发送信息,包括所在位置经纬度信息。
3、短信处理及初始化有状态指示灯指示。
注:GSM上电有几秒初始化,系统供电电源至少要支持5V/2A,GPS天线必须放到漏天位置。

原理图:

PCB:

源程序:

#include “led.h”
#include “delay.h”
#include “sys.h”
#include “timer.h”
#include “key.h”
#include “usart.h”
#include <string.h>
#include “adxl345.h”

unsigned char BufTab[10]; //wifi数据暂存
unsigned char Count; //串口数据计数
unsigned char UartBusy=0; //盘忙
unsigned char ReadFlag=0;//读取标志
unsigned char sendDataFlag=0;//发送短信标志
unsigned char i ;

unsigned char ReadAdxl345; //定时读取adxl345数据
unsigned char ErrorNum=0; //记录错误次数
unsigned char CheckNum=0; //检测次数
unsigned long ReportLater=0; //上报延时
unsigned long KeyLater=3; //按键延时计数

unsigned long Mid_Du; //经纬度处理 度
unsigned long Mid_Fen; //经纬度处理 分
unsigned long Mid_Vale; //经纬度处理 中间变量

char Lin0_No[16]=“N:000.000000”;//存储纬度
char Lin1_Ea[16]=“E:000.000000”;//存储经度

char Crtl_Z[1]={0x1a}; //发送短信标志

void dealGps(void) ;//gps数据处理

int main(void)
{
delay_init(); //延时函数初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
LED_Init(); //初始化与LED连接的硬件接?
KEY_Init();
uart_init(9600);
uart2_init(9600) ;

 TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50msBUZZER = 1;delay_ms(100);BUZZER = 0;   //初始化
GSM_LED = 0;i=5;
while(i--) delay_ms(100);//延时

Init_ADXL345();
if(Single_Read_ADXL345(0X00)==0xe5)
{
delay_ms(5);
}
else
{
delay_ms(3);
}

UART_SendStr(USART1 ,"AT+CMGF=1\r\n",11); //设置字符集
i=10;
while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CSCS=\"GSM\"\r\n",15);//设置文本?
i=10;
while(i--) delay_ms(100);//延时GSM_LED =1;   //关闭LED指示
while(1)
{
if(ReadAdxl345== 1)   //定时读取adxl345数据
{ReadAdxl345= 0;ReadData_x();                          //三轴检测函数CheckNum++;if((temp_X<550)||(temp_X>10000))        //方位值判断 查看正常次数{ErrorNum++;}if(CheckNum>=5)     //进行5次处理{if(KeyLater>=3)        //非按键下{if(ErrorNum>=1)     //角度出现错误 5次出息1次情况{BUZZER = 1;      //打开蜂鸣器}else{                    BUZZER = 0;        //关闭蜂鸣器ReportLater=0;      //上报延时计数}                   }ErrorNum=0;         //清空滤波计数CheckNum=0;  }
}if(ReportLater>=15)    //15s
{GSM_LED = 0;UART_SendStr(USART1 ,"AT+CMGF=1\r\n",11); //设置字符集i=3;while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CSCS=\"GSM\"\r\n",15);//设置文本i=3;while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CMGSM=\"+8615555183057\"\r\n",26); //测试号//**All notes can be deleted and modified**//

// UART_SendStr(USART1 ,“AT+CMGS=”+8615542546521"\r\n",26); //测试号
i=2;
while(i–) delay_ms(100);//延时

     UART_SendStr(USART1 ,"help me!",8); //发送经度        if(sysmode_GPS==1)        //gps有效{sysmode_GPS=0;                 dealGps();  UART_SendStr(USART1 ,Lin0_No,12); //发送纬度UART_SendStr(USART1 ,Lin1_Ea,12); //发送经度        }else{UART_SendStr(USART1 ,"gps linking...",14); //gps无信号         }delay_ms(200);//延时UART_SendStr(USART1 ,( char *)Crtl_Z, 1);        //发送i=40;while(i--) delay_ms(100);//延时GSM_LED =1;     //led关闭ReportLater=0;  //上报标志清空KeyLater=0;    //按键清零延时处理
}if(key==0)        //按键处理
{delay_ms(3);   //按键消抖动if(key ==0)         //按键处理{ReportLater=0;   //按键延时上报BUZZER = 0;       //关闭蜂鸣器KeyLater=0;        //按键延时处理}
}}

}

void dealGps(void)
{
Mid_Du=(gps_infor_weijing[0]-0x30)*10000000+(gps_infor_weijing[1]-0x30)*1000000; //处理经度扩大10000000

Mid_Fen=(gps_infor_weijing[2]-0x30)*10000000+(gps_infor_weijing[3]-0x30)*1000000+(gps_infor_weijing[4]-0x30)*100000+(gps_infor_weijing[5]-0x30)*10000+(gps_infor_weijing[6]-0x30)*1000+(gps_infor_weijing[7]-0x30)*100;
Mid_Fen=Mid_Fen/60;                                                      //分秒换算为小数位
Mid_Vale=Mid_Du+Mid_Fen;         //最终为度格式000.00000000 非度分秒格式
Lin0_No[0]='N';
Lin0_No[1]=':';
Lin0_No[2]='0';
Lin0_No[3]=Mid_Vale/10000000+0x30;                  //转化为字符
Lin0_No[4]=(Mid_Vale/1000000)%10+0x30;
Lin0_No[5]='.';
Lin0_No[6]=(Mid_Vale/100000)%10+0x30;
Lin0_No[7]=(Mid_Vale/10000)%10+0x30;
Lin0_No[8]=(Mid_Vale/1000)%10+0x30;
Lin0_No[9]=(Mid_Vale/100)%10+0x30;
Lin0_No[10]=(Mid_Vale/10)%10+0x30;
Lin0_No[11]=Mid_Vale%10+0x30;Mid_Du=(gps_infor_weijing[8]-0x30)*100000000+(gps_infor_weijing[9]-0x30)*10000000+(gps_infor_weijing[10]-0x30)*1000000; //处理经度扩大10000000     Mid_Fen=(gps_infor_weijing[11]-0x30)*10000000+(gps_infor_weijing[12]-0x30)*1000000+(gps_infor_weijing[13]-0x30)*100000+(gps_infor_weijing[14]-0x30)*10000+(gps_infor_weijing[15]-0x30)*1000+(gps_infor_weijing[16]-0x30)*100;
Mid_Fen=Mid_Fen/60;                                                //分秒换算为小数位
Mid_Vale=Mid_Du+Mid_Fen;                                          //最终为度格式000.00000000 非度分秒格式
Lin1_Ea[0]='E';
Lin1_Ea[1]=':';
Lin1_Ea[2]=Mid_Vale/100000000+0x30;                           //转化为字符
Lin1_Ea[3]=(Mid_Vale/10000000)%10+0x30;
Lin1_Ea[4]=(Mid_Vale/1000000)%10+0x30;
Lin1_Ea[5]='.';
Lin1_Ea[6]=(Mid_Vale/100000)%10+0x30;
Lin1_Ea[7]=(Mid_Vale/10000)%10+0x30;
Lin1_Ea[8]=(Mid_Vale/1000)%10+0x30;
Lin1_Ea[9]=(Mid_Vale/100)%10+0x30;
Lin1_Ea[10]=(Mid_Vale/10)%10+0x30;
Lin1_Ea[11]=Mid_Vale%10+0x30;

}

下载方式关注 下方中间的微信公众号,任意回复

STM32老人防跌倒报警GSM短信GPS定位设计(程序+原理图+PCB)相关推荐

  1. 基于STM32单片机智能手表GSM短信GPS定位设计(毕业设计资料)

    本设计由STM32单片机+LCD1602液晶显示电路+GPS模块+GSM模块+按键电路+LED灯电路+电源电路组成.  1.液晶1602显示时钟,带日期,且可以显示经纬度信息,两个信息通过一个按键切换 ...

  2. 基于STM32单片机老人防跌倒报警系统GSM短信上报原理图PCB

    功能: 0.本项目采用STM32F103C8T6作为单片机系统的控制MCU 1.本项目采用倾角传感器adxl345模块,实时检测老人的状态角度. 2.采用GSM模块实现短信的发送,只要老人跌倒了(且没 ...

  3. 基于STM32单片机远程浇花花盆GSM短信浇水补光设计原理图程序

    功能: 0.本项目采用STM32F103C8T6作为单片机系统的控制MCU 1.系统采用LCD1602液晶显示花盆湿度.温度和光照状态值等参数 2.可实现远程控制,通过GSM短信远程浇水和补光灯控制. ...

  4. stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警

    系统实现了智能安防报警系统设计,人体感应报警,烟雾报警,GSM短信报警,同时支持远程视频监控功能,安卓端app端远程查看视频流.实物展示视频 ​​​​​​基于stm32单片机ESP32智能安防系统远程 ...

  5. STM32单片机蓝牙APP GSM短信安全监控系统湿度烟雾入侵报警系统

    实践制作DIY- GC0147---蓝牙APP GSM短信安全监控系统 基于STM32单片机设计---蓝牙APP GSM短信安全监控系统 二.功能介绍: 硬件组成:STM32F103C系列最小系统板 ...

  6. 基于STM32单片机的远程智能浇花花盆GSM短信浇水补光方案原理图程序设计

    硬件电路的设计 (末尾附文件) 3.1系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STM32F103C8T6单片机核心电路+温湿度传感器DHT11电路+LCD1602液晶显示电路+继 ...

  7. 老人防跌倒报警系统,及时防止跌倒给老人带来的伤害-新导智能

    跌倒是我国65岁以上老年人因伤害逝世的主要原因.据统计,老年人产生伤口性骨折的主要原因是跌倒,年龄越大,产生跌倒及因跌倒而受伤或逝世的危险越高.在老年人居家生活.外出活动和机构养老中,苏州新导推出的防 ...

  8. 养老院人员定位系统包含室内人员定位,老人防跌倒报警系统-新导智能

    一.养老院人员定位体系意义 (一)对白叟院人员实时监督办理(信息中心可实时检查白叟方位信息.白叟数量.任何房间白叟信息.白叟院人员动态改变.白叟遇突发事情求助.进入风险区域告警信息等). (二)自动预 ...

  9. 基于单片机智能手环心率老人防跌倒心率体温 步数里程

    功能介绍 以STM32单片机作为主控系统: OLED液晶显示心率体温步数等信息: 通过按键设置心率.体温上限设置: 当心率或者体温超过按键设置上限蜂鸣器进行声光报警提醒: 通过wifi模块esp826 ...

最新文章

  1. javascript传值和页面跳转传值(ASP.NET页面传参的三种方法)
  2. A Guide to Python's Magic Methods
  3. 【PHP7.2+】win10安装laravel(完整版,包含运行)
  4. MySQL笔记-查询进程列表(查客户端IP、使用的用户、当前状态、ID号、使用的库)及断开客户端连接
  5. sqlcheck约束表达式怎么写_creo 5.0 建模实例教程----乌比莫斯之环教程(表达式扫描特征)...
  6. python概率游戏_看得见概率,可视化讲解概率学基础(附带python代码)
  7. PHP之JWT接口鉴权(二) 自定义错误异常
  8. 【我的Android进阶之旅】Android开发之NDK相关版本下载链接
  9. [Unity官方教程]Tanks!单机双人坦克大战源码和素材
  10. matlab拓扑图画法,告诉你漂亮标准的网络拓扑图是怎么画出来的?
  11. asp mysql rs.recordcount_asp中rs.recordcount 返回值总是为-1的解决方法
  12. Android Bluetooth架构
  13. MC 1.19.3+forge+暮色
  14. fullgc问题解决:Full GC (Metadata GC Threshold)
  15. fhq——treap
  16. 配置mpls vpn MCE组网
  17. 【ES6】阮一峰promise
  18. oschina使用方法
  19. 线程函数参数(LPVOID Param)
  20. python如何群控手机_python调用adb脚本来实现群控安卓手机初探

热门文章

  1. 【DSP】XDS510PLUS的驱动安装
  2. 菜鸟裹裹快递查询接口调用
  3. Android中so文件的生成和调用
  4. 如何利用手机实现中日翻译在线
  5. 2.4G上的无线共存问题
  6. 智方6000系标准销售管理系统 v4.57 绿色
  7. perl DBI使用详解
  8. 对抗自编码器(AAE)
  9. 项目日记(在线办公项目)day2021/03/02
  10. PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)