999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Flask的樹莓派溫濕度氧氣濃度報(bào)警器

2020-06-30 10:07:21陳梓敏張子揚(yáng)周賢中

陳梓敏 張子揚(yáng) 周賢中

摘? ?要:基于實(shí)驗(yàn)室氣體安全問題頻出的情景,研發(fā)性能強(qiáng)大、架構(gòu)輕便的報(bào)警器是一個(gè)值得研究的課題。在實(shí)驗(yàn)室中配置該報(bào)警器以檢測(cè)環(huán)境中的溫度、濕度、氧氣濃度,當(dāng)檢測(cè)數(shù)值高于或低于安全范圍時(shí),將會(huì)由傳感器發(fā)出警示信號(hào)。同時(shí),通過輕量化Web框架Flask進(jìn)行后端設(shè)計(jì),經(jīng)過樹莓派進(jìn)行數(shù)據(jù)處理后可以在瀏覽器網(wǎng)頁端實(shí)時(shí)監(jiān)控受檢測(cè)指標(biāo)變化,并且保存歷史記錄。

關(guān)鍵詞:Flask? Python? 樹莓派? 氧氣濃度

中圖分類號(hào):TP273;U495? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào):1674-098X(2020)03(b)-0056-04

Abstract: Based on the situation of frequent gas safety problems in the laboratory, it is worth studying to develop a powerful and portable alarm. The alarm is equipped in the laboratory to detect the temperature, humidity and oxygen concentration in the environment. When the detection value is higher or lower than the safe range, the sensor will send out warning signals. At the same time, through the lightweight web framework flask for back-end design, after the raspberry pie data processing, it can real-time monitor the changes of detected indicators in the browser Web site, and save the history.

Key Words: Flask; Python; Raspberry Pi; Oxygen Concentration

在任何可能發(fā)生氧氣不足的地方,都需要氧氣警報(bào)。盡管大多數(shù)人都想到飛機(jī)或潛艇等封閉環(huán)境,但更常見的例子是頻繁使用化學(xué)試劑和化學(xué)氣體進(jìn)行實(shí)驗(yàn)的密閉實(shí)驗(yàn)室環(huán)境。如果實(shí)驗(yàn)室中存儲(chǔ)著的氣體的鋼瓶或儲(chǔ)罐發(fā)生泄漏,氣體的快速流出會(huì)迅速降低封閉區(qū)域或室內(nèi)的氧氣含量,從而威脅人的生命安全。

隨著實(shí)驗(yàn)室中的科研范圍日漸擴(kuò)大,實(shí)驗(yàn)環(huán)境的密封性要求逐漸提高,由缺氧導(dǎo)致的一系列安全事故頻發(fā),這一嚴(yán)峻問題引起了廣大科研工作者的重視。為達(dá)到保障科研工作者的生命安全、創(chuàng)造安全的實(shí)驗(yàn)環(huán)境等目的,本項(xiàng)目意在開發(fā)一個(gè)功能強(qiáng)大、使用方便、能耗較低的溫濕度氧氣濃度報(bào)警器。

1? 系統(tǒng)設(shè)計(jì)

本項(xiàng)目的硬件設(shè)計(jì)圍繞樹莓派3B+單片機(jī)及其外設(shè)展開。正常工作狀態(tài)下,傳感器持續(xù)讀取外界環(huán)境中的目標(biāo)數(shù)值,LED燈處于常亮狀態(tài),蜂鳴器處于低電平狀態(tài),不發(fā)出鳴叫聲音。當(dāng)傳感器檢測(cè)到相關(guān)目標(biāo)數(shù)值未處于預(yù)設(shè)的標(biāo)準(zhǔn)范圍之內(nèi)時(shí),蜂鳴器被置于高電平狀態(tài),開始持續(xù)鳴叫示警。

直至使用者連續(xù)按兩次按鈕,LED燈變至閃爍狀態(tài),蜂鳴器停止發(fā)出鳴叫警報(bào)聲。此外,長(zhǎng)按按鈕可使LED燈處于熄滅狀態(tài),輕按一次則恢復(fù)正常工作狀態(tài)。

1.1 硬件設(shè)計(jì)

如圖1所示,硬件部分由樹莓派3B+、Grove拓展板、溫濕度傳感器、氧氣濃度傳感器、蜂鳴器及LED按鍵組成,其中的外設(shè)統(tǒng)一使用Grove接口,達(dá)到便于整理、美觀等效果。

其中,樹莓派3B+是由英國(guó)樹莓派基金會(huì)于2018年發(fā)行的單板計(jì)算機(jī),相較此前的型號(hào),具備更加豐富的拓展功能以及更加強(qiáng)大的性能,自身帶有四個(gè)USB A端口、一個(gè)基于USB 2.0的千兆以太網(wǎng)端口、HDMI高清多媒體接口以及3.5mm音頻接口,此外還有雙頻WiFi模塊、藍(lán)牙4.2模塊。處理器基于ARM芯片,能夠以1.4GHz的頻率運(yùn)行,以SD卡為內(nèi)存硬盤,具備所有PC的基本功能。因此,其自身具備功耗低、性能強(qiáng)大、拓展豐富的特點(diǎn),此外,其價(jià)格不足250元,價(jià)格低廉,采用其作為開發(fā)板能夠節(jié)約經(jīng)費(fèi)。

拓展板Grove Base Hat通過GPIO拓展口連接在樹莓派的IO口上,并使用銅柱固定。拓展板提供多個(gè)數(shù)字、模擬、I2C、PWM、UART端口,以滿足使用者多樣要求,并且端口皆為Grove接口。

DHT11是一款低成本的數(shù)字溫度和濕度傳感器,可產(chǎn)生校準(zhǔn)的數(shù)字輸出,并且具有很高的可靠性和長(zhǎng)期穩(wěn)定性。氧氣濃度傳感器選用了煒盛科技的ME2-O2-Φ20型電化學(xué)氣體傳感器,可對(duì)氧氣進(jìn)行定量測(cè)量,具有低功耗、高精度、高靈敏度、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。

以上兩個(gè)傳感器在使用前都需預(yù)熱數(shù)分鐘,否則將產(chǎn)生不穩(wěn)定數(shù)據(jù)。

1.2 軟件設(shè)計(jì)

該報(bào)警器需實(shí)現(xiàn)實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)變化和查詢歷史數(shù)據(jù)的功能,并且當(dāng)氧氣濃度不在安全范圍內(nèi)時(shí),蜂鳴器以及LED按鈕開始工作,實(shí)現(xiàn)報(bào)警功能。為了達(dá)到降低功耗以及使用方便等目的,設(shè)計(jì)了在瀏覽器中查詢相關(guān)數(shù)據(jù)的功能。

1.2.1 開發(fā)平臺(tái)

根據(jù)需求,本項(xiàng)目軟件設(shè)計(jì)后端部分使用了由Python編寫的輕量級(jí)WEB應(yīng)用框架——Flask框架[1-2],并使用HTML和JavaScript語言編寫網(wǎng)頁顯示部分。Flask框架使用簡(jiǎn)單、功耗低、占用內(nèi)存少,且具有很強(qiáng)的可拓展性,可快速搭建小型網(wǎng)站。在數(shù)據(jù)存儲(chǔ)調(diào)用方面,選用了小型數(shù)據(jù)庫SQLite3[3],通過創(chuàng)建pi_temp.db數(shù)據(jù)庫文件,并在其中建立三個(gè)表分別存儲(chǔ)溫度、濕度和氧氣濃度數(shù)值。使用者在瀏覽器中輸入樹莓派的IP地址以及預(yù)設(shè)的端口號(hào),即可實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)或查閱歷史數(shù)據(jù)。

1.2.2 后端程序分析

如圖2程序框架所示,后端設(shè)計(jì)部分主要由flask_sqlite3.py(構(gòu)建flask框架)、deque_logger.py(讀取并寫入數(shù)據(jù))、bbb.py(報(bào)警服務(wù))三個(gè)Python程序構(gòu)成,并由ZeroMQ[4-5]模塊實(shí)現(xiàn)程序間的通訊。

在flask_sqlite3.py程序中,導(dǎo)入了flask包中的Flask、request、render_template模塊構(gòu)建flask框架,通過模板新建html文件并傳遞相關(guān)參數(shù),分別由不同的使用條件建立live.html、no_sensor.html、history.html三個(gè)網(wǎng)頁程序。

以上網(wǎng)頁中,live頁面直接顯示溫度、濕度、氧氣濃度三項(xiàng)數(shù)據(jù),從而達(dá)到實(shí)時(shí)監(jiān)控的目的;在history頁面中,通過調(diào)用time、datetime、arrow時(shí)間模塊,使對(duì)應(yīng)時(shí)間格式化,以便查詢時(shí)調(diào)用,并通過json[5]模塊格式化數(shù)據(jù),使用plotly模塊包繪制三項(xiàng)數(shù)據(jù)的折線變化圖,當(dāng)檢測(cè)到數(shù)據(jù)庫中相應(yīng)的表中無數(shù)據(jù)更新時(shí),在no_sensor頁面中顯示錯(cuò)誤警告“Sorry, can't access the sensor!”。

deque_logger.py程序通過導(dǎo)入Seeed公司提供的grove.adc包中的讀數(shù)方法讀取傳感器對(duì)應(yīng)電壓值,從而換算成對(duì)應(yīng)的氧氣濃度。另外,通過DHT公司提供的例程直接計(jì)算從DHT11溫濕度傳感器[6-7]得到的溫度、濕度數(shù)據(jù)。

通過導(dǎo)入zmq模塊,采用請(qǐng)求應(yīng)答模式(Request-Reply)實(shí)現(xiàn)消息的雙向傳輸,滿足deque_logger.py和bbb.py程序的通訊需求。在deque_logger.py程序中,每當(dāng)寫入一次數(shù)據(jù)后,都將檢測(cè)氧氣濃度是否在安全范圍內(nèi),若不在安全范圍內(nèi),則發(fā)送警示消息‘bb至bbb.py程序。當(dāng)bbb.py程序檢測(cè)到該信息為‘bb且預(yù)設(shè)的alarm變量為真,將蜂鳴器置于高電平,蜂鳴器開始鳴叫。若alarm變量為假或接收到的信息不為‘bb,則蜂鳴器不發(fā)出鳴叫聲。

在bbb.py 程序中,導(dǎo)入gpiozero包中的Buzzer模塊控制蜂鳴器。LED按鈕由Seeed公司提供的相應(yīng)例程進(jìn)行控制,其中的GroveLedButton類通過Button模塊和Factory模塊將按鍵的狀態(tài)和LED燈的狀態(tài)聯(lián)系在一起,設(shè)計(jì)出三個(gè)事件,分別響應(yīng)不同的動(dòng)作。當(dāng)單次按壓按鍵時(shí),LED燈亮起;當(dāng)連續(xù)按壓按鍵時(shí),LED燈開始閃爍,蜂鳴器停止發(fā)出鳴叫聲;當(dāng)長(zhǎng)按按鍵時(shí),LED燈熄滅,蜂鳴器不再工作,LED按鍵也不再工作。

1.2.3 前端界面設(shè)計(jì)

如圖3所示,live頁面可實(shí)時(shí)顯示當(dāng)前外界環(huán)境中溫度、濕度、氧氣濃度的數(shù)值,為了達(dá)到簡(jiǎn)潔明了的目的,在層中鍵入文本,并且設(shè)定每10s刷新一次頁面顯示數(shù)據(jù)。通過Javascript腳本[8-9]制作名為Historic的控件,點(diǎn)擊后可跳轉(zhuǎn)至history頁面。

如圖4所示,history頁面通過折線圖中不同顏色的線條直接顯示溫度、濕度、氧氣濃度的歷史數(shù)據(jù),通過控件可更改數(shù)據(jù)顯示范圍。此外,點(diǎn)擊Live可跳轉(zhuǎn)至實(shí)時(shí)顯示頁面。

2? 實(shí)驗(yàn)驗(yàn)證

如圖5所示,為了達(dá)到節(jié)省環(huán)保的目的,本項(xiàng)目使用生活中常用的物品來完成實(shí)驗(yàn)驗(yàn)證。首先,通過充電寶對(duì)樹莓派進(jìn)行供電,通電開機(jī)后程序開始運(yùn)行,預(yù)熱5min后,傳感器開始穩(wěn)定測(cè)量環(huán)境中的有關(guān)數(shù)據(jù)。將所有設(shè)備放入密閉性良好的保鮮盒,在其中放入合適用量的除氧劑用以降低氧氣濃度。

如圖6所示,密封一段時(shí)間后,當(dāng)盒中氧氣濃度低于預(yù)先設(shè)定的臨界值,蜂鳴器開始報(bào)警,實(shí)現(xiàn)報(bào)警功能,完成驗(yàn)證。

3? 結(jié)語

基于Flask的樹莓派溫濕度及氧氣濃度報(bào)警器在硬件上,通過樹莓派和多個(gè)grove接口傳感器進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了功能強(qiáng)大、接線簡(jiǎn)單、設(shè)計(jì)方便等目的。其中,溫濕度傳感器DHT11通過PWM接口連接樹莓派,氧氣濃度傳感器通過Analog接口連接樹莓派。

在軟件設(shè)計(jì)方面,通過Python的Flask輕量級(jí)Web框架進(jìn)行后端設(shè)計(jì),降低了代碼設(shè)計(jì)難度,提高了代碼的簡(jiǎn)潔度和可讀性,提高了完成項(xiàng)目的效率。

由于樹莓派PWM方面的設(shè)計(jì)漏洞,導(dǎo)致當(dāng)多個(gè)程序同時(shí)運(yùn)行時(shí),PWM時(shí)序會(huì)產(chǎn)生波動(dòng),從而導(dǎo)致溫濕度傳感器產(chǎn)生錯(cuò)誤數(shù)據(jù)。在調(diào)試過程中,通過逐步嘗試修改讀數(shù)方法、更換傳感器、更換接口等方法,最終決定通過collections模塊中的deque.median()方法取中位數(shù)以消除錯(cuò)誤數(shù)據(jù),達(dá)到代碼簡(jiǎn)便、經(jīng)濟(jì)節(jié)省的目的。

基于Flask的樹莓派溫濕度及氧氣濃度報(bào)警器的開發(fā)可以提高實(shí)驗(yàn)室安全性,同時(shí)可以達(dá)到高性能、低功耗的目的,能夠?yàn)閷?shí)驗(yàn)室安全提供良好的服務(wù)。

參考文獻(xiàn)

[1] 葉鋒.Python最新Web編程框架Flask研究[J].電腦編程技巧與維護(hù),2015(15):29-30.

[2] 牛作東,李捍東.基于Python與flask工具搭建可高效開發(fā)的實(shí)用型MVC框架[J].計(jì)算機(jī)應(yīng)用與軟件,2019, 36(7).

[3] Introduction to Sqlite and its usage with python[J]. 2015.

[4] 葉崧, 姚健東. 基于ZeroMQ & JSON的分布式測(cè)控系統(tǒng)消息通信架構(gòu)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(2):105-109.

[5] 方賡.基于ZeroMQ消息交換的充電站監(jiān)控平臺(tái)的設(shè)計(jì)與應(yīng)用[J].電子世界,2019(11).

[6] 李德路,侯文寶.基于DHT11室內(nèi)溫/濕度監(jiān)控系統(tǒng)設(shè)計(jì)[J].智能建筑與城市信息,2013(11):65-67.

[7] 潘繼強(qiáng).基于DHT11的空氣溫濕度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(21):5105-5108.

[8] Halfacree G .JavaScript[M]// The Official BBC micro:bit?; User Guide. John Wiley & Sons, Inc. 2017.

[9] Dale, Kyran.Data Visualization With Python And Javascript[J].2016.

主站蜘蛛池模板: 人妻免费无码不卡视频| 91在线日韩在线播放| 久久99国产综合精品女同| 欧美色伊人| 青青青国产视频| 久久久久无码精品国产免费| 亚洲国产日韩在线观看| 91一级片| 在线人成精品免费视频| 亚洲综合天堂网| 69视频国产| 一级全免费视频播放| 日韩黄色在线| 久久国产亚洲偷自| 色屁屁一区二区三区视频国产| 精品国产一二三区| 国产簧片免费在线播放| 黄色网址免费在线| 亚洲 欧美 日韩综合一区| 手机在线免费毛片| 亚洲开心婷婷中文字幕| 91在线一9|永久视频在线| 国产又色又爽又黄| 欧美不卡在线视频| 第一页亚洲| 国产全黄a一级毛片| 激情国产精品一区| 国产女人在线观看| 亚洲性网站| 免费啪啪网址| a网站在线观看| 1级黄色毛片| 亚洲欧美在线综合图区| 国产成人精品在线1区| 久久精品亚洲中文字幕乱码| 久久亚洲AⅤ无码精品午夜麻豆| 一边摸一边做爽的视频17国产| 国产在线91在线电影| 国产日韩欧美精品区性色| 波多野结衣一区二区三区AV| 91亚瑟视频| 中文字幕在线一区二区在线| 日韩免费中文字幕| 午夜精品一区二区蜜桃| 99在线视频网站| 国产在线97| 国产Av无码精品色午夜| 亚洲系列无码专区偷窥无码| 97免费在线观看视频| 国产在线视频欧美亚综合| 黄色网在线| 91av成人日本不卡三区| 国产成人区在线观看视频| 精品久久777| 91在线中文| 91久久国产热精品免费| 黄色一级视频欧美| 国产成人免费| 亚洲国产av无码综合原创国产| 成人亚洲天堂| 欧美国产综合色视频| 久久这里只有精品免费| 中文字幕在线观看日本| 国产精品无码制服丝袜| 亚洲欧美日韩中文字幕在线一区| AV在线麻免费观看网站| 国产精品lululu在线观看| 全裸无码专区| 不卡无码h在线观看| 亚洲欧美自拍视频| 在线亚洲天堂| 激情成人综合网| 四虎国产精品永久一区| 国产一区亚洲一区| 婷婷亚洲视频| 中文字幕在线观| Aⅴ无码专区在线观看| 97精品伊人久久大香线蕉| 91精品国产丝袜| 精品福利国产| 免费看av在线网站网址| 在线播放国产99re|