羌丹丹,龔瑜
(南通市生產(chǎn)力促進(jìn)中心,江蘇南通,226019)
隨著單片機(jī)技術(shù)、Wi-Fi通信技術(shù)和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,家電的智能遠(yuǎn)程控制需求日益明顯[1-5]。林玩杰[6]等人設(shè)計(jì)了一款A(yù)ndroid智能手機(jī)控制的智能家居系統(tǒng),采用STM32F103作為系統(tǒng)主處理器,通過(guò)I/O口控制燈的開(kāi)和關(guān)。測(cè)試結(jié)果表明:用戶通過(guò)手機(jī)客戶端APP連接Wi-Fi便可以遠(yuǎn)程監(jiān)控家居情況,實(shí)現(xiàn)對(duì)家用燈光控制、環(huán)境檢測(cè)以及視頻監(jiān)控等功能。陳國(guó)童[7]等人基于Wi-Fi通信技術(shù),利用ESP8266串口Wi-Fi模塊與STM32微處理進(jìn)行通信連接,并與Android手機(jī)進(jìn)行聯(lián)網(wǎng),通過(guò)手機(jī)APP實(shí)現(xiàn)對(duì)家居的智能控制。池雪艷[8]采用單片機(jī)完成了無(wú)線智能家居環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì),以STM32芯片為核心控制器,Windows PC端作為控制終端,單片機(jī)通過(guò)串口連接Wi-Fi網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)采集。
本設(shè)計(jì)提出一種基于單片機(jī)和Wi-Fi技術(shù)的家電遠(yuǎn)程控制系統(tǒng),用戶可以通過(guò)手機(jī)APP Tlink物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)遠(yuǎn)程控制家電的開(kāi)關(guān)。
系統(tǒng)主要是由硬件與軟件兩部分構(gòu)成,硬件部分包括51單片機(jī)STC89C52RC、Wi-Fi芯片ESP8266、降壓芯片AMS1117、電源等,軟件部分包括單片機(jī)控制程序和手機(jī)APP Tlink上鏈接協(xié)議的設(shè)置,以及設(shè)備管理等。系統(tǒng)整體設(shè)計(jì)架構(gòu)如圖1所示。單片機(jī)和手機(jī)終端APP是系統(tǒng)的控制核心。
圖1 系統(tǒng)整體設(shè)計(jì)架構(gòu)
STC89C52RC單片機(jī)作為微處理器,是本設(shè)計(jì)的控制核心。硬件電路部分主要由五部分構(gòu)成:?jiǎn)纹瑱C(jī)電路、Wi-Fi電路、繼電器電路、按鍵電路和外部存儲(chǔ)器電路等,如圖2所示。
圖2 硬件電路構(gòu)成框圖
(1)時(shí)鐘電路
Wi-Fi模塊ESP8266和單片機(jī)通過(guò)串口進(jìn)行通信,51單片機(jī)使用的晶振頻率通常選12MHz,而進(jìn)行通信時(shí),一般選擇11.0592MHz,12MHz晶振配置9600波特率時(shí)會(huì)產(chǎn)生一定的誤差。搭建如圖3所示的時(shí)鐘電路,可以為單片機(jī)產(chǎn)生穩(wěn)定的工作時(shí)鐘。
圖3 時(shí)鐘電路圖
(2)復(fù)位電路
單片機(jī)復(fù)位采用硬件復(fù)位,RESET直接接到單片機(jī)的復(fù)位引腳RST,將10UF的電容接入,同時(shí)接入大小為10K的電阻,系統(tǒng)所用的單片機(jī)在5V電壓下工作,則充電到電壓的0.7倍即3.5V,其所需要的時(shí)間為10k*10UF= 0.1us。硬件復(fù)位電路圖如圖4所示。
圖4 復(fù)位電路圖
(3)STC89C52RC單片機(jī)電路
STC89C52RC單片機(jī)電路如圖5所示,加上時(shí)鐘電路和復(fù)位電路就構(gòu)成了單片機(jī)最小系統(tǒng)。
圖5 STC89C52RC單片機(jī)電路
(1)穩(wěn)壓電路
STC89C52RC單片機(jī)的工作電壓是3.3V ~5.5V,其通常供電電壓是5V,ESP8266供電電壓是3.3V,構(gòu)建穩(wěn)壓電路尤為重要。穩(wěn)壓電路圖如圖6所示。
圖6 穩(wěn)壓電路
(2)ESP8266電路
安可信公司的配有Wi-Fi模塊的ESP8266,其搭載的電路如圖7所示,TX和RX直接和單片機(jī)串口對(duì)接,電源為3.3V,EN腳為使能腳,拉低后單片機(jī)復(fù)位。
圖7 ESP8266電路
由于繼電器的工作電流一般為50 ~70mA,而51系列單片機(jī)的I/O口輸出電流一般只有幾百u(mài)A,須采用電流放大來(lái)解決此問(wèn)題。繼電器電路如圖8所示。
圖8 繼電器電路
單片機(jī)上電后首先會(huì)進(jìn)行定時(shí)器、串口、I2C等初始化,設(shè)置好WIFI波特率9600bps,然后單片機(jī)會(huì)發(fā)送AT指令控制ESP8266進(jìn)行Wi-Fi聯(lián)網(wǎng),此過(guò)程中添加看門(mén)狗功能,Wi-Fi連接不上時(shí)會(huì)自動(dòng)重啟,直至連接上Wi-Fi網(wǎng)絡(luò);WIFI網(wǎng)絡(luò)連接上后會(huì)通過(guò)TCP連接服務(wù)器公網(wǎng)IP,和服務(wù)器端建立TCP連接后就可以相互進(jìn)行通信了。與服務(wù)器端建立通信后,單片機(jī)會(huì)讀取外部存儲(chǔ)器中的值,并對(duì)繼電器進(jìn)行相應(yīng)的操作。
設(shè)置ESP8266的波特率為9600bps,使之與單片機(jī)的串口波特率一致。通過(guò)AT指令來(lái)配置其波特率:AT+UART=9600,8,1,0,0,波特率 9600,數(shù)據(jù)位 8,停止位 1,校驗(yàn)位0。ESP8266的驅(qū)動(dòng)程序如下:
單片機(jī)和AT24C02直接是通過(guò)I2C進(jìn)行通信。由于單片機(jī)I2C硬件接口,所以用軟件來(lái)模擬I2C通信。利用單片機(jī)的兩根PIN腳,分別作為SCL、SDA,通過(guò)模擬I2C協(xié)議和AT24C02進(jìn)行通信,以此存儲(chǔ)和讀取信息。
按照硬件電路設(shè)計(jì)搭建實(shí)物,并進(jìn)行硬件檢查測(cè)試。硬件測(cè)試無(wú)誤后,采用Tlink物聯(lián)網(wǎng)平臺(tái)模擬家電信號(hào)對(duì)系統(tǒng)功能進(jìn)行測(cè)試。通過(guò)手機(jī)APP Tlink登錄到平臺(tái)賬號(hào),分別測(cè)試三路開(kāi)關(guān)的閉合與斷開(kāi),打開(kāi)其中兩路,可以觀察繼電器閉合的響聲,對(duì)應(yīng)的指示燈也已經(jīng)點(diǎn)亮,測(cè)試結(jié)果符合預(yù)期。系統(tǒng)硬件實(shí)物與測(cè)試過(guò)程如圖9所示。
圖9 系統(tǒng)硬件實(shí)物與測(cè)試過(guò)程
本文提出基于單片機(jī)和Wi-Fi技術(shù)的家電遠(yuǎn)程控制系統(tǒng),確定了系統(tǒng)整體設(shè)計(jì)方案,分別對(duì)系統(tǒng)的硬件和軟件部分進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn)。搭建的家電遠(yuǎn)程控制系統(tǒng)經(jīng)過(guò)Tlink物聯(lián)網(wǎng)平臺(tái)測(cè)試,信號(hào)反應(yīng)無(wú)誤,滿足了人們對(duì)智能家電的部分使用需求。