找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6539|回复: 12
收起左侧

STM32+GSM+传感器智能家居控制系统设计源码

  [复制链接]
ID:271287 发表于 2018-1-10 11:14 | 显示全部楼层 |阅读模式
本设计基于STM32和GSM做的智能家居系统,通过手机短信可控制家电开关,查询各个模块工作状态。当烟雾、温度过高便会进行蜂鸣器报警,并给主人发送报警短信
硬件接口:
1、GSM模块:
TX-->PA9
RX-->PA10
VCC-->5V
GND-->GND

2、烟雾传感器
VCC-->5V
GND-->GND
DO->PA4

3、温湿度传感器
VCC-->3.3V
GND-->GND
DATA-->PA1

4、蜂鸣器
VCC-->3.3V
GND-->GND
I/O-->PA11

5、人体红外模块
VCC-->5V
GND-->GND
OUT-->PA0

6、继电器模块
VCC-->3.3V
GND-->GND
IN-->PB6

7、运行指示灯
GND-->GND
VCC-->PB9


使用说明:
1、上电之后默认使用电话号码15638869356,但是在上电之前通过将PB8口置高改变电话为18134414310。
2、上电后模块需要进行初始化工作(GSM与单片机),初始化完成后运行指示灯会闪烁频率2HZ(此过程需要20s左右)。如果长时间后初始化仍没有完成
需要检查线路连接(GSM与单片机),以及GSM模块供电是否充足(可以拨打模块电话是否能打的通,能打通说明模块正常,打不通需要检查模块供电)
3、程序正常运行后(运行指示灯间歇闪烁),初次上电模块会给设定手机号发送正常状态。手机接收到模块打来的短信表明通信正常,没收到短信需要进行检查。
   收到短信后就可以通过手机发送短信对其进行控制。
4、初次上电后默认是“撤防”状态,此模式下人员活动不会产生报警,但是烟雾过高,温度过高(默认40度)则会报警。
5、如果主任外出需要人员活动报警的话发送begin使其进入"设防"状态,设置成功模块会返回 BEGIN OK!,如需撤防发送 end 即可,撤防成功模块返回 END OK!
6、发送 changexx(其中xx为电话号码)即可改变短信接收的电话。改变成功后模块返回 Change Phone OK!
7、发送 onled 可以打开与继电器相连的家电,打开成功返回 LED ON OK!
8、发送 offled 可以关闭与继电器相连的家电,关闭成功返回 LED OFF OK!
9、发送 setxx(xx为温度<100)可设置报警温度,设置成功返回 Set Temperature Alarm  Data OK!
10、发送 hsxx(xx为电话号)可设置方的电话号之后模块每隔20s向对方拨打一次电话,设置成功模块返回 HS Open OK!
11、发送 close 可关闭“呼死”功能。
12、发送 status 可查看目前各个报警状态正常为 Normol 温度烟雾过高显示 High ,人员报警显示 Warring。发送成功模块返回当前状态值。

单片机源程序如下:
  1. /**********************************************************************************
  2. * 工程名  :发送TEXT文本短信
  3. * 描述    :通过STM32开发板控制模块发送TEXT文本短信
  4. * 实验平台:STM32F10X
  5. * 库版本  :
  6. * 作者    :泥人通信模块开发平台团队

  7. * 硬件连接说明
  8.          使用单片串口2与GPRS模块通信  注:使用串口2可以避免下载和通信不会冲突
  9.          STM32      GPRS模块
  10.          PA3 (RXD2)->RXD
  11.          PA2 (TXD2)->TXD
  12.          GND              ->GND
  13.          PB9       ->PWR
  14.    PWR:这个引脚是控制模块启动,V1.2版本已经有自启动电路所以不必接,老版本可以通过程序
  15.         控制这个引脚让模块开机。当然也可以使用按键手动开机。

  16. * 软件功能说明
  17.    板子上电后运行指示灯RUNING_LED会以一秒的频率闪烁
  18.          修改短信中心号、接收方手机号和短信内容,编译成功后下载到单片机里面,就可以实现发
  19.          送一条文本短信
  20. **********************************************************************************/

  21. #include "stm32f10x.h"
  22. #include "stm32f10x_rcc.h"
  23. #include "usart.h"
  24. #include "hardware.h"
  25. #include "SysTick.h"
  26. #include "timer.h"
  27. #include "string.h"
  28. #include "gsm.h"


  29. /*************  外部函数和变量声明*****************/


  30. u8 SC_Flag=0;    //监控标志开关 0:关闭监控  1:打开监控  默认0
  31. u8 RH_D[5];      //保存温湿度
  32. u8 S_F=0,T_F=0,P_F=0,B_F=0;   //设置人员、烟雾、温度、蜂鸣器标志位
  33. u16 M_Time=100;     //报警计时
  34. u8 Alarm=0;      //主人回应标志,0打开报警,1关闭报警,默认0
  35. u8 Alarm_T=40;   //报警温度默认40C
  36. u8 HS=0;         //呼死功能开关标志  0:关  1:开  默认0


  37. void Control_APP(void);
  38. //static unsigned char *content="Hello kitty";//发送短信内容
  39. char Message[]="Temperature : Normol\r\nSmoke           : Normol\r\nPeople           : Normol \
  40. \r\nLED                : OFF";//发送短信内容
  41. /*******************************************************************************
  42. * 函数名 : main
  43. * 描述   : 主函数
  44. * 输入   :
  45. * 输出   :
  46. * 返回   :
  47. * 注意   : 串口2负责与MG323模块通信,串口1用于串口调试,可以避免在下载程序时数据
  48.                                          还发送到模块
  49. *******************************************************************************/
  50. int main(void)
  51. {
  52.    
  53.         SysTick_Init_Config();
  54.         GPIO_Config();       
  55.         USART2_Init_Config(115200);
  56.     USART1_Init_Config(9600);           
  57.     UART1_SendString("GPRS模块短信测试程序\r\n");
  58.         UART1_SendString("GPRS模块在注册网络\r\n");
  59.         Wait_CREG();    //查询等待模块注册成功
  60.     UART1_SendString("GPRS模块注册成功\r\n");
  61.         UART1_SendString("GPRS模块短信模式设置\r\n");
  62.         Set_Text_Mode();//设置短信为TEXT模式
  63.     UART1_SendString("设置成功,短信模式:TEXT\r\n");
  64. //     memcpy(Message+13," High  ",7);
  65. //     memcpy(Message+39," High  ",7);
  66. //     memcpy(Message+66," Warring",8);
  67. //     memcpy(Message+96," ON    ",7);
  68.     Change_Phone();
  69.     Send_Text_Sms(Message);//发送一条短消息
  70.     delay_ms(1000);
  71.     delay_ms(1000);
  72.     delay_ms(1000);
  73.     UART1_SendString("初始化完成\r\n");
  74.     Timer2_Init_Config(2000,36000-1);
  75.     TIM3_Init(250,36000-1);
  76.         while(1)
  77.         {
  78.            Check_New_Message();
  79.        if(SC_Flag==1)
  80.        {
  81.             Control_APP();
  82.        }
  83.         }
  84. }

  85. void Control_APP(void)
  86. {
  87.     if(Smoke_IO==0)
  88.     {
  89.         S_F=1;
  90.         memcpy(Message+39," High  ",7);
  91.     }
  92.     else
  93.     {
  94.         S_F=0;
  95.         memcpy(Message+39," Normol",7);
  96.     }
  97.     if(IR_IO==1)
  98.     {
  99.         P_F=1;
  100.         memcpy(Message+66," Warring",8);
  101.     }
  102.     else
  103.     {
  104.         P_F=0;
  105.         memcpy(Message+66," Normol ",8);
  106.         
  107.     }
  108.     if(RH_D[2]>40)
  109.     {
  110.         T_F=1;
  111.         memcpy(Message+13," High  ",7);
  112.     }
  113.     else
  114.     {
  115.         T_F=0;
  116.         memcpy(Message+13," Normol",7);
  117.     }
  118. }

复制代码

所有资料51hei提供下载:
GSM智能家居.rar (314.29 KB, 下载次数: 286)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:197912 发表于 2018-1-16 16:02 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:86689 发表于 2018-4-19 21:09 | 显示全部楼层
真的很有帮助啊!谢谢你的分享·!!!
回复

使用道具 举报

ID:481306 发表于 2019-3-1 06:19 来自手机 | 显示全部楼层
非常不错,感谢分享。
回复

使用道具 举报

ID:487681 发表于 2019-3-9 23:59 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:366634 发表于 2019-5-25 23:38 | 显示全部楼层
我用900A没有反应,接收不到短信啊,是哪里有问题啊
回复

使用道具 举报

ID:575603 发表于 2019-7-4 18:43 | 显示全部楼层
按照硬件说明连接 收不到短信 运行指示灯也没有闪烁
回复

使用道具 举报

ID:548189 发表于 2019-12-23 16:31 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:670484 发表于 2019-12-23 21:50 | 显示全部楼层
很有帮助啊!谢谢分享
回复

使用道具 举报

ID:117433 发表于 2019-12-24 09:54 | 显示全部楼层
现在智能手机时代了,还用短信吗?
回复

使用道具 举报

ID:585845 发表于 2019-12-24 18:06 | 显示全部楼层
正在学这个很棒
回复

使用道具 举报

ID:585845 发表于 2019-12-24 18:22 | 显示全部楼层
好棒正在学习这个
回复

使用道具 举报

ID:664903 发表于 2019-12-25 16:16 | 显示全部楼层
好巧,我也在学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表