陳佳
摘 要:文章介紹了Linux操作系統(tǒng)環(huán)境下基于樹莓派微型計算機的室內(nèi)煙霧檢測系統(tǒng)的設(shè)計與實現(xiàn)。本系統(tǒng)集合了嵌入式開發(fā)的模塊化優(yōu)點和計算機處理復(fù)雜問題的能力,而且可以長期穩(wěn)定運行。檢測系統(tǒng)是面向所有用戶的,以實現(xiàn)超過設(shè)定濃度值報警為基礎(chǔ)功能,結(jié)合溫度濕度的錄入,并且給用戶提供可以對實時狀態(tài)進行查詢的渠道。
關(guān)鍵詞:煙霧檢測;報警;樹莓派;Python;電子郵件
煙霧檢測在生活生產(chǎn)中十分必要,因為隨著火力、電力的完全普及,人們的生活越來越方便。但是無論是家庭使用還是工廠生產(chǎn),能源使用的安全隱患是一定存在的。所以,危害檢測系統(tǒng)已經(jīng)發(fā)展了很長時間,可以有效減少危機的擴大。物質(zhì)在燃燒過程中產(chǎn)生大量的煙和熱,所以煙霧濃度和環(huán)境溫度的檢測,可以有效預(yù)防火災(zāi)。
本系統(tǒng)采用的樹莓派由于其體積小,安裝也極其方便。更重要的是,樹莓派基于Linux系統(tǒng),在實現(xiàn)基本功能之后,還可以根據(jù)自身需要,編輯更多的配套功能。相比于現(xiàn)在如單片機的嵌入式開發(fā)的檢測系統(tǒng),樹莓派擁有潛力和更多的可能性。比如借助于樹莓派的網(wǎng)絡(luò)連接功能,數(shù)個檢測系統(tǒng)可以同時或者分時工作構(gòu)成一個傳感系統(tǒng)網(wǎng),并且和大數(shù)據(jù)技術(shù)相結(jié)合,或者成為今后智能家居系統(tǒng)的一部分,有效減少系統(tǒng)固有成本和維護復(fù)雜度,增加運行穩(wěn)定性,靈活拓展性和智能化。
1 系統(tǒng)架構(gòu)設(shè)計
1.1 系統(tǒng)總體結(jié)構(gòu)
用戶可以在檢測濃度超過警戒值時收到郵件報警通知,如果當時位于設(shè)備附近,當溫度,煙霧超標時,還會聽到蜂鳴器的警示聲音。用戶還可以調(diào)整溫度以及煙霧濃度提示的警戒值。用戶也可以操作樹莓派或者遠程訪問樹莓派內(nèi)安裝的MySQL數(shù)據(jù)庫,進行增刪改查工作,并且可以更改用戶的郵箱地址。還可以通過簡單的信息轉(zhuǎn)入,得到一段溫濕度數(shù)據(jù)的折線圖分析和煙霧報警狀態(tài)的集中分析[1]。系統(tǒng)各功能模塊結(jié)構(gòu)如圖1所示。
1.2 數(shù)據(jù)庫設(shè)計
本設(shè)計數(shù)據(jù)庫結(jié)構(gòu)簡單,數(shù)據(jù)較少,包括兩個信息表:煙霧狀態(tài)信息表、溫度濕度信息表。
1.2.1 煙霧狀態(tài)信息表
煙霧狀態(tài)信息表用來儲存MQ-2傳感器得出的狀態(tài)信息并且記錄時間,具體如表1所示。
1.2.2 溫度濕度信息表
溫度濕度信息表用來存儲DHT11傳感器獲取的溫度濕度數(shù)據(jù)的整數(shù)部分以及記錄時間,具體如表2所示。
2 關(guān)鍵技術(shù)
2.1 Linux操作
Linux操作系統(tǒng)是一種克隆系統(tǒng),由UNIX操作系統(tǒng)發(fā)展而來,自誕生已有近30年。特點是高效、靈活,其模塊化設(shè)計可以在龐大的工作站抑或是微型PC機上,具有多任務(wù)、多用戶的能力。操作系統(tǒng)的軟件包包括了文本編輯器、高級語言編譯器等應(yīng)用軟件。
在本課題設(shè)計中,多次使用LX命令端下的sudo命令,就是一種Linux的系統(tǒng)管理指令。它讓系統(tǒng)的管理員允許普通用戶執(zhí)行部分或者全部的root命令。例如,sudonano是以最高權(quán)限啟動nano文本編輯器,這樣可以對系統(tǒng)內(nèi)部文件進行修改。
2.2 基于Python的STMP協(xié)議email模塊使用
Python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對smtp協(xié)議進行了簡單的封裝。
smtp協(xié)議的基本命令包括:(1)HELLO:向服務(wù)器標識用戶身份。(2)MAIL:初始化郵件傳輸mail from。(3)RCPT:標識單個的郵件接收人;常在MAIL命令后面,可有多個rcpt to。(4)DATA:在單個或多個RCPT命令后,表示所有的郵件接收人已標識,并初始化數(shù)據(jù)傳輸,以“.”結(jié)束。(5)VRFT:用于驗證指定的用戶/郵箱是否存在;由于安全方面的原因,服務(wù)器常禁止此命令。(6)EXPN:驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用。(7)HELP:查詢服務(wù)器支持什么命令。(8)NOOP:無操作,服務(wù)器響應(yīng)OK。(9)QUIT:結(jié)束會話。(10)RSET:重置會話,當前傳輸取消。(11)MAIL FROM:指定發(fā)送者地址。(12)RCPT TO:指定接收者地址。
2.3 樹莓派GPIO模塊
通用輸入/輸出(General Purpose Input Output,GPIO)又稱為總線擴展器,利用工業(yè)標準I2C,SMBus或串行外設(shè)接口(Serial Peripheral Interface,SPI)簡化了I/O口的擴展。當微控制器或芯片組沒有足夠的I/O端口,或當系統(tǒng)需要采用遠端串行通信或控制時,GPIO產(chǎn)品能夠提供額外的控制和監(jiān)視功能。
2.4 LibreOfficeCalc
LibreOffice是一款功能強大的辦公軟件,默認使用開放文檔格式,并支持其他多種文檔格式,比如*.docx,*.xlsx,*.pptx等。它是跨平臺軟件,可運行于Microsoft Windows,GNU Linux以及Mac OS X等操作系統(tǒng)上,這是選擇這款應(yīng)用的一大原因。它是自由軟件,對個人和企業(yè)用戶均免費。另一方面則是因為它在保證功能實現(xiàn)的基礎(chǔ)上非常輕量化,保證了在樹莓派上的可操作性和穩(wěn)定性[2]。
3 結(jié)語
本課題基于樹莓派系統(tǒng),具有電腦的所有基本功能,是一個具有彈性的平臺,但是功耗發(fā)熱小,體積不大,方便攜帶。經(jīng)過測試,程序運行穩(wěn)定,進行修改和調(diào)整也十分方便,而且開源軟件也可以避免軟件收費之爭[3]。其CPU時鐘默認為700 MHz,并允許超頻工作在1 GHz以上[4],相比各式單片機具有方便拓展的優(yōu)勢。系統(tǒng)工作時,在溫度高于40 ℃的時候,會判定為有發(fā)生火災(zāi),產(chǎn)生煙霧的隱患,則會使蜂鳴器工作,發(fā)出鳴響,提醒用戶檢查環(huán)境是否安全。而在檢測到煙霧超標信號時可以及時給設(shè)定郵箱發(fā)送用于警告的電子郵件,并且在問題解除之后更新郵件信息。整個流程穩(wěn)定可控,數(shù)據(jù)也可以從數(shù)據(jù)庫里進行查看。
如今,網(wǎng)絡(luò)使用已經(jīng)深入千家萬戶,智能設(shè)備的發(fā)展更是備受歡迎。今后,能將樹莓派開發(fā)與智能家居相結(jié)合,打造更便捷的居住環(huán)境,才會在未來的發(fā)展中占據(jù)優(yōu)勢。
[參考文獻]
[1]王景春.火災(zāi)中煙霧危害及防控對策[J].中國新技術(shù)新產(chǎn)品,2012(3):252.
[2]陳智銘.Android架構(gòu)的視頻監(jiān)控系統(tǒng)及其煙霧檢測的研究與實現(xiàn)[D].福建:華僑大學(xué),2013:2-3.
[3]吳敏,劉旭明.基于AT89S52單片機的火災(zāi)自動報警系統(tǒng)的仿真設(shè)計[J].金陵科技學(xué)院學(xué)報,2012(3):29-34.
[4]李杰,朱海鷹.便攜式氣體檢測儀在石化廠的運用[J].石油化工安全技術(shù),2000(1):37-40.
Abstract:This paper introduces the design and implementation of indoor smoke detection system based on Raspberry Pi microcomputer under Linux operating system environment. The system integrates the modular advantages of embedded development and the ability of computer to handle complex issues, and can operate stably for a long time. The detection system is for all users, in order to achieve more than the set value of alarm-based functions, combined with temperature and humidity input, and to provide channel for users to query real-time status.
Key words:smoke detection; alarm; Raspberry Pi; Python; E-mailendprint