南通大學信息科學技術學院 周榮康
智能云家居是在互聯(lián)網(wǎng)背景下物聯(lián)化的表現(xiàn)。與普通家居相比,智能云家居不僅具有傳統(tǒng)的居住功能,而且兼?zhèn)浣ㄖ?、網(wǎng)絡通信、信息家電、設備自動化、語音智能助手等功能。本文設計的系統(tǒng)是基于主控芯片對外設的控制和對外部環(huán)境的識別,通過上位機實現(xiàn)對下位機中模擬家電的控制,從而實現(xiàn)一個可靠、協(xié)調(diào)的NBIOT智能云家居系統(tǒng)。
隨著經(jīng)濟持續(xù)發(fā)展,人們對于生活質(zhì)量的追求越來越高,為了能夠給用戶提供更加舒適安逸的生活環(huán)境,智能云家居系統(tǒng)便顯現(xiàn)出其獨特的優(yōu)勢。智能云家居系統(tǒng)是通過互聯(lián)網(wǎng)將家庭裝備的相關電器設備互相連接,使用手機或者其他網(wǎng)絡設備借助互聯(lián)網(wǎng)對家居電器設備進行遠程訪問、實時控制和監(jiān)測等。
本方案設計的系統(tǒng)以云服務器作為中介,通過移動端遠程對外設發(fā)送控制信息,主控芯片STM32F4解析用戶的控制信息,隨時分析傳感器信息、用戶的控制命令及BC26模塊通信,來實現(xiàn)步進電機的轉動(模擬窗簾的開合)、直流電機的轉動(模擬排氣扇的轉動、轉速)、RGB彩燈的開關(模擬家庭燈光開關以及各種顏色),以及讀取并返回步進電機、直流電機、RGB彩燈和溫濕度傳感器的狀態(tài)。本系統(tǒng)還配備了顯示模塊,便于用戶在家時對設備的直接查看與操作。
系統(tǒng)結構框圖如圖1所示。
圖1 系統(tǒng)結構框圖
系統(tǒng)的相關功能:借助NBIOT(narrow band internet of things)模塊連接服務器或者APP終端,實現(xiàn)手機APP端或者網(wǎng)頁端對開發(fā)板外設的控制;控制步進電機的方向、速度(模擬窗簾的開合);控制直流電機正轉、反轉和轉速;控制OLED顯示不同的字符+圖片組合;實時監(jiān)測環(huán)境的溫濕度;控制RGB彩燈不同顏色燈光的顯示(模擬各種裝飾燈);實現(xiàn)對家用電器的遙控控制(紅外遙控)。
在實際設計中,每一個系統(tǒng)的設計應該首先考慮CPU的選型的問題。系統(tǒng)要求主控芯片的反應速度和處理速度都要快。常用的單片機類型有:51以及ARM等。ARM是32位的處理器,其響應速度和處理速度都較快。為了產(chǎn)生更高效率的控制效果,同時考慮低成本、低功耗,本系統(tǒng)選用STM32F401RET6作為主控芯片。
STM32F401RET6片內(nèi)外設非常豐富,其兩個DMA控制器一共128個通道;3個串行外設接口,可有效進行外設通信;還有多達81個有中斷功能的輸入輸出IO端口,其中斷矢量控制器,具有多達23個可以編程的優(yōu)先級,而且還可以進行異常延遲、處理中斷等。除此以外,它還有1個逐次比較型AD轉換器、2個電壓輸出DA轉換器等。
本系統(tǒng)需要存儲的數(shù)據(jù)主要有兩類,一類是顯示模塊中的漢字字庫的數(shù)據(jù),另一類是各種模塊的初始化程序以及通信過程中的控制指令等。
漢字庫存儲在FLASH中,本系統(tǒng)的外擴FLASH采用W25Q64芯片。字庫可以用軟件直接獲得,然后通過SPI通信寫入外擴FLASH中,即可以實現(xiàn)寫入字庫。各種模塊的初始化程序以及過程中的各種數(shù)據(jù)都可以存儲在EEPROM中,本系統(tǒng)的EEPOM是AT24C02芯片。AT24C02和W25Q64在系統(tǒng)中的用處很多,它們的存儲容量基本上用不完,可以將一些其他的重要信息存儲在其中防止數(shù)去丟失,甚至可以記錄程序運行過程中的數(shù)據(jù),以用來監(jiān)測或預測。
目前市場上常見的液晶顯示屏幕有:12864液晶屏幕、1602液晶屏幕和LCD 液晶屏幕等。從顯示能力方面來看,12864液晶屏幕和1602液晶屏幕的顯示能力要比LCD液晶顯示屏差得多,因此本系統(tǒng)選擇LCD液晶屏幕作為顯示屏。STN和TFT型晶體管型價格適中,市場上也隨處可見。所以TFT型是一個不錯的選擇,本設計選用TFT型液晶屏幕。
常用溫濕度傳感器有DHT11、SHT20等。DHT11的構成并不復雜,它有數(shù)字采集和溫濕度傳感器兩個部分,不僅結構穩(wěn)定,而且還帶有數(shù)字信號校準技術,穩(wěn)定性高、抗干擾能力強,綜合比較性價比較高。DHT11只有4個引腳,電源連接簡單、體積輕巧、方便使用,而且它的功耗適合長時間工作。
SHT20在DHT11的優(yōu)點基礎上,又對穩(wěn)定性方面做了改進,SHT20還設計了一個全新的控制計算芯片。結合性價比,本系統(tǒng)選擇性能更好的瑞士Sensirion的SHT20,由于它支持I2C通信,可以直接應用模擬時序法操作芯片,不需要專門的驅(qū)動芯片來驅(qū)動,這樣可以節(jié)省資源。
本系統(tǒng)使用USB供電,電腦、充電寶的USB口都可以供電。一般來說USB輸出口的輸出電壓是5.0 V,可以驅(qū)動步進電機、全彩RGB燈珠,但是主控芯片STM32R401RET6單片機的正常工作電壓為3.3 V,其他外設如直流電機模塊、顯示模塊、BC26模塊等正常工作電壓也是3.3 V,因此還需要對電壓進行轉換。
本系統(tǒng)設計采用的Y15-52B(DIY電機)型步進電機是兩相四線型電機,支持5.0 V工作電壓,同時采用LB1936V作為驅(qū)動芯片,它可以減少電路電流消耗。
為了更好的模擬智能排氣扇的工作狀況,系統(tǒng)用84YC空心杯高速直流電機來模擬,其工作電壓3.0 V左右,驅(qū)動芯片采用L9110S,它具有雙通道推挽輸出功能,是專用的集成電路功率放大器件,其穩(wěn)定、抗干擾能力強,且成本低。此芯片有兩個輸入端和兩個輸出端,它的反向沖擊電流較大,這使得它在驅(qū)動各類電機時安全性非常高。
系統(tǒng)RGB彩燈的燈珠工作電壓為5.0 V,所需電壓和電流相對較大,因此需要一個驅(qū)動芯片才能夠正常工作。當前系統(tǒng)使用的驅(qū)動芯片是P9813,P9813是彩色點光源LED控制芯片,可提供三路恒流控制和256度灰色調(diào)制輸出,對于燈光的變化、字符的變化、彩色動畫圖案敏感。其可根據(jù)不同控制器和客戶的要求,離線或在線操作。
LCD顯示系統(tǒng)有三個部分:CPU、LCD顯示控制器和LCD屏。CPU將要顯示的數(shù)據(jù)通過地址和數(shù)據(jù)總線送給LCD顯示控制器,LCD顯示控制器經(jīng)過處理得到三種基本顏色數(shù)據(jù),LCD顯示控制器將三種基本顏色數(shù)據(jù)數(shù)據(jù)發(fā)送給TFTLCD液晶屏顯示。本系統(tǒng)采用TFT-LCD型顯示設備是中景園1.3寸IPS高清屏,采用ST7789VW作為驅(qū)動芯片。ST7789VW是一個可以控制彩色屏幕的控制器,它可以顯示的數(shù)據(jù)分辨率為240×320,數(shù)據(jù)存儲在隨機存儲器中,可以直接進行讀取RAM顯示操作,不需要專門的時鐘,而且它的功耗很低。
本系統(tǒng)的NBIOT模塊使用的是BC26模塊,BC26模塊是一款窄帶物聯(lián)網(wǎng)的模塊,它可以和網(wǎng)絡運營商之間建立通信,可以和他們進行數(shù)據(jù)交換,傳送所需要的傳送的信息。BC26模塊有三種模式(工作模式、輕休眠模式和深睡眠模式),其中一種是低功耗模式,在沒有使用時,它的功耗很低;在正常工作的情況下,它的性能很高。
另外,系統(tǒng)中紅外遙控模塊是基于NEC協(xié)議編碼方式的。
本設計軟件部分包括步進電機模塊、直流電機模塊、LCD顯示模塊、全彩RGB燈珠模塊、溫濕度傳感器模塊的初始化和控制。軟件設計的初始化包括片內(nèi)初始化和片外初始化,片外初始化即上述各模塊的初始化,片內(nèi)初始化包括定時器、串口、按鍵、LED、看門狗、實時時鐘和中斷的初始化等。
五大模塊之間的關系是:NBIOT模組成功連接了APP和服務器后,獲取平臺上已經(jīng)被注冊的控制設備的當前狀態(tài)并上報服務器。定期獲取服務器請求和上報數(shù)據(jù)到服務器,當獲取到服務器的控制數(shù)據(jù)時,就及時做出底層設備控制。
本系統(tǒng)利用HTTP網(wǎng)絡協(xié)議進行設計。首先初始化好設備各模塊,完成 NBIOT 模塊的配置,與云家居服務器進行網(wǎng)絡連接,進行數(shù)據(jù)存儲并判斷用戶是否第一次開機來決定設備的控制狀態(tài)并上報到服務器。做好準備工作后,定期請求服務器控制信息,然后分析控制信息實現(xiàn)設備控制,并把設備新狀態(tài)實時上報給服務器。
NBIOT模塊AT指令部分完成初始化相關AT指令,建立TCP連接相關指令,發(fā)送數(shù)據(jù)相關指令,接收數(shù)據(jù)相關指令,關閉TCP連接相關指令。
NBIOT模塊驅(qū)動部分完成NBIOT模塊配置(包括配置CPU與NBIOT模塊通信的UART、初始化NBIOT模塊、NBIOT模塊與云服務器數(shù)據(jù)交換及UART通信程序設計)、初始化NBIOT(操作步驟:等待模塊連接基站、設置模塊波特率、設置模塊傳輸數(shù)據(jù)格式及設置接收數(shù)據(jù)方式為直吐模式)及NBIOT模塊與云服務數(shù)據(jù)交換(連接云服務器、發(fā)送數(shù)據(jù)、等待獲取數(shù)據(jù)完成及斷開云服務器連接)。
NBIOT模塊作為客戶端實現(xiàn)與服務器進行HTTP通信,使NBIOT模塊連接服務器,建立起NBIOT模塊和服務器的連接和透傳功能,并開啟數(shù)據(jù)發(fā)送。建立好連接后,按照HTTP請求格式向服務器發(fā)送請求,等待響應。
系統(tǒng)調(diào)試和功能測試分兩個部分,上位機部分包括:對BC26模塊、APP軟件、獲取設備ID等測試。下位機部分包括:對步進電機、直流電機、RGB彩燈、STH20溫濕度傳感器、LCD顯示的測試。
結語:本智能云家居系統(tǒng)基于STM32F401RET6單片機,采用BC26模塊實現(xiàn)通信,比其他的藍牙通信、WIFI通信更加方便使用。STM32F401RET6單片機內(nèi)置RTC實時時鐘給設計電路時減少元器件的使用。對于溫濕度傳感器采集的數(shù)據(jù),還可以存儲在存儲芯片AT24C02中,方便調(diào)出數(shù)據(jù),對溫濕度進行預測時使用。經(jīng)過實物測試,系統(tǒng)可以實時監(jiān)測環(huán)境溫濕度,同時可以控制直流電機(模擬排氣扇)、步進電機(模擬窗簾)、RGB彩燈(模擬家庭燈光),操作方便,易于使用。