王愿祥 程悅琪 孫先松
摘 要:文中主要研究通過微控制器ARM結(jié)合WiFi技術(shù),設(shè)計(jì)并制作一套微型測(cè)控終端系統(tǒng)模型,利用STM32F103主控芯片控制WiFi模塊ESP8266,結(jié)合上位機(jī)實(shí)現(xiàn)對(duì)家居節(jié)能燈、窗簾的無線控制,以及對(duì)室內(nèi)溫度濕度的采集和監(jiān)測(cè),實(shí)現(xiàn)局域網(wǎng)內(nèi)多節(jié)點(diǎn)無線智能測(cè)控的問題,詳細(xì)介紹了系統(tǒng)總體工作的基本原理、硬件設(shè)計(jì)、軟件設(shè)計(jì)以及系統(tǒng)簡(jiǎn)易實(shí)物模型的設(shè)計(jì)。
關(guān)鍵詞:WiFi;STM32F103;ESP8266;無線控制
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)09-00-04
0 引 言
現(xiàn)代科技越來越廣泛地影響著人們的學(xué)習(xí)、生活和娛樂。同時(shí),物聯(lián)網(wǎng)的高速發(fā)展使得智能家居成為研究熱點(diǎn)[1]。而WiFi技術(shù)的應(yīng)用則起著舉足輕重的作用,WiFi技術(shù)越來越成熟,使用WiFi技術(shù)對(duì)智能設(shè)備進(jìn)行無線控制更加符合實(shí)際需要。同時(shí),測(cè)控系統(tǒng)在各領(lǐng)域廣泛應(yīng)用,為了適應(yīng)測(cè)控環(huán)境的多樣性、多變性和復(fù)雜性,將有線與無線網(wǎng)絡(luò)技術(shù)相結(jié)合是測(cè)控網(wǎng)絡(luò)的發(fā)展趨勢(shì)?;跓o線測(cè)控終端應(yīng)用的巨大市場(chǎng)空間與WiFi技術(shù),本文設(shè)計(jì)了一個(gè)可以進(jìn)行無線測(cè)量與控制,測(cè)量精度高,可實(shí)時(shí)進(jìn)行數(shù)據(jù)傳輸?shù)暮?jiǎn)易智能家居系統(tǒng)。該系統(tǒng)以ARM系列單片機(jī)STM32F103為主控芯片,通過繼電器控制室內(nèi)節(jié)能燈的亮滅,從而控制步進(jìn)電機(jī)帶動(dòng)窗簾的拉開與閉合;使用溫濕度傳感器DHT11采集室內(nèi)的溫度和濕度,并將采集到的數(shù)據(jù)通過ESP8266無線模塊實(shí)時(shí)傳送到上位機(jī),實(shí)現(xiàn)溫度與濕度的同時(shí)監(jiān)測(cè),從而實(shí)現(xiàn)對(duì)室內(nèi)的簡(jiǎn)單智能
控制。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
本文系統(tǒng)分散布局,集中控制。系統(tǒng)下位機(jī)由WiFi無線通信模塊ESP8266和微控制器STM32F103以及外接設(shè)備構(gòu)成,相應(yīng)的傳感器(DHT11或DS18b20)與執(zhí)行設(shè)備(繼電器、步進(jìn)電機(jī))等均安裝在STM32處理器模塊上。處理器上搭載的多種傳感器實(shí)現(xiàn)對(duì)室內(nèi)環(huán)境數(shù)據(jù)(如溫度、濕度、光線等)的采集,并將采集到的數(shù)據(jù)通過WiFi模塊上傳至手機(jī)客戶端。同時(shí),也可將手機(jī)作為控制端,將控制指令通過WiFi下傳至處理器模塊的執(zhí)行設(shè)備,控制室內(nèi)燈的亮滅、窗簾的開合等,從而實(shí)現(xiàn)對(duì)設(shè)備的監(jiān)控與控制。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件包括單片機(jī)控制系統(tǒng)、無線傳輸模塊、溫濕度檢測(cè)模塊、繼電器LED燈模塊。系統(tǒng)硬件電路如圖2所示。
2.1 單片機(jī)控制系統(tǒng)設(shè)計(jì)
單片機(jī)控制系統(tǒng)為整個(gè)系統(tǒng)的控制部分,該部分以單片機(jī)STM32F103為核心處理器,內(nèi)核為ARM 32位Cortex-M3 CPU,最高工作頻率為72 MHz。其外設(shè)電路分別由時(shí)鐘電路、復(fù)位電路、電源電路、JTAG下載調(diào)試電路組成。該芯片是一款常用的增強(qiáng)型系列微控制器,應(yīng)用廣泛,主要應(yīng)用于電機(jī)驅(qū)動(dòng)、應(yīng)用控制、警報(bào)系統(tǒng)。所以本文系統(tǒng)使用該芯片既能滿足要求,又降低了成本。
2.2 無線傳輸模塊
WiFi是一種基于IEEE 802.1Ib標(biāo)準(zhǔn)[2]的短程無線傳輸技術(shù),能夠在數(shù)百米范圍內(nèi)支持互聯(lián)網(wǎng)接入的無線電信號(hào)(通常是2.4 GHz UHF或5 GHz SHF ISM射頻頻段),最大優(yōu)點(diǎn)是傳輸速度較高,在信號(hào)較弱或有干擾的情況下,帶寬可調(diào)整,有效地保障了網(wǎng)絡(luò)的穩(wěn)定性和可靠性。
WiFi模塊選用ESP8266模塊,該模塊是一個(gè)完整且自成體系的WiFi網(wǎng)絡(luò)解決方案,能夠搭載軟件應(yīng)用,具有超高集成度(內(nèi)置TCP/IP協(xié)議,PLL,穩(wěn)壓器和電源管理組件)、超低功耗(3.3 V低電平供電,轉(zhuǎn)TTL電平)、成本低、體積小等優(yōu)點(diǎn),非常適用于無線控制領(lǐng)域。該模塊是一款高性能的串口轉(zhuǎn)WiFi(UART-WiFi)模塊,ESP8266支持AP,STA,AP+STA三種模式。AP模式即無線接入點(diǎn)模式;STA模式通過路由器連接互聯(lián)網(wǎng),手機(jī)或電腦通過互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程控制。
2.3 溫濕度檢測(cè)模塊
DHT11數(shù)字溫濕度傳感器[3]是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)與溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件與一個(gè)NTC測(cè)溫元件,單線制串行接口使系統(tǒng)集成變得簡(jiǎn)易快捷,體積小、功耗低,信號(hào)傳輸距離可達(dá)20 m以上,一次完整的數(shù)據(jù)傳輸為40 bit,高位先出。
2.4 繼電器LED燈模塊
繼電器是一種電控制器件,是當(dāng)輸入量(激勵(lì)量)的變化達(dá)到規(guī)定要求時(shí),在電氣輸出電路中使被控量發(fā)生預(yù)定階躍變化的一種電器。本文系統(tǒng)使用電磁繼電器,給線圈加一個(gè)電壓,產(chǎn)生一個(gè)磁場(chǎng),該磁場(chǎng)使繼電器的觸點(diǎn)閉合,觸點(diǎn)的接通與斷開就能實(shí)現(xiàn)開關(guān)功能。設(shè)計(jì)中使用的型號(hào)為高/低電壓都支持的3.3 V繼電器模塊,因?yàn)橹骺匦酒碾妷簽?.3 V,
所以可直接用于驅(qū)動(dòng),簡(jiǎn)單方便。
2.5 電動(dòng)窗簾模塊
步進(jìn)電機(jī)是一種能將電脈沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件,實(shí)際上是一種單相或多相同步電動(dòng)機(jī)。本文系統(tǒng)使用五線四相制步進(jìn)電機(jī),其驅(qū)動(dòng)電源為5 V,所以采用TPS7350電源管理芯片進(jìn)行5 V穩(wěn)壓輸出,亦同時(shí)使用L298N驅(qū)動(dòng)步進(jìn)電機(jī)。如果換作12 V的電機(jī),則利用MC34063電源管理芯片進(jìn)行升壓電路設(shè)計(jì),從而使電路滿足電機(jī)正常運(yùn)行的設(shè)計(jì)要求。
3 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)軟件總體設(shè)計(jì)
首先對(duì)STM32F103內(nèi)部各硬件單元進(jìn)行系統(tǒng)初始化[4],包括串口 USARTx_Config(),時(shí)鐘SysTick_Init(),LED燈: LED_Init (),Motor_Init ()等基本部件初始化,最重要的是ESP8266模塊ESP8266_Init()初始化,溫濕度DHT11_Init ()傳感器模塊初始化,步進(jìn)電機(jī)初始化。初始化結(jié)束后根據(jù)ESP8266芯片的datasheet、模塊自帶的ESP8266_WiFi使用教程,利用主控芯片對(duì)模塊進(jìn)行相應(yīng)的驅(qū)動(dòng)。驅(qū)動(dòng)的實(shí)質(zhì)為在相應(yīng)模式下合理使用AT指令。利用主控上的串口連接ESP8266的UTXD,URXD進(jìn)行數(shù)據(jù)收發(fā),在控制程序中將接收到APP的數(shù)據(jù)與程序中設(shè)定的數(shù)據(jù)進(jìn)行對(duì)比,若相同,則執(zhí)行相應(yīng)的控制操作。本文系統(tǒng)主要使ESP8266工作在AP模式。系統(tǒng)軟件設(shè)計(jì)框圖如圖3所示。
3.2 系統(tǒng)采集端軟件設(shè)計(jì)
溫濕度DHT11傳感器一次完整的數(shù)據(jù)傳輸為40 bit,高位先出,其數(shù)據(jù)格式為:8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗(yàn)和[5]。數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8 bit濕度整數(shù)數(shù)據(jù)+ 8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。具體代碼[6]如下:
步進(jìn)電機(jī)程序設(shè)計(jì)為:采用L298n雙H橋直流電機(jī)驅(qū)動(dòng)芯片,包括4個(gè)三極管和1個(gè)電機(jī),要使電機(jī)運(yùn)轉(zhuǎn),必須導(dǎo)通對(duì)角線上的1對(duì)三極管。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過電機(jī),從而控制電機(jī)的轉(zhuǎn)向。IN1,IN2,IN3,IN4接主控的4個(gè)管腳,用于給出脈沖; 五線四相制步進(jìn)電機(jī)中的橙、黃、粉、藍(lán)分別接L298n的OUT1,OUT2,OUT3,OUT4;+5 V接開發(fā)板的5 V;5 V驅(qū)動(dòng)電源接外接電源;GND接外接電源GND; ENA,ENB,板載5 V等分別用跳接帽短接。步進(jìn)電機(jī)驅(qū)動(dòng)時(shí)序如下述代碼:
本文系統(tǒng)使用8個(gè)節(jié)拍,步進(jìn)電機(jī)的轉(zhuǎn)速取決于脈沖頻率、轉(zhuǎn)子齒數(shù)和拍數(shù)。在設(shè)計(jì)代碼時(shí),可通過設(shè)置兩個(gè)脈沖之間的延時(shí)從而改變速度。如Delay_ms(N),通過改變N的大小改變電機(jī)轉(zhuǎn)速。
3.3 系統(tǒng)服務(wù)端程序設(shè)計(jì)
ESP8266模塊程序設(shè)計(jì):AP模式為默認(rèn)模式,ESP8266模塊作為熱點(diǎn),實(shí)現(xiàn)手機(jī)或電腦對(duì)模塊的直接通信,并實(shí)現(xiàn)局域網(wǎng)[7]的搭建。ESP8266模塊的具體配置如圖4所示。
經(jīng)過上述配置后,模塊自身建立了局域網(wǎng),在此局域網(wǎng)內(nèi)可實(shí)現(xiàn)數(shù)據(jù)互傳以及命令的控制。模塊配置過程中的指令以及回應(yīng)可通過串口助手實(shí)時(shí)顯示,如圖5所示。
無線控制程序設(shè)計(jì):手機(jī)APP發(fā)送的數(shù)據(jù)通過ESP8266傳給主控芯片進(jìn)行解析,解析后再進(jìn)行相應(yīng)的命令操作。具體解析代碼[8]如下:
APP端發(fā)送來的信息為"CMD_MOTORN_0""CMD_MOTORN_1""CMD_LED_1_0"等,通過程序?qū)ζ渲噶钸M(jìn)行解析。
系統(tǒng)上位機(jī)使用秉火物聯(lián)的APP,其界面如圖6所示。界面信息包括連接信息、燈控按鈕、溫濕度數(shù)據(jù)上傳顯示、蜂鳴器等。在界面左側(cè)可以自主添加控制信息,如本文系統(tǒng)中開關(guān)窗簾的控制等。上位機(jī)界面如圖7所示。
4 系統(tǒng)測(cè)試與實(shí)物展示
為上述系統(tǒng)供電,進(jìn)行室內(nèi)測(cè)試。在供電5~8 s后,手機(jī)APP連接上ESP8266模塊發(fā)出的WiFi信號(hào),WiFi名稱為"ESP8266_TEST"。同時(shí),溫度與濕度數(shù)據(jù)也實(shí)時(shí)顯示在界面上,且比較穩(wěn)定。按下窗簾按鈕,窗簾(步進(jìn)電機(jī)啟動(dòng))拉動(dòng),再次按下窗簾按鈕,窗簾收合。按下LED1,板載LED燈點(diǎn)亮,按下LED2,外部220 V家居節(jié)能燈點(diǎn)亮。將微型智能家居系統(tǒng)逐步遠(yuǎn)離控制端APP,最遠(yuǎn)接收距離為十幾米,仍能夠滿足家庭的基本需要。后續(xù)會(huì)進(jìn)行聯(lián)網(wǎng)處理,實(shí)現(xiàn)真正的物聯(lián)網(wǎng)。系統(tǒng)實(shí)物如圖8所示。
5 結(jié) 語
本文系統(tǒng)初步實(shí)現(xiàn)了簡(jiǎn)易的智能家居系統(tǒng)控制與測(cè)量,在主控芯片的控制下,順利實(shí)現(xiàn)了APP通過ESP8266構(gòu)建的局域網(wǎng)發(fā)送控制命令,接收數(shù)據(jù),從而達(dá)到無線控制外部設(shè)備的目的,使家居用品更加智能化。同時(shí),本文系統(tǒng)的原理可應(yīng)用到各行各業(yè),實(shí)現(xiàn)無人監(jiān)管、無人操控,更有助于提高工作效率,極大程度上避免安全事故的發(fā)生。
參考文獻(xiàn)
[1]李智,涂亮,孫先松.基于ZigBee技術(shù)的智能照明系統(tǒng)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2012,2(4):29 -31,37.
[2]徐文.基于WiFi與Android的智能家居監(jiān)控系統(tǒng)設(shè)計(jì)[D].成都:西南交通大學(xué),2017.
[3]樊智一.基于STM32的無線WiFi溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].電子世界,2016(18):35.
[4]韓曉英,張方櫻,朱靜.基于STM32單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].硅谷,2013,6(12):14-15.
[5]譚浩強(qiáng). C 程序設(shè)計(jì)教程[M].北京:高等教育出版社,2006.
[6] YIU J.ARM Cortex-M3與Cortex-M4權(quán)威指南(3版)[M].吳常玉,曹孟娟,王麗紅,譯.北京: 清華大學(xué)出版社,2015.
[7]屈良潘,唐曼玲,劉靜,等.基于ESP8266的LED燈無線遠(yuǎn)程控制設(shè)計(jì)[J].電子世界,2017 (9):179,181.
[8]袁正道,董麗莎,王家斌.基于nRF24L01和Cortex-M3的無線測(cè)控系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2012,2(8): 48-49.