牛妍燕 田子怡
摘要:為了滿足人們對家居環(huán)境智能化的要求,設(shè)計了一種基于Cortex-M4內(nèi)核并且以STM32F407ZGT6微處理器為嵌入式控制器核心的智能家居控制系統(tǒng)。該系統(tǒng)采用GPRS模塊和無線模塊nRF24L01為通信模塊,完成控制臺、家電模塊、防災(zāi)模塊、手持設(shè)備等各模塊之間的通信和信息傳輸,進而實現(xiàn)對室內(nèi)家居的智能控制。實驗結(jié)果表明,該系統(tǒng)控制方便、運行穩(wěn)定、外擴能力強,適合普通家庭使用,具有廣泛的應(yīng)用前景。
關(guān)鍵詞:智能家居;STM32F4;GPRS;嵌入式
中圖分類號:TP273 文獻標識碼:A 文章編號:1009-3044(2016)13-0240-03
Abstract:In order to meet the requirements of the intelligent home environment for people. Smart Home control system based on STM32F407ZGT6 carried Cortex-M4 has been designed.The GPRS and nRF24L01 are used to make the communication between the Console、the Home Appliances、the Protection and the Handheld Device achieved in this system, so it can control the Smart Home. The results from the experiment indicate that: the system has convenient control, stable running, strong extended ability, suitable for normal household use, and extensive application prospect.
Key words: Smart Home; STM32F4; GPRS; Embedded
1概述
隨著科學(xué)技術(shù)和計算機技術(shù)的快速發(fā)展,使得智能家居逐漸成為現(xiàn)代家居生活的發(fā)展方向。當今正處在互聯(lián)網(wǎng)、大數(shù)據(jù)的時代,智能家居以迅猛速度聚焦于人們的視野,我們物質(zhì)追求價值的提升,對智能家居的渴望也越演越烈[1]。文獻[6]提出利用RS485總線設(shè)計智能家居系統(tǒng),雖然解決了傳輸距離短的問題,但具有布線困難和比較難維護的缺點。文獻[7]和[8]提出利用WiFi技術(shù)設(shè)計智能家居系統(tǒng),雖然實現(xiàn)了無線組網(wǎng),但是功耗比較大,不實用。針對以上出現(xiàn)的布線困難、難維護、功耗較大的問題,本系統(tǒng)采用STM32作為控制器,該控制器功耗低,價格低廉,功能實用,能夠讓普通消費者所接受,在以STM32為控制核心的基礎(chǔ)上,將無線通信技術(shù)、傳感器技術(shù)等相融合,通過分析各個傳感器所采集到的信息、GPRS模塊接收到的信息以及用戶通過人機界面接收到的信息,從而將危險報警信息由GPRS發(fā)送短信到用戶手機上,這樣就構(gòu)成了一個舒適安全的居住環(huán)境。
2系統(tǒng)總體結(jié)構(gòu)
為了用戶方便操作,系統(tǒng)控制部分采用本地控制和遠程控制兩部分。本地控制部分主要有傳感器模塊、無線模塊nRF24L01、顯示模塊和電源模塊,通過設(shè)置每個模塊的狀態(tài),傳感器所采集的信息就會顯示在屏幕上,這樣就可以實時了解并查詢家里的信息,遠程控制部分主要是通過GPRS模塊發(fā)送信息,并由移動終端通過短信的方式來控制,從而達到對家居設(shè)備的遠程控制[3]。根據(jù)功能來看,該系統(tǒng)可以分為防災(zāi)模塊和家電控制模塊。防災(zāi)模塊所要實現(xiàn)的功能是當室內(nèi)燃氣傳感器檢測到有可燃氣體存在時或煙霧傳感器檢測到的濃度高于安全值,就會通過GPRS模塊向用戶手機發(fā)送報警信息,用戶可以第一時間消除危害。家電控制模塊所要實現(xiàn)的功能是用戶可以通過短信隨時隨地查詢家里電器的信息,或者可以隨時打開或關(guān)閉家中的電器,給人們生活帶來極大方便??傮w結(jié)構(gòu)框圖如圖1所示。
3系統(tǒng)硬件設(shè)計
3.1 主控制器
本系統(tǒng)主控芯片選用STM32F407ZGT6,它是以ARM32的Cortex-M4為內(nèi)核的處理器,與STM32F1/F2等Cortex M3 產(chǎn)品相比,STM32F4 擁有多達 192KB 的片內(nèi)SRAM,STM32F4最大的優(yōu)勢,就是新增了硬件FPU單元以及DSP指令,同時,STM32F4的主頻也提高了很多,能夠達到168Mhz,可獲得210DMIPS的處理能力,這一點使得STM32F4非常適用于需要浮點運算或DSP處理的應(yīng)用,也被稱之為DSC,具有非常廣泛的應(yīng)用前景。
3.2 無線模塊nRF24L01
nRF24L01是一種世界通用ISM頻段的單片無線收發(fā)器芯片,它工作在2.4-2.5GHz。無線收發(fā)器包括:頻率發(fā)生器、增強SchockBurst模式控制器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊。它的輸出功率、頻道選擇等可以通過SPI接口來進行設(shè)置。它具有極低的電流消耗:當工作在發(fā)射模式情況下的發(fā)射頻率為-6dBm時,電流消耗為9mA,接收模式時電流消耗為12.3mA。在掉電模式和待機模式這兩種情況下電流消耗更低。在這個模塊中,無線模塊nRF24L01與STM32F4通過CSN、SCK、MISO、MOSI、IRQ、CE這六個引腳完成無線數(shù)據(jù)通信。其引腳圖如圖2所示。
3.3 GPRS模塊
GPRS模塊選用ALIENTEK推出的ATK-SIM900A。ATK-SIM900A模塊接口豐富,功能也比較完善,板載SIMCOM公司的工業(yè)級雙頻GPRS模塊:SIM900A,該模塊可以工作在900MHz和1800MHz兩個頻段,還可以在較低功耗情況下實現(xiàn)語音、短信、數(shù)據(jù)和傳真信息的傳輸。GPRS模塊還支持RS232串口,并且?guī)в杏布骺刂乒δ?,支?V~24V的超寬工作范圍,使得本模塊可以非常方便地為智能家居系統(tǒng)提供包括語音、短信和GPRS數(shù)據(jù)傳輸?shù)裙δ堋?
GPRS模塊與主控制器是通過杜邦線連接,連接方式如表1所示。
3.4 傳感器模塊
傳感器主要包括燃氣傳感器、煙霧傳感器,所有傳感器都與無線模塊nRF24L01相連,無線模塊將接收到的信息發(fā)送給主控制器,從而實現(xiàn)與控制系統(tǒng)通信的目的。
3.5 TFT觸摸屏顯示模塊
該模塊選用3.2英寸TFT真彩觸摸屏,功耗低,支持8bit、16bit總線接口,模擬I/O控制,觸摸屏上配置有ADS7843觸摸控制器,支持一個SD卡,支持一個SPI的DATE Flash,構(gòu)成人機交互圖形界面[4]。TFT觸摸屏的硬件連接方式很簡單,通過4根數(shù)據(jù)線與STM32F4連接就可以實現(xiàn)。
4系統(tǒng)軟件設(shè)計
該智能家居系統(tǒng)支持C語言與匯編語言混合編寫。系統(tǒng)軟件由系統(tǒng)主程序、nRF24L01無線模塊子程序、GPRS無線通信模塊子程序等模塊組成。軟件流程圖如圖3所示。
該智能家居系統(tǒng)的控制方式有兩種:在戶外時,如果家里出現(xiàn)煤氣泄漏、火災(zāi)等危險情況時,GPRS模塊可以發(fā)送報警信息給用戶,其次用戶還可以通過發(fā)送手機短信的方式,發(fā)送控制命令給GPRS模塊,從而達到對家電的控制;在家時可以通過觸摸屏完成對所有家電的控制以及應(yīng)對發(fā)生的煤氣泄漏、火災(zāi)等危險狀況。
智能家居系統(tǒng)接通電源后,首先需要對系統(tǒng)初始化,包括nRF24L01無線模塊的初始化、GPRS無線通信模塊的初始化以及串口的初始化[2]。接著通過主控制器STM32監(jiān)測GPRS無線通信模塊是否收到短信,如果收到短信,系統(tǒng)就會通過GPRS模塊中的AT指令把收到的新短信傳輸?shù)街骺刂破?,進而主控制器發(fā)送控制命令實現(xiàn)對家電設(shè)備的控制。遠程控制的報警系統(tǒng)通過中斷服務(wù)子程序完成,當接通電源后,從無線模塊對與傳感器連接的I/O口不斷進行監(jiān)測,如果發(fā)生煤氣泄漏、火災(zāi)等危險狀況,各個傳感器將采集到的信息發(fā)送到I/O口,軟件獲得這個信息之后會立即啟動中斷響應(yīng),同時進入中斷服務(wù)子程序進行處理并向用戶手機發(fā)送報警信息。
4.1 nRF24L01組網(wǎng)實現(xiàn)
無線傳感網(wǎng)絡(luò)節(jié)點的基本組成包括4個基本單元:傳感器單元、數(shù)據(jù)處理單元、數(shù)據(jù)傳輸單元以及電源,無線傳感器網(wǎng)絡(luò)技術(shù)特點具有自組網(wǎng)、低功耗、低復(fù)雜度、低成本等優(yōu)勢[5]。nRF24L01的工作模式有收發(fā)模式、配置模式、空閑模式和關(guān)機模式。收發(fā)模式有Enhanced ShockBurstTM收發(fā)模式、ShockBurstTM收發(fā)模式和直接收發(fā)模式三種。該智能家居系統(tǒng)采用Enhanced ShockBurstTM收發(fā)模式。
發(fā)射流程:首先,需要把接收機接收到的地址以及即將發(fā)送的數(shù)據(jù)按時序送入nRF24L01,其次配置CONFIG寄存器,使它進入發(fā)送模式,微控制器把CE置高10us以上,激發(fā)nRF24L01進行Enhanced ShockBurstTM發(fā)射:首先給射頻前端供電;其次給射頻數(shù)據(jù)打包;最終高速發(fā)射數(shù)據(jù)包,發(fā)射完成之后nRF24L01進入空閑狀態(tài)。
接收流程:配置本機地址和準備接收的數(shù)據(jù)包大??;配置CONFIG寄存器,使之進入接收模式,把CE置高; 130us后,nRF24L01進入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來;當接收到正確的地址和CRC校驗碼,nRF24L01自動把字頭、地址和CRC校驗位移去;nRF24L01通過把STATUS寄存器的RX_DR置位通知主控制器;主控制器把數(shù)據(jù)從NewMsg_nRF24L01 讀出;所有數(shù)據(jù)讀取完畢后,可以清除STATUS寄存器。
4.2 無線通信模塊的軟件實現(xiàn)
短信功能是智能家居系統(tǒng)中實現(xiàn)遠距離控制功能的核心,GPRS模塊采用AT指令,從而實現(xiàn)度短信和寫短信的功能。AT指令集是從終端設(shè)備或數(shù)據(jù)終端設(shè)備向終端適配器或數(shù)據(jù)電路終端設(shè)備發(fā)送的。用戶可以通過AT指令進行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)等方面的控制。GPRS模塊用到的AT指令有以下9種。AT+CMGR用于讀取短信,AT+CMGS用于發(fā)送短信,AT+CMGF用于設(shè)置短消息模式,AT+CNMI用于設(shè)置新消息指示, AT+CMGC用于發(fā)送一條短信命令,AT+CMGD用于刪除SIM卡內(nèi)存的短信,AT+CMGW用于向SIM卡內(nèi)存中寫入待發(fā)的短信,AT+CSCA用于設(shè)置短信服務(wù)中心地址,AT+CMSS用于從SIM內(nèi)存中發(fā)送短信[2]。
GPRS簡易測試:發(fā)短信
u8 si900a_sms_test(u8* msisdn)
{
u8 status=0;
char cmd[20];
status=sim900a_check_status();
if(status) return status;
if(sim900a_send_cmd("AT+CMGF=1","OK",200))return 4;//設(shè)置文本模式
if(sim900a_send_cmd("AT+CSCS=\"GSM\"","OK",200))return 5;//設(shè)置TE字符集為UCS2
sprintf((char*)cmd,"AT+CMGS=\"%s\"",msisdn);//命令格式:AT+CMGS="XXX"
if(sim900a_send_cmd((u8*)cmd,">",200))return 6;//設(shè)置短消息文本模式參數(shù)
u3_printf("%s","Dear user,This is a test message from atk-sim900a module."); //發(fā)送短信內(nèi)容到GPRS模塊
if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)) return 7;//發(fā)送結(jié)束符
return 0;
}
5結(jié)束語
文中智能家居系統(tǒng)采用低功耗的STM32為核心,通過無線模塊nRF24L01與各傳感器相連,無線模塊將接收到各個傳感器采集到的信息發(fā)送給主控制器,然后通過人機交互界面顯示所采集的信息,并由GPRS無線通信模塊發(fā)送報警信息到用戶手機。主控制器與無線模塊的傳輸距離為15米,相鄰無線模塊之間的傳輸距離為20米,經(jīng)過調(diào)試和測試,該智能家居系統(tǒng)運行穩(wěn)定,在執(zhí)行時反應(yīng)靈敏,達到了家居智能化的效果,具有控制簡單、節(jié)能環(huán)保、移動性好等優(yōu)點。
參考文獻:
[1] 鐘其源, 許錦標. 探討智能家居的未來[J]. 電子世界, 2016 (3): 67-69.
[2] 蔡紅娟, 翟晟, 蔡苗. 基于 STM32 的 GSM 智能家居控制系統(tǒng)設(shè)計[J]. 自動化技術(shù)與應(yīng)用, 2013 (8): 37-40.
[3] 張逢雪, 王香婷, 王通生, 等. 基于 STM32 單片機的無線智能家居控制系統(tǒng)[J]. 自動化技術(shù)與應(yīng)用, 2011 (8): 98-101.
[4] 陳致遠, 朱葉承, 周卓泉, 等. 一種基于 STM32 的智能家居控制系統(tǒng)[J]. 電子技術(shù)應(yīng)用, 2012, 38(9): 138-140.
[5] 宋霞萍. 基于 STM32 的小型智能家居系統(tǒng)設(shè)計[D]. 長沙:中南林業(yè)科技大學(xué), 2014.
[6] 陶莉. 基于 RS485 總線的智能家居系統(tǒng)的實現(xiàn)[J]. 碩士學(xué)位論文. 上海交通大學(xué), 2008.
[7] 肖宛昂, 蘇高民, 陸廷, 等. 一種由 WiFi 智能插座構(gòu)成的智能家居[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2014, 14(5): 46-48.
[8] 陳倩, 曹龍, 蔡靜之. 基于 STM32 的智能家居萬能學(xué)習(xí)型遙控盒子的研究與設(shè)計[J]. 電子世界, 2015 (17): 47-49.