孫嘉成,劉搏飛,邢曉鵬,隋盛譽,劉春池,謝印慶
(大連理工大學 城市學院,遼寧大連, 116600)
國家十四五規劃中物聯網作為數字產業經濟之一,物聯網時代已經到來。隨著“物聯網+”智能家居逐漸出現在了許多家庭中,人們對智能、安全、舒適的居家環境有了強烈需求。長期離家時,傳統窗簾長期緊閉,自家容易成為小偷的目標。夏季炎熱的陽光,會引起室內溫度升高,濕度過大時會抑制人體散熱。
基于上述問題,我們設計了一款智能窗簾。用光電對射管檢測窗戶是否在無人時被強行打開,溫濕度傳感器實時采集室內溫濕度的數值[1]。利用WiFi模塊可以將數據傳輸到云平臺中,用戶就可以通過APP查看到實時的室內狀況。同樣用戶可以通過APP來實現遠程控制窗簾的開閉。
此設計采用STC89C52芯片,實現窗簾整體的運動,同時多個模塊配合完成對智能窗簾的控制。其中溫濕度傳感器DHT11實時讀取家中溫濕度狀況;光敏電阻與模數轉換芯片ADC0832組成的電路對光照強度進行數字化并采集[2];對射型光電傳感器用來監測窗戶在無人時是否有被強行打開的情況,起到防盜的作用;電源采用USB 5V電壓供電;WiFi模塊連接OneNET云平臺,通過物聯網MQTT通信協議實現用戶APP與STC89C52單片機進行數據交換,完成用戶對智能窗簾的遠程控制和家中實時情況的掌握;步進電機控制窗簾的開閉。系統設計方案如圖1所示。系統模式分為兩種:系統模式和用戶模式。

圖1 系統設計方案
系統模式可以讓用戶在生活中享受科技帶來的便利,也可以在用戶出遠門時自動開合窗簾,避免帶來心懷不軌之人的注意。同樣可以根據室溫來開關,不會讓用戶感到任何的不舒適。
用戶模式可以讓用戶根據自身職業和習慣,設置窗簾的自動開合時間,更加貼近自身的生活,同時可以在特殊天氣、特殊情況和個人需求下遠程控制窗簾。
智能窗簾使用STC89C52芯片作為系統的控制核心。STC89C52是低功耗、高性能CMOS的微控制器,有8K在系統可編程的Flash存儲器、512字節RAM、32位I/O口,自帶4K字節的EEPROM,可直接使用串口下載[3]。51單片機的特點有處理性能強,運行速度快,低功耗;系統結構簡單,控制性能好;環境適應能力強;價格低廉。PO口作為I/O口時需要上拉電阻,作為數據或者地址時不需要上拉電阻。圖2為單片機最小系統。電源采用USB 5V電壓供電。

圖2 單片機最小系統
溫濕度采集使用的是DHT11芯片。DHT11是含有已校準數字信號輸出的復合傳感器,有較好的可靠性和長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,可以與單片機連接[4]。單片機就可以不停接收傳感器發送的數據。DHT11超低功耗,在5V電源電壓下工作平均最大電流只有0.5mA;只有四引腳易于安裝,不需要額外部件;精度達到濕度±5%RH, 溫度±2℃,量程濕度5到95%RH, 溫度-20℃~+60℃,輸出為單總線數字信號,數據完整傳輸一的大小次為 40bit,按照高位在前,低位在后的順序傳輸,8bit 濕度整數+8bit 濕度小數+8bit 溫度整數+8bit 溫度小數+8bit 校驗和[5];抗干擾能力強,可以在陰雨或者特殊天氣的情況下正常工作。DTHT11四引腳分別為接電源就、接地、空接、P00,串行數據DATA接單片機的P00。通信質量會受到DATA信號線的材質影響,我們使用高質量屏蔽線。溫度會很大程度影響相對濕度,在測量時為了讓保證測量濕度的準確性,安裝時將其遠離電子元件,并留下空隙隔熱。
光照采集模塊是由光敏電阻與模數轉換器ADC0832芯片共同組成。光敏電阻阻值隨光照變強而變小,無光照時恢復原來大小。ADC0832是雙通道A/D轉換芯片,最高分辨可達256級,電壓精度為19.53mV,輸入輸出電平與TTL和COMS相兼容,一般工作僅有15mW。DO 端與 DI 端在通信時并未同時有效并與單片機的接口是雙向的,所以電路設計時如果I/O口使用緊張,可以將 DO 和 DI 并聯在一根數據線上,減少一個I/O口的使用。ADC0832可以將光敏電阻的光照模擬信號轉化為數字信號,轉化的數字信號傳輸到單片機內,實現單片機對光照強度的采集。光照采集電路連接如圖3所示。

圖3 光照采集模塊
步進電機模塊作為窗簾運動的驅動。步進電機是一種將電脈沖信號轉化為角位移的器件,受電脈沖的控制。改變通電順序,可以改變步進電機的旋轉方向和通電頻率,實現電機正轉和反轉,達到打開和閉合窗簾的效果,也可以相應改變步進電機的轉速。步進電機工作電流電壓較大,我們使用ULN2003芯片放大電路電流,使其達到步進電機所需的驅動電壓,實現窗簾運動。
ULN2003是一個單片高電壓、高電流的達林頓晶體管陣列集成電路,由7個達林頓管組成。每對達林頓管都有一個2.7kΩ串聯電阻,可以直接和TTL或5V CMOS連接。輸入端直接接單片機的引腳使用電平控制,輸出端接步進電機,輸入5V的電平,輸出最高可達500mA/50V,從而完成對步進電機的控制。具體的電路連接如圖4所示。

圖4 步進電機模塊
警報模塊是由對射型光電傳感器和蜂鳴器組成,監測窗戶是否被打開。對射型光電傳感器是由發送器,接收器和檢測電路三個部分構成,將光信號轉化為電信號實現控制的。光電傳感器是光速,響應時間短;不需要接觸物體檢測,不容易造成損傷,可以長期使用;可以對塑料、玻璃、木材、液體等檢測,限制少;透光光束是可見光,方便對位置進行調整。發送器里的半導體光源對準目標發射光束,通過透鏡或者光圈到達由光電管組成的接收器,最后到檢測電路,濾除有用信號,輸出信號傳送給蜂鳴器[6],然后通過WiFi模塊將警報記錄傳送到用戶APP中。光電對射管和蜂鳴器的電路連接如圖5所示。

圖5 警報模塊
使用ESP8266芯片作為數據通信模塊,通過 ESPAT 指令固件,為單片機提供WiFi連接功能;功耗較低睡眠電流小于 20μA;時鐘速度最高可達160MHz,支持實時操作系統和WiFi協議棧;+19.5dBm的天線端輸出功率,具有良好的覆蓋范圍。ESP8266芯片集成了天線開關、射頻巴倫、功率放大器、低噪聲接收放大器、濾波器等等射頻模塊,外圍器件還有10個電阻電容電感、1個無源晶振、1個flash,工作溫度范圍:-40℃~125℃,支持softAP+station 共存的模式。ESP8266只負責將數據傳輸到目標地址,不對數據進行處理,發送和接收的數據內容和長度完全一致。
先將ESP-WROOM-02的管腳引出,和USB轉TTL串口模塊相接,然后就可以直接與電腦連接,通過下載軟件將固件下載到Flash中,最后將ESP-WROOM-02切換為工作模式,重新上電就可以讓芯片初始化從Flash中讀取程序運行。下載固件到芯片中以后,我們用AT指令控制ESP8266連接到家里的路由器以后,就可以順利通過單片機串口和WiFi模塊,與OneNET云平臺及APP連接。在云平臺中下載設備,用戶就可以通過設計的APP和單片機通過WiFi通信。ESP8266連接如圖6所示。

圖6 WiFi模塊
軟件流程圖如圖7所示。先將數據進行初始化,通過DHT11芯片和光照采集模塊讀取所需室內信息,信息通過單片機和WiFi模塊上傳到OneNET云平臺,用戶就可以通過APP查詢到室內信息。如果室內溫度或者濕度不在適宜度數以內,APP會記錄,并設置彈窗提醒用戶,這樣用戶就可以及時作出處理,讓用戶生活在更加舒適的環境中。室內信息上傳完后進行判斷,無人在家時窗戶是否被強行打開,如果被強行打開會觸發警報,蜂鳴器響起,警報記錄上傳并提醒用戶警報觸發。起到防盜作用,若已發生已經被盜取情況,可以通過APP種查詢警報時間,幫助調查和確定犯罪嫌疑人。若警報沒有觸發,會繼續掃描用戶端是否發出指令,然后進行模式判斷,最后步進電機會根據模式判斷的結果實現正轉與反轉。

圖7 軟件流程圖
在系統模式下會首先判斷時間,保證在用戶睡眠時窗簾一直保持在關閉的狀態下。然后會通過光照強度進行判斷,因為四季晝夜時長不同,冬季時,白天時間較短,系統會根據光照調整窗簾開合時間,當光照強度為0時會自動關上窗簾。最后進行溫度判斷,當室溫滿足18℃~28℃的情況下才會打開,目的是在一定程度調節溫度,讓室溫保持在一個使人舒適的數值下。
APP用戶端操作主要分為六個部分。其中兩個為警報模式和系統模式的開啟和關閉,系統模式關閉和窗簾控制時默認為用戶模式。剩下四個分別為警報記錄、室內實況記錄、窗簾控制、用戶自定義。警告記錄中將會記錄近20次在警報模式下強行打開窗戶的時間,以表格的形式呈現給用戶。室內實況記錄會將濕度和溫度分開做成兩個折線圖呈現給用戶,并將高于正常值的數據和時間用表格記錄出來,單獨呈現。用戶自定義是用來設置在用戶模式下的各個判斷數值的大小,貼近用戶生活。
物聯網云平臺主要功能是通過分析存儲在物聯網云關上傳輸網絡上的光照和溫度等數據,為用戶決策行為提供了實時可視化和數據動態分析處理的智能云平臺。MySQL是關系數據庫管理系統應用軟件,同樣是開源軟件,因此可以大大降低總體擁有成本。物聯網關系統的數據服務器用MQTT協議與云數據服務器通信[7]。APP將接收到的實時云服務器數據,做成可視化折線圖呈現給用戶。同樣當用戶使用手機APP開鎖時,會向局域網傳遞一個信號,由于單片機也在ESP8266的局域網下并訂閱了相同的主題,會接收到手機傳遞來的信號,從而電機轉動,MQTT協議可以在有限的帶寬下,為遠程設備提供實時可靠的消息服務。
以數字化、網絡化、智能化為特征的第四次工業革命正在興起,物聯網作為新一代信息技術與制造業深度融合的產物,融入家居系統是科技發展的趨勢。未來巨大的市場需求一定會為物聯網帶來難得的發展機遇和廣闊的發展空間。本設計利用物聯網技術和STC89C52作為控制核心,搭配了不同模塊實現警報、數據采集、數據交換和電機控制來便于用戶了解室內情況。單片機還預留部分I/O口,可根據自身需求添加模塊,進行二次開發。通過云平臺或者程序設計可以其他智能家居進行交互,給用戶更舒適的生活環境,具有很強的適用性。