朱俊濤 郭莉莉 張展 李璇
摘要:針對(duì)傳統(tǒng)插座功能簡(jiǎn)單、不能定時(shí)的問(wèn)題,設(shè)計(jì)了一款基于STM32單片機(jī)的插座定時(shí)系統(tǒng)。該插座定時(shí)系統(tǒng)具有短路保護(hù)、遠(yuǎn)程控制等功能,通過(guò)搭建消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)通信服務(wù)器,配合微信小程序?qū)崿F(xiàn)了遠(yuǎn)程控制,也可通過(guò)實(shí)體按鍵實(shí)現(xiàn)插座的定時(shí)功能,最后將插座通電狀態(tài)顯示在OLED屏幕上。
關(guān)鍵詞:定時(shí)插座;STM32;ESP8266;MQTT
1 ? ?系統(tǒng)總體描述
本系統(tǒng)以STM32F103C8T6為主控芯片,使用ESP8266模塊連接MQTT服務(wù)器,實(shí)現(xiàn)插座系統(tǒng)和外界通信與控制。通過(guò)按鍵模塊及OLED顯示屏,實(shí)現(xiàn)通過(guò)按鍵和顯示屏完成插座的定時(shí)設(shè)置。交流電控制部分使用繼電器完成,采用降壓模塊連接220 V交流電源供電。直接使用STM32模塊上的RTC晶振來(lái)定時(shí)。為使用時(shí)更靈活,MQTT通信部分使用自建服務(wù)器。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
2 ? ?硬件設(shè)計(jì)
2.1 ? ?單片機(jī)主控模塊
本設(shè)計(jì)使用的是STM32F103C8T6單片機(jī)。STM32F103系列單片機(jī)是ST公司使用ARM公司設(shè)計(jì)的Cortex-M3架構(gòu)生產(chǎn)的32 bit單片機(jī),其更接近計(jì)算機(jī)中的CPU,具有運(yùn)行速度較快,穩(wěn)定性強(qiáng)且價(jià)格較低等特點(diǎn)[1]。
2.2 ? ?電源模塊
交流轉(zhuǎn)直流電源模塊采用SM-PLG06A-4 W型開關(guān)電源模塊,該模塊支持85~264 V交流輸入,輸出直流電壓5 V、電流800 mA,最高輸出功率4 W足以帶動(dòng)插座定時(shí)系統(tǒng)的全部組件。本設(shè)計(jì)在電源電路中添加了多級(jí)濾波電容,提高了電源的穩(wěn)定性。在輸入端火線處添加5 A/AC250 V的保險(xiǎn)絲,作用是在電源模塊出現(xiàn)問(wèn)題時(shí)及時(shí)熔斷保護(hù)電路。使用AMS1117穩(wěn)壓器,將5 V直流穩(wěn)壓至3.3 V直流并為單片機(jī)供電。
2.3 ? ?顯示模塊
顯示模塊使用0.96寸128×64點(diǎn)陣的OLED顯示屏,SCL為IIC通信中的時(shí)鐘管腳,而SDA則是IIC通信中的數(shù)據(jù)管腳。使用IIC通信協(xié)議,STM32僅需兩根線就能控制其顯示。
2.4 ? ?繼電器模塊
參考文獻(xiàn)[2]設(shè)計(jì)了繼電器驅(qū)動(dòng)電路。STM32通過(guò)PB1引腳控制繼電器,輸出高電平時(shí)繼電器導(dǎo)通,低電平時(shí)繼電器斷開,從而實(shí)現(xiàn)弱電控制強(qiáng)電。在繼電器處并聯(lián)的發(fā)光二極管可以起到顯示繼電器狀態(tài)的作用[3],繼電器接通則LED發(fā)光,反之LED熄滅。
2.5 ? ?Wi-Fi模塊
插座定時(shí)系統(tǒng)是通過(guò)ESP8266 Wi-Fi模塊輸出高低電平給STM32,STM32收到高電平時(shí)接通繼電器,反之繼電器斷開。
2.6 ? ?按鍵模塊
使用4個(gè)獨(dú)立按鍵與STM32單片機(jī)的IO口PA0~PA3相連,按鍵為低電平觸發(fā),當(dāng)按下與單片機(jī)IO口相連的按鍵時(shí)該IO口將接地,即向單片機(jī)輸入低電平信號(hào)。通過(guò)編程實(shí)現(xiàn)定時(shí)時(shí)間設(shè)定的功能。
按下一次按鍵K1則定時(shí)1 min,類似地按鍵K2是定時(shí)10 min,按鍵K3對(duì)應(yīng)定時(shí)60 min,定時(shí)方式為累加。按鍵K4的作用是將定時(shí)時(shí)間清零。插座定時(shí)系統(tǒng)處于定時(shí)狀態(tài)且定時(shí)時(shí)間不為0時(shí)將接通繼電器。系統(tǒng)電路原理圖如圖2所示。
3 ? ?軟件設(shè)計(jì)
3.1 ? ?服務(wù)器端搭建
Wi-Fi模塊和小程序與服務(wù)器通信的方式采用了MQTT協(xié)議,它是客戶端與服務(wù)器之間基于消息發(fā)布及訂閱的傳輸協(xié)議。
本設(shè)計(jì)中服務(wù)器端安裝的操作系統(tǒng)為CentOS7.6,為便于調(diào)試,在服務(wù)器安全組中放行全部端口。微信小程序連接MQTT服務(wù)器需要通過(guò)Web Socket協(xié)議。首先需要搭建Nginx環(huán)境,接著安裝EMQ公司的MQTT軟件。安裝完成后設(shè)置Nginx代理MQTT的Web Socket的端口號(hào)8083,至此MQTT服務(wù)器搭建完成。
3.2 ? ?主程序設(shè)計(jì)
在STM32單片機(jī)中首先運(yùn)行OLED顯示屏和定時(shí)器的初始化,初始化完成后OLED屏幕會(huì)點(diǎn)亮。接著進(jìn)入循環(huán),先掃描獨(dú)立按鍵,如果有按鍵按下則進(jìn)行相應(yīng)的操作,例如開啟定時(shí);接著判斷ESP8266 Wi-Fi模塊輸出的電平,高電平接通繼電器,低電平斷開繼電器。Wi-Fi模塊輸出的電平判斷在按鍵掃描之后進(jìn)行,因此通過(guò)按鍵定時(shí)且定時(shí)時(shí)間不為0時(shí)不能通過(guò)Wi-Fi模塊關(guān)閉繼電器,僅在按鍵定時(shí)時(shí)間為0時(shí)可通過(guò)Wi-Fi模塊遠(yuǎn)程控制。OLED顯示通電狀態(tài),若使用按鍵定時(shí),還會(huì)顯示定時(shí)時(shí)間,最后返回按鍵掃描循環(huán)。系統(tǒng)流程圖如圖3所示。
3.3 ? ?微信小程序設(shè)計(jì)
本系統(tǒng)中微信小程序的作用接近于一個(gè)MQTT的客戶端,簡(jiǎn)化了收發(fā)消息的過(guò)程。正因如此,只需記下相應(yīng)的消息模板和訂閱的主題,即可使用任何能收發(fā)MQTT消息的程序?qū)崿F(xiàn)定時(shí)插座遠(yuǎn)程控制,包括但不限于PC端、Android端、iOS端[4]。
3.4 ? ?Wi-Fi模塊程序設(shè)計(jì)
ESP8266 Wi-Fi模塊中運(yùn)行的程序流程如下:在接通電源后先進(jìn)行初始化。初始完成后掃描附近的Wi-Fi,在發(fā)現(xiàn)已存儲(chǔ)的Wi-Fi后建立連接,如果未發(fā)現(xiàn)已存儲(chǔ)的Wi-Fi,延時(shí)1 s后重復(fù)連接Wi-Fi的步驟。Wi-Fi連接完成后與MQTT服務(wù)器建立連接,如果連接失敗,重復(fù)嘗試,MQTT服務(wù)器連接成功后訂閱MQTT主題。
4 ? ?整體調(diào)試
將插座定時(shí)系統(tǒng)接通電源,待Wi-Fi模塊連接上Wi-Fi后開始調(diào)試。先按下K1,OLED屏幕顯示定時(shí)1 min,繼電器接通,負(fù)載LED燈點(diǎn)亮。1 min后繼電器斷開,負(fù)載LED燈熄滅。在微信小程序端點(diǎn)擊接通電源按鈕,負(fù)載LED燈點(diǎn)亮,小程序端的電源圖標(biāo)從空心變成實(shí)心。點(diǎn)擊關(guān)閉電源按鈕,負(fù)載LED燈熄滅,小程序端的電源圖標(biāo)從實(shí)心變成空心。在小程序端選擇定時(shí)1 min,其效果同點(diǎn)擊接通電源按鈕,1 min后效果同點(diǎn)擊關(guān)閉電源按鈕。至此,系統(tǒng)整體調(diào)試成功。
設(shè)計(jì)的插座定時(shí)系統(tǒng)實(shí)物圖如圖4所示。
5 ? ?結(jié)語(yǔ)
本插座定時(shí)系統(tǒng)采用STM32F103C8T6,單片機(jī)通過(guò)編程控制繼電器模塊實(shí)現(xiàn)控制插座的供電。通過(guò)按鍵設(shè)置定時(shí)時(shí)間,也可通過(guò)微信小程序遠(yuǎn)程調(diào)整插座電源狀態(tài)或設(shè)置定時(shí)時(shí)間,并用OLED屏幕顯示插座電源狀態(tài)和定時(shí)時(shí)間等信息。經(jīng)過(guò)調(diào)試,插座定時(shí)系統(tǒng)運(yùn)行正常,具有操作簡(jiǎn)單的特點(diǎn)。
[參考文獻(xiàn)]
[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] 林炳炎,廖華平,楊堅(jiān),等.基于智能插座的家居系統(tǒng)[J].微型機(jī)與應(yīng)用,2014,33(22):27-29.
[3] 蔣宏杰.智能家居控制系統(tǒng)軟硬件設(shè)計(jì)與實(shí)現(xiàn)[D].昆明:云南大學(xué),2017.
[4] 顧新萍.基于微信小程序的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].青島:青島大學(xué),2019.
收稿日期:2020-07-06
作者簡(jiǎn)介:朱俊濤(1997—),男,江蘇蘇州人,研究方向:信號(hào)處理、單片機(jī)技術(shù)。
通信作者:郭莉莉(1986—),女,江蘇邳州人,博士研究生,講師,研究方向:信號(hào)處理、協(xié)作通信。