设计要求
课题提出的在智能家居以及智能手机广泛普及的大背景之下,以时下相当流行的智能家居作为切入点,提出一种基于GSM智能手机的具有远程监视和远程控制功能的智能家用电器开关控制系统。
基于GSM手机网络平台的家居控制系统,具体要求如下:
• 以GSM手机网络为平台,远程查询四路家用电器的开关信息。
• 用户电话查询,系统通过短信将家用电器的开关信息发送给用户终端。
• 用户可以通过发送短信方式,控制四路家用电器的开和关状态。
• 家中的四路家电用集中控制方式,在无远程控制时,构成集中控制系统,可以利用安卓手机,实现遥控开和关的功能。
• 开关的控制用继电器控制,继电器电流10A。
设计流程图
设计方案
电源上:采用的海凌科HLK-10M05超小型系列模块电使使用家用220V电转换为V直流电,后级电路采用UTC(友顺)3.3V LDO进行降压为单片机和继电器提供工作电压。
主控上:选择STM32LO53C8T6单片机3个UART满足系统设计需求,其它多余的口,扩展其他功能。
主控模块系统实物示意图
GSM模块系统实物示意图
GSM模上:选择SIM900A,需使用4G手机卡;选择这个模块主要原因还是因为支持4G手机卡且更方便。
继电器模块上:选择某宝四路继电器,选择低电平触发。
继电器模块
按键开关输入设计:使用轻触式按键开关 12*12mm 圆形微动开关,买回来自己设计电路板自己焊接。
按键实物图
设计方案图
程序设计
系统初始化包括:GPIO的初始化、串口初始化等。
初始化完成后进入模组通讯程序,紧接着进行离线按键的处理程序;如果系统接受到短信和电话,则进行短信和电话数据处理程序。
系统总体流程图
第一步:使用STM32CubeMX初始化代码程序。赋予配置各个GPIO口来满足功能需求配置。
其次选择合适的时钟频率,选择内部时钟频率16MHz。
单片机初始化配置引脚图
这是我理解的串口发生函数。
串口具体实现的具体流程是当 USART1 接受到电脑发送过来的调试信息,进入串口 1 中 断,等待数据发送结束,单片机将接受到的数据通过串口 2 发给 GSM 模组。
模组将数据通过串口 2 发送单片机后单片机将数据转发给电脑,实现了电脑对模组进行 AT 指令调试,也方便了后期AT编写的调试过程。
这是我AT指令发生函数。
上两个程序实现实现了单片机和模组之间高效的AT指令控制,同时电脑端也能接受到模组返回的调试信息。
设计的模块信息判别程序中包括、短信电话数据处理程序、短信通讯识别程序、短信发送程序。
实现就是调用上面个函数,提供封装的uint8_t Send_Cmd(uint8_t *Cmd,uint8_t Len,char *recdata)执行的。
模块信息判别程序流程图
该子程序首先是对 GSM 模块发送过来的 AT 命令进行解析,当电话打入 GSM 模块时, 模组会通过 AT 指令返回单片机“RING”字符,当单片机接受到该字符等待 5 秒挂断来拨电话后,读取系统状态将系统信息通过短信发送到预设的手机上;当接受收到的指令不是电话时,单片机检测 GSM 模块是否接受到了短信,检测到“+CMTI: "SM",XXX”字符时则读取该位置的短信信息。
同时识别短信中是否存在设置的指令如接收到“查询”指令短信时,则读取系统状态将系统信息通过短信发送到预设的手机上;如不是“查询”短信时候,则检测其他指令,如:检测到“插座全部打开”指令时,则打开全部继电器。
控制指令
支持的指令如下:
注:指定用户接受短信。
实物演示
3V直流电示意图
电路设计欣赏
电源板按键-原理图
主控通讯板-原理图