2本设计
2.1总体框架
电源的远程控制在电气自动化行业具有划时代的意义,它是智能家居,物联网发展的一个重要开端。智能远程电源控制器采用GSM模块作为GSM网络接入方式,用AT指令进行收发短信,通信。手机通过SIM卡介质将短信内容传送到基站,基站对应下发给对应的号码。主控芯片采用STC89C52单片机,通信模块主要用于接收从手机发出的操作指示,用来辨别接收到的短信指示并加以处理,进而通过由继电器等原件构成的周边电路完成对目标用电器电源的控制需求。
本系统的组成如图1所示,主要包含的硬件部分为SIM900A的通信模块,STC89C52单片机,以及继电器作为外设触发元件
本设计论题的主要任务是制作一个基于STC89C52单片机的智能远程电源控制器,主要要求分为以下两点:
①能够实现220V电压的输出;
②能够通过手机短信实时控制目标用电器电源的通断;
2.2设计原理
智能远程电源控制器是一个通过用户发送手机短信指令即可控制插排220V家用电压通断的电源控制器。手机短信通过基站传送至指定GSM通信模块中的SIM卡中,通信模块将接收到的短信信息转换成模块能识别的AT指令,STC89C52单片机作为主控芯片,对接收到的短信指令加以判断和处理,从而控制继电器的闭合或断开。
2.2.1继电器电路设计
单片机是弱电控制和输出的微处理器,一般工作电压选择在5V,驱动电流会在毫安级以下。针对本次课题为智能远程电源控制器以及日常家电的工作电压为220V,若要正常使用和控制,就必须添加一个衔接器件。这个衔接器件为继电器,继电器所起作用就是弱电控制强电。
基于单片机的智能远程电源控制器采用的继电器控制电路如图2所示,选用的继电器型号为SRD-05VDC-SL-C,查阅官网技术手册可知表示为额定电压为5V,线圈功率为0.36W的密封弹簧继电器。
图2中的三极管Q2是一个9012型号的PNP型三极管,起电流的放大和驱动作用。发射极E接在电源正极,集电极C接继电器线圈一端,基极串联一个2k电阻接单片机P1.4引脚。当单片机P1.4端口输出高电平时,9012PNP三极管处于反向偏置状态,三极管截止,发射极与集电极之间不导通,所以继电器不得电不动作,LED红灯相应的也会熄灭。当单片机P1.4端口输出低电平时,三极管的发射极对基极正向偏置,三极管处于饱和状态,发射极与集电极之间导通,继电器得电吸合,红灯也会相应亮起表示继电器处于工作状态警示用户。
图2 继电器电路
2.3方案设计
2.3.1通信模块选择
本次设计中的通信模块我采用了上海芯讯通科技的SIM900A,它是一个2频的GSM/GPRS模块,主要为中国大陆市场和印度市场而设,可支持GPRS multi-slot class 10/class 8(可选)以及GPRS编码格式CS-1,CS-2,CS-3和 CS-4。
SIM900A模块拥有EGSM 900MHz和DCS 1800MHz两个工作频段,而且它的尺寸大小仅有24mm x 24mm x 3mm,如果用户在实际应用方面对空间运作大小有要求的话,SIM900A基本能够满足用户的需求,例如数据传输系统,M2M等。
68个贴片焊盘引脚的物理接口足够保证模块和用户移动应用,同时,也为应用模块提供了完整的硬件接口。
·拥有行业标准的可编程的输入输出接口(GPIO)。
·调试串口和主串口能够协助用户顺利实现调试开发。
·用户操作的灵活性可以通过SPI显示接口和键盘来保证。
2.3.2通信接口
表2.1:串口引脚定义
名称 引脚 功能
串口 DTR 3 数据终端准备
RI 4 振铃检测
DCD 5 数据载波检测
DSR 6 数据设备准备
CTS 7 发送清除
RTS 8 发送请求
TXD 9 数据发送
RXD 10 数据接收
调试口 DBG_RXD 28 数据接收
DBG_TXD 27 数据发送
单片机和GSM模块通过UART连接传输信息。用于通讯方面和用于软件调试升级的接口分别为两个非对称的异步串行接口,由SIM900A模块所提供。模块是连接方式为传统的DCE-DTE (Data Terminal Equipment)的DCE (Data Communication Equipment)设备,下列信号线的连接可以展示出如何实现模块和用户机(DTE)之间的连接 (如下图所示)。
图3 模块通信接口
③中文转Unicode码
由于选择了PDU短信模式,为了能够使用中文来发出AT指令,就必须运用Unicode码。使用Unicode这个方案,是因为它能够给每种语言中的每个字符制定统一并且唯一的二进制编码。本来为了打破传统的字符编码方案的局限性就是Unicode的产生原因,正因这样,所以通过运用Unicode进行跨平台、跨语言的文本处理或转换就变得十分容易。在Unicode 编码中,占用一到四个字节的为utf-8,占用二或四个字节的为utf-16,占用四个字节的为utf-32,因此共有utf-8,utf-16,utf-32三种具体实现。Unicode码是从ASCII字元集中扩展开来的,最初,Unicode计划作为ASCII的补充,世界上存在的全部书写语言中可能用于电脑通讯的字元、象形文字或是其他符号,都能够通过Unicode得到表示,因为在严格的ASCII中,每7位元表示一个字元,或者电脑上普遍运用的每字元有8位元宽;而Unicode采用全16位元字元集,所以直至目前,出现了Unicode最终将代替ASCII的可能性。使用Unicode编码转换器即可得出图中中文转Unicode结果:开——5f00;关——5173。
④MCU与通信模块无法正常通信,指示灯不闪烁。
一般故障为当前信号不好,尝试移动天线或者元器件的位置即可解决。若是使用者在操作中遇到MCU无法通讯或通信模块出现异常等问题时,通过查阅硬件手册可以得知,建议客户端设置将DTR引脚开机默认置为低电平,等到能够正常进行AT通信时,使用AT+IPR固定模块波特率,问题就可以得到改善。
⑤蜂鸣器或继电器的驱动三极管为什么不选用npn型的(9013、8050),而选用pnp型的(9012、8550)呢?
因为所有的IO口在单片机刚上电的瞬间会产生一个短暂的高电平。若是选用pnp型的,则可以避免即使在程序上将IO口拉低,蜂鸣器或继电器也会响一小下或吸合一下这种情况的发生,因此选用pnp型而不选用npn型的。因为如果我想要控制蜂鸣器或继电器工作单片机的IO口要低电平时,这样选择就不会出现刚一通电就让蜂鸣器响或继电器吸合的情况,避免了不必要的麻烦。
2.5设计过程
先进行课题需求分析,搜集各种无线通信资料,选定器件,查阅技术手册,制定开发方案,进行原理图设计,系统软件设计(驱动和业务逻辑),电路焊接调试,系统联调,最后优化成品。
硬件流程:单片机和GSM模块通过UART,也就是通用异步收发传输器进行通讯。使用单片机的P3.0和P3.1 I/O口,与程序烧写口通用。
流程如图4所示:移动终端(手机)发出短信,传到运营商的基站,基站转发短信至GSM模块通信网络上,经过SIM卡介质的接收,存到模块上的SBUF上,再通过TXD通信线把短信发至单片机上。单片机再把这条内容存储到SBUF上,单片机对这条SBUF进行解析和逻辑判断,这就是程序的开或关执行动作指令。
图4 指令流程2.6 仿真与调试
2.6.1仿真
Proteus软件是我们目前单片机主流的仿真软件,它拥有丰富的的元器件供我们选择以及支持绝大部分的单片机拷入程序模拟实物结果。但由于Proteus中并没有GSM模块的通信库,所以只能进行按键控制电源开关以及继电器线圈吸合的位置的仿真。(仿真结果如下图)
图5 打开电源状态仿真结果2.6.1实物调试
实物调试主要为分别对系统的各个模块进行调试,主要目的是看能否正常工作以及有没有被焊坏的情况发生。首先要按照电路原理图对照实物核对是否一致,再用万用表测试电路各个部分有没有短路、断路情况发生。由于电源控制器的实际使用场景为220V的高压市电,所以要特别小心,最后还要用测电笔测试有没有漏电的情况发生。
2.7成果展示
当所有的调试与检查完成后,还要对本设计的功能能否正常实现进行测试。(如下图6)首先单片机入口电源通过usb连接移动充电宝,打开电源开关,可以看到黄灯通讯灯不断闪烁,表示在搜寻基站信号,相当于硬件初始化,当搜寻信号成功后黄灯会熄灭。插上继电器入口电源,分别短信发送“开”和“关”指令后插排指示灯按照指令会进行开和关的操作,以及红灯会有相应的提示,表示实物能够按照设想达到相应的功能,测试到此结束。
图6 实物图
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。