• 
    

    
    

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

      ?

      基于MQTT 和微信小程序的火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng)

      2022-06-02 14:42:06崔永俊
      電子器件 2022年1期
      關(guān)鍵詞:發(fā)布者火工品消息

      向 晟,崔永俊

      (中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,儀器與電子學(xué)院,山西 太原 030051)

      火工品是裝有火藥或炸藥,受外界刺激后產(chǎn)生燃燒或爆炸,以引燃火藥、引爆炸藥或做機(jī)械功的一次性使用的元器件和裝置的總稱(chēng),包括雷管、導(dǎo)火索,點(diǎn)火管,火帽、傳爆管,導(dǎo)爆索等?;鸸て返膬?chǔ)存環(huán)境必須防火、防潮、防盜[1]。目前一般工業(yè)和民用火工品的小規(guī)模儲(chǔ)存防護(hù)主要是依靠人員防范和攝像頭監(jiān)控,該方式可以防明火、防盜但無(wú)法了解庫(kù)房?jī)?nèi)環(huán)境數(shù)據(jù)具體情況。而基于MQTT 和微信小程序的火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng)可以讓管理人員通過(guò)手機(jī)微信小程序?qū)崟r(shí)監(jiān)測(cè)庫(kù)內(nèi)環(huán)境數(shù)據(jù)變化情況,方便管理員及時(shí)作出處理,可以減少安全隱患,降低風(fēng)險(xiǎn)發(fā)生幾率。

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

      火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng)由硬件系統(tǒng)、軟件系統(tǒng)組成。硬件系統(tǒng)主要包括STM32 微控制器、ESP8266無(wú)線WIFI 模塊、DHT11 溫濕度傳感器、HC-SR501人體紅外感應(yīng)傳感器、BH1750 光照度傳感器、MQ-2煙霧傳感器、MQ-6 易燃?xì)怏w傳感器與L298N電機(jī)驅(qū)動(dòng)等;軟件系統(tǒng)由用戶終端和微信小程序組成,集成了數(shù)據(jù)展示、設(shè)備遠(yuǎn)程控制等程序功能。系統(tǒng)總體結(jié)構(gòu)如圖1 所示。

      圖1 系統(tǒng)方案設(shè)計(jì)框圖

      火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng)的運(yùn)行原理:各傳感器采集庫(kù)內(nèi)易燃?xì)怏w含量、煙霧濃度、光照強(qiáng)度、人員數(shù)目、溫濕度等數(shù)據(jù),并由STM32 將數(shù)據(jù)通過(guò)WIFI 方式發(fā)送至服務(wù)器與客戶端,采用MQTT 協(xié)議的通信方法來(lái)實(shí)現(xiàn)數(shù)據(jù)交互,用戶可通過(guò)終端軟件MQTT.fx 和Web 網(wǎng)頁(yè)對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)與測(cè)試驗(yàn)證,通過(guò)微信小程序?qū)崟r(shí)接收服務(wù)器推送的傳感器數(shù)據(jù)和遠(yuǎn)程控制硬件系統(tǒng)。

      2 MQTT

      MQTT(消息隊(duì)列遙測(cè)傳輸)是輕量級(jí)基于代理的發(fā)布/訂閱的消息傳輸協(xié)議[2]。該協(xié)議基于TCP/IP 協(xié)議棧,占用開(kāi)銷(xiāo)低、帶寬低且易于實(shí)現(xiàn),十分適合于資源受限的場(chǎng)景。

      在MQTT 協(xié)議中有:發(fā)布者(Publisher)、消息代理服務(wù)器(Broker)、訂閱者(Subscriber)三種通信身份。MQTT 消息的發(fā)布者和訂閱者都是客戶端,消息代理服務(wù)器只是作為一個(gè)中轉(zhuǎn)的存在,負(fù)責(zé)接收發(fā)布者發(fā)布的消息,并將消息傳遞給消息的訂閱者。消息發(fā)布者可以同時(shí)是訂閱者[3]。

      圖2 為MQTT 協(xié)議的工作流程。首先,訂閱者向服務(wù)器訂閱主題,等待接收消息;然后,服務(wù)器接收發(fā)布者發(fā)布的消息并判斷消息的主題,若消息主題與訂閱者所訂閱的主題一致,則將消息轉(zhuǎn)發(fā)至訂閱者,實(shí)現(xiàn)消息從發(fā)布者到訂閱者之間的傳遞。

      圖2 MQTT 工作流程

      MQTT 協(xié)議通過(guò)控制QoS 等級(jí)來(lái)確定服務(wù)質(zhì)量,QoS 級(jí)別越高,服務(wù)質(zhì)量越高,流程越復(fù)雜,系統(tǒng)消耗資源越大[4]。本系統(tǒng)根據(jù)實(shí)際需求選用QoS0,即發(fā)布者發(fā)送一個(gè)Publish 包后,無(wú)論接收方是否成功收到數(shù)據(jù),刪除并丟棄已發(fā)送的包。QoS0 服務(wù)質(zhì)量下的發(fā)送方式如圖3 所示。

      圖3 QoS0 服務(wù)質(zhì)量下的發(fā)送方式

      3 下位機(jī)系統(tǒng)設(shè)計(jì)

      3.1 硬件與電路接口

      硬件系統(tǒng)的主控芯片選用STM32F103ZET6,其具有豐富的外設(shè),合理的功耗[5]。WIFI 模塊ESP8266 支持高效簡(jiǎn)潔的AT 指令,采用Station 模式,經(jīng)路由器或移動(dòng)熱點(diǎn)接入網(wǎng)絡(luò)[6];煙霧傳感器MQ-2 和易燃?xì)怏w傳感器MQ-6 用于采集火工品倉(cāng)庫(kù)中的煙霧和易燃?xì)怏w的含量并通過(guò)STM32 自帶的12 位ADC 讀取數(shù)值[7];光照傳感器BH1750,采用I2C 接口,靈敏度高,直接數(shù)字輸出光照亮度[8];人體紅外感應(yīng)傳感器HC-SR501,用于監(jiān)測(cè)庫(kù)內(nèi)人員進(jìn)出[9];溫濕度傳感器[10]使用DHT11,測(cè)量濕度范圍20%RH~90%RH,溫度范圍0~50 ℃,分辨率濕度1%RH,溫度分辨率1 ℃;電機(jī)驅(qū)動(dòng)使用L298N以驅(qū)動(dòng)直流電機(jī)[11];人機(jī)界面使用0.96 寸OLED,將傳感器所采集數(shù)據(jù)直觀地顯示出來(lái)。核心電路引腳如圖4 所示。

      圖4 核心電路引腳圖

      3.2 MQTT 協(xié)議在STM32 硬件平臺(tái)的實(shí)現(xiàn)

      硬件設(shè)備端主函數(shù)工作流程如圖5 所示。硬件設(shè)備端作為訂閱者,訂閱topic:storehouse/sub,接收來(lái)自該topic 的消息,同時(shí)作為消息的發(fā)布者向topic:storehouse/pub 上傳數(shù)據(jù)。

      圖5 硬件端主函數(shù)流程圖

      STM32 平臺(tái)接入MQTT 協(xié)議,主要用到三個(gè)庫(kù):esp8266.c、Mqttkit.c、Aliyun.c 及其對(duì)應(yīng)頭文件。

      (1)esp8266.c 主要為STM32 提供網(wǎng)絡(luò)連接配置函數(shù)。核心函數(shù):

      void ESP8266_Init(void);[初始化]

      _Bool ESP8266_SendCmd(char*cmd,char*res);

      [發(fā)送命令函數(shù),cmd 命令,res 返回指令,返回參數(shù)0-成功1-失敗],依次發(fā)送如下命令:

      "AT\r\n"測(cè)試AT 啟動(dòng);

      "AT+RST\r\n"重啟模塊,防止出現(xiàn)錯(cuò)誤;

      "AT+CIPCLOSE\r\n"關(guān)閉TCP 傳輸;

      "AT+CWMODE =1\r\n"設(shè)置模式為Station;

      "AT+CWDHCP =1,1\r\n"開(kāi)啟DHCP;

      "AT+CWJAP =\"nova\",\"66968221\" \r\n"接入WIFI 的名稱(chēng)和密碼;

      "AT +CIPSTART =\"TCP \",\"mqtt.mqttxsxs.xyz\",1883\r\n"建立TCP 連接,接入的IP 地址和端口號(hào)。

      (2)Mqttkit.c 提供MQTT 協(xié)議所需要的底層函數(shù),主要被Aliyun.c 中的函數(shù)調(diào)用并實(shí)現(xiàn)MQTT 服務(wù)器的連接、消息主題的訂閱、接收服務(wù)器平臺(tái)返回?cái)?shù)據(jù)、發(fā)布消息等功能。其核心函數(shù)如下:

      1._Bool Aliyun_DevLink(void);[接入云平臺(tái)函數(shù),1-成功0-失敗];

      主要調(diào)用:uint8 MQTT_PacketConnect(int8*user,int8*password,int*devid,uint16_t cTime,uint1 qos,MQTT_PACKET_STRUCTURE*mqttPacket);

      [user:產(chǎn)品ID,password:鑒權(quán)信息或apikey,devid:設(shè)備ID,cTime:連接保持時(shí)間,qos:QoS 等級(jí),mqttPacket:包指針]。

      2.void Aliyun _ Subscribe (char * topics [ ],unsigned char topic_cnt);[訂閱topic 函數(shù),topics:topic 名稱(chēng),topic_cnt:topic 個(gè)數(shù)];

      主要調(diào)用:uint8 MQTT_PacketSubscribe(uint16 pkt_id,enum MqttQosLevel qos,const int8*topics[],uint8 topics_cnt,MQTT_PACKET_STRUCTURE*mqttPacket);

      [pkt_id:pkt_id,qos:QoS 等級(jí),topics:topic 名稱(chēng),topics_cnt:topic 個(gè)數(shù),mqttPacket:包指針]。

      3.void Aliyun_RevPro(unsigned char*dataPtr);[平臺(tái)返回?cái)?shù)據(jù)檢測(cè),dataPtr:平臺(tái)返回的數(shù)據(jù)]

      主要調(diào)用:uint8 MQTT_UnPacketRecv(uint8*dataPtr);[dataPtr:接收的數(shù)據(jù)指針]。

      4.void Aliyun_Publish(char*topic,char*msg);[發(fā)布消息函數(shù),topic:發(fā)布的主題,msg:消息內(nèi)容],

      主要調(diào)用:uint8 MQTT_PacketPublish(uint16 pkt_id,int8*topic,int8*payload,uint32 payload_len,enum MqttQosLevel qos,MQTT _ PACKET _STRUCTURE*mqttPacket);

      [pkt_id,topic:發(fā)布的topic,payload:消息體(內(nèi)容),payload_len:消息體長(zhǎng)度,qos:QoS 等級(jí),mqttPacket:包指針]。

      4 上位機(jī)微信小程序系統(tǒng)設(shè)計(jì)

      4.1 微信小程序開(kāi)發(fā)

      微信小程序的設(shè)計(jì)[12]使用的是開(kāi)源的mpvue。開(kāi)發(fā)環(huán)境配置:安裝微信開(kāi)發(fā)者工具、NodeJs、vuecil 腳手架工具和Vscode。微信小程序mpvue 工程建立過(guò)程如下:

      (1)右鍵空白處,Vscode 打開(kāi)并在終端輸入命令:

      $vue init mpvue/mpvue-quickstart myweapp

      創(chuàng)建了模板的新項(xiàng)目,名為myweapp;

      (2)用Vscode 打開(kāi)新建立的myweapp,在其終端依次輸入以下命令:

      $npm install 安裝工程需要的依賴;

      $npm run dev 構(gòu)建工程;

      (3)微信開(kāi)發(fā)者工具導(dǎo)入項(xiàng)目myweapp。

      至此mpvue 工程創(chuàng)立完畢,微信開(kāi)發(fā)者工具會(huì)監(jiān)聽(tīng)Vscode 對(duì)工程文件的修改。另外,工程需安裝MQTT 插件以支持MQTT 協(xié)議:

      $npm install-save mqtt

      微信小程序設(shè)計(jì)主界面如圖6 所示。

      圖6 微信小程序設(shè)計(jì)主界面

      4.2 微信小程序接入MQTT 協(xié)議

      微信小程序軟件流程如圖7 所示。

      圖7 微信小程序軟件流程圖

      通信實(shí)現(xiàn)關(guān)鍵代碼參考如下。

      5 試驗(yàn)結(jié)果與分析

      完成系統(tǒng)設(shè)計(jì)后,對(duì)本系統(tǒng)的功能進(jìn)行測(cè)試。功能測(cè)試主要測(cè)試火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng)硬件主控單元能否正常穩(wěn)定運(yùn)行,各傳感器能否正常感知數(shù)據(jù),警報(bào)器、電機(jī)能否正常作業(yè),用戶終端軟件MQTT.fx和微信小程序能否實(shí)時(shí)接收并推送數(shù)據(jù)。

      5.1 功能實(shí)時(shí)性測(cè)試

      打開(kāi)微信小程序界面端的警報(bào)燈,硬件端綠燈亮起,記錄并對(duì)比微信小程序、MQTT.fx 以及硬件設(shè)備端OLED 數(shù)據(jù)。三方數(shù)據(jù)如圖8~圖11 所示。

      圖8 微信小程序真機(jī)調(diào)試

      圖9 MQTT.fx 界面

      圖10 MQTT.fx 數(shù)據(jù)

      圖11 硬件OLED 顯示

      測(cè)試結(jié)果表明:平臺(tái)實(shí)時(shí)刷新數(shù)據(jù)功能正常,微信小程序?qū)崟r(shí)接收硬件設(shè)備端發(fā)布的消息,硬件設(shè)備接收到微信端命令并成功作出響應(yīng)。微信小程序與硬件設(shè)備端雙向通信成功。

      5.2 功能穩(wěn)定性測(cè)試

      系統(tǒng)運(yùn)行24 h 并記錄整點(diǎn)數(shù)據(jù),數(shù)據(jù)匯總整理如表1 所示。由于篇幅列出8 組數(shù)據(jù)。

      表1 某倉(cāng)庫(kù)環(huán)境實(shí)測(cè)數(shù)據(jù)

      其中,煙霧和易燃?xì)怏w傳感器在沒(méi)有檢測(cè)到相應(yīng)數(shù)據(jù)的情況下會(huì)輸出0.4 V 和0.5 V 的電壓值,在檢測(cè)到相應(yīng)煙霧或易燃?xì)怏w時(shí),電壓值會(huì)隨著檢測(cè)濃度的增加而增加。

      測(cè)試過(guò)程:初始狀態(tài)下(0 s)煙霧和易燃?xì)怏w傳感器初值分別為0.4 V、0.5 V。1 s 時(shí)在距離硬件設(shè)備0.5 m 處加入煙霧與煤氣,2 s~7 s 能看到ADC 所采集傳感器的電壓值迅速增大到3.3 V。第7 s 關(guān)閉,隨著時(shí)間的推移,空氣中煙霧和易燃?xì)怏w含量稀釋?zhuān)瑐鞲衅鬏敵龅碾妷褐祷貧w初始值。圖12 為傳感器測(cè)試結(jié)果曲線圖。

      圖12 煙霧和易燃?xì)怏w傳感器測(cè)試結(jié)果

      根據(jù)實(shí)驗(yàn)數(shù)據(jù)和測(cè)試結(jié)果:硬件設(shè)備工作穩(wěn)定,傳感器配置正確且正常工作,數(shù)據(jù)的準(zhǔn)確性僅與其傳感器的精度相關(guān)。長(zhǎng)時(shí)間運(yùn)行系統(tǒng)沒(méi)有出現(xiàn)網(wǎng)絡(luò)斷開(kāi)連接等現(xiàn)象,表明該系統(tǒng)通信網(wǎng)絡(luò)穩(wěn)定。

      6 結(jié)語(yǔ)

      針對(duì)傳統(tǒng)火工品倉(cāng)庫(kù)安全防范的非全面性,設(shè)計(jì)基于MQTT 和微信小程序的火工品倉(cāng)庫(kù)監(jiān)測(cè)系統(tǒng),并對(duì)系統(tǒng)進(jìn)行實(shí)驗(yàn)測(cè)試。結(jié)合實(shí)驗(yàn)的數(shù)據(jù)、現(xiàn)象及結(jié)果,驗(yàn)證了硬件設(shè)備與微信小程序之間數(shù)據(jù)命令交互具有實(shí)時(shí)性、穩(wěn)定性、準(zhǔn)確性。該設(shè)計(jì)方便用戶和管理人員從數(shù)據(jù)角度監(jiān)測(cè)庫(kù)房?jī)?nèi)的環(huán)境。系統(tǒng)結(jié)構(gòu)相對(duì)簡(jiǎn)單,成本低,可作為獨(dú)立或輔助設(shè)備應(yīng)用于火工品倉(cāng)庫(kù)及其他相關(guān)環(huán)境,具有實(shí)際應(yīng)用價(jià)值。

      猜你喜歡
      發(fā)布者火工品消息
      電火工品儲(chǔ)存安全評(píng)估模型與應(yīng)用研究
      化工管理(2020年16期)2020-10-03 11:26:48
      一張圖看5G消息
      基于NDN的高效發(fā)布/訂閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      淺析火工品安全運(yùn)輸存儲(chǔ)要求
      化工管理(2017年10期)2017-03-04 09:26:25
      廣告發(fā)布者的著作權(quán)審查義務(wù)問(wèn)題研究
      加權(quán)映射匹配方法的站內(nèi)搜索引擎設(shè)計(jì)
      更正
      含能材料(2015年6期)2015-03-27 08:51:45
      消息
      消息
      消息
      宝清县| 耒阳市| 灵川县| 洛浦县| 漯河市| 泸西县| 郯城县| 隆回县| 璧山县| 大关县| 岳普湖县| 涿州市| 安陆市| 陆河县| 仁化县| 北流市| 大新县| 贵定县| 清新县| 安福县| 合肥市| 梨树县| 吉木萨尔县| 会宁县| 武定县| 大新县| 青铜峡市| 织金县| 西华县| 建昌县| 仁布县| 甘肃省| 铜鼓县| 博湖县| 栾川县| 都安| 沈丘县| 昌江| 塔河县| 南召县| 紫阳县|