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

分布式室內空氣質量監測系統設計

2022-03-07 06:58:14曾愷昀孫玉國陳明璽
軟件導刊 2022年2期

曾愷昀,孫玉國,陳明璽

(上海理工大學光電信息與計算機工程學院,上海 200093)

0 引言

家居環境空氣質量在人們生活中正扮演著越來越重要的角色。多個居室環境數據需要分別監測,而傳統的室內空氣質量監測裝置一般是單點式的,只能采集一個地點的空氣質量數據,不能滿足多點需求。梁濤等應用RT-Thread 實時操作系統設計了一款家居環境監測系統。該系統整體技術水平較為先進,但只能采集單點溫濕度數據,對粉塵、室內有毒氣體等全面的空氣質量分析不足;任強等利用Cortex-M3 處理器和ENC28J60 模塊及uIP 協議設計了一款智能家居平臺控制系統,該系統實現多個控制節點的星型網絡拓撲結構,能夠實現家居設備的多點分布式控制,但沒有移植操作系統,基于裸機的軟件設計架構與硬件耦合緊密,當面臨日漸增長的智能家居功能需求時,任務之間的安排變得非常復雜,不利于日后升級迭代開發,潛力有限。針對上述問題,本文設計了一款能夠采集多個居室空氣質量數據的分布式室內空氣質量檢測系統,移植了RT-Thread 實時操作系統和消息隊列遙測傳輸協議(Message Queuing Telemetry Transport,MQTT)。

MQTT 協議由IBM 和Eurotech 公司于1999 年開發,是一套輕量級基于發布∕訂閱的消息傳輸協議。與傳統的TCP∕IP 傳輸協議相比,MQTT 傳輸協議代碼及網絡帶寬占用小,資源消耗低,適合作為“機器到機器”(M2M)物聯網場景下應用。本文在多個檢測點同時利用DS18B20數字溫度傳感器、MQ-7 氣體傳感器和GP2Y1014AU 粉塵傳感器采集室內空氣中的各項環境數據,使用STM32F103 RCT6 作為主控芯片對采集到的數據進行分析處理,并通過NRF24L01 無線傳輸模塊組成的2.4GHz 家庭局域網絡將數據上傳給網關節點。網關節點使用ESP8266 WiFi 模塊通過MQTT 傳輸協議與OneNET 云平臺通信,用戶能在云端對該系統進行查看和控制。當系統監測的某項環境數據超過設定的警戒閾值時,云平臺會向用戶發送報警郵件進行提示,用戶可在云平臺對該系統中的4 路繼電器進行遠程控制,對重要的水、電、煤氣等閥門進行開閉操作,及時消除安全隱患。

1 系統架構設計

如圖1 所示,分布式室內空氣質量監測系統由監測節點及網關節點兩部分組成,監測節點與網關節點間通過nRF24L01 構成2.4GHz 家居內部無線局域網通信。網關節點以STM32F103RCT6 作為主控MCU,通過ESP8266 WiFi模塊,以MQTT 傳輸協議將數據上傳到OneNET 物聯網云平臺。

Fig.1 Distributed indoor air quality monitoring system architecture圖1 分布式室內空氣質量監測系統架構

2 監測節點硬件設計

監測節點硬件連接如圖2 所示。NRF24L01 是一款由NORDIC 公司推出的單片無線收發器芯片,工作在2.4~2.5GHz 的全球開放ISM 頻段,可通過調頻功能實現多對一通信。DS18B20 數字溫度傳感器采用“單總線”數字方式連接到MCU 的PB3 引腳,需接4.7kΩ 的上拉電阻。

CO 傳感器MQ-7 的模擬電壓輸出引腳與MCU 的PC0引腳連接,通過ADC1 完成模數轉換。環境CO 濃度的變化會引起傳感器金屬氧化物SnO氣體敏感層的電導率變化,進而引起電壓變化。要得到使用ppm(百萬分比濃度)表征的CO 濃度,還需要一系列的換算過程。根據MQ-7 傳感器的廠家技術手冊,得到R∕R與ppm 之間的函數關系如下:

Fig.2 Monitoring node hardware connection圖2 監測節點硬件連接

其中,R表示傳感器在1000ppm 的氫氣中的電阻值,為8.00Ω。R表示傳感器在不同濃度、不同氣體下的電阻值,計算如下:

式(2)中

V

的計算如下:

其 中,

V

是STM32F103RCT6 通 過ADC1 將

V

從 模擬量轉換完成的數字量。為保證精確,需要連續測量10 次ADC1 采樣值并取其平均值作為采用值。

GP2Y1014AU 粉塵傳感器輸出的模擬電壓與微顆粒物濃度成正比,MCU 通過ADC2(PC2 引腳)將該模擬信號轉換為數字信號,其檢測原理如圖3 所示。傳感器開有兩端貫通的氣室,放置有紅外發光二極管和光電晶體管,當通道中流通空氣夾雜的微顆粒物阻擋紅外線時,光電晶體管收到的紅外線強度發生變化,使信號輸出引腳的模擬電壓發生變化。

Fig.3 GP2Y1014AU internal structure圖3 GP2Y1014AU 內部結構

3 網關節點硬件設計

如圖4所示,ESP8266與網關節點相連,它是工作在802.11n(2.4GHz)頻段的Wi-Fi芯片,通信速度高達72.2Mbps,具有+19.5dBm 的天線輸出功率,能確保良好的覆蓋范圍;睡眠電流小于20μA,適合低功耗的家居物聯網應用場景。STM32F103RCT6 通過UART 串口發送AT 指令實現對ESP8266 的控制與通信。本系統設計包含4 路繼電器,當用戶在云平臺查看室內的各項環境監測數據發現異常時,如溫度過高或者CO 濃度超標,用戶可以通過這4路繼電器在云平臺遠程控制家居內水、電、煤氣等重要閥門的開閉,有效提升家居安全性。

Fig.4 Gateway node hardware connection圖4 網關節點硬件連接

4 系統軟件設計

4.1 RT-Thread 實時操作系統相關程序設計

RT-Thread 是一款國產RTOS 系統。本文監測節點使用的MCU 是STM32F103RCT6,資源較有限,因此移植的是內核NANO 版本,僅需要3KB Flash、1.2KB RAM 內存資源。在監測節點采集各項環境數據的同時,將這些數據由NRF24L01 上傳給網關節點,由此產生操作系統中多線程同步的生產者消費者問題(Producer-consumer problem):傳感器作為生產者產生數據并放置在緩沖區中,NRF24L01作為消費者從緩沖區中消耗數據。消費者、生產者分別在兩個不同的線程中,因此還涉及線程間通信(IPC,Inter-Process Communication)。RT-Thread 郵箱是一種開銷低、效率高的IPC 方式,每封郵件容量是4byte,恰好容納一個指針,資源消耗小。

監測節點的程序設計包括數據采集線程readData_thread、數據發送線程sendData_thread、LED閃爍線程led_thread以及郵箱控制塊test_mail。其中,readData_thread 的優先級高于sendData_thread 的優先級,通過郵箱發送郵件方式完成線程間同步及通信;led_thread 優先級最低,通過閃爍LED 燈指示程序正常運行。

線程轉換過程如圖5 所示。在readData_thread 線程中,DS18B20、GP2Y1014AU 及MQ-7 傳感器每次分別采集3 項環境數據的1個,每個數據通過空格符分隔并緩存在tmp_buf 緩沖數組中,作為待發送數據包;readData_thread發送一封郵件給sendData_thread,然后通過rt_thread_mdelay()函數主動延時將自身掛起;郵件內容是指向數組的指針,即&tmp_buf。readData_thread 以永久等待方式等待,待收到該封郵件后啟動本線程,并通過指針獲取數組內存儲的數據包,由NRF24L01 上傳給網關節點。sendData_thread執行完畢后完成一輪生產者——消費者過程,因其優先級低于readData_thread,線程調度器會將線程切換到后者,繼續開始下一輪過程。led_thread 在readData_thread 的主動延時掛起間隙由線程調度器切換執行。

Fig.5 Thread conversion process圖5 線程轉換過程

4.2 MQTT 協議程序設計

網關節點使用MQTT 協議接入中國移動的OneNET 物聯網云平臺。它是一種傳輸層協議,需要建立在其他可靠的物理層網絡連接協議(如TCP∕IP 協議)之上才能工作。每個MQTT 報文由固定報頭、可變報頭和負載3 部分組成。本文以網關節點的WiFi 模塊ESP8266 為客戶端,OneNET 作為服務器,使用MQTT 協議建立QoS 級別連接,流程如圖6 所示,對應偽代碼如下:

固定報頭為0x10,是客戶端向服務器發送CONNECT報文,發出連接請求;若固定報頭為0x20,是客戶端收到服務器返回的CONNACK 報文,表示連接成功;若固定報頭為0x82,是客戶端向服務器發送SUBSCRIBE 報文,用于訂閱Topic;若固定報頭為0x90,是客戶端收到服務器返回的SUBACK 報文,確認服務器已收到SUBSCRIBE 報文;若固定報頭為0x30,是客戶端向服務器發送的PUBLISH 報文,用于發送數據流通信;若固定報頭為0xC0,是客戶端向服務器發送的PING 報文,用于?;钸B接;若固定報頭為0xD0,是客戶端收到服務器返回的PINGRESP 報文,確認已收到PING 報文。

Fig.6 MQTT protocol connection cloud platform flow圖6 MQTT 協議連接云平臺流程

其中,OneNET 要求數據流遵循JSON 格式。假設上傳溫度為22.2℃,粉塵濃度為44μg∕m,CO 濃度為ppm,則數據格式如下:{“Temp”:22.2,“PM”:44,“CO”:10};服務器也可以向客戶端發送報文控制4 路繼電器開閉。

如圖7 所示,客戶端與服務器間有大量數據需要交換通信。為防止兩者間因數據處理速度不同造成數據丟失,在網關節點程序中設計了兩個數據緩沖區:發送數據緩沖區MQTT_TxDataBuf[NUM][BUFF_UNIT]和接收數據緩沖區MQTT_RxDataBuf[R_NUM][RBUF F_UNIT]。每個緩沖區是一個二維數組,數組元素單位為byte,可存儲一個報文。

根據緩沖區每個格子的第2個byte 判斷載入緩沖區的MQTT 報文的固定報頭。處理發送緩沖區MQTT_Tx-DataBuf 時,載入緩沖區的是客戶端待發送報文,彈出緩沖區的是客戶端已發送報文。若固定報頭是0x10,待發送的是CONNECT 連接報文;若固定報頭是0x82 且Connect-Pack_flag 已置位,待發送的是SUBSCRIBE 訂閱報文。對應偽代碼如下:

處理接收緩沖區MQTT_RxDataBuf 時,載入緩沖區的是客戶端已接收報文,彈出緩沖區的是客戶端已處理的報文;若固定報頭是0x20,接收的是CONNACK 連接報文。將ConnectPack_flag 置位,表示連接報文成功;若固定報頭是0x90,接受的是SUBACK 報文;若固定報頭是0xD0,表示接收的是PINGRESP 報文;若固定報頭是0x30,接收的是PUBLISH 報文。

Fig.7 Buffer area of sending and receiving data圖7 發送與接收數據緩沖區

5 實驗結果與分析

完成硬件設計與搭建、程序編寫之后,在OneNET 上的“多協議接入”入口注冊產品及設備,將生成的產品及設備ID 寫入程序。待系統正常工作并連接上OneNET 后便可在云平臺的PC 端或手機端查看部署在家居中的各個監測節點實時上傳的各項環境數據,也可在云平臺遠程控制4 路繼電器開合。

OneNET 還提供觸發器功能。當系統采集到的某一項環境數據超過用戶設定的閾值時,云平臺會自動向用戶發送報警郵件,提示環境的變化可能會導致危險情況發生,有助于提升居室安全性。以微顆粒物濃度為例設置觸發器,當環境中的濃度超過設定閾值200μg∕m時,OneNET自動向用戶發送報警郵件。上傳成功的所有數據流數據均實時保存在OneNET 后臺,保存的歷史數據可以按日期篩選,導出為.xlsx 文件,以供后期數據分析使用。

6 結語

本文以STM32F103RCT6 作為主控MCU,在監測節點移植了RT-Thread Nano 實時操作系統。使用傳感器采集家居內溫度、微顆粒物濃度、CO 濃度等室內空氣質量數據。使用2.4GHz 無線傳輸模塊構建家庭局域網絡,多個監測節點的數據在網關節點處匯總。匯總后的數據通過MQTT 傳輸協議上傳到OneNET 云平臺,讓用戶能在云端對該系統進行查看和控制,非常便利。通過云平臺提供的報警郵件發送服務,提升了家居環境安全性。與傳統的單點式室內空氣質量監測系統相比,該系統能準確監測家居內多個居室的各項環境數據。應用MQTT 傳輸協議,相比TCP∕IP 協議降低了資源消耗,更適合M2M 物聯網場景下應用。

但本系統在RT-Thread 使用功能的挖掘深度方面還存在不足。后續計劃不僅僅將其作為一個實時內核使用,還將移植如文件系統、圖形庫等較為完整的中間件組件,將該系統升級為一個具備低功耗、安全、通信協議支持和云端連接能力的平臺,以滿足未來不斷增長的智能家居功能需求。

主站蜘蛛池模板: 婷婷99视频精品全部在线观看 | 波多野结衣AV无码久久一区| 久久久久人妻一区精品色奶水 | 手机成人午夜在线视频| 四虎国产精品永久在线网址| 国产成人精品午夜视频'| 欧美区一区| 国产福利一区二区在线观看| 国产免费看久久久| 2019国产在线| 亚洲综合欧美在线一区在线播放| 丁香五月婷婷激情基地| 狠狠操夜夜爽| 国产成人综合日韩精品无码不卡| 中国精品自拍| 97在线观看视频免费| 亚洲中文字幕97久久精品少妇| 国产成人久久777777| 99手机在线视频| 国产污视频在线观看| 青草精品视频| 国产亚洲精品在天天在线麻豆 | 色噜噜在线观看| 欧美特级AAAAAA视频免费观看| 国产精品蜜芽在线观看| 美女国内精品自产拍在线播放| 强奷白丝美女在线观看| 亚洲美女操| 久久国产av麻豆| 国产成人精品高清不卡在线| 一边摸一边做爽的视频17国产| 直接黄91麻豆网站| 亚洲中文字幕无码爆乳| 在线观看国产精品第一区免费 | 亚洲首页国产精品丝袜| 欧美A级V片在线观看| 欧美激情综合| www.91中文字幕| 成人毛片免费观看| аv天堂最新中文在线| 亚洲天堂日本| 99精品这里只有精品高清视频| 国产av一码二码三码无码| 亚洲第一成年网| 久久免费观看视频| A级毛片高清免费视频就| 国产在线视频二区| 国产精品视频第一专区| 亚洲中文无码h在线观看| 婷婷开心中文字幕| 亚洲第一天堂无码专区| 国产视频a| 91色爱欧美精品www| 波多野结衣无码AV在线| 久久久国产精品无码专区| 精品国产电影久久九九| 欧美综合激情| 日韩欧美中文在线| 五月婷婷综合网| 成人免费一级片| 日韩欧美国产区| 国产精品永久免费嫩草研究院| 欧美天堂在线| 亚洲精品无码久久毛片波多野吉| av一区二区三区在线观看| 欧美成人国产| 国产精品视频猛进猛出| 欧美亚洲另类在线观看| 久久精品丝袜| 精品伊人久久久久7777人| 精品小视频在线观看| 久久久精品无码一二三区| 亚洲综合久久成人AV| 玖玖精品在线| 亚洲国产欧洲精品路线久久| 综合五月天网| 亚洲一级毛片在线播放| a天堂视频在线| 欧美亚洲一区二区三区导航| 亚洲系列中文字幕一区二区| 亚洲毛片网站| 亚洲第一中文字幕|