
基于单片机的插座定时系统设计.docx
8页基于单片机的插座定时系统设计 朱俊涛 郭莉莉 张展 李璇摘要:针对传统插座功能简单、不能定时的问题,设计了一款基于STM32单片机的插座定时系统该插座定时系统具有短路保护、远程控制等功能,通过搭建消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)通信服务器,配合小程序实现了远程控制,也可通过实体按键实现插座的定时功能,最后将插座通电状态显示在OLED屏幕上关键词:定时插座;STM32;ESP8266;MQTT1 系统总体描述本系统以STM32F103C8T6为主控芯片,使用ESP8266模块连接MQTT服务器,实现插座系统和外界通信与控制通过按键模块及OLED显示屏,实现通过按键和显示屏完成插座的定时设置交流电控制部分使用继电器完成,采用降压模块连接220 V交流电源供电直接使用STM32模块上的RTC晶振来定时为使用时更灵活,MQTT通信部分使用自建服务器系统结构框图如图1所示2 硬件设计2.1 单片机主控模块本设计使用的是STM32F103C8T6单片机STM32F103系列单片机是ST公司使用ARM公司设计的Cortex-M3架构生产的32 bit单片机,其更接近计算机中的CPU,具有运行速度较快,稳定性强且价格较低等特点[1]。
2.2 电源模块交流转直流电源模块采用SM-PLG06A-4 W型开关电源模块,该模块支持85~264 V交流输入,输出直流电压5 V、电流800 mA,最高输出功率4 W足以带动插座定时系统的全部组件本设计在电源电路中添加了多级滤波电容,提高了电源的稳定性在输入端火线处添加5 A/AC250 V的保险丝,作用是在电源模块出现问题时及时熔断保护电路使用AMS1117稳压器,将5 V直流稳压至3.3 V直流并为单片机供电2.3 显示模块显示模块使用0.96寸12864点阵的OLED显示屏,SCL为IIC通信中的时钟管脚,而SDA则是IIC通信中的数据管脚使用IIC通信协议,STM32仅需两根线就能控制其显示2.4 继电器模块参考文献[2]设计了继电器驱动电路STM32通过PB1引腳控制继电器,输出高电平时继电器导通,低电平时继电器断开,从而实现弱电控制强电在继电器处并联的发光二极管可以起到显示继电器状态的作用[3],继电器接通则LED发光,反之LED熄灭2.5 Wi-Fi模块插座定时系统是通过ESP8266 Wi-Fi模块输出高低电平给STM32,STM32收到高电平时接通继电器,反之继电器断开。
2.6 按键模块使用4个独立按键与STM32单片机的IO口PA0~PA3相连,按键为低电平触发,当按下与单片机IO口相连的按键时该IO口将接地,即向单片机输入低电平信号通过编程实现定时时间设定的功能按下一次按键K1则定时1 min,类似地按键K2是定时10 min,按键K3对应定时60 min,定时方式为累加按键K4的作用是将定时时间清零插座定时系统处于定时状态且定时时间不为0时将接通继电器系统电路原理图如图2所示3 软件设计3.1 服务器端搭建Wi-Fi模块和小程序与服务器通信的方式采用了MQTT协议,它是客户端与服务器之间基于消息发布及订阅的传输协议本设计中服务器端安装的操作系统为CentOS7.6,为便于调试,在服务器安全组中放行全部端口小程序连接MQTT服务器需要通过Web Socket协议首先需要搭建Nginx环境,接着安装EMQ公司的MQTT软件安装完成后设置Nginx代理MQTT的Web Socket的端口号8083,至此MQTT服务器搭建完成3.2 主程序设计在STM32单片机中首先运行OLED显示屏和定时器的初始化,初始化完成后OLED屏幕会点亮接着进入循环,先扫描独立按键,如果有按键按下则进行相应的操作,例如开启定时;接着判断ESP8266 Wi-Fi模块输出的电平,高电平接通继电器,低电平断开继电器。
Wi-Fi模块输出的电平判断在按键扫描之后进行,因此通过按键定时且定时时间不为0时不能通过Wi-Fi模块关闭继电器,仅在按键定时时间为0时可通过Wi-Fi模块远程控制OLED显示通电状态,若使用按键定时,还会显示定时时间,最后返回按键扫描循环系统流程图如图3所示3.3 小程序设计本系统中小程序的作用接近于一个MQTT的客户端,简化了收发消息的过程正因如此,只需记下相应的消息模板和订阅的主题,即可使用任何能收发MQTT消息的程序实现定时插座远程控制,包括但不限于PC端、Android端、iOS端[4]3.4 Wi-Fi模块程序设计ESP8266 Wi-Fi模块中运行的程序流程如下:在接通电源后先进行初始化初始完成后扫描附近的Wi-Fi,在发现已存储的Wi-Fi后建立连接,如果未发现已存储的Wi-Fi,延时1 s后重复连接Wi-Fi的步骤Wi-Fi连接完成后与MQTT服务器建立连接,如果连接失败,重复尝试,MQTT服务器连接成功后订阅MQTT主题4 整体调试将插座定时系统接通电源,待Wi-Fi模块连接上Wi-Fi后开始调试先按下K1,OLED屏幕显示定时1 min,继电器接通,负载LED灯点亮。
1 min后继电器断开,负载LED灯熄灭在小程序端点击接通电源按钮,负载LED灯点亮,小程序端的电源图标从空心变成实心点击关闭电源按钮,负载LED灯熄灭,小程序端的电源图标从实心变成空心在小程序端选择定时1 min,其效果同点击接通电源按钮,1 min后效果同点击关闭电源按钮至此,系统整体调试成功设计的插座定时系统实物图如图4所示5 结语本插座定时系统采用STM32F103C8T6,单片机通过编程控制继电器模块实现控制插座的供电通过按键设置定时时间,也可通过小程序远程调整插座电源状态或设置定时时间,并用OLED屏幕显示插座电源状态和定时时间等信息经过调试,插座定时系统运行正常,具有操作简单的特点[参考文献][1] MA M,HUANG B,WANG B,et al.Development of an energy-efficient smart socket based on STM32F103[J]. Applied Sciences,2018,8(11):2276-2290.[2] 林炳炎,廖华平,杨坚,等.基于智能插座的家居系统[J].微型机与应用,2014,33(22):27-29.[3] 蒋宏杰.智能家居控制系统软硬件设计与实现[D].昆明:云南大学,2017.[4] 顾新萍.基于小程序的智能家居控制系统设计与实现[D].青岛:青岛大学,2019. -全文完-。
