王慧敏,督靜雯,那天力
(1.西華大學計算機與軟件工程學院,成都610039;2.西華大學西華學院,成都610039)
隨著物聯網的不斷發展,智能家居也將逐漸走進大眾的生活。智能家居作為物聯網的發展方向之一,為人類生活帶來便捷的同時,也需要考慮智能家居系統的功耗、成本、穩定性以及安全性問題。目前普通居民對于現階段智能家居的認識還不是很深入,但是他們都有同樣的需求,就是讓生活更便捷,彌補現階段推廣較為普遍的家居體系的不足。由于Arduino 的低功耗特性,設計的Arduino 微型智能家居系統還能運用于學生寢室,學生也是一個龐大的群體,對于新型智能寢室有著極大的需求。目前市場上并沒有針對智能寢室方面的智能系統,現階段市場上展現出的智能家居系統在功耗上難以滿足大多數學生寢室的需求,針對學生寢室,在保證系統安全穩定高效和功能實現的前提下,將功耗盡可能降低,同時達到了節能目的[1]。
具有門禁、智能燈控、智能插座、空氣開關、自動窗簾、防盜、環境監測、廚房有害氣體監測、雨天自動收衣、語音識別控制等諸多功能。但是實現這些功能都是在不破壞原有家居的前提下進行的,如果其中某一個小功能模塊暫時無法使用了,并不會影響整個系統的運行。只需要把相關功能模塊添加進去就可以繼續使用該功能,類似于搭積木的形式。

圖1 微型智能家居系統結構圖
Arduino 與傳統的單片機開發不同,硬件平臺和電路圖開源,所有公司生產Arduino 開發板成本較低,市場價格相對較低[2]。Arduino 與FPGA 的對比如表1所示。

表1 Arduino 與FPGA 對比
得益于Arduino 的積木可移植性,設計了多個系統模塊,從最初的門禁模塊,再到后來加入了紅外遙控模塊、藍牙通訊模塊、Wi-Fi 通訊模塊、防盜模塊、窗簾模塊等,可供用戶自行選擇。基于Arduino 的開源性,得以將功能模塊化,使系統的功能模塊可以像積木一樣添加刪減。
對于門禁功能,這里以“刷卡進門”為例進行分析。采用一卡通(RFID 卡)接觸RFID 的識別區(即圖2 中的RFID 模塊),通過RFID 模塊對校園卡進行識別,在這個識別過程中,讀卡器主要是將校園卡中的身份信息讀取出來,然后系統會將讀取出的身份信息與門禁系統中錄入的身份信息進行快速匹配,通過處理器進行分析,如果能夠匹配上,說明該身份信息是合法用戶。當聽到所使用的RFID 卡被識別的聲音時,說明該卡信息已被讀寫器讀取[3],并將相關信息數據傳送至Arduino 單片機的主控芯片,Arduino 單片機進行一系列運算后,將控制指令傳送至舵機,隨后舵機帶動門鎖,門就會打開。在這個功能模塊中,舵機足夠帶動20kg 中的門鎖開門,完全可以滿足大多數居民家居和學生寢室。在門禁功能,處理采用RFID,也可以替換成指紋解鎖、人臉識別解鎖或者虹膜識別解鎖,由于系統進行模塊化,兼容性相對較高,替換時比較方便,后期擴展容易。

圖2 微型智能家居系統主要模塊電路組成
對于Arduino 開發板,首先需要搭建開發環境,給Arduino 編程需要用到的集成開發環境IDE 是Arduino 1.8.9,在這款軟件上編程需要使用Arduino 語言,該語言是模塊化的編程[4]。這是一種解釋型語言,寫好的程序被稱為sketch,編譯通過后就可以下載到開發板中。Arduino IDE 的安裝可以是在Windows 環境下,也可以是Linux 或者Mac OS。
RFID 模塊采用的是RFID-RC522,MF RC522 是一款低電壓、低成本、體積小的非接觸式讀寫卡芯片[5]。利用調制和解調的概念,集成了在13.56MHz 下類型的被動非接觸式通信方式和協議。MFRC522 支持MIFARE系列的非接觸式通信,雙向數據傳輸速率快[6]。
藍牙模塊采用的是HC05,HC05 是主從一體的藍牙串口模塊[7]。當藍牙設備與藍牙設備配對連接成功后,可以直接將藍牙當做串口用。藍牙模塊用于短距離和點對點的無線數據傳輸和接收[8]。
Wi-Fi 模塊采用主要部件是ESP8266,ESP8266 這款Wi-Fi 芯片使用了3.3V 的直流電源,體積小,功耗低,內置完整的TCP/IP 協議棧,支持透傳[9]。ESP8266硬件接口豐富,可支持UART、IIC、PWM、GPIO、ADC等,支持STA/AP/STA+AP 三種工作模式,適用于各種物聯網應用場合。
環境監測模塊用到傳感器是DHT11 溫濕度數字傳感器和PM2.5 傳感器。DHT11 數字溫濕度傳感器包含NTC 測溫元件和抗干擾能力強的電阻式感濕元件[10]。采用單總線數據格式,單個數據引腳端口完成輸入輸出雙向傳輸,其數據包由5Byte(40bit)組成。PM2.5 傳感器用來感應空氣中的塵埃顆粒,傳感器模塊主要由光電晶體管和發光二極管組成。通過光電晶體管探測塵埃的反射光,發光二極管射出的光經過塵埃顆粒反射后,根據所探測到反射光的強度,將記錄下的數據在系統中進行計算后判斷出空氣中塵埃顆粒的濃度。
防盜:融合紅外感應模塊的防盜系統可實現對室內安全的防護,在檢測到異常時,會將異常情況通過Wi-Fi 通訊模塊發送至用戶手機,并且會通過蜂鳴器達到自動預警功能。紅外感應模塊可以發出和空調及電視等遙控器相同波長的紅外線,來達到控制紅外遙控的家居的開關的目的,如空調、電視等。
環境監測:將搜集到的傳感信息進行處理分析,達到對室內光線、溫度、濕度、空氣中PM2.5 濃度、有害氣體的實時監測。如果室內溫度過高或者過低,可以將此信息通過室內的短距離通信系統快速高效地傳輸到控制系統,再通過紅外模塊控制家居的空調開關,達到自動調控溫度的效果。
廚房有害氣體監測:可以檢測廚房內有害氣體的濃度,來達到檢測天然氣泄漏的目的。配合步進電機模塊可以在檢測到燃氣泄漏的第一時間工作起來將燃氣閥門關閉。
智能燈控:主要是針對晚上自然光較弱的環境下,如果半夜用戶需要起床去洗手間,智能燈控就會根據紅外和諸多傳感信息檢測出用戶的需要,自動將燈打開。
自動窗簾:通過光傳感器搜集室內外的光線信息,在系統中設置光線強度閾值,如果室內光線偏暗或過強,將此信息傳送至控制器,由控制器發出相應給舵機,舵機帶動窗簾,實現自動關閉或打開。
雨天自動收衣:放在屋頂的雨滴傳感模塊在感應到下雨時,會傳輸給控制系統信號,控制系統檢測當前衣物的位置,如果在淋雨區域,則打開舵機電源,驅動舵機將晾衣支架移動到避雨區。
可控空氣開關:控制整個家居的電氣總閥門,用戶外出時可以通過網絡進行控制,避免用戶外出時遺忘關閉電氣總閥門而造成不必要的損失。
語音識別控制的主要功能是用戶可以通過語音傳送消息來控制室內各種開關,通過語音打開空調,設置空調溫度等。這些語音識別是建立在用戶手機上的App 應用[11],通過將消息傳送給App 端,進一步控制家居各個區域。主要功能設計:
(1)App 能夠實現語音識別功能并對關鍵字進行識別,能夠對關鍵指令進行聲紋認證,聲紋密碼可修改。
(2)App 能夠通過語音指令獲取設備狀態和環境溫濕度信息,并通過圖形頁面顯示出來。
可以使用網絡遠程連接系統,并進行對應操作,例如監視環境變量、控制家居設備等。另外也兼容第三方平臺,例如,天貓精靈智能音箱、小愛同學智能音箱、blinker 平臺等,通過第三方的語音指令來實現系統的指令操作。

圖3 配套App主界面圖
在整個系統會有大量數據的處理,在大量信息交互的過程中必須保證整個系統的信息安全。除了上述提到的簡易防盜系統來保證整個系統的安全外,還采用了密碼學中的DES 加密算法對系統信息進行加密,DES 是分組密碼算法,它可以完全利用硬件來實現,可以通過程序實現加密,然后嵌入系統中來達到信息的機密性。不管是完全基于硬件還是程序來實現該算法,其工作效率都是相對比較高的,如果要完成系統信息完整性和認證性,則可以在傳統的DES 算法的基礎上加以改進,利用基于hash 函數的消息認證碼,并且結合DES 的加密,采用CBC 模式。
本文主要從硬件電路和軟件部分兩方面來設計并實現了Arduino 微型智能家居,集成本低廉、功耗較低、后期功能擴展開發簡單、功能多樣、可以采用USB 接口供電等諸多優點。推廣范圍不受群體局限,學生寢室或普通居民家居均適用,可實現遠程控制,不管是在室內還是室外都可控制智能家居的運行,具有廣闊的市場前景。