貴州健康職業學院 管融雪 于喜志 郭永強
隨著智能化應用設備在家居環境下的應用,越來越智能化的智能電氣接入互聯網絡。極大地促進了智能模塊和系統的設計方案的實現。控制智能家居控制系統主要以中控設備為核心,以家具電器和家電設備為主要控制對象,這些控制對象統稱為終端設備,中控設備和終端設備之間采用了無線通信技術,例如Zigbee、z-wave、RF等實現通信,在智能家居控制系統中,中控設備通常通過WIFI與云端服務器、手機APP相連,通過無線通信技術與終端設備相連。
目前用戶更多的使用移動終端控制各類電器和電子設備的運行,每個只能電器都需要一個對應的控制應用軟件,這樣極大地浪費了運內存,同時也帶來了極大地不方便。本文設計了一種基于STM32的終端控制系統,基于STM32控制系統能夠有效的完成數據的檢測上傳和控制命令的下行。能夠在上端的移動設備上實時監測各個地電器設備的運行狀態,期間如果出現運行問題也能夠及時地發現問題,從而快速地解決,這樣能夠保證用戶家居環境在一個舒適的環境中生活。
此控制系統包括溫度檢測模塊和溫度控制模塊,濕度檢測模塊和加濕模塊,光照模塊和光控模塊,攝像監控模塊,報警模塊,無線傳輸模塊和移動終端。集成功能能夠實現溫濕度,光照的數據的無線上傳,實現遠程控制相應的終端完升溫,加濕和光照控制,報警等相應操作。
該系統STM32位終端控制器,外接溫度,濕度和光照數據,通過ZigBee本地節點發送到ZigBee協調器傳送到服務器,然后可以通過移動終端PC,手機等監測。如果某些數據局監測出異常控制終端通過相應的集成控制按鈕對應的調節控制單元,再通過無線傳輸網絡下傳到控制終端解析命令,執行操作。
(1)SmartHomeActivity,主界面首先運行Activity。(2)NodeInfoActivity,進入主界面之后的Activity顯示從下位機傳上來的設備和數據信息,同時也能看到設備的控制選項的狀態詳細情況。(3)MainReadThread,為主線程主要用來讀取數據,并且只是表現出Zigbee數據的傳輸給相應的進程,并不進行數據的處和分析等。(4)MainHandlerThread,接收硬件傳進來的數據,此線程主要作用是對數據進行校驗工作并轉發。(5)NodeWriteThread,此為線程寫線程主要處理設備的對應設備操作設置,簡述線程類的類描述:① MainReadThread類。開啟主線程MainReadThread,然后運行run,run要判斷關于操作running事件是否執行相應的操作,當running變現為true時,對應的是設備動作,然后判斷MainHandlerThread是否已經創建了該線程,如果沒有創建,那么要對應創建,如果創建了則將讀取的數據傳送給線程未MainHandlerThread,開啟想成,并且要以此循環進行執行程序。MainReadThread RUN的詳細流程如圖1所示。

圖1 MainReadThread RUN的詳細流程圖
② MainHandlerThread類的運行描述。啟用縣城后的Main-ReadThread讀取之前的數據然后將數據傳給線程MainHandler-Thread,首先要對數據的是否正確有效進行一下驗證,若出現錯誤則將要調用handler將信息傳送給SmartHomeA ctivity也就是界面的主頁線程UI做一下處理;若是傳送的數據是準確無誤的那么就要判斷一下數據的相應類型然后handler進行傳送,傳送給SmartHomeActivity主要應用進行對數據做相應的處理。③ Node-WriteThread類的運行描述。此類只是主要控制相應設備的控制命令,線程的使用過程中可以使用多線程,也可以使用多次執行,可以消除影響使用線程可以使程。STN32發送數據類型如表1所示。

表1 STN32發送數據類型
數據傳輸格式:
傳輸數據的包頭:STM32向s3c2410傳輸的數據對應的包頭數據為0xAA
S3c2410向STM32傳輸的數據對應的包頭數據為0x55
數據的類型:0x01對應啟動機器監控設備
0x02對應的是濕度和光照數據
數據的長度:表示數據的字節數
校驗采用標準:crc16校驗
STM32所采數據的包裝結構體
數據對應命令:
0x30 LED_ON(開燈)
0x31 LED_OFF(關燈)
0x32 Win_ON(開窗簾)
0x33 Win_OFF(關窗簾)
0x34 Fan_ON(開風扇)
0x35 Fan_OFF(關風扇)
0x36 Flohead_ON(開地暖)
0x37 Flohead_OFF(關地暖)
0x38 Aircd_ON(開數空調)
0x39 Aircd _OFF(關數空調)
0x40 Aircl_ON(開空氣凈化器)
0x41 Aircl _OFF(關空氣凈化器)
0x42 Camermotor(攝像頭電機)
0x43 Speker_ON(報警器)
0x44 Speker_OFF(報警器)
終端的模塊主要完成室內環境的數據采集以及執行上層返回的命令,采集的溫度主要包括溫濕度,光照,電壓信號等,執行命令包含開關電器和電機轉動。
控制器采用STM32,采用F103超低功耗,并且穩定可靠。無線通信模塊使用的是CC2530的ZigBee模塊。價格低成本小,能夠成很強的網絡節點。ZigBee與STM32采用Uart通信簡潔快速。
(1)系統上電,初始化系統時鐘,使能IO時鐘,配置LED,報警器,電扇開關,空調開關,空氣凈化器開關、地暖開關等IO端口,初始化Uart。使能控制中心的滴答定時器,并設置對應的中斷時間是1ms。并且做到處理中斷函數時間為1S,并對形影的全局變量counter1,counter2進行積累加上1。(2)要向控制終端傳輸下發新的設備注冊相應節點的信息。(3)接著要進行判斷counter1是否已經大于4S,如果已經大于了就接受數據信息,然后通過協議下發給顯影的終端版設備,并且此時要進行counter1置零。(4)進行判斷counter1是否已經大于3S,如果已經大于則要進行對看門狗喂狗,此時也要對進行counter2清零。(5)最后要讀取的是rbuf_1[],若其中有相應的數據,則精要把數據保存到也定的數組里面,接著就是看校驗數據是否已經然后接收完成,如果是接受完成的狀態,在界學者做數據的校驗的工作,如果經過校驗數據是正確的,就要依據相應的協議中的特定為進行判斷是否要發送指令,若發送,就要求則執行對應的函數并執行指令;如果數據的接收沒有完成,那么就要進行下一步的操作處理。STM32控制器完整工作流程如圖2所示。

圖2 STM32控制器完整工作流程圖
DHT10作為一種數字溫濕度傳感器,磁傳感器本身已經包含校準的數字信號溫濕度傳感器,DHT10因為兼具成本低,性能穩定,并且具有抗干擾能力強等特點,被廣泛的采用。DHT10使用單總線通信非常的簡介,只需要主機經過特定的時序進行一次掃描式的訪問,其就會一次行的向主機傳送40位數據,它的傳送方式是高位先出,數據的傳送格式為:8bit溫度整數數據 + 8bit溫度小數數據 + 8bit濕度整數數據 + 8bit濕度小數數據 + 8bit校驗位;最后的8bit位表示的是校驗之前4Byte數據和。
DHT10與主控板STM32的要接入一個上拉電阻,這樣能夠保證總線為空閑時,它的電平狀態是高電平。
數據上傳流程:
溫濕度,關照,電壓等傳感器信息傳給STM32,在STM32接受并檢驗封裝好以后,傳輸給Zigbee,Zigbee傳送給S3C2410,由2410發布到服務器,手機打開APP,通過數據解包,在手機上顯示溫濕度,光照,電壓等信息。
命令下穿流程:
手機通過APP控鍵,發送命令,命令包裝好以后,通過web,發送給控制平臺S3C2410,S3C2410通過ZigBee傳送到控制終端STM32,STM32通過解包命令,識別相對應的操作指令完成相應的動作。
結論:本文提供的此控制系統以STM32為控制終端,ZigBee以CC2530為內核,以S3c2410為終端控制平臺的智能家居控制系統。基本能夠完成對家居環境的溫濕度,光照等數據的上傳并時時檢測也能夠通過控制終端傳輸命令控制相應的設備有效運轉,如加濕器,空調,地暖等功能。如果終端設備發現數據異常能夠很迅速的發現異常并提醒用戶及時查看。該系統的功能有待進一步的簡化和完善,各功能和網絡傳輸有待進一步強化,為后續的功能擴展和應用擴展奠定了基礎。