趙靜雅 劉涌 胡曉紅
摘要:隨著互聯網的發展,家居智能化的控制越來越多地應用在人們的日常生活中。本文較為詳細地論述了基于STM32的智能家居檢測控制系統的構建意義、開發思路,并對系統設計的部分關鍵技術進行論述,從而實現智能家居檢測控制系統的構建,該系統可以實現對多種設備的控制以及對家居環境的檢測。
關鍵詞:STM32;設備控制;局域網;遠程控制
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)12-0170-02
1 緒論
1.1 研究背景
智能家居的發展分為三個階段,首先是家庭電子化階段。該階段面向單個電器,家庭電器并未通過網絡相連,相互之間沒有聯系,僅僅只是通過特定的方式來控制某個電器按要求進行工作。第二個階段是住宅自動化階段,該階段的智能家居系統面向功能進行設計,一部分家庭電器通過簡單的網絡進行互聯從而實現某些特定的功能。最后是家居智能化階段,該階段是面向系統設計的階段,該系統的重要基礎是各設備的互聯網絡。智能家居系統把住宅內各種與信息相關的設備連接到網絡節點中進行集中的監控、管理,從而保持家電與家居環境的協調,為用戶提供生活、工作、學習以及娛樂的各種優質服務。智能家居以電子技術、自動化技術及通信技術為技術基礎。另外,發展迅速的遠程管理技術、云計算技術、物聯網技術等新興技術也與智能家居相結合,進一步促進了智能家居技術的發展。
1.2 研究意義
通過對智能家居檢測控制系統的研究,能夠大幅提高人們生活質量、工作效率,豐富人們的物質與精神生活。隨著計算機技術、通信技術、信息技術的發展以及電腦的普及,家居實現智能檢測控制,將給人類生活帶來全新的變化。
2基于STM32的智能家居檢測控制系統設計的關鍵技術
本系統對家居設備的直接控制由STM32單片機系統實現,單片機系統通過接收不同途徑傳遞過來的命令以決定做出什么樣的控制動作。系統中有多種控制方式,其中的局域網控制方式又有管理員與普通用戶的區別,因此為不同控制終端分配了不同的優先級。
2.1單片機方案選擇
STM32使用3.3V電壓供電,本設計采用的WiFi模塊也使用3.3V供電,省去了電平匹配電路,同時本設計需要同時使用兩個串口,51單片機只有一個串口,因此采用STM32單片機控制系統。
2.2網絡構建方案選擇
上位機與下位機同時連接路由器,構成局域網,其方案選擇有以下兩種。
方案一,下位機做服務器,上位機做客戶端。每個用戶都能通過一個特定的客戶端連接上服務器向服務器發送指令。該方案能使多個用戶通過多個客戶端實現對家居設備進行獨立控制。
方案二,下位機做客戶端,上位機做服務器。每一個下位機模塊作為一個客戶端,接收上位機服務器發送過來的指令。該方案能僅使用一個上位機來對大量設備進行直接控制。
在該網絡中服務器只有一個,客戶端可以有多個。方案一適用于一個家庭中多個成員各自對家居設備進行控制的情況,但存在一定的安全問題。方案二中每個下位機都能獨立控制一定數量的設備,因此能實現對大量設備的控制,但家居設備數量較少,可由一個下位機進行控制,而且下位機數量的增加也會增加成本。服務器程序的開發難度也大于客戶端的開發。綜合考慮采用方案一。
2.3 實時溫度采集方案
上位機實時溫度曲線的繪制需要實時采集溫度以更新用于繪制曲線的數據。使用上位機的timer控件,以1s為周期向下位機發送請求,利用下位機的串口中斷獲取實時溫度值。
2.4硬件系統設計
2.4.1單片機最小系統
包括電源、時鐘和復位電路。STM32F1xx系列采用低電源工作,電源工作范圍是2.0~3.6V,常規設計一般選用3.3V電源。時鐘是微處理器最重要的部分,時鐘的來源是振蕩器。在STM32F1xx系列產品中,其芯片內嵌一個8MHz的RC振蕩器,在芯片上電復位以后,這個RC振蕩器首先起振,為系統提供時鐘源。本系統中需要實現異步通信,因此需要外接振蕩器以提供高精度時鐘。系統主時鐘既可以選內部RC振蕩器作為時鐘源,也可以外部接一個時鐘源。本系統中使用外部8MHz的晶振作為系統時鐘的時鐘源而不使用內部RC振蕩器,目的是提高精度。
2.4.2溫度采集
本系統采用的溫度傳感器是DS18B20,DS18B20是常用的高度集成溫度傳感器,具有體積小,精度高等優點。接收單片機的指令并向單片機返回所測溫度值。
2.4.3 LED驅動
本設計總共用到了兩個LED。LED1即具有三種工作模式的LED,LED0與風扇共同受一個IO口控制,用以指示風扇的工作功率。LED采用共陽連接,LED正極與上拉電阻相連,負極與IO口相連。LED的工作電壓和電流均較小,無須另外的驅動電路,可以通過單片機的IO口直接驅動。
2.4.4 Wi-Fi模塊
在實現局域網控制功能時下位機需要通過局域網與上位機進行數據交換。上位機可以通過編程驅動無線網卡來實現,而下位機不具備網絡通信的硬件,因此需要外接Wi-Fi轉串口的模塊來實現收發數據的功能。本設計采用的Wi-Fi模塊是USR-WIFI232-T。這是一款一體化的低功耗嵌入式Wi-Fi模塊,能夠將用戶的物理設備連接到Wi-Fi無線網絡上,而用戶只需使用UART數據串口便可以方便地向Wi-Fi無線網絡中發送數據或者從中接收數據。通過該模塊,下位機系統便可以使用串口通過局域網與上位機交換數據。
2.4.5 GSM模塊
在實現遠程控制功能時下位機需要通過移動基站與手機進行數據交換。手機可以直接無線連接到基站,通過發送短信的方式將數據發送到基站,而下位機必須通過外接的GSM模塊將串口發出的數據傳到基站和將從基站接收到的數據轉發至串口。本設計采用的GSM模塊是USR-GPRS232-7S3。該模塊內置一張SIM卡,并通過指令設置指定手機號。指定手機號發送給模塊的短信會通過串口輸出,單片機通過串口輸出到GSM模塊的數據會以手機短信的方式發送到指定手機上。該模塊通過stm32的串口2與stm32通信。
2.5 系統軟件設計
軟件系統分為上位機程序和下位機程序兩個部分。上位機程序用C#編寫,采用事件觸發的方式以便于用戶操作,主要功能是向下位機發送各種命令,并接受下位機的返回信息以一定方式顯示出來。下位機程序用C語言編寫,主要包括各個設備的驅動程序以及用于處理控制命令的串口中斷服務程序。
上位機軟件主要分為主窗體和子窗體兩部分,大部分工作由主窗體完成,子窗體主要用于溫度曲線的繪制。當主窗體中用于控制下位機的按鈕被按下后,其注冊的單擊事件便會被觸發,從而向下位機發送根據通信協議預設的控制命令。另外,當主窗體接收到數據后會從中截取出不同的信息并進行相應的處理。當需要繪制溫度曲線時,主窗體生成子窗體,然后通過下位機連續采集溫度值,并通過窗體間傳值將溫度值傳遞給子窗體進行繪圖。
3 結論
本系統有三種控制方式,適用于現場、局域網、遠程這三種不同控制距離的要求,分別是與STM32直接相連的硬件觸摸屏控制;局域網內電腦上位機與下位機無線互聯控制;遠程手機短信控制。這三種控制方式可根據實際需要進行切換或多種方式同時使用。系統的主要功能是使用戶能夠以某一種控制方式來實現對小功率設備的開關、工作模式的設置,對大功率設備的開關和工作功率的設定,以及實時數據的檢測。經測試,該系統能夠通過三種控制方式實現對設備的準確控制,從而實現智能家居檢測控制系統的設計。
參考文獻:
[1] 邢袖迪.智能家居產品從設計到運營[M].北京:人民郵電出版社,2015(10).
[2] 劉火良.STM32庫開發實戰指南[M].北京:機械工業出版社,2017(2).
[3] 李玉.基于STM32的低端無線智能家居控制系統探索[J].信息通信,2015(3).
【通聯編輯:唐一東】