黃藝聰
(賽客(廈門)醫療器械有限公司,福建廈門,361026)
伴隨科技水平不斷提高,物聯網技術發展給智能家居帶來了諸多便利。基于無線WIFI技術實現遠距離智能控制已成為當前智能家居發展的主要技術手段。無線WIFI技術與家居電器設備控制相結合,基于物聯網技術實現智能家電控制是當前的研究熱點。本文以無線WIFI為媒介,基于物聯網技術研究家電遠程控制系統,該系統可實現家居智能設備遠距離控制,有利于實現節能的同時提升生活品質和效率。
本設計主要包括系統硬件、云服務器與控制端等三大功能部分。WIFI 作為系統硬件接入互聯網的工具,與云服務器進行通訊,安卓手機作為控制端。硬件選用STM32F103C8T6型單片機作為驅動。在手機上安裝特定APP,即可通過手機接入互聯網,與服務器進行交互。云服務器核心信息中繼樞紐,是實現遠程控制的重要一環。獲取控制端數據后轉發至主機,硬件解析服務器發來的數據生成控制指令,實現對相應電器工作過程的控制。
方案一:選用 STC89C52RC 芯片。STC89C52RC 每次可以處理8位數據,編程簡單,非常適合初學者入門使用。方案二:選用STM32F103C8T6芯片。該芯片采用Cortex-M3內核,擁有64K程序存儲空間,數據處理速度快,穩定性高。
綜上對比,方案一功能簡單、開發方便,但運行處理速度較慢,方案二穩定性更高,在家電遠程控制系統中,與WIFI模塊的通信中,對運行速度和穩定性提出了很高的要求,所以,方案二更貼合該套系統的實際需求。
對比無線通信方案,方案一:選用Zigbee芯片,使用Zigbee無線技術組成一個設備網絡,通過外設網關與手機進行通信;方案二:使用ESP8266系列無線WIFI芯片,通過WIFI直接進入互聯網,與服務器進行通訊。無線通信模塊是除主控芯片外最重要的部分,決定了系統性能。Zigbee可接入節點高達6萬多,但Zigbee穿墻能力較弱、傳輸速率慢,且在使用時需配備Zigbee網關支持才可與智能手機進行通信。WIFI在傳輸速率上具有較大優勢,且穿墻性能較強、覆蓋范圍廣,可實現100-300米區域覆蓋,開發使用方便,能夠直接接入互聯網,并且可以在局域網內與智能手機進行直接的點對點通信,其主要缺點是功耗大,網絡容量小,目前已知家庭WIFI路由器最大接入數量是64個節點,一般家庭用戶的接入點為10個左右。
結合系統實際應用對比,方案二傳輸速率快、覆蓋范圍廣、穿墻性能好、使用方便,成本低廉。WIFI技術應用普遍且自身可成為中心節點,也可作為結構節點或直接接入互聯網,實際應用中方案二的優勢突出,選用WIFI作為無線通信模塊。芯片選擇ESP8266系列的ESP-12F超低功耗芯片用以彌補WIFI功耗大等缺點。
系統硬件主要由控制器、無線 WIFI模塊、溫濕度模塊、電磁繼電模塊和顯示模塊等組成。控制器讀取溫濕度傳感器采集到的數據,將數據傳輸到無線模塊。無線模塊接入互聯網與服務器鏈接后傳輸溫濕度數據、電磁繼電器通斷數據,服務器繼續將數據轉發至智能手機控制端,手機通過 APP 即可訂閱服務器下發的數據。當用戶在 APP 上發送指令數據時,也是通過服務器作為中轉,發送至無線 WIFI芯片,通過串口傳遞給控制器進行數據的處理,進而控制電磁繼電器的通斷,達到控制家電的效果。系統整體架構如圖1所示。

圖1 系統整體架構圖
控制采用的STM32F103C8T6 芯片是STM32入門首選芯片之一。單片機核心板(MCU)原理圖如圖2所示。其中包括復位電路、電源濾波電路和時鐘電路,系統采用3.3V電源供電。但部分外部電路供電電壓高于3.3V,采用電源穩壓電路實現,穩壓電路原理圖如圖3所示,將穩壓電源作為MCU供電電源。

圖2 STM32核心板電路原理圖

圖3 穩壓電路原理圖
選用DHT11 數字式溫濕度傳感器作為溫濕度信息采集模塊。DHT11 具有響應快、抗干擾能力強、性價比高等市場優勢。DHT11供電范圍為DC 3.3~5.5V,超出此范圍會損壞傳感器。若低于此范圍傳感器將會讀取到錯誤溫濕度數據而導致不工作。設計時DATA引腳直接與單片機相連,并在DATA引腳處連接1個10kΩ上拉電阻,以保證信號穩定性。DHT11采用單總線數據協議,通過DATA引腳與控制器進行通信,每次發送40位數據。接收數據后,需要對數據進行校驗。DHT11電路原理圖如圖4所示。

圖4 DHT11電路原理圖
無線模塊采用安信可科技基于樂鑫 ESP8266 核心開發的ESP-12F串口轉無線模塊。ESP-12F模塊提供了2種啟動模式,在本系統中作為從機使用,使用 FLASH 啟動模式,使用RXD、TXD引腳用于串口通信,GPIO 0、GPIO 2、GPIO 15 用于確定模塊啟動方式,該模塊電路原理如圖5所示。

圖5 無線模塊電路原理圖
其中,VCC 接外部3.3 V穩壓電源,GND接電源地。GPIO15串聯1個下拉電阻接電源地,用于拉低 I/O電平信號,GPIO 0和 GPIO 2引腳懸空,默認為高電平,模塊上電后從 FLASH 模式啟動。TXD和RXD與MCU的RXD和TXD對接,通過串口進行數據收發。CH_PD 使能端串聯1個上拉電阻,拉高使能端電平信號,使模塊工作。REST 引腳接入復位電路,在系統上電時自動復位。
本系統采用5V電磁繼電器,設計時使用EL357N 光電晶體管光耦合器、SS8050 NPN型三極管、IN4148整流二極管,電路原理圖如圖6所示。因電磁繼電器工作電流遠高于MCU 等器件,需要對驅動電流進行放大。SS8050三極管主要起放大電流和開關作用。在該模塊部分電路設計中,接線端口“2”號為公共端,與“1”號相接為常開電路,與“3”號相接為常閉電路,為用戶提供更多的家電控制選擇。

圖6 繼電控制模塊電路原理圖
較之液晶顯示,OLED分辨率較高,亮度和響應速度性能更佳。可有效顯示中文字符,符合國內用戶需求。該顯示模塊可直接與 MCU 相連,原理圖如圖7所示。其工作電壓為 3.3 - 5V。具有 DC、CS 等 7 個功能引腳。

圖7 鋸齒波仿真波形

圖7 顯示模塊電路原理圖
系統設置有源蜂鳴器作為聲音報警系統,電路設計如圖8所示。為了使蜂鳴器聲音盡可能大,采用SS8050 NPN型三極管集電極對蜂鳴器驅動。

圖8 蜂鳴報警電路原理圖
設計時采用 Keil MDK作為系統驅動開發工具,可為 ARM7/9、Cortex-M 提供開發、固件燒寫和在線仿真,操作界面簡單,功能十分豐富,需進行MCU輸入輸出GPIO口分配。
分析DHT11溫濕度傳感器工作時序圖,總體通信流程步驟如下:
步驟一:DHT11 上電后,會有一段不穩定時間,需要等待 1 秒才能繼續操作,然后對環境溫濕度數據進行檢測并記錄。DATA保持高電平輸入狀態,檢測外部信號。
步驟二:MCU的 I/O 輸出低電平。18毫秒后將 MCU的 I/O改變為輸入狀態,通過上拉電阻拉高MCU的I/O 電平信號,等待DHT11作出響應。
步驟三: DATA 檢測到低電平信號時,延時輸出 80 微秒的低電平響應信號,然后輸出 80 微秒的高電平信號通知 MCU 準備接收數據。
步驟四:由 DHT11 的 DATA 引腳輸出 40 位數據。在檢測過程中,可以先將 MCU 的 I/O 電平拉低50微妙,延時40微妙后,再檢測 DATA 的電平信號。
步驟五: DATA 輸出 40 位數據后,會輸出50 微秒低電平信號,然后更改為輸入模式,等待外部信號。MCU在接收完40位數據后,需要進行數據校驗,通過校驗才為正確的數值。
設計時,使用AT指令控制ESP-12F模塊工作在透傳模式。在使用ESP-12F模塊前,需要給模塊燒寫固件。本系統使用機智云服務器進行設計,選用機智云提供的 GAgent 固件版本。機智云在固件里嵌入了符合自身平臺開發的協議,在云端會下發已經封裝好的指令函數庫,開發者在開發時通過串口調試設置模塊透傳模式和服務器鏈接地址,在程序開發中調用其API接口。
數據賦值給結構體后,在主函數最后會執行gizwits Handle 函數,通過該接口可以完成設備數據的變化上傳,即程序循環一次就上傳一次數據。在設備上電并接入網絡后,會每隔 1 小時自動獲取一次網絡時間,進行網絡對時。在程序中,通過調用機智云的 NTP 協議接口gizwitsGetNTP函數實現自動對時功能。
電磁繼電器模塊通過 EL357N 光電耦合器 DC-DC 轉換后,可直接使用低電平控制電磁繼電器工作。電磁繼電器狀態變更,并上傳變更數據:

在云端數據定義中,電磁繼電器閉合為 1,斷開為 0,MCU 程序中電磁繼電器閉合為 0,斷開為 1,所以需要進行 0=> 1 ,1=> 0 的數據轉換。
服務器作為用戶與硬件設備的橋梁,對服務器選擇影響著系統的穩定性與易用性。因現有資源限制且自建服務器成本高昂,使用機智云服務器平臺。該平臺提供從定義產品、設備端開發調試、應用開發、產品測試等“一站式”服務的能力。建立項目后即可在項目內建立虛擬傳感器設備,并設置需要使用的變量。云服務器搭建完畢后,采用 MQTT 協議實現與服務器的通信。開發過程中,需要根據 MQTT 協議在 ESP8266 模塊中設置與云端的通信方式。在設置以及后續開發過程中,需要用到一個重要的Product Key產品密鑰。該密鑰是全網唯一的身份辨識碼,通過該密鑰進行身份識別,識別通過才能與云端進行通信。
針對硬件電路進行軟硬件聯合調試,測試硬件數據的準確性及穩定性。硬件測試部分不接入云端服務器,只考量系統中的離線控制功能,WIFI模塊在整機調試時加入。經調試表明時鐘計時準確,OLED模塊顯示正常;溫濕度檢測數據準確;蜂鳴器在溫濕度超出閾值時報警;電磁繼電器定時開關功能正常;獨立按鍵功能正常。
物聯網技術已成為智能家居控制的重要手段。本設計主要實現家電遠程控制系統設計,基于單片機及ESP-12F無線 WIFI 模塊開發,通過安卓 APP 接入云服務器發送指令進行控制。實現從客戶端下發控制指令,通過無線 WIFI 模塊將數據傳輸給單片機,進而控制電磁繼電器的通斷,并從溫濕度檢測模塊獲取溫濕度數據,通過WIFI無線模塊傳輸給客戶端,達到家電遠程控制的需求。調試結果表明,該控制系統可實現遠程家電開關及節能控制,具有一定的使用價值和意義。但因條件所限,本設計主要依賴云平臺驅動服務,從 WIFI模塊固件到 MCU 驅動程序庫,再到作為通信橋梁的服務器,都是由機智云平臺提供,顯著降低了系統后期開發平臺的可移植性,有待進一步加強。