周盧田,杏甜,劉陌凡,張旭,傅院霞
(蚌埠學(xué)院 數(shù)理學(xué)院,安徽蚌埠,233000)
百葉窗在日常生活中應(yīng)用十分廣泛,具有良好的透光性,與布藝窗簾相比,百葉窗可更加均勻的控制室內(nèi)光照[1]。在歐美等發(fā)達國家和地區(qū),智能百葉窗具有較大市場份額,窗體產(chǎn)品啟閉方式也進入了智能化的時代,在國內(nèi),智能百葉窗也受到了人們的重視,智能百葉窗屬于高端前沿產(chǎn)品,未來數(shù)年內(nèi)智能百葉窗市場將進一步擴大[2~4]。2020年陳美玲等人設(shè)計一款基于WiFi遠程遙控的智能逐光百葉窗[5],該設(shè)計通過ESP8266芯片,實現(xiàn)了百葉窗聯(lián)網(wǎng)功能。2021年劉雪雪等人設(shè)計的智能百葉窗[6],其葉片可根據(jù)環(huán)境變化,以及光線角度進行調(diào)節(jié)。前者的葉片只有全開和全閉兩種狀態(tài),其對光線的控制不夠均勻,且設(shè)計方案中ESP8266僅作為一個單向發(fā)送數(shù)據(jù)的芯片,芯片能力并未有效發(fā)揮。劉雪雪等人設(shè)計的百葉窗,缺乏遠程控制。本設(shè)計將采用ESP32的作為主控,結(jié)合前兩款百葉窗設(shè)計的優(yōu)缺點,致力于改善用戶體驗,提出一種新的智能物聯(lián)網(wǎng)解決方案。
系統(tǒng)構(gòu)成主要有ESP32、28BYJ-48步進電機、42步進電機、HDC1080溫濕度傳感器、光敏傳感器、語音模塊、MPU6050角度傳感器、激光測距模塊、變速箱、點燈Blinker APP等部件構(gòu)成。ESP32是系統(tǒng)中央控制器,控制與協(xié)調(diào)各個模塊之間的工作,同時作為一款2.4GHz WiFi芯片,其負責百葉窗與APP之間的遠程連接。28BYJ-48步進電機用于控制百葉窗葉片角度,42步進電機用于驅(qū)動窗簾拉起和放下。DC1080溫濕度傳感器負責采集室內(nèi)溫濕度數(shù)據(jù)與光敏傳感器配合,葉片可根據(jù)環(huán)境自行做出調(diào)整。激光測距模塊可測量用戶手掌與百葉窗之間的距離,用于手勢控制百葉窗。語音模塊用于采集用戶語音指令,配合激光測距模塊,用戶可實現(xiàn)對百葉窗進行離線非接觸控制。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)
本設(shè)計采用ESP32作為主控,該芯片采用40nm工藝,雙核32位MCU、2.4GHz雙模WiFi和藍牙芯片、主頻高達230MHz,計算能力可達600DMIPS。具有高射頻,高穩(wěn)定性,高可靠性、低功耗及通用性等特點,具有包括Active模式、Modem-sleep模式、Light-sleep模式、Deep-sleep模式、Hibernation模式在內(nèi)的多種調(diào)節(jié)管理模式??筛鶕?jù)不同需求,調(diào)節(jié)所需方案。常運用于嵌入式物聯(lián)網(wǎng)領(lǐng)域[7]。ESP32負責控制整個百葉窗的運行,ESP32通過MQTT協(xié)議與移動APP點燈Blinker進行連接。實現(xiàn)遠程控制百葉窗。ESP32將溫濕度傳感器獲取到的信息上傳到點燈Blinker實現(xiàn)遠程交互。ESP32通過IO口,發(fā)出脈沖,控制與之相連的42步進電機和28BYJ-48步進電機達到精確控制電機轉(zhuǎn)動效果。圖2為系統(tǒng)電路圖。
圖2 系統(tǒng)電路
本設(shè)計采用HDC1080溫濕度傳感器模塊,具有低成本,抗干擾性強,高分辨率等特點。該傳感器最高分辨率為14位測量分辨率。與ESP32進行I2C通信并以通過網(wǎng)絡(luò)將溫濕度數(shù)據(jù)發(fā)送至移動APP。測量數(shù)據(jù)流程如下,通過I2C通信協(xié)議在寄存器地址0x02中配置采集參數(shù)待其響應(yīng),通過將位12置1 設(shè)置采集溫度和濕度的模式,設(shè)置位10確定測量溫度的分辨率,位8和位9同時確定氣壓分辨率,通過執(zhí)行指針寫入指令并將地址指針設(shè)置0x00來觸發(fā)測量發(fā)送檢測命令,待設(shè)備響應(yīng),讀取8位字節(jié)獲取溫濕度信息[8]。
本設(shè)計采用TOF400C作為百葉窗的激光測距模塊,內(nèi)部由意法半導(dǎo)體生產(chǎn)的VL53L1X芯片控制。其優(yōu)點有功耗低,精度高,反應(yīng)較快等特點,常用于激光測距模塊。TOF是一種絕對距離檢測技術(shù),即傳感器發(fā)出經(jīng)過調(diào)試的近紅外光,遇物體后反射,傳感器通過計算光線發(fā)射和反射時差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。TOF400C取樣頻率較快,達到400kHz,與ESP32之間使用I2C進行通信,通過調(diào)用VL53L1X內(nèi)部的API對激光測距模塊進行數(shù)據(jù)讀取。此模塊在本設(shè)計用于測量用戶手掌與百葉窗之間的距離。
語音模塊LD3320,是一款非特定人聲芯片,無需額外錄音,識別外部語音與寄存器語音相同時即可,識別率可達95%。該模塊識別的語言可進行后續(xù)編程,開發(fā)者采用I2C通信,向寄存器內(nèi)部寫入需要識別的語音即可,后續(xù)可增添50組非特定人語音條[9]。為了進一步降低環(huán)境對該模塊的干擾,提高識別率,本設(shè)計在每條指令前設(shè)計激活語音指令,系統(tǒng)讀取到激活語音指令后,才可以執(zhí)行下一步語音指令。激活語音指令的設(shè)計,在一定程度上,減少了非指令語音的干擾,降低系統(tǒng)執(zhí)行錯誤指令的概率。
MPU6050 是 InvenSense 公司推出的整合性 6 軸運動處理傳感器。其內(nèi)部整合了 3 軸陀螺儀和 3 軸加速度傳感器,利用 MPU6050 芯片內(nèi)部的 DMP 模塊(Digital Motion Processor 數(shù)字運動處理器), 可對傳感器數(shù)據(jù)進行濾波、融合處理。MPU6050與上位機進行I2C通信,接口向上位機輸出姿態(tài)解算后的數(shù)據(jù),降低上位機的運算量。本設(shè)計將MPU6050加速度計陀螺儀貼合在百葉窗的葉片上,使之可以采集百葉窗葉片的角度信息,并將角度數(shù)據(jù)通過I2C協(xié)議發(fā)送至ESP32。
與傳統(tǒng)百葉窗相比,本設(shè)計在機械部分稍作改動,轉(zhuǎn)軸采用六角方鋼,在結(jié)構(gòu)強度方面優(yōu)于傳統(tǒng)百葉窗。同時設(shè)計配套一款變速箱,0.5模30齒的齒輪同蝸桿配合,使得減速箱可以實現(xiàn)自鎖效果。此變速箱預(yù)留接口利用28BYJ-48步進電機進行驅(qū)動。本設(shè)計通過置于葉片上的MPU6050傳感器可獲取葉片俯仰角度,從而與28BYJ-48步進電機形成閉環(huán)控制,使本設(shè)計可精確調(diào)控百葉窗葉片角度,百葉窗利用用42步進電機拉動拉繩,代替用戶手拉操作,達到方便省力的效果。同時,此款步進電機可后置剎車片,斷電后剎車抱死,窗簾任能保持斷電前的位置,在下次上電時剎車松開,電機可正常運轉(zhuǎn)。圖3為百葉窗外部電機結(jié)構(gòu)。
圖3 百葉窗外部電機結(jié)構(gòu)
3.1.1 自動模式
處于自動控制模式時,系統(tǒng)根據(jù)環(huán)境自主做出決策。傳感器采集室內(nèi)溫濕度數(shù)據(jù)和光照強度信息。葉片在0~180度進行一次翻轉(zhuǎn),同時光敏傳感器記錄室內(nèi)光照強度。在此范圍內(nèi),若光照強度均低于100lux,葉片翻轉(zhuǎn)到最強光照角度。光照強度在100lux~500lux,葉片角度不變化。光照強度高于500lux,且室內(nèi)溫度高于30℃,葉片關(guān)閉。光照強度低于10lux,系統(tǒng)判定為夜晚,葉片關(guān)閉。
3.1.2 半自動模式
此模式由語音模塊和激光測距模塊協(xié)作完成。用戶通過口令“百葉窗”待蜂鳴器有回應(yīng),語音系統(tǒng)激活,用戶可通過如表1所示口令控制百葉窗。
表1 語音口令
激光測距模塊視場角 為27 °,工 作 距 離 在50mm~4000mm。手勢控制開啟后,用戶手掌正對百葉窗持續(xù)三秒進行初始化操作。待蜂鳴器提示音響后,初始化完成。用戶前后移動手掌,葉片隨著用戶手掌前后移動進行翻轉(zhuǎn)。葉片翻轉(zhuǎn)角度與手掌和百葉窗之間的距離呈正相關(guān)。待葉片調(diào)整到適合的角度后,通過語音關(guān)閉手勢控制,葉片翻轉(zhuǎn)操作完成。語音模塊和激光測距模塊相互配合,用戶可實現(xiàn)在不接觸百葉窗的情況下對其進行操作。激光測距模塊的引入,在一定程度上豐富了百葉窗的控制方式,使百葉窗這種傳統(tǒng)家具更具科技感。
點燈Blinker是一套專業(yè),成熟的物聯(lián)網(wǎng)解決方案,其封裝了多個平臺的底層代碼,極大的簡化了開發(fā)者的開發(fā)工作。Blinker平臺其將服務(wù)器,設(shè)備端SDK,和APP整合到一起,簡化了物聯(lián)網(wǎng)開發(fā)工作。開發(fā)者僅需關(guān)注設(shè)備需要實現(xiàn)的功能,而不需要去處理繁瑣的底層邏輯開發(fā)簡單。用戶可自定義編輯Blinker app操作界面。自定義界面完成后,將app中獲取到的Secret Key、WiFi熱點名稱以及WiFi密碼編譯到ESP32中,ESP32連入用戶的WiFi,用戶便通過移動APP控制百葉窗,遠程控制窗簾收放,精確控制百葉窗葉片的翻轉(zhuǎn)。
本設(shè)計使用的開發(fā)環(huán)境為Arduino IDE,開發(fā)環(huán)境中安裝ESP32庫,即可對ESP32芯片進行開發(fā),開發(fā)簡單,代碼簡潔。為了使系統(tǒng)能夠接入點燈Blinker平臺,需在開發(fā)環(huán)境中安裝Blinker庫。
設(shè)備每次上電后,均需完成初始化操作。剎車片松開,窗簾收回,直到最頂部的葉片觸碰到限位開關(guān),停止收回,窗簾位置清零,待蜂鳴器提示后,完成初始化操作。初始化完成后用戶選擇接入模式,系統(tǒng)接入Blinker 平臺 ,WiFi模式定義函數(shù)為BLINKER_WIFI,創(chuàng)建組件對象,綁定用戶APP中的滾動條,按鍵和文本框。通過ESP32將溫濕度數(shù)據(jù)導(dǎo)入心跳包,數(shù)據(jù)間隔30~60s通過心跳包發(fā)送到APP[10]。用戶可實現(xiàn)遠程對百葉窗的控制和數(shù)據(jù)查詢。選擇自動控制模式后,葉片在0~180°內(nèi)翻轉(zhuǎn),系統(tǒng)采集90組光照強度,并進行冒泡排序,系統(tǒng)尋找出最優(yōu)角度,電機執(zhí)行轉(zhuǎn)動,此后進入循環(huán),葉片每5分鐘進行一次掃描。當語音模塊被激活時,系統(tǒng)進入語音控制模式。若在語音模式下,激光測距模塊被激活,系統(tǒng)通過測量與手之間的距離,進行一維手勢控制。圖4為程序設(shè)計思路。
圖4 程序設(shè)計思路
本設(shè)計采用ESP32作為主控,系統(tǒng)通過Blinker連入互聯(lián)網(wǎng),實現(xiàn)對百葉窗的遠程控制。溫濕度傳感器與光敏傳感器配合使得百葉窗可根據(jù)環(huán)境自主做出決策。語音控制配合手勢控制,令百葉窗更具科技感。用戶可以在不接觸百葉窗的情況下對其進行離線控制,在一定程度上豐富了百葉窗的控制方式。本設(shè)計為相關(guān)產(chǎn)品提供了一種新的發(fā)展思路,豐富了用戶體驗,具有較大的市場前景。