你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32单片机老人防跌倒报警系统GSM短信上报加速度

[复制链接]
STMCU小助手 发布时间:2022-5-12 11:19
一.硬件方案
本系统由STM32单片机核心板、ADXL345加速度传感器、GSM、指示灯、按键电率+蜂鸣器报警及电源组成。

二.设计功能
(1)板子正常情况下是竖直装在口袋里的(adxl345模块在下角竖直立着),一旦倾角传感器检测到平放即摔倒,蜂鸣器报警,且摔倒的时间持续超过15秒短信报警(15秒是为了确定老人已经跌倒且15秒钟都没有自行爬起来,需要报警提醒周围的人帮忙)。如果老人没有跌倒,而是弯腰等等,这属于误报警,则老人可以自己用按键取消键取消警报。
(2)触发GSM模块实现短信的发送, 设备将会向人员发送信息“help me!”!
(3)短信处理及初始化有状态指示灯指示。
(4)GSM上电有几秒初始化,系统供电电源至少要支持5V/2A。

三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:



(2)PCB图如下:

I]162~F`84EBYX}@`[IAJRI.png

四.软件设计
主程序源码

  1. int main(void)
  2. {        
  3.         delay_init();                     //延时函数初始化
  4.         NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  5.         LED_Init();                          //初始化与LED连接的硬件接?
  6.         KEY_Init();
  7.         uart_init(9600);
  8.         TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms

  9.         buzzer = 1;//初始化
  10.         delay_ms(100);
  11.         buzzer = 0; //关蜂鸣器
  12.         led_gsm = 0;
  13.         
  14.   Init_ADXL345();//初始化 adxl345
  15.   if(Single_Read_ADXL345(0X00)==0xe5)        //读取寄存器值 看是否初始化成功
  16.   {
  17.     delay_ms(5);
  18.   }
  19.   else
  20.   {
  21.     delay_ms(3);
  22.   }

  23.         i=50;
  24.         while(i--) delay_ms(100);//延时
  25.         
  26.         UART_SendStr(USART1 ,"AT+CMGF=1\r\n",11); //设置字符集
  27.         i=10;
  28.         while(i--) delay_ms(100);//延时

  29.         UART_SendStr(USART1 ,"AT+CSCS="GSM"\r\n",15);//设置文本
  30.         i=10;
  31.         while(i--) delay_ms(100);//延时
  32.         
  33.         led_gsm =1;
  34.         while(1)
  35.         {  
  36.     if(ReadAdxl345== 1)   //定时读取adxl345数据
  37.     {
  38.       ReadAdxl345= 0;
  39.       ReadData_x();                                                  //三轴检测函数
  40.       CheckNum++;
  41.       if((temp_X<550)||(temp_X>10000))       //该数据为检测值 不是固定的 一个大概的 角度
  42.       {
  43.         ErrorNum++;
  44.       }
  45.       if(CheckNum>=5)                  //进行5次处理
  46.       {
  47.         if(keyLater>=3)                  //非按键下
  48.         {
  49.           if(ErrorNum>=1)           //角度出现错误 5次出息3次情况
  50.           {
  51.             buzzer = 1;           //打开蜂鸣器
  52.           }
  53.           else
  54.           {                                       
  55.             buzzer = 0;                //关闭蜂鸣器
  56.             reportLater=0;                //上报延时计数
  57.           }                                       
  58.         }
  59.         ErrorNum=0;                  //清空滤波计数
  60.         CheckNum=0;        
  61.       }
  62.     }

  63.     if(reportLater>=15)        //15s
  64.     {
  65.       led_gsm = 0;//打开led
  66.                         
  67.       UART_SendStr(USART1 ,"AT+CMGF=1\r\n",11); //设置字符集
  68.       i=3;
  69.       while(i--) delay_ms(100);//延时
  70.                         
  71.       UART_SendStr(USART1 ,"AT+CSCS="GSM"\r\n",15);//设置文本
  72.       i=3;
  73.       while(i--) delay_ms(100);//延时
  74.                         UART_SendStr(USART1 ,"AT+CMGS="+8615555183057"\r\n",26); //测试号
  75. //      UART_SendStr(USART1 ,"AT+CMGS="+8618105140357"\r\n",26);  //可以修改电话号码
  76.       i=3;
  77.       while(i--) delay_ms(100);//延时
  78.                         
  79.       printf("help me !"); //发送短信息内容
  80.       delay_ms(200);//延时
  81.                         
  82.       UART_SendStr(USART1 ,( char *)Crtl_Z, 1);        //发送
  83.       i=40;
  84.       while(i--) delay_ms(100);//延时
  85.                         
  86.       led_gsm =1;                //led关闭
  87.       reportLater=0;        //上报标志清空
  88.       keyLater=0;        //按键清零延时处理
  89.     }
  90.                
  91.     if(key==0)                 //按键处理
  92.     {
  93.       delay_ms(3);          //按键消抖动
  94.       if(key ==0)                 //按键处理
  95.       {
  96.         reportLater=0;          //按键延时上报
  97.         buzzer = 0;                 //关闭蜂鸣器
  98.         keyLater=0;                //按键延时处理
  99.       }
  100.     }
  101.         
  102.         }
  103. }
复制代码



收藏 评论0 发布时间:2022-5-12 11:19

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版