王琰 郭燕
摘要:針對物聯(lián)網(wǎng)家居行業(yè)日新月異的市場需求,文章提出了一種基于MCU的智能家居控制系統(tǒng)方案。該系統(tǒng)以AT89S51單片機為控制核心,通過與WiFi芯片ESP8266的通訊,采集并發(fā)送傳感器信號、接收并執(zhí)行手機APP的指令,實現(xiàn)家用電器開關的無線遠程控制。
關鍵詞:AT89S51;智能家居;ESP8266;手機APP
隨著物聯(lián)網(wǎng)及無線網(wǎng)絡技術的發(fā)展,無線數(shù)據(jù)采集、傳輸因準確、快速、可靠,系統(tǒng)開發(fā)成本低和周期短,越來越成為研究熱點[1]。本文介紹了如何通過AT89S51單片機實現(xiàn)家用電器開關的無線遠程控制,同時從硬件和軟件兩個層面論述了系統(tǒng)方案的可行性。
1 總體設計方案
本系統(tǒng)通過單片機控制繼電器的方式實現(xiàn)家用電器的通斷控制,通過WiFi模塊ESP8266將微控制單元(Microcontroller Unit,MCU)鏈接上外網(wǎng),由手機APP發(fā)送信息,WiFi模塊接收到信息后,再向MCU發(fā)送信號,MCU經(jīng)過對信息的處理實現(xiàn)家電的智能控制,形成了一個控制通信網(wǎng)絡??刂葡到y(tǒng)采用DHTir溫濕度傳感器和MQ-2煙霧氣敏傳感器檢測室內環(huán)境數(shù)據(jù),通過AT89S51進行傳感器信號采集并通過WiFi模塊傳輸?shù)绞謾C端顯示,采用LCD液晶顯示模塊實時顯示溫濕度和每個繼電器的工作狀態(tài),使用戶實時了解室內環(huán)境。系統(tǒng)的總體設計如圖1所示。手機通過安裝APP文件作為上位機控制軟件,登錄服務器賬號,連接主機(由AT89S51芯片組成)控制的UART-WiFi模塊,用戶根據(jù)室內環(huán)境情況對其發(fā)送指令,進行連接。單片機接收到信號控制繼電器吸合或者斷開實現(xiàn)家電開關。
2 硬件設計
2.1 MCU模塊
MCU模塊選用ATMEL公司的AT89S51芯片為核心的最小系統(tǒng)組成,AT89S51是一種低功耗、高性能CMOS的8位微控制器,在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,為眾多嵌入式控制應用系統(tǒng)提供高靈活有效的解決方案。本設計需要使用P3.0和P3.1 實現(xiàn)與WiFi模塊的串口通信,其他I/O分別用于連接繼電器控制信號、傳感器數(shù)據(jù)信號以及LCD液晶顯示數(shù)據(jù)信號。
2.2 ESP8266模塊
WiFi模塊選擇樂鑫公司的基于UART接口的ESP8266-12芯片,該芯片具有價格低、配置高和兼容性強等優(yōu)勢,同時開發(fā)模式豐富簡單[2]。該芯片使用ASCII碼與手機進行通信,手機把編碼變?yōu)锳SCII碼進行發(fā)射,UART-WiFi會接收ASCII碼并產(chǎn)生中斷給單片機。此WiFi模塊可以通過終端像普通路由器一樣設置和修改密碼,也可以通過配置軟件進行修改和設置,安全性能高。ESP8266-12與單片機串口通信接口及電源電路,TXD和RXD分別接單片機的P3.0和P3.1。ESP8266-12的9和11腳通過1 K上拉電阻接3.3 V電源。5 V電壓經(jīng)LM1117的電壓變換后輸出得到一個穩(wěn)定平滑的邏輯數(shù)字3.3 V直流電壓給WiFi模塊供電。二極管IN4148反向截止起到保護電路的作用。撥動開關S1正常運行時接通P3.0接收模塊發(fā)送的數(shù)據(jù),下載程序時用S1斷開WiFi模塊,以防數(shù)據(jù)干擾。
2.3 室內環(huán)境采集模塊
室內環(huán)境主要采集溫濕度和可燃氣體等環(huán)境狀態(tài),采用DHTir溫濕度傳感器檢測室內溫濕度,采用MQ-2煙霧氣敏傳感器檢測室內可燃氣體的濃度。傳感器檢測信號發(fā)送給單片機進行處理和顯示。DHT11和MQ-2與AT89S51的連接相對簡單。單片機的I/O口用來發(fā)收DATA串行數(shù)據(jù),DATA用于微處理器與DHT11之間的通信和同步,采用單總線串行數(shù)據(jù)格式,一次通信時間4 ms左右。MQ-2傳感器數(shù)字量輸出信號端DO接到單片機I/O 口。傳感器的電源端口分別接單片機的VDD和GND端。
2.4 LCD1602液晶顯示電路
采用LCD1602液晶顯示器顯示網(wǎng)絡連接、室內氣體、溫濕度以及開關狀態(tài)等信息。1腳接地,2腳接+5 V電源,3腳為液晶顯示器對比度調整端,通過一個10 K電位器調整對比度。4腳RS接P2.7用于寄存器的選擇。5腳R/W接P2.6用于讀寫信號的控制,6腳EN為使能端接P2.5用于液晶模塊的使能控制。7—14腳D0 — D7為8為雙向數(shù)據(jù)線接單片機P0口。15和16腳分別為背光源正、負極。
2.5 繼電器驅動模塊
控制系統(tǒng)通過繼電器的方式實現(xiàn)家電的通斷控制或者燈的開關控制。單片機P2.0引腳輸出一個低電平時,PNP型三極管9012導通,電流從+5 V電源經(jīng)線圈再經(jīng)9012回到GND形成回路,此時繼電器線圈得電吸合,與線圈并聯(lián)的LED燈點亮,2.2K分壓電阻保證LED的3 V工作電壓,IN4148二極管起到保護作用,接線端子J坷外接負載,通過WiFi控制,驅動負載的通斷相當于一個智能開關。
2.6 手機APP
智能手機APP為網(wǎng)絡調試助手安卓版。網(wǎng)絡調試助手集成了 TCP/UDP客戶端服務器,服務器端支持透明傳輸方式、自動反饋方式和手動發(fā)送方式。采用TCP客戶端模式,通過配置IP地址和COM端口號實現(xiàn)APP與ESP8266通信[3]。手機APP界面包括室內環(huán)境值、家電的開關控制按鈕等內容。
3 軟件設計
采用ESP8266實現(xiàn)遠程控制基本流程(見圖2):單片機對ESP8266進行初始化,再將手機連上ESP8266的WiFi,然后再通過手機端發(fā)送指令,ESP8266接收到命令發(fā)給單片機,單片機根據(jù)執(zhí)行相應的操作。單片機檢測室內環(huán)境在液晶屏上顯示并通過ESP8266將采集的室內環(huán)境參數(shù)發(fā)送到手機APP顯示。
3.1 主程序設計
控制系統(tǒng)軟件部分主要分為WiFi配置與通信、室內環(huán)境檢測、繼電器驅動、LCD液晶顯示4部分。系統(tǒng)上電后進入初始化階段讀取系統(tǒng)參數(shù),傳感器模塊啟用,APP配網(wǎng)設置后,ESP8266配網(wǎng)成功直連數(shù)據(jù)服務器,傳送相應的控制指令到MCU驅動繼電器動作,同時實時回傳數(shù)據(jù)到服務器,APP可以即時查看相關的數(shù)據(jù)。
第一步:單片機串口進行初始化。
第二步:單片機通過串口通信對ESP8266芯片進行初始化配置,使ESP8266工作在softAP模式,即無線接入點模式。ESP8266發(fā)射一個WiFi熱點將手機或電腦等終端設備接入熱點組建一個局域網(wǎng)。配置ESP8266WiFi熱點SSID和密碼等。
第三步:采集并發(fā)送室內環(huán)境參數(shù),等待控制指令,接收到指令后執(zhí)行相應的操作。
3.2 關鍵函數(shù)設計
關鍵函數(shù)包括主函數(shù)、串口處理函數(shù)、定時中斷函數(shù)、室內環(huán)境讀取子函數(shù)、顯示子函數(shù)等5個部分,具體功能描述如表1所示。
4 結語
本文設計了一種基于單片機和ESP8266芯片的智能家居控制系統(tǒng),從軟件和硬件兩個層面論述了該方案的可行性。在該系統(tǒng)基礎之上,還可以增設定時打開與關閉家用電器、燈光的自動調節(jié)等其他智能控制功能。通過后期的不斷改進和完善,該控制的功能將更加多樣化,市場前景也會更加廣闊。
[參考文獻]
[1]吳允強,吳由松基于ESP8266的智能家居控制系統(tǒng)設計[J].電子測試,2017(21):9, 24.
[2]邵青青,周建華,徐晨,等.基于ESP8266+STM32的智能升降桌控制器[J].機械工程與自動化,2017(6):155-156.
[3]屈良潘,唐曼玲,劉靜,等.基于ESP8266的LED燈無線遠程控制設計[J].電子世界,2017(9):179, 181.