当前位置:   article > 正文

157 基于单片机老人生理监控系统设计(心率、体温、跌倒、定位)【毕设课设】_基于单片机的老人健康状态监测系统设计

基于单片机的老人健康状态监测系统设计

本设计由STC89C52单片机电路+烟雾传感器电路+温度传感器电路+加速度传感器+心率传感器电路+SIM800A_GSM模块电路+电源电路组成。

该系统实时监测老人是否跌倒,是否周围有火以及心率情况。

1、如果烟雾传感器检测到烟雾超标,则GSM向特定手机发送:Smoke!

2、如果ADXL345检测到老人跌倒了,则GSM向特定手机发送:Fall!同时蜂鸣器报警,如果老人没跌倒,则蜂鸣器不报警。如果老人没有跌倒,而是弯腰等等,这属于误报警,则老人可以自己用按键取消键取消警报。

3、如果心率传感器检测到老人心率高于120,则GSM向特定手机发送:High Heart!

4、如果温度超过38度,则GSM向特定手机发送:has a cold!

4、注意本设计一次上电上述情况每个只能触发一次上报短信,不会连续发送。

5、短信处理过程有GSM信号灯指示。

资料下载地址

https://pan.baidu.com/s/1QhR-6MoeNlXZsQ84CY4Bbg?pwd=8888

  1. unsigned char sdLater = 0;
  2. void Init_Timer0(void); //函数声明
  3. void TIM2Inital(void);
  4. void SendStr(unsigned char *s,unsigned char length);
  5. void UART_Init(void);
  6. void SendByte(unsigned char dat);
  7. void main (void)
  8. {
  9. static unsigned char ErrorNum=0;
  10. static unsigned char CheckNum=0;
  11. LED = 0;
  12. DelayMs(20); //延时有助于稳定
  13. Init_ADXL345(); //清屏
  14. for(i=0;i<50;i++)
  15. DelayMs(100); //延时有助于稳定
  16. SendStr("AT+CMGF=1\r\n",11); //设置字符
  17. for(i=0;i<7;i++)
  18. DelayMs(100); //延时有助于稳定
  19. LED=1; //关闭led
  20. while (1) //主循环
  21. {
  22. if(ReadAdxl345==1) //定时读取adxl345数据
  23. {
  24. ReadAdxl345=0;
  25. ReadData_x(); //三轴检测函数
  26. CheckNum++;
  27. if((temp_X<550)||(abs(temp_Y)>750)) //方位值判断 查看正常次数
  28. {
  29. ErrorNum++;
  30. }
  31. if(CheckNum>=5) //进行5次处理
  32. {
  33. ErrorNum=0; //清空滤波计数
  34. CheckNum=0;
  35. }
  36. }
  37. if(ReadTempFlag==1) //读取温度标志
  38. {
  39. ReadTempFlag=0;
  40. temp1=ReadTemperature(); //读取温度
  41. temperature=(float)temp1*0.0625; //温度值转换
  42. if(checkT<5)checkT++; //检测次数
  43. if(checkT>=2)
  44. {
  45. if(temperature > 38)
  46. {
  47. if((reportFlag==0)&&(first4==0)) //当前没有任何触发
  48. reportFlag=4;
  49. }
  50. }
  51. }
  52. if(displayOK==0)//如果显示关 检测心率是否真实
  53. {
  54. rate = 0;
  55. }
  56. if(ReportLater>=15) //15s
  57. {
  58. if(reportFlag!=0)
  59. {
  60. LED=0;
  61. SendStr("AT+CMGF=1\r\n",11); //设置字符集
  62. for(i=0;i<7;i++)
  63. DelayMs(100); //延时有助于稳定
  64. SendStr("AT+CSCS=\"GSM\"\r\n",15); //设置
  65. for(i=0;i<7;i++)
  66. DelayMs(100); //延时有助于稳定
  67. // SendStr("AT+CMGS=\"+8618105140357\"\r\n",26); //可以修改电话号码
  68. SendStr("AT+CMGS=\"+8618029401425\"\r\n",26); //可以修改电话号码
  69. for(i=0;i<7;i++)
  70. DelayMs(100); //延时有助于稳定
  71. if(reportFlag==1)
  72. {
  73. SendStr("Smoke!",6); //可以修改短信内容,9代表短信内容长度,不可以发汉字,如果发汉字的话,需要转化为特定的码
  74. first1=1;
  75. }
  76. else if(reportFlag==4)
  77. {
  78. SendStr("has a cold!",11); //可以修改短信内容,9代表短信内容长度,不可以发汉字,如果发汉字的话,需要转化为特定的码
  79. first4=1;
  80. }
  81. DelayMs(100); //延时有助于稳定
  82. SendStr( (uchar *)Crtl_Z, 1); //发送
  83. for(i=0;i<20;i++)
  84. DelayMs(100); //延时有助于稳定
  85. LED=1;
  86. ReportLater=0; //上报延时清零
  87. reportFlag = 0;//上报标识清零
  88. }
  89. }
  90. }
  91. }
 资料下载地址

https://pan.baidu.com/s/1QhR-6MoeNlXZsQ84CY4Bbg?pwd=8888

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/763564
推荐阅读
相关标签
  

闽ICP备14008679号