劉 艷,張 偉
(1.浙江大學(xué)城市學(xué)院,杭州 310015;2.浙江工商大學(xué)杭州商學(xué)院,桐廬 311500)
基于Arduino云的一氧化碳檢測報警系統(tǒng)的設(shè)計與實現(xiàn)
劉 艷1,張 偉2
(1.浙江大學(xué)城市學(xué)院,杭州 310015;2.浙江工商大學(xué)杭州商學(xué)院,桐廬 311500)
針對設(shè)施農(nóng)業(yè)溫室大棚中應(yīng)用燃氣升溫可能出現(xiàn)的燃氣泄露問題或者一氧化碳過量,設(shè)計了一款基于Arduino云模塊的一氧化碳檢測和報警系統(tǒng)。詳細介紹了系統(tǒng)的總體設(shè)計、硬件設(shè)計以及軟件設(shè)計;利用Arduino自帶云模塊實現(xiàn)了報警信號的無線傳輸;通過實驗對系統(tǒng)進行了測試,能夠?qū)崿F(xiàn)一氧化碳的實時、連續(xù)、可靠檢測,測試結(jié)果證明了系統(tǒng)具有實用性和有效性。
Arduino云;一氧化碳檢測;傳感器TGS5042
現(xiàn)代設(shè)施農(nóng)業(yè)中,冬季里為了使大棚內(nèi)的溫度適合農(nóng)作物,目前應(yīng)用較多的方法是采用燒煤燒氣。當煤、氣燃燒時,會產(chǎn)生二氧化碳和其它一些雜質(zhì)氣體,當通風不良,氧氣不足就會產(chǎn)生一氧化碳,尤其是在封閉環(huán)境下,一氧化碳和二氧化碳濃度逐漸增加,會造成人、動物或魚蝦等一氧化碳中毒,甚至引起爆炸,生命財產(chǎn)造成巨大的損失[1~3]。
設(shè)施農(nóng)業(yè)場地一般都設(shè)置在野外地區(qū),而且范圍較大,如果采用人工巡邏檢測一氧化碳的含量會有費時費力而且還不準確的問題。針對以上問題,本文提出一種基于Arduino云的一氧化碳檢測報警系統(tǒng),該系統(tǒng)能自動檢測溫室大棚中一氧化碳的含量,當一氧化碳含量到達一定值時會自動報警,是溫室大棚中的必要設(shè)備。Arduino云將Arduino開源體系結(jié)構(gòu)與Linux系統(tǒng)整合在一塊開發(fā)板,是Arduino家族中首個無線產(chǎn)品成員[4]。本設(shè)計采用內(nèi)置Wi-Fi功能的Arduino云控制器,給出了基于Arduino云模塊的一氧化碳檢測報警系統(tǒng)的設(shè)計與實現(xiàn),除了能夠完成常規(guī)的一氧化碳的檢測和報警外,還能通過Arduino云中的Wi-Fi模塊將報警和一氧化碳濃度信息利用Wi-Fi通信方式[5]發(fā)送給用戶[5]。
1.1 系統(tǒng)硬件設(shè)計方案
本系統(tǒng)的硬件部分主要由一氧化碳檢測模塊、蜂鳴器報警模塊、電壓檢測模塊、LED驅(qū)動模塊及Wi-Fi信息處理模塊組成。系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
1.2 系統(tǒng)功能
系統(tǒng)上電后,綠色狀態(tài)燈與紅色報警燈同時亮,并伴有蜂鳴器響聲。200ms后兩燈和蜂鳴器關(guān)閉,系統(tǒng)進入工作模式。為了降低功耗,系統(tǒng)工作在低功耗模式,約800ms喚醒一次。
在一氧化碳濃度監(jiān)視狀態(tài)下,狀態(tài)燈每隔20s閃爍一次表示系統(tǒng)正常工作;每隔5s,Arduino控制器通過A/D轉(zhuǎn)化器采集運算放大器輸出的電壓信號,計算當前環(huán)境的一氧化碳濃度,并累計當前濃度下持續(xù)的時間:1)當一氧化碳濃度大于等于50ppm,小于100ppm時,累加低濃度持續(xù)時間;2)當一氧化碳濃度大于等于100ppm,小于300ppm時,累加低、中濃度持續(xù)時間;3)當一氧化碳濃度大于等于300ppm,累加低、中、高濃度持續(xù)時間。當?shù)蜐舛葧r間達到60分鐘,或中濃度時間達10分鐘,或高濃度時間達到3分鐘,系統(tǒng)進入報警狀態(tài)。報警狀態(tài)下,紅色報警燈以2.5Hz的頻率閃爍,蜂鳴器發(fā)出>85dB的報警聲,且通過Wi-Fi發(fā)送報警信息給大棚片區(qū)負責人,且每隔1s采集當前環(huán)境下的一氧化碳濃度。當一氧化碳濃度低于50ppm,并且持續(xù)1分鐘后,報警狀態(tài)停止。紅色報警燈停止閃爍,蜂鳴器停止報警,給負責人發(fā)送警報解除信息。系統(tǒng)又進入一氧化碳濃度監(jiān)視狀態(tài)。
當電池電壓低于3.6V時,報警指示燈每隔20s閃爍一次,并伴隨蜂鳴器鳴叫一次,并通過Wi-Fi接口給用戶發(fā)送一個更換電池的提示,提醒用戶更換電池。
任何狀態(tài)下,按下測試/復(fù)位按鍵后,系統(tǒng)初始化,檢測狀態(tài)指示燈、報警指示燈以及蜂鳴器的工作狀態(tài),并初始化一氧化碳濃度檢測的持續(xù)時間。
2.1 一氧化碳檢測
一氧化碳濃度檢測采用TGS5042一氧化碳傳感器[6],該傳感器具有溫度漂移低、精度高、壽命長及對其他氣體干擾敏感性低等特性。TGS5042主要通過與一氧化碳發(fā)生化學(xué)反應(yīng)產(chǎn)生電信號來工作,電路原理如圖2所示。
圖2 一氧化碳濃度檢測電路圖
2.2 電壓檢測電路
此系統(tǒng)采用電池供電,電壓隨著電池性能的降低而逐漸減小。由于微處理器的A/D轉(zhuǎn)換器基準電壓為微處理器供電電壓,為使A/D轉(zhuǎn)換的結(jié)果更加準確,并在電壓降低到一定程度時提醒用戶更換電池,需要專門電路檢測電池的當前電壓。
系統(tǒng)使用NNCD3.0DA穩(wěn)壓管生成3.0V恒定電壓,通過微處理器的A/D轉(zhuǎn)換功能,計算出當前電池電壓,從而為一氧化碳傳感器輸出信號提供準確的A/D基準電壓值,并在電池電量過低時產(chǎn)生報警,電壓檢測電路如圖3所示。
圖3 電壓檢測電路圖
2.3 LED驅(qū)動電路
系統(tǒng)狀態(tài)指示燈及報警燈采用高亮LED,驅(qū)動電流為20mA左右。由于所采用的I/O無法提供這么大的驅(qū)動電路,但單個引腳的灌電流卻可以達到40mA,所以選用低電平點亮LED驅(qū)動電路,電路原理如圖4所示。
圖4 LED驅(qū)動電路圖
整個系統(tǒng)的軟件設(shè)計包括:復(fù)位/測試任務(wù)、低功耗任務(wù)、中斷喚醒任務(wù)、狀態(tài)燈閃爍指示及低電壓報警指示任務(wù)、氣體濃度超限報警檢測和濃度超限報警、Wi-Fi信息傳輸和接受任務(wù)。主程序流程如圖5所示。
4.1 氣體濃度檢測和超限報警任務(wù)
圖5 主程序流程圖
系統(tǒng)上電后,每隔5s執(zhí)行氣體濃度檢測及超新報警任務(wù)。在此任務(wù)下,測試當前環(huán)境中一氧化碳濃度,并對不同濃度持續(xù)時間進行累加。系統(tǒng)按照EN50291歐洲或美國標準設(shè)計三種報警濃度:1)當濃度大于等于50ppm,小于100ppm,且持續(xù)時間為60分鐘時;2)當濃度大于等于100ppm,小于300ppm且持續(xù)時間為10分鐘時;3)當濃度大于等于300ppm,且持續(xù)時間為3分鐘時,執(zhí)行氣體濃度超限報警任務(wù)。在執(zhí)行報警任務(wù)時,紅色報警指示燈以2.5Hz的頻率閃爍,并伴隨蜂鳴器發(fā)出大于85dB的報警聲。此任務(wù)不執(zhí)行低功耗任務(wù),直到報警任務(wù)結(jié)束,系統(tǒng)執(zhí)行低功耗任務(wù),等待再一次喚醒。流程圖如圖6~圖8所示。
4.2 指示任務(wù)
包括狀態(tài)燈閃爍以及 低電壓報警指示任務(wù)。執(zhí)行指示燈閃爍任務(wù)時,系統(tǒng)每隔20s,綠色狀態(tài)指示燈亮1s,然后熄滅。當電池電壓低于3.6V時,系統(tǒng)執(zhí)行低電壓報警指示任務(wù)。在此任務(wù)下,每隔20s,紅色報警指示燈閃爍一次,并伴有蜂鳴器發(fā)出“嘟”的報警聲,提醒用戶更換電池。圖9為指示任務(wù)處理程序流程圖。
4.3 Wi-Fi通信任務(wù)
系統(tǒng)上電后給用戶發(fā)送一條信息通知用戶,報警器開始工作,在一氧化碳濃度超限時給用戶發(fā)送濃度值以及持續(xù)時間或電池電壓低時發(fā)送換電池信息給用戶。Wi-Fi通信流程如圖10所示。
圖6 一氧化碳濃度報警檢測任務(wù)處理程序流程圖
圖7 當前一氧化碳濃度測量處理程序流程圖
圖8 氣體濃度超限報警任務(wù)處理流程圖
圖9 指示任務(wù)處理程序流程圖
當系統(tǒng)上電后,或按下“復(fù)位/測試”按鍵后,系統(tǒng)執(zhí)行復(fù)位/測試任務(wù)。在此任務(wù)中,狀態(tài)指示燈、報警指示燈點亮,并伴隨蜂鳴器響聲。200ms后,系統(tǒng)結(jié)束復(fù)位/測試任務(wù),狀態(tài)指示燈、報警指示燈以及蜂鳴器關(guān)閉。
【】【】
圖10 Wi-Fi通信流程圖
低功耗任務(wù)是指系統(tǒng)執(zhí)行低功耗指令,進入低功耗模式。此模式中,所謂外圍功能停止運行。而中斷服務(wù)任務(wù)是系統(tǒng)在低功耗模式下運行0.8s后,產(chǎn)生看門狗中斷,系統(tǒng)進入中斷喚醒模式。在此模式中,根據(jù)測試時間和標志位的值,分別選擇執(zhí)行狀態(tài)指示任務(wù)、氣體濃度測試和超限報警任務(wù)、低電壓報警任務(wù)或Wi-Fi信息傳輸任務(wù)。
為驗證系統(tǒng)的可行性和實用性,選取了杭州市某水產(chǎn)養(yǎng)殖公司搭建的溫室大棚作為實驗基地。該實驗基地擁有多座溫室,以其中一座為蝦苗培育建立的溫室為實驗地點,該設(shè)施大棚面積50m2,實驗時間為2011年10月26日。通過控制燃氣釋放的濃度和時間來檢測系統(tǒng)的有效性。實驗顯示能夠有效的完成檢測和報警任務(wù)。
設(shè)計了一款基于Ardaino云的一氧化碳濃度檢測和報警系統(tǒng)。采用一氧化碳傳感器TGS5042來檢測一氧化碳的濃度,控制模塊利用具有Wi-Fi模塊的Ardaino微控制器。除了能夠?qū)崿F(xiàn)常規(guī)的蜂鳴報警和電池電壓檢測功能外,還能利用Ardaino自帶的云模塊實現(xiàn)實現(xiàn)報警信息、一氧化碳濃度以及低電壓信息向用戶的無線傳輸。
[1] 孫潔,李廣林.物聯(lián)網(wǎng)和云計算技術(shù)在溫室大棚控制系統(tǒng)中的應(yīng)用[J].華東理工大學(xué)學(xué)報,2016,38(3):103-107.
[2] 盛平,郭洋洋,李萍萍.基于ZigBee和3G技術(shù)的設(shè)施農(nóng)業(yè)智能測控系統(tǒng)[J].農(nóng)業(yè)機械學(xué)報,2012,43(12):229-233.
[3] 王東,莫先.基于STM32智能家居的燃氣檢測系統(tǒng)設(shè)計與實現(xiàn)[J].重慶理工大學(xué)學(xué)報(自然科學(xué)版),2016,30(4):108-115.
[4] yingcloud.新型Arduino云為物聯(lián)網(wǎng)應(yīng)用創(chuàng)建開源設(shè)計環(huán)境[EB/OL].http://blog.csdn.net/yingcloud/article/detai ls/17003869,2013-11-28/2016-11-30.
[5] 無線城市:電信級Wi-Fi網(wǎng)絡(luò)建設(shè)與運營[M].人民郵電出版社, 2011.
[6] 高峰.Technical information for TSG5042-Technical information for carbon monoxide sensors[Z].
Design and implementation of carbon monoxide detection alarm system based on Arduino Yun
LIU Yan1, ZHANG Wei2
TP277
:B
1009-0134(2017)03-0020-05
2016-11-30
國家自然科學(xué)基金面上項目(61673348);浙江省杭州市農(nóng)業(yè)科研項目(20160432B26);大學(xué)生科研項目(X2016522044)
劉艷(1981 -),女,山東臨沂人,講師,工學(xué)博士,研究方向為嵌入式系統(tǒng)設(shè)計、視覺測量與控制等。