張雪峰 黃榕 張海榆 牛國(guó)鋒 錢振江
摘要:該設(shè)計(jì)采用Arduino控制器以及溫濕度傳感器、數(shù)字環(huán)境光照傳感器、模擬聲音傳感器、繼電器控制、LCD液晶顯示屏和SD存儲(chǔ)卡等設(shè)計(jì)一款智能家居監(jiān)測(cè)控制系統(tǒng)。Arduino控制器通過(guò)數(shù)字和I/O擴(kuò)展接口分別連接不同的傳感器和LCD液晶顯示屏,實(shí)現(xiàn)對(duì)溫度、濕度、環(huán)境光以及噪音等變化情況的實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)和采集,采用LCD液晶顯示屏顯示并將數(shù)據(jù)寫入SD卡中進(jìn)行保存和研究。該智能家居監(jiān)測(cè)控制系統(tǒng)簡(jiǎn)潔、直觀、方便、可靠,能實(shí)現(xiàn)相應(yīng)的監(jiān)測(cè)和提示功能,應(yīng)用在一些特定場(chǎng)所具有較高的實(shí)用性和成本優(yōu)勢(shì)。
關(guān)鍵詞:Arduino控制器;傳感器;智能家居;數(shù)據(jù)監(jiān)測(cè)
中圖分類號(hào):TM383.4? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)10-0004-02
目前,市場(chǎng)上的一些家居監(jiān)測(cè)控制系統(tǒng)基本都是采用51單片機(jī)作為核心控制模塊,而且在環(huán)境數(shù)據(jù)監(jiān)測(cè)類別和顯示功能方面比較單一,進(jìn)行功能的擴(kuò)展也需要更改單片機(jī)內(nèi)部硬件結(jié)構(gòu)和寄存器的設(shè)置等,存在諸多缺點(diǎn)和不便。Arduino是一款便捷靈活、方便開(kāi)發(fā)者使用和開(kāi)發(fā)的開(kāi)源電子原型平臺(tái),核心是AVR芯片,整塊板子類似于單片機(jī)開(kāi)發(fā)板,外接各種單片機(jī)擴(kuò)展接口,小巧方便,但在功能上卻非常強(qiáng)大[1]。利用該平臺(tái)結(jié)合成熟的傳感器技術(shù)和液晶顯示技術(shù),通過(guò)其強(qiáng)大的端口作用開(kāi)發(fā)設(shè)計(jì)多種系統(tǒng),為人們的生活和生產(chǎn)帶來(lái)便捷。本設(shè)計(jì)基于Arduino平臺(tái)設(shè)計(jì)一個(gè)智能環(huán)境監(jiān)控系統(tǒng),用來(lái)檢測(cè)居住環(huán)境下室內(nèi)一天中溫度、濕度、光照以及噪音變化情況,并將數(shù)據(jù)寫入SD卡中進(jìn)行分析,具有很高的實(shí)用性。
1 主控板及監(jiān)控傳感器
本系統(tǒng)設(shè)計(jì)采用Arduino控制器為核心,同時(shí)還要用到DHT11溫濕度傳感器、BH1750FV數(shù)字環(huán)境光照傳感器、MIC(microphone) 模擬聲音傳感器,溫度、濕度、光照和聲音傳感器采集到的都是模擬信號(hào),需要從模擬量到數(shù)字量的轉(zhuǎn)換,最終實(shí)現(xiàn)數(shù)字信號(hào)的終端輸出和顯示。各個(gè)傳感器與Arduino核心控制器連接也非常方便,采用杜邦線將其輸入輸出端接到Arduino相應(yīng)的I/O引腳上,正負(fù)極電源通過(guò)接線相應(yīng)的電源引腳來(lái)供電。
1.1 Arduino UNO主控板
Arduino是一個(gè)微控制器平臺(tái),它由基于Atmel AVR單片機(jī)的開(kāi)放源碼硬件和專門的開(kāi)發(fā)環(huán)境組成。Arduino Uno是目前使用最廣泛的Arduino控制器,具有Arduino的所有基本功能[2]。Uno的處理器核心是ATmega328,處理速度可達(dá)20MIPS,它包括14路數(shù)字輸入/輸出接口,I/O口功能強(qiáng)大,具有A/D轉(zhuǎn)換等電路。另外主控板上還集成了一個(gè)16MHZ晶體振蕩器、USB接口、電源接口、ICSP接口和復(fù)位鍵開(kāi)關(guān)按鈕等,可實(shí)現(xiàn)功能擴(kuò)展[3]。
1.2 溫濕度監(jiān)控設(shè)計(jì)
溫濕度傳感器DHT11采用專用數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),易于MCU處理和控制[4],是一款含有校準(zhǔn)數(shù)字信號(hào)輸出的單總線數(shù)據(jù)傳輸?shù)臏貪穸葟?fù)合傳感器,使得該傳感器模塊具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性能,且該傳感器體積小、功耗低,信號(hào)傳輸距離可達(dá)20米以上,同時(shí)具有精度準(zhǔn)確、讀取靈敏等優(yōu)點(diǎn)[5]。
1.3 光照控制設(shè)計(jì)
光照強(qiáng)度采用BH1750FVI數(shù)字環(huán)境光照傳感器對(duì)所處環(huán)境的溫度進(jìn)行檢測(cè)。該傳感器的優(yōu)點(diǎn)在于接受光照的輸入光范圍大、靈敏度高、光源依賴性弱、識(shí)別能力強(qiáng),對(duì)于光的感知靈敏度很接近人類視覺(jué)靈敏度,通過(guò)Arduino擴(kuò)展模擬口便可以讀取模擬值,用以對(duì)周圍環(huán)境光的強(qiáng)度進(jìn)行檢測(cè)[6]。結(jié)合繼電器控制實(shí)現(xiàn)對(duì)光照強(qiáng)度的測(cè)量,根據(jù)室內(nèi)光照強(qiáng)度情況及需要,控制繼電器打開(kāi)、閉合來(lái)制控制電動(dòng)窗簾的打開(kāi)和閉合操作。
1.4 聲音傳感器
MIC聲音傳感器是一款基于麥克風(fēng)為聲音檢測(cè)的傳感器,對(duì)環(huán)境聲音強(qiáng)度較為敏感,可用來(lái)對(duì)周圍環(huán)境中的聲音強(qiáng)度進(jìn)行檢測(cè),具有300倍的放大器,輸出模擬信號(hào)能使用3.3V和5V為基準(zhǔn)AD采集,可以用來(lái)實(shí)現(xiàn)根據(jù)聲音大小進(jìn)行互動(dòng)的效果、制作聲控機(jī)器人、聲控開(kāi)關(guān)、聲控報(bào)警等,傳感器靈敏度可通過(guò)數(shù)字電位器調(diào)節(jié)。
1.5 LED燈預(yù)警設(shè)計(jì)
本設(shè)計(jì)中采用LED燈作為預(yù)警顯示燈,其連接電源正負(fù)極端,電壓為高電壓時(shí),LED燈亮。系統(tǒng)在工作過(guò)程中設(shè)置預(yù)警燈主要起到一個(gè)輔助預(yù)警的作用,當(dāng)室內(nèi)實(shí)時(shí)溫濕度值、光照強(qiáng)度、聲音強(qiáng)度達(dá)到預(yù)警值時(shí),LED燈閃爍提示預(yù)警。
2 硬件設(shè)計(jì)
2.1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
各個(gè)傳感器與Arduino Uno主控板上相應(yīng)的數(shù)字引腳或模擬引腳通過(guò)杜邦線引線連接,主板上不夠用的引腳采用Arduino傳感器擴(kuò)展板接口進(jìn)行了接口擴(kuò)展。各個(gè)模塊相應(yīng)的接口連接如下[7]:
(1) 將DHT11溫濕度模塊的VCC、GND、DOUT引腳分別接至Arduino UNO控制板上的+5V、GND、數(shù)字端口2,為了防止電流過(guò)大燒壞還需要在VCC與DOUT之間串聯(lián)一個(gè)5KΩ的上拉電阻適當(dāng)進(jìn)行電流控制。
(2) BH1750FV數(shù)字環(huán)境光照傳感器的VCC、GND、DOUT引腳分別接至Arduino UNO控制板上的+5V、GND、模擬引腳端口A0。
(3) 將聲音傳感器VCC、GND、DOUT引腳分別接至Arduino UNO控制板上的+5V、GND、模擬引腳端口A1。
(4) 將SD卡模塊VCC、GND引腳分別接至Arduino UNO控制板上的+5V和GND,MISO、MOSI、SCLK、CS四個(gè)引腳分別連接控制板上的10、11、12、13端口。
(5) 將繼電器模塊的正負(fù)引腳分別接至Arduino UNO控制板上的+5V、GND,進(jìn)行電源供電。
(6) LED預(yù)警燈模塊的正負(fù)引腳分別接至Arduino UNO控制板上的+5V、GND,進(jìn)行電源供電。
傳感器采集到的溫度、濕度、光照和聲音實(shí)時(shí)數(shù)據(jù)通過(guò)D/A轉(zhuǎn)換器將實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào)進(jìn)行傳輸,在顯示終端再通過(guò)A/D轉(zhuǎn)換將模擬信號(hào)轉(zhuǎn)換為比較直觀的數(shù)字信號(hào),最終實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的輸出和顯示。系統(tǒng)硬件連接示意圖如圖1所示。
2.2 顯示設(shè)計(jì)
本設(shè)計(jì)中LCD液晶顯示屏采用1602LCD,顯示的內(nèi)容為16X2個(gè)字符,即可顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字) 的字型。本設(shè)計(jì)中兩行即可顯示所有內(nèi)容,顯示格式如圖2所示。
第一行左起,溫度顯示占8個(gè)字符,提示符T,溫度值占4位(包含小數(shù)點(diǎn)和一位小數(shù)) 以C結(jié)尾,顯示溫度范圍為0到99.9。聲音強(qiáng)度占后8個(gè)字符,提示符S,聲音強(qiáng)度值占4位,以dB結(jié)束,顯示聲音強(qiáng)度范圍為0到9999。
第二行左起,濕度顯示占8個(gè)字符,提示符H,濕度值占4位(包含小數(shù)點(diǎn)和一位小數(shù)) 以%結(jié)尾,顯示濕度范圍為0到99.9。光照強(qiáng)度占后8個(gè)字符,提示符S,聲音強(qiáng)度值占5位,以L結(jié)束,顯示聲音強(qiáng)度范圍為0到99999。
3 軟件設(shè)計(jì)及實(shí)現(xiàn)
3.1 Arduino IDE
Arduino IDE是一款專用Arduino開(kāi)發(fā)板編程軟件,在電腦端安裝好Arduino IDE軟件開(kāi)發(fā)環(huán)境后,使用USB線將Arduino Uno連接至電腦的USB端口, 同時(shí),USB為控制板及傳感器供電。連接完成后,在IDE中首選要選擇相應(yīng)的Arduino板卡,本設(shè)計(jì)中選擇Uno,然后定位到Tools-Serial Port菜單選擇恰當(dāng)?shù)腃OM端口,將程序編寫調(diào)試好后,就可以通過(guò)此軟件下載并燒寫到Arduino開(kāi)發(fā)板中執(zhí)行[8],主板上狀態(tài)燈會(huì)顯示主板及傳感器工作狀態(tài)。
3.2 實(shí)現(xiàn)結(jié)果
本設(shè)計(jì)實(shí)施例中,智能家居監(jiān)測(cè)控制系統(tǒng)應(yīng)用在室內(nèi)居住環(huán)境的監(jiān)測(cè)數(shù)據(jù)顯示。經(jīng)實(shí)地檢測(cè),溫度顯示:T:24.0C,濕度顯示:H: 36.0%,聲音強(qiáng)度顯示:S:193dB,光照強(qiáng)度顯示:L:54612L,LCD顯示結(jié)果如圖3所示。通過(guò)測(cè)試,本智能家居環(huán)境監(jiān)控系統(tǒng)可為人們的居家生活提供很好的環(huán)境保障。
本智能家居監(jiān)測(cè)控制系統(tǒng)還可根據(jù)需求繼續(xù)擴(kuò)展和完善更多的功能,比如無(wú)線傳感器技術(shù)Zigbee模塊的日趨成熟,無(wú)線網(wǎng)絡(luò)傳感器被良好地應(yīng)用于此設(shè)計(jì)中,實(shí)現(xiàn)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)之間信息更加便捷的傳輸與通訊,對(duì)環(huán)境狀態(tài)的實(shí)時(shí)監(jiān)測(cè)將更加方便、及時(shí)和有效。另外可以采用LCD分屏進(jìn)行日期和時(shí)間的顯示,設(shè)置預(yù)警值進(jìn)行溫濕度的預(yù)警功能燈等,使其顯示的內(nèi)容更具體更豐富,能夠更好地為人們的生產(chǎn)和生活服務(wù)。
4 數(shù)據(jù)導(dǎo)出及圖表分析
4.1 SD卡數(shù)據(jù)寫入及讀取
SD卡數(shù)據(jù)的寫入是把用于存儲(chǔ)數(shù)據(jù)連接的SD卡將采集到的不同傳感器數(shù)據(jù)直接寫入到SD中的過(guò)程,儲(chǔ)存數(shù)據(jù)的文件是log.csv。當(dāng)?shù)谝恍写a運(yùn)行后會(huì)在SD卡中自動(dòng)創(chuàng)建一個(gè)log.csv的新文件,采集到的數(shù)據(jù)會(huì)每隔5s寫入這個(gè)文件中,在CSV文件的每一行中都有當(dāng)前時(shí)間和數(shù)據(jù),這些就是系統(tǒng)數(shù)據(jù)記錄器所采集到的環(huán)境數(shù)據(jù)[9]。
SD卡記錄中數(shù)據(jù)讀取時(shí)會(huì)新建一個(gè)speed.txt的TXT文件,在此文件中設(shè)定好數(shù)據(jù)刷新速率,按照設(shè)定的數(shù)據(jù)刷新速率來(lái)更新抽取想要的數(shù)據(jù)域。分析數(shù)據(jù)并繪制圖表的方法很多,可以采用相關(guān)的數(shù)據(jù)分析軟件完成,本設(shè)計(jì)對(duì)采集的家居環(huán)境數(shù)據(jù)結(jié)合Excel進(jìn)行了一些相關(guān)數(shù)據(jù)的圖表分析。
4.2 繪制圖表分析
本設(shè)計(jì)中采集到的溫度、濕度、聲音、光照強(qiáng)度數(shù)據(jù)經(jīng)過(guò)讀取導(dǎo)出后,可利用相關(guān)數(shù)據(jù)進(jìn)行分析研究。根據(jù)其中某天不同時(shí)間段采集到的相關(guān)數(shù)據(jù)生成相應(yīng)的圖表如圖4所示,可清晰、直觀反映出該天不同時(shí)間段各項(xiàng)數(shù)據(jù)值的變化情況。
5 結(jié)束語(yǔ)
基于Arduino的智能家居檢測(cè)控制系統(tǒng)簡(jiǎn)潔、直觀、方便、可靠,能實(shí)現(xiàn)相應(yīng)的室內(nèi)環(huán)境監(jiān)測(cè)和控制,為人們的生活和出行提供各種方便與便捷服務(wù),也可適用于計(jì)算機(jī)機(jī)房、圖書(shū)館、儲(chǔ)存糧倉(cāng)、溫室大棚測(cè)溫、空調(diào)室溫控制等環(huán)境要求較為敏感和溫度控制要求較高的場(chǎng)所,在價(jià)格成本上具有一定優(yōu)勢(shì)。本設(shè)計(jì)系統(tǒng)主要研究利用現(xiàn)有的成熟傳感技術(shù)和互聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)獲取實(shí)時(shí)的環(huán)境狀況信息,這種實(shí)現(xiàn)方法簡(jiǎn)單快速、成本低廉、具有很高的實(shí)用性。
參考文獻(xiàn):
[1] 呂新遠(yuǎn),夏銀飛,尹盛,等.基于Arduino的智能家居環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].信息與電腦(理論版),2019(5):78-80.
[2] 蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(16):155-157.
[3] Arduino UNO管腳標(biāo)注[EB/OL].[2011-10-28].http://my.oschina.net/jingshishengxu/blog/34134.
[4] 向鎳鋅,鄺乙桐,王雪.基于單片機(jī)的智能家居監(jiān)控系統(tǒng)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2020,16(28):198-201.
[5] 魯成洋,何堅(jiān)強(qiáng).基于單片機(jī)的智能家居環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J].智能機(jī)器人,2019(5):59-62.
[6] 幸聯(lián)星.基于單片機(jī)的智能家居環(huán)境檢測(cè)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2020(1):59-61.
[7] 渠淼,牛國(guó)鋒,冒張霄,等.基于Arduino的智能環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(20):83-85.
[8] 陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ)[M].2版.北京:北京航空航天大學(xué)出版社,2015.
[9] (美)Jeremy BlumArduino魔法書(shū):實(shí)現(xiàn)夢(mèng)想的工具和技術(shù)[M].況琪,王俊升,譯.北京:電子工業(yè)出版社,2014.
【通聯(lián)編輯:代影】
收稿日期:2021-08-09
基金項(xiàng)目:2019年江蘇省高?!扒嗨{(lán)工程”中青年學(xué)術(shù)帶頭人培養(yǎng)對(duì)象項(xiàng)目(2019) ; 2021年常熟理工學(xué)院省級(jí)創(chuàng)新項(xiàng)目(項(xiàng)目編號(hào):202110333014Z)
作者簡(jiǎn)介:牛國(guó)鋒,通訊作者,實(shí)驗(yàn)師,碩士,主要研究方向?yàn)闊o(wú)線傳感網(wǎng)技術(shù)、嵌入式系統(tǒng)應(yīng)用。