陳駿耀 陳芬生 林鐸 梁珀榮 林培照
摘要:本文設計了一種智能家居控制系統(tǒng),該系統(tǒng)采用樹莓派為上位機,MCS-51單片機為下位機,設置多個單片機從機用作控制模塊,使用Flask做為網(wǎng)絡服務框架,基于Python語言設計網(wǎng)絡控制界面,用戶能夠在PC端或手機終端通過該界面來實現(xiàn)智能家居控制開關的應用功能。
關鍵字:樹莓派;MCS-51單片機;嵌入式系統(tǒng);Flask框架;智能家居
一、緒論
目前智能家居網(wǎng)絡控制系統(tǒng)實現(xiàn)的關鍵技術(shù)為兼容性強的家庭主控制器和滿足信息傳輸需要的家庭網(wǎng)絡,主要有PC架構(gòu)、單片機架構(gòu)、嵌入式架構(gòu)三大解決方案[1]。一般情況下,非PC系統(tǒng)就是我們常說的嵌入式系統(tǒng),嵌入式系統(tǒng)的軟硬件可裁剪,從而能更靈活的適應不同的應用場景;PC機架構(gòu)與單片機架構(gòu)在運行上都存在穩(wěn)定性不高的問題[2],而嵌入式系統(tǒng)采用數(shù)字電路設計,結(jié)構(gòu)簡單,穩(wěn)定性強,結(jié)合單片機的實用性與易用性,本文從照明控制與窗簾控制入手,提出了一種以嵌入式系統(tǒng)為主、單片機架構(gòu)為輔的組合式方案來進行智能家居的網(wǎng)絡控制。
二、系統(tǒng)設計
在樹莓派開發(fā)板上搭載Ubuntu Mate 16.04系統(tǒng),組成一個嵌入式系統(tǒng)控制中心,采用最新的Flask框架搭建Web服務器,用戶可使用PC端或者手機終端通過無線網(wǎng)絡登錄控制頁面。系統(tǒng)框圖如下:
三、硬件環(huán)境搭建
1.樹莓派與MCS-51單片機之間的數(shù)據(jù)傳輸
在MCS-51單片機上設置中斷事件,通過檢測樹莓派電路板上指定I/O口的高低電平的變化來判斷中斷事件是否發(fā)生,從而實現(xiàn)兩者之間的數(shù)據(jù)傳輸;若中斷事件發(fā)生,則表明用戶在網(wǎng)絡控制平臺進行的相應操作(如照明的開關)經(jīng)由樹莓派上的Ubuntu系統(tǒng)處理后,將信號進行傳遞,此時接收到信號的MCS-51單片機將實施對實際電路模塊的控制。
2.單片機與單片機之間的通信
本文設計中共用到三個MCS-51單片機,其中一個用作主機,另外兩個用作從機;主機接收來自系統(tǒng)控制中心的數(shù)據(jù),并且通過nRF24L01無線模塊向另外兩個從機發(fā)送指令;從機接收到指令后進行對窗簾或照明的控制。nRF24L01是一款新型單片射頻收發(fā)器件,可以進行一對多同通信,其工作模式有四種:收發(fā)模式、配置模式、空閑模式和關機模式,在這里我們采用了收發(fā)模式。
3.Nrf24L01之間通信調(diào)試
在發(fā)送端先讀取狀態(tài)寄存器,判斷標志位是否置位,再清除標志位,調(diào)試時候可以先固定一端(比如接收端),調(diào)試發(fā)送端,確保發(fā)送正確后再嘗試調(diào)試接收端。本文將采用shockburst模式發(fā)送接收數(shù)據(jù),在此方式下,通訊協(xié)議如下:對發(fā)送方(配置PRIM_RX為低):發(fā)送方啟動發(fā)送后,即CE拉高至少10us,發(fā)送方發(fā)送數(shù)據(jù),發(fā)送完數(shù)據(jù)后使用通道0接收終端應答ASK信號,如果沒有收到ASK,發(fā)送方將重發(fā)相同的數(shù)據(jù)包,直到收到應答信號或重發(fā)次數(shù)超過設定最大值為止。若超過最大次數(shù),將會產(chǎn)生MAX—RT中斷,IRQ輸出低電平。若收到了ASK信號,認為發(fā)送成功,將產(chǎn)生TX_DS中斷。對接收方(配置PRIM_RX為高):接收方啟動接收后,即CE拉高至少10us,若接收到的數(shù)據(jù)通過CRC校驗正確,則將數(shù)據(jù)存儲在RX_FIFO中。
四、軟件程序設計
采用最新的Flask框架搭建Web服務器,F(xiàn)lask是一個使用Python編寫的輕量級Web應用框架,其WSGI工具箱采用Werkzeug,模板引擎則使用Jinjia2,F(xiàn)lask自帶開發(fā)用服務器和debugger、集成單元測試和RESTful調(diào)度請求。本文使用Python+Flask設計出智能家居控制網(wǎng)頁,如圖3。
在同個局域網(wǎng)下面,用戶可以使用PC端或者手機終端在地址欄輸入IP+端口號登錄,用戶通過HTTP協(xié)議訪問網(wǎng)頁控制平臺。
運行python程序后,只要有用戶連接到正確的IP+端口號,在系統(tǒng)控制中心下還可以及時得到智能家居控制情況的反饋信息,如所訪問的用戶,響應時間以及網(wǎng)頁是否正常響應等,保證系統(tǒng)運行的正確性。
五、結(jié)語
本文所設計的基于樹莓派及MCS-51單片機的智能家居控制系統(tǒng),樹莓派上搭載的Ubuntu Mate 16.04作為系統(tǒng)運行后臺,采用MCS-51單片機作為控制終端,使用NRF24L01無線模塊實現(xiàn)各個控制終端之間的通信,方法簡單有效;并且使用基于Python的開源框架Flask設計了智能家居網(wǎng)頁控制界面,使得用戶可以通過PC端或手機端通過HTTP協(xié)議訪問該界面進行智能家居的控制,系統(tǒng)后臺可以及時得到反饋信息,有效地保障了系統(tǒng)穩(wěn)定運行。
參考文獻:
[1]李鴻. 幾種智能家居網(wǎng)絡控制系統(tǒng)方案的分析與比較[J]. 現(xiàn)代電子技術(shù), 2010, 3(314): 143-146
[2]郭福洲. 嵌入式技術(shù)在智能家居控制系統(tǒng)中的應用[J]. 論述, 2017, 22(11): 334-336