杜鑫凱,魏雯,趙展
(蘇州工業(yè)職業(yè)技術學院,江蘇蘇州, 215104)
隨著人工智能和物聯(lián)網(wǎng)技術的不斷發(fā)展,智能家居也成為現(xiàn)代家庭中越來越重要的一部分。智能家居通過各種智能設備可以實現(xiàn)對家居的自動化控制和智能化管理,其以舒適、便利和節(jié)能為目標,實現(xiàn)人機交互、自動化管理和遠程控制等功能??梢蕴岣呱钇焚|和便利性。而隨著ARM 處理器的崛起,其在智能家居控制系統(tǒng)設計中的應用也越來越廣泛。文章將基于ARM 處理器,探討智能家居控制系統(tǒng)的設計與實現(xiàn),了解智能家居的內(nèi)部工作原理和實現(xiàn)方法,為更好地實現(xiàn)智能化家居生活提供一些技術支持。通過該系統(tǒng)的實際應用,可以看到基于STM32 的智能家居控制系統(tǒng)具有快速響應、低功耗、高穩(wěn)定性等優(yōu)點,可以明顯增強用戶的整體使用感受,并能夠為人們帶來更加便捷、智能的生活體驗。
本設計采用核心處理器為STM32F103 系列單片機,由一些外圍元器件搭建出此核心控制器的簡易工作環(huán)境,從而提供整個系統(tǒng)所需要的算力及邏輯控制,電源方面采用了USB 電源設計,單片機通過與溫濕度傳感器通信獲取實時數(shù)據(jù),用戶操作按鍵輸入預設信息,采集到外設的數(shù)據(jù)后即可實現(xiàn)離線控制環(huán)境的溫濕度,WiFi 模塊有接收到數(shù)據(jù)后會將數(shù)據(jù)發(fā)送到單片機,單片機對信息篩選后寫入指定寄存器后開啟離線控制模式,此時WiFi 會將離線的數(shù)據(jù)實時上傳到云端里面,云端上的控制模式會將所采集到的信息,以及當前離線模式的狀態(tài)發(fā)送到OLED 顯示屏上進行顯示,供用戶閱讀;當聲音信號被系統(tǒng)采集到后,經(jīng)過處理后送到語音識別模塊,結果將通過串口傳輸給單片機,單片機接收到語音識別模塊的處理結果后,進行分析并發(fā)出相對應的控制指令,也可以利用傳感器來實時監(jiān)測室內(nèi)的環(huán)境,當環(huán)境參數(shù)超過正常設定的值時,語音識別模塊會播報語音報警,這樣可以更好的提醒用戶??傮w設計框圖如圖1 所示。
圖1 總體設計框圖
本文設計的智能家居控制系統(tǒng)的硬件電路是由單片機最小系統(tǒng)、語音識別模塊電路、傳感器模塊電路以及WiFi模塊電路四部分組成,其中單片機最小系統(tǒng)包括USB 電源輸入、晶振電路、復位電路、SWD 下載電路等;語音識別模塊采用LD3320 模塊;傳感器模塊采用了DHT11 溫濕度采集模塊;WiFi 模塊采用了ESP8266 WiFi 模塊。系統(tǒng)硬件部分總原理圖如圖2 所示。
圖2 系統(tǒng)總硬件電路圖
STM32 微處理器是目前微處理器領域應用最廣泛的處理器之一,本設計的單片機最小系統(tǒng)所采用STM32F103C8T6 芯片,它的內(nèi)核是ARM Cortex-M3 系列32 位中央處理器,采用先進的技術和工藝制作而成,它的功能十分強大,擁有多種可供使用的外設。
STM32F103C8T6 為48 引腳,最高工作頻率 72MHz,采用LQFP-48 封裝,它的供電電壓是2V ~3.6V,它擁有37 個準雙口I/O 口,它的內(nèi)部具有64K 片內(nèi)Flash,20K字節(jié)SRAM[1],可以提升控制器的存儲速度和讀寫速度,其引腳圖如圖3 所示。以穩(wěn)定輸出我們想要的3.3V,故選擇固定版,C9、C10 為輸入濾波電容,其中C9 為100nF 容量高,可提高輸入電源的穩(wěn)定性。C12、C13 為輸出濾波電容,它們的作用是提高3.3V 電平輸出的穩(wěn)定性。其電路圖見圖4 所示。
圖3 STM32F103C8T6 引腳圖
圖4 降壓電路
降壓電路采用AMS1117 降壓IC 輸出3.3V 供芯片工作,AMS1117 有兩個版本,分別為可調(diào)版和固定版,固定版可控制系統(tǒng)如果離開時鐘是不能正常工作的,時鐘就好似人的心臟一樣,是芯片的動力來源,時鐘產(chǎn)生一次就會推動芯片執(zhí)行一次指令??刂葡到y(tǒng)的晶振電路能夠用來給芯片提供始時鐘信號,本文采用了一個8MHz 的無源晶振和一個32.768kHz 的無源晶振,兩個晶振周圍各有兩個諧振電容,這兩個諧振電容的作用是有著起振作用和保證晶振輸出的振蕩頻率更加穩(wěn)定。其電路圖見圖5 所示。
圖5 晶振電路
復位電路的目的是重置單片機的當前狀態(tài),使單片機重新執(zhí)行程序。本文的復位電路采用低電平復位,電路中的電阻R 為保護電阻,電容C 為濾波電容,在電路中將按鍵接在RESET 引腳上,一旦按下按鍵,RESET 就會接地,使得RESET 拉低,系統(tǒng)完成復位,其電路圖如圖6 所示。
圖6 復位電路
SWD 是一種串行調(diào)試接口,在我們的實際生活中,SWD 相比JTAG 有許多優(yōu)勢,其接口分別為:SWCLK 和SWDIO,SWDIO 是 串 行數(shù)據(jù)線,用于數(shù)據(jù)的讀出和寫入,SWDCLK 是串行時鐘線,提供所需要的時鐘信號。首先,4根線的SWD 要比JTAG 的引腳少得多,這就節(jié)約了許多的PCB 空間。其次,SWD 在高速模式下要比JTAG 模式更加可靠,其電路圖如圖7 所示。
圖7 下載電路
語音識別模塊采用了LD3320 模塊,LD3320 模塊的應用非常廣泛,包括智能家居、智能語音助手、智能機器人、語音播報等領域,能夠實現(xiàn)語音識別和語音合成功能。其主要特點有:模塊內(nèi)置大量語音識別模型,能夠實現(xiàn)離線語音識別,無需外部網(wǎng)絡或服務器支持;支持通過模擬或串口發(fā)送語音數(shù)據(jù),完成語音合成功能,方便實現(xiàn)語音播報功能;支持SPI、UART 和I2C 接口:模塊支持多種接口,方便與各種微控制器、單片機等設備連接。
本設計中的語音識別模塊與單片機采用串口通信方式,LD3320 模塊直接與STM32F103C8T6 芯片的RX 與TX 相連接,識別結果將通過串口傳送給單片機[2],其電路圖如圖8 所示。
圖8 語音識別模塊接口電路
DHT11 溫濕度傳感器是一款含有已校準信號輸出的數(shù)字溫濕度傳感器,它用的是數(shù)字模塊采集技術,體積小巧、功耗很低,抗干擾能力較強。溫濕度傳感器DHT11 一共有3 個引腳,連接到單片機的方式也比較簡單,1 號引腳接電源,2 號引腳接數(shù)據(jù)輸出端,接到STM32 單片機的其中一個引腳上,3 號引腳接地,在實際使用時,1 號引腳和3 號引腳之間可以增加一個電容以去耦濾波。
溫度傳感器DS18B20 最高可達12 位分辨率,12 位分辨率下工作周期為750ms,分辨率可根據(jù)要求調(diào)整,精度可達±0.5℃。內(nèi)置EEPROM 并附帶過溫報警功能。
如圖9 所示,J9 端子為DHT11 的接口,J12 端子為DS18B20 的接口。R6,R7 為DHT11 與DS18B20 的上拉電阻,這兩個傳感器均采用的單總線通信,此設計中將兩個單總線的接口分開,提高整個系統(tǒng)的容錯率,當環(huán)境溫濕度傳感器DHT11 損壞導致總線異常,程序可控制關閉此總線不影響溫度傳感器總線,從而有效提高設備可靠性。
圖9 溫濕度檢測電路
ESP8266 在WiFi 模式時常用三種功能,STA 模式(需要外來WiFi 提供接入),AP 模式(釋放WiFi):ESP 模塊作為接入點讓其他設備連接WiFi 熱點,STA+AP(兩者兼顧),使用ESP 一般用到RX、TX 聯(lián)合串口助手查看是否鏈接成功,或用AT 指令判斷ESP 是否正常。本文采用STA模式,讓ESP 模塊作為終端,使得在同一局域網(wǎng)內(nèi)的設備可以上云,訪問服務器等。從而實現(xiàn)通訊。
ESP8266 模塊和STM32 單片機連接方式是串口連接,并使用 AT 指令配置WiFi 模塊的初始化。當解析完成云端數(shù)據(jù)后會通過串口將數(shù)據(jù)發(fā)送給主控。底層會將實時溫濕度數(shù)據(jù)通過串口發(fā)送給EP8266,解析成功后ESP8266 將數(shù)據(jù)上傳ONENET,在用戶操作界面即可看到實時數(shù)據(jù)。數(shù)據(jù)解析功能可以避免干擾數(shù)據(jù)導致上傳數(shù)據(jù)出錯。EPS8266 與云端通信采用的JSON 通信格式,便于云端對數(shù)據(jù)分析處理。ESP8266 WiFi 模塊電路如圖10 所示。
圖10 ESP8266 WiFi 模塊電路
網(wǎng)頁端的數(shù)據(jù)處理采用的是ONENET 平臺,底層ESP8266 將數(shù)據(jù)打包上傳至服務器183.230.40.39 的6002端口,MQTT 協(xié)議接入如圖11 所示,能看到當前上傳數(shù)據(jù)的總數(shù)及七日新增,能夠讓用戶直觀判斷當前數(shù)據(jù)是否有效,在面板界面可以看到三組數(shù)據(jù),標題分別為TEMP、Temp、Humi 分別對應溫度、環(huán)境溫度、環(huán)境濕度,這三組數(shù)據(jù)都可看到最后更新時間,可以不借助圖形界面就可直觀地觀察當前數(shù)據(jù),每一個標題都對應ESP8266 所訂閱的標題,標題用于區(qū)分不同數(shù)據(jù)。數(shù)據(jù)的獲取是從通過MQTT協(xié)議上傳到服務器的JSON 數(shù)據(jù)中解析的,預先根據(jù)指定的數(shù)據(jù)格式上傳數(shù)據(jù),ONENET 平臺會自動解析數(shù)據(jù),并將解析過的數(shù)據(jù)顯示到當前頁面。
圖11 ONENET 平臺程序
LD3320 是一種非特定人的芯片,主要作用是采集環(huán)境中的語音信號,LD3320 與MCU 連接是RX 對TX、TX 對RX,通過串口連接,麥克風采集到語音信號后,當LD3320模塊識別出語音信號時,將識別到的語音信號與識別列表中的關鍵詞匯進行比較,找到最佳匹配的詞語,芯片LD3320便會發(fā)出一個中斷信號,然后將這個信號通過電路傳送給STM32 單片機進行相應的處理,語音識別的流程圖如圖12所示。
圖12 語音識別流程
圖13 為溫濕度檢測的工作流程圖,通過操作系統(tǒng)RTThread 對所需要進行的任務進行合理的安排,由于RTThread 是實時線性操作所以任務的安排具有優(yōu)先級,獲取溫度任務尤為關鍵,程序運行后會首先與數(shù)字傳感器(DS18B20)進行通信,獲取到溫度數(shù)據(jù)后再與溫濕度傳感器(DHT11)通信,獲取環(huán)境的溫濕度值后用戶可以根據(jù)環(huán)境溫濕度調(diào)整溫度,程序所獲取的溫濕度都會上傳的用戶操作界面顯示。
圖13 溫濕度檢測流程圖
如圖14 所示,ESP8266 通電后會首先自檢各功能,當檢查無誤后會對當前WiFi 進行連接,如果發(fā)現(xiàn)連接不成功會啟動自動配網(wǎng)模式,此時用戶開啟手機自動配網(wǎng)即可讓ESP8266 連接到與手機同一網(wǎng)絡。當網(wǎng)絡連接成功后會自動與ONENET 服務器進行握手,發(fā)送用戶ID 與用戶Key后燈帶服務器驗證后握手,驗證成功后會持續(xù)檢測串口數(shù)據(jù),當檢測到ESP8266 串口數(shù)據(jù)不為零時延時100ms 后對串口數(shù)據(jù)全部讀取,后進行解析出有效數(shù)據(jù),將數(shù)據(jù)發(fā)送至對應的訂閱主題下。
圖14 ESP8266 流程圖
當ONENET 服務器下發(fā)數(shù)據(jù)后,MQTT 庫函數(shù)會調(diào)用接收函數(shù),接收函數(shù)對ONENET 下發(fā)數(shù)據(jù)進行解析后通過串口發(fā)送給STM32F103 單片機,發(fā)送成功后會復位并等待下次數(shù)據(jù)下發(fā)。
本設計通過嵌入式技術、無線通信技術以及物聯(lián)網(wǎng)數(shù)據(jù)采集技術對STM32 單片機進行設計與開發(fā),設計了基于STM32 的智能家居控制系統(tǒng),采用了LD3320 模塊、DS18B20 數(shù)字溫度傳感器、DHT11 溫濕度傳感器和ESP8266 WiFi 模塊,完成了語音識別及語音報警、室內(nèi)環(huán)境溫濕度的數(shù)據(jù)讀寫以及云端的數(shù)據(jù)顯示與控制,實現(xiàn)了家庭中智能家居的自動化、便利化、節(jié)能化,也大大地提高了家居生活的舒適度及用戶體驗。本文設計的基于STM32 的智能家居控制系統(tǒng)作為一種應用產(chǎn)品,應該需要不斷地發(fā)展,提高其穩(wěn)定性、安全性和便捷性,為用戶提供更好的使用體驗。