• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32的實驗室環(huán)境安全監(jiān)控系統(tǒng)

      2022-09-19 04:40:12薛文輝李仁銘潘宇浚武永華
      物聯(lián)網(wǎng)技術(shù) 2022年9期
      關(guān)鍵詞:共享內(nèi)存后置前置

      薛文輝,李仁銘,潘宇浚,鄭 何,武永華

      (福建江夏學院 電子信息科學學院,福建 福州 350108)

      0 引 言

      近年來,隨著信息管理水平的迅速提高,傳統(tǒng)的實驗室管理模式已不能滿足實際需要。傳統(tǒng)的高校實驗室環(huán)境監(jiān)測數(shù)據(jù)無法得到統(tǒng)一的信息化監(jiān)管,實驗室的物理環(huán)境仍需要依靠人工管理,消耗了很多人力和物力。

      隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,云服務(wù)器、網(wǎng)絡(luò)技術(shù)使得環(huán)境數(shù)據(jù)收集有了更好的設(shè)計方案。本文將基于云服務(wù)器、網(wǎng)絡(luò)通信技術(shù)、STM32嵌入式技術(shù)等對實驗室環(huán)境安全監(jiān)控系統(tǒng)進行設(shè)計。本系統(tǒng)共分成三個模塊:云服務(wù)端模塊、客戶端模塊、設(shè)備端模塊。云服務(wù)端可劃分為前置服務(wù)器和后置服務(wù)器。前置服務(wù)器用于對設(shè)備端、客戶端的數(shù)據(jù)進行提取分析,后置服務(wù)器用于提取和更新SQLite3數(shù)據(jù)庫的內(nèi)容。設(shè)備端使用STM32F103ZET6作為核心處理器,采用DHT11溫濕度傳感器采集溫濕度、MQ-2煙霧傳感器采集煙霧數(shù)值、MQ-7一氧化碳傳感器采集有毒氣體數(shù)值,通過ESP8266無線傳輸模塊將三個環(huán)境傳感器檢測到的實驗室環(huán)境數(shù)據(jù)上傳??蛻舳诉\用Qt5.10.1作為開發(fā)環(huán)境實現(xiàn)系統(tǒng)用戶管理功能、環(huán)境數(shù)據(jù)實時監(jiān)測功能、傳感器歷史數(shù)據(jù)查看功能。本系統(tǒng)每30 s對客戶端的傳感器數(shù)據(jù)進行實時更新,且用戶可以遠距離查看實驗室監(jiān)測數(shù)據(jù)。

      1 實驗室監(jiān)控系統(tǒng)總體設(shè)計

      本系統(tǒng)由服務(wù)端、設(shè)備端、客戶端構(gòu)成,系統(tǒng)總設(shè)計框圖如圖1所示。

      圖1 系統(tǒng)總設(shè)計框圖

      本系統(tǒng)服務(wù)端是建立在云平臺的,可劃分為前置服務(wù)器和后置服務(wù)器。前置服務(wù)器采用Epoll Socket技術(shù)、線程池技術(shù)、IPC通信技術(shù)、TCP通信技術(shù)等,用于對設(shè)備端、客戶端的數(shù)據(jù)進行提取分析。后置服務(wù)器主要負責業(yè)務(wù)處理,用于提取和更新SQLite3數(shù)據(jù)庫內(nèi)容并實時保存。兩個子服務(wù)器之間以共享內(nèi)存作為進程間通信工具。

      本系統(tǒng)客戶端使用Qt5.10.1界面開發(fā)軟件作為開發(fā)環(huán)境,用于與服務(wù)器進行通信,獲取云端服務(wù)器數(shù)據(jù)庫內(nèi)容;采用MVC框架實現(xiàn)登錄注冊、獲取傳感器實時數(shù)據(jù)和歷史數(shù)據(jù)等功能。

      本系統(tǒng)設(shè)備端是以HMI串口觸摸屏作為主控制器,用戶可以查看HMI串口觸摸屏所顯示的實時傳感器數(shù)據(jù)。設(shè)備端以單片機STM32F103ZET6芯片作為中央處理器,主控制器與中央處理器之間的通信靠USART串口完成。環(huán)境數(shù)據(jù)由DHT11溫濕度傳感器、MQ-2煙霧傳感器、MQ-7一氧化碳傳感器監(jiān)測。無線通信系統(tǒng)由ESP8266WiFi模塊構(gòu)成。

      2 系統(tǒng)服務(wù)端設(shè)計

      本系統(tǒng)前置服務(wù)器負責設(shè)備端和Qt客戶端之間的TCP Socket通信。通過Epoll Socket的I/O復用實現(xiàn)對客戶端、設(shè)備端的連接通信對應(yīng)的Socket套接字進行保存。前置服務(wù)器封裝的線程池模塊負責對接收到的數(shù)據(jù)包進行解析,并存入共享內(nèi)存,同時監(jiān)聽并接收后置服務(wù)器對業(yè)務(wù)處理完畢后所寫入共享內(nèi)存的數(shù)據(jù)。

      本系統(tǒng)服務(wù)器選用的IPC通信工具是共享內(nèi)存。本系統(tǒng)云服務(wù)器將共享內(nèi)存區(qū)按照結(jié)構(gòu)體大小的1 000倍進行創(chuàng)建,劃分成1 000個塊結(jié)構(gòu)體,其中共享內(nèi)存首地址Shm_addr指針作為共享內(nèi)存判斷的起始點。本服務(wù)器會開辟一個線程用于判斷共享內(nèi)存起始點內(nèi)是否為空,倘若為空則不讀取數(shù)據(jù);如果判斷索引內(nèi)容為有效數(shù)值,則提取出來跳入下一個結(jié)構(gòu)體塊循環(huán)執(zhí)行,直到下一個塊為空。共享內(nèi)存可以存儲1 000個結(jié)構(gòu)體,在全部接收完畢之后會將其清空,保證下一次前置服務(wù)器和后置服務(wù)器之間的交互能夠正常運行。共享內(nèi)存存儲方式如圖2所示。

      圖2 共享內(nèi)存存儲方式

      本系統(tǒng)的后置服務(wù)器負責對SQLite3數(shù)據(jù)庫信息進行提取和更新。封裝線程池對各個業(yè)務(wù)對應(yīng)的共享內(nèi)存提取數(shù)據(jù)并進行增刪改查的操作。后置服務(wù)器結(jié)構(gòu)如圖3所示,后置服務(wù)器也會使用共享內(nèi)存與前置服務(wù)器進行IPC通信。在后置服務(wù)器結(jié)束當前對數(shù)據(jù)庫數(shù)據(jù)的提取和更新后,會向前置服務(wù)器提供其所需要的內(nèi)容。前置服務(wù)器共有以下三個功能模塊:

      圖3 后置服務(wù)器結(jié)構(gòu)

      (1)讀取業(yè)務(wù)包:讀取共享內(nèi)存中的業(yè)務(wù)包。

      (2)業(yè)務(wù)回調(diào)函數(shù):根據(jù)業(yè)務(wù)包的類型,進行相應(yīng)的業(yè)務(wù)處理。

      (3)數(shù)據(jù)庫函數(shù):根據(jù)業(yè)務(wù)的需要對數(shù)據(jù)庫進行讀寫訪問。

      本系統(tǒng)使用的是SQLite數(shù)據(jù)庫,通過后置服務(wù)器管理User_Info和Sensor_Info兩個表格。用戶在執(zhí)行登錄注冊模塊時后置服務(wù)器將會對User_Info表進行是否存在用戶的判斷或者添加。用戶在獲取實時傳感器數(shù)據(jù)和讀取歷史傳感器數(shù)據(jù)時后置服務(wù)器將會對Sensor_Info表進行讀取和存儲操作。本系統(tǒng)數(shù)據(jù)庫中關(guān)于用戶數(shù)據(jù)和傳感器數(shù)據(jù)表結(jié)構(gòu)如圖4所示。

      圖4 數(shù)據(jù)庫表結(jié)構(gòu)

      3 系統(tǒng)設(shè)備端設(shè)計

      本系統(tǒng)采用單片機STM32F103ZET6芯片作為設(shè)備端的中央核心處理器,該芯片的兩個USART接口分別與HMI電容串口觸摸屏、ATK-ESP8266無線通信模塊連接,以完成數(shù)據(jù)的接收和發(fā)送。通過DTH11溫濕度模塊的Data引腳與PB6引腳相連,完成單片機與溫濕度模塊的檢測數(shù)據(jù)交互。

      本系統(tǒng)終端節(jié)點硬件設(shè)計采用了DHT11模塊采集溫濕度數(shù)值、MQ-2模塊采集煙霧數(shù)值、MQ-7模塊采集一氧化碳數(shù)值以及HMI顯示屏顯示傳感器采集的環(huán)境數(shù)據(jù)。

      DHT11傳感器包括電阻式濕敏元件和測溫元件,將STM32F103ZET6的PG_11引腳與DHT11芯片的DATA引腳相連接。DHT11接3.3 V的電壓,GND接地,NC懸空。上電后,DHT11采集數(shù)據(jù)并將數(shù)據(jù)通過DATA口進行數(shù)據(jù)傳輸,PG_11口負責接收數(shù)據(jù),由此完成對環(huán)境溫濕度數(shù)據(jù)的采集。DHT11模塊原理如圖5所示。

      圖5 DHT11模塊原理

      本系統(tǒng)采用的MQ-2煙霧傳感器的AO引腳與STM32F103ZET6的PA_1口相連,通過STM32的ADC模數(shù)轉(zhuǎn)換測得實際值。MQ-2傳感器模塊的輸出方式分別為數(shù)字量和模擬量輸出方式。原理如圖6所示。

      圖6 MQ-2模塊原理

      本系統(tǒng)采用的MQ-7一氧化碳傳感器的AO引腳與STM32F103ZET6的PA_0口相連,原理如圖7所示。

      圖7 MQ-7模塊原理

      無線模塊ESP8266共有AP、STA、AP+ASP三種模式。本系統(tǒng)采用STA模式,將設(shè)備端作為單個客戶端,使用AT指令連接手機熱點和云服務(wù)器,實現(xiàn)了設(shè)備端與云服務(wù)器之間的通信。本設(shè)計使用的顯示器采用的是TJC3224K024_011型HMI電容串口觸摸屏,HMI電容串口觸摸屏的RXD引腳、TXD引腳與單片機STM32F103ZET6芯片的USART2串口相連,實現(xiàn)了單片機與HMI顯示屏的數(shù)據(jù)通信。

      4 系統(tǒng)客戶端設(shè)計

      本系統(tǒng)客戶端是查看傳感器采集信息的應(yīng)用程序,采用MVC框架,使用Qt、C++語言編寫。

      4.1 Qt登錄注冊功能模塊

      本系統(tǒng)客戶端登錄注冊功能是對數(shù)據(jù)庫的User_info表進行操作,User_info表結(jié)構(gòu)見表1所列。

      表1 User_info表結(jié)構(gòu)

      當點擊登錄的時候,客戶端會發(fā)送此時所輸入的登錄賬號和密碼給服務(wù)器,服務(wù)器通過與服務(wù)器內(nèi)部的User_info表進行比對,若查詢到相同的結(jié)構(gòu),說明此用戶是存在的,則同意該客戶端進行登錄。

      4.2 Qt傳感器數(shù)據(jù)查詢顯示模塊

      本系統(tǒng)客戶端傳感器數(shù)據(jù)查詢共分為兩個功能模塊:(1)用Qlabel類顯示接收到的傳感器監(jiān)測的實時數(shù)據(jù);(2)通過QListWidget和QListWidgetItem的配合實現(xiàn)傳感器監(jiān)測的歷史數(shù)據(jù)的查看功能。用戶可以選擇日期并查看當天所記錄的數(shù)據(jù)。本功能是對數(shù)據(jù)庫的SenSor_Num表進行操作,SenSor_Num表格式見表2所列。

      表2 SenSor_Num表格式

      當?shù)卿洺晒?,客戶端會收到來自服?wù)器的當前傳感器數(shù)據(jù)顯示包;并且每30 s就會再次收到傳感器數(shù)據(jù)包更新后客戶端界面顯示的數(shù)據(jù)內(nèi)容,同時會把這些數(shù)據(jù)存入數(shù)據(jù)庫,以實現(xiàn)客戶端歷史數(shù)據(jù)查看功能。

      5 系統(tǒng)設(shè)計調(diào)試

      5.1 硬件測試

      將DHT11模 塊、MQ-7模 塊、MQ-2模 塊 分 別 與STM32F103ZET6的 PG_11、PA_1、PA_0連 接, 使 用FlyMCU完成程序調(diào)試和下載后,給模組上電。通過HMI模塊顯示屏可看到各項測試結(jié)果分別如圖8、圖9、圖10所示。

      圖8 溫濕度數(shù)據(jù)顯示

      圖9 煙霧指數(shù)顯示

      圖10 一氧化碳指數(shù)顯示

      5.2 軟件測試

      當用戶選擇查看日期時,前置服務(wù)器會收到數(shù)據(jù)包并進行解析。如圖11(a)所示,前置服務(wù)器顯示用戶想要查看的日期為2021年4月13號當天所采集的傳感器數(shù)據(jù)信息;將此信息寫入共享內(nèi)存,供后置服務(wù)器讀取該結(jié)構(gòu)體信息;在后置服務(wù)器完成一系列操作后,將會收到關(guān)于后置服務(wù)器提取數(shù)據(jù)庫信息的結(jié)果。

      圖11 服務(wù)器歷史數(shù)據(jù)查看功能顯示

      用戶選擇查看日期后后置服務(wù)器提取共享內(nèi)存數(shù)據(jù)并進行解析。如圖11(b)所示,后置服務(wù)器會根據(jù)收到的日期對數(shù)據(jù)庫進行一一搜索,將搜索到的信息存入鏈表并逐一發(fā)給前置服務(wù)器;再由前置服務(wù)器從共享內(nèi)存提取結(jié)構(gòu)體數(shù)據(jù)包,并將歷史記錄數(shù)據(jù)包發(fā)往客戶端。

      6 結(jié) 語

      本文設(shè)計了基于STM32的實驗室環(huán)境安全監(jiān)控系統(tǒng),實現(xiàn)了通過傳感器采集數(shù)據(jù)并通過ESP8266模塊發(fā)送至云服務(wù)器,用戶通過登錄客戶端可以查看現(xiàn)場數(shù)據(jù)。本設(shè)計主要實現(xiàn)如下功能:(1) ESP8266與Epoll Socket服務(wù)器交互通信;(2)Windows Qt客戶端與Epoll Socket服務(wù)器交互通信;(3)云前置服務(wù)器與后置服務(wù)器IPC通信;(4)后置服務(wù)器對數(shù)據(jù)庫的提取和更新;(5)DHT11溫濕度傳感器、MQ-7一氧化碳傳感器、MQ-2煙霧傳感器的數(shù)值采集;(6)Qt客戶端用戶登錄注冊功能、Qt客戶端傳感器數(shù)據(jù)和歷史數(shù)據(jù)查看功能。

      經(jīng)過測試,結(jié)果表明本文設(shè)計的基于STM32的實驗室環(huán)境安全監(jiān)控系統(tǒng)基本實現(xiàn)了以上功能;在網(wǎng)絡(luò)節(jié)點范圍內(nèi)可以對數(shù)據(jù)進行高效采集并傳輸至云服務(wù)器,每30 s對客戶端的傳感器數(shù)據(jù)進行更新。用戶能夠及時地發(fā)現(xiàn)實驗室可能出現(xiàn)的各種安全問題。

      猜你喜歡
      共享內(nèi)存后置前置
      被診斷為前置胎盤,我該怎么辦
      前置性學習單:讓學習真實發(fā)生
      教書育人(2020年11期)2020-11-26 06:00:32
      國企黨委前置研究的“四個界面”
      當代陜西(2020年13期)2020-08-24 08:22:02
      非正交五軸聯(lián)動數(shù)控機床后置處理算法開發(fā)
      通過QT實現(xiàn)進程間的通信
      被診斷為前置胎盤,我該怎么辦
      基于PCI總線的多處理器協(xié)同機制研究
      科技風(2017年20期)2017-07-10 18:56:06
      沉淀后置生物處理組合工藝的工程應(yīng)用
      Review of Research on the Prevention of HPV Infection and Cervical Cancer
      后置式自動發(fā)卡機系統(tǒng)應(yīng)用
      托里县| 博爱县| 怀仁县| 德钦县| 临江市| 安庆市| 洪江市| 井研县| 黔西县| 延吉市| 阿鲁科尔沁旗| 平乡县| 抚松县| 密山市| 东乡族自治县| 黄梅县| 罗江县| 皮山县| 商都县| 轮台县| 浮山县| 永兴县| 隆子县| 乌兰察布市| 内丘县| 五台县| 永福县| 边坝县| 平潭县| 筠连县| 罗甸县| 龙南县| 资阳市| 门源| 准格尔旗| 马关县| 安新县| 忻城县| 武汉市| 龙井市| 中宁县|