天天看點

分布式大氣監測系統架構介紹及案例解析

1 項目背景簡介

小能手曾經分享過一篇文章自制一個 LoRa PM2.5 監測器,用于監測自家小區的空氣品質。個體的力量是微小的,如果集合更多人的力量,用豐富的大氣監測節點來觀測區域性的大氣品質,相信會造福更多的人。

為了跟蹤小區級的微環境品質,騰訊内部發起了一個實驗性項目:細粒度的分布式大氣監測。希望基于騰訊完善的産品與技術能力,與志願者們共同建設一套用于監測生活環境大氣的系統,監測終端就分布在志願者的身邊,是以這個系統的資料,更貼近每個人的生活空間,以及提供更細粒度的資料監測能力。

目前這個系統已經營運了幾個月,期間追蹤到幾次環境污染氣團在深圳的移動過程,詳情可檢視文章鵝廠的這波青年,自發搭建了一套分布式大氣監測系統。

這篇文章将從系統架構的角度來介紹目前正在建構的大氣監測系統,并逐個子產品介紹其設計思路和要點。

2 設計要求

  1. 低使用門檻

    這套系統将要吸引志願者一起共建大氣監測點,是以必須保證在端側及平台操作上都應該盡可能簡單。

  2. 低開發成本

    大氣監測是一個典型的端雲配合的物聯網場景。我們了解到騰訊雲已經有了一整套的物聯網産品。為了讓我們這個兼職部隊,在業餘時間能快速地建構一個高可靠的業務系統,我們會盡可能地使用騰訊雲的物聯網産品及其他雲産品,用以加速這套業務系統開發。

  3. 更多元的擴充空間

    以單項監控服務為起點,孵化一套具備快速擴充和廣泛适用能力的監測物聯網架構,同時以大氣監測為案例,進行可用性驗證

3 架構詳細設計

3.1 總體設計

整個系統計劃由如下幾個子產品組成:

  • 資料采集子產品:在終端側采集傳感器的監測資料。
  • 無線接入子產品:提供多種無線協定,支援終端接入網絡。
  • 裝置接入子產品:在雲平台側處理各種無線接入協定及裝置資料規整。
  • 業務處理子產品:管理終端裝置,分析傳感器資料及可視化。

3.2 資料采集子產品

資料采集子產品負責在終端側采集傳感器的監測資料。

這裡有2個設計要求:

  • 支援多樣化的傳感器。我們的系統應該不限制傳感器的品牌,這樣資料源會有不同的精度和協定格式,需要架構上做些處理。
  • 支援多樣化的終端硬體。開發者手頭物聯網開發闆,我們系統應支援盡量多的開發闆,保證項目的可玩性,吸引極客們加入進來。

子產品設計思路:

  1. 端側不處理傳感器資料。一方面傳感器存在精度差異,一方面有别于政府專用監測點,生活監測點必然存在資料幹擾,基于這兩點無法保證端側的資料準确性。設計上端側不處理傳感器資料,在平台彙聚後由業務處理子產品進行區域資料分析,濾除個例誤差。
  2. 端側不限制傳感器資料格式。開發者可能會對接多種傳感器,不同品牌、不同型号的傳感器均可能存在不同的資料格式,為了減少端側的開發工作量,借助“裝置接入子產品”的平台裝置資料解析引擎,傳感器資料可以在後端在做協定格式規整。
  3. 端側不限制硬體形态。騰訊物聯網終端作業系統(TencentOS tiny)是騰訊面向物聯網領域開發的實時作業系統,已經對接了市面上主流的晶片架構以及物聯網開發闆,通過 TencentOS tiny 輸出 example 指導志願者。同時其他志願者也可基于 Arduino、樹莓派等硬體形态開發相應終端,我們通過社群傳播優秀的接入實踐教程,進一步豐富終端硬體形态。

3.3 無線接入子產品

無線接入子產品提供多樣的無線接入方式,讓終端入網并接入裝置接入平台。

無線接入這邊有一個硬性要求,大部分終端應該都安裝在室内及陽台,仍需要部分終端安裝于街道上,用以監測戶外真實的大氣環境。

子產品設計思路:

由于 LPWAN 具有低功耗、遠距離等優勢,我們可選用 LPWAN 相關技術來滿足戶外街道的終端接入需求。目前最主流的是 LoRa 和 NB-IoT 兩種無線接入方式。

NB-IoT 同 GPRS 一樣,都要購買 sim 卡;LoRa 則需要購買 LoRaWAN 網關。二者都存在一定的搭建成本。但在 LoRa 方面,鵝廠提供了開放共享的騰訊 LoRa 社群網絡,其中包括騰訊在深圳自建的數百個LoRa網關,使用者可查找附近的社群LoRa網關就近完成 LoRaWAN 裝置接入,降低應用開發門檻。

分布式大氣監測系統架構介紹及案例解析

同時考慮在成本和便利性的優勢,市面上一個WiFi開發闆在20塊錢左右,直接通過家庭路由器便可以接入平台,是以我們仍希望能支援 WiFi 接入方式。

綜上,在無線接入子產品的設計,我們首選 LoRa、輔以 WiFi,同時仍能盡量支援其他的無線接入方式。

3.4 裝置接入子產品

裝置接入子產品負責各類終端裝置的平台側接入,并且進行不同裝置協定的規整,發送給業務處理子產品。

為了讓業務系統快速支撐海量物聯網裝置連接配接,毫無疑問需要選擇成熟的物聯網平台進行開發。騰訊雲物聯網開發是目前騰訊雲主推的一站式開發平台。除了具備海量連接配接的可靠能力,還支援 LoRa、WiFi、蜂窩網絡 等多種接入協定。

分布式大氣監測系統架構介紹及案例解析

另外很重要的一點,騰訊雲物聯網開發平台還為使用者提供産品開發及定義資料模闆的能力,可以定義統一的大氣傳感器産品;同時靈活的裝置資料解析引擎,可以将不同的傳感器協定格式進行腳本處理,轉化成我們需要的統一的資料模版格式,滿足我們端側不限制傳感器資料格式的需求。

最後物聯網開發平台中可以配置相應的第三方伺服器 URL,将規整後的裝置協定推送給我們的業務處理子產品。

3.5 業務處理子產品

業務處理子產品負責管理終端裝置,分析傳感器監測資料。

在裝置管理部分的設計中,由于物聯網開發平台已經可以定義具體資料模版的産品,是以我們在這個大氣監測系統将會定義具體的幾種大氣監測産品,如pm2.5,如voc。業務處理子產品中隻需進行指定産品的裝置管理,使用者無需再操心具體的産品json協定,降低使用者的使用門檻。

在業務處理部分,涉及API網關、SCF雲函數、雲資料庫及騰訊雲圖等多款雲端元件,此前的文章系統功能與架構概述中已有了闡述。

4 案例解析

在春節前我們快速讨論确定了這套系統架構,不到2天的時間内,快速搭建了整套系統及5個監測點。

下面介紹下具體案例,以友善大家加深了解這個系統架構。

4.1 LoRa PM2.5 節點

在資料采集部分,我們采用了目前 NUCLEO LoRa 開發套件作為主要,序列槽連接配接攀藤 PMS7003 PM2.5 傳感器。

分布式大氣監測系統架構介紹及案例解析

軟體上基于 TencentOS tiny 快速開發了一個固件版本,下圖是具體的傳感器資料協定,開發闆直接透傳資料 payload 給到雲端。

分布式大氣監測系統架構介紹及案例解析

4.2 LoRa 網關

在無線接入部分,5 個監測點直接安裝了 5 個社群LoRa網關。

分布式大氣監測系統架構介紹及案例解析

5個監測點覆寫。

分布式大氣監測系統架構介紹及案例解析

4.3 騰訊雲物聯網開發平台

傳感器的原始資料上傳到騰訊雲物聯網開發平台後,經過裝置資料解析腳本的處理,原始的傳感器協定格式已轉化為具體的産品屬性,以json格式推送給大氣監測平台。

如下是針對攀藤 PMS7003 PM2.5 傳感器編寫的資料解析腳本:

function RawToProtocol(fPort, bytes) {
    var data = {
        "method": "report",
        "clientToken" : new Date(),
        "params" : {}
    };
    var i = 0;
    
    data.params.PM1_CF1 = (bytes[i++] << 8) | bytes[i++];
    data.params.PM2d5_CF1 = (bytes[i++] << 8) | bytes[i++];
    data.params.PM10_CF1 = (bytes[i++] << 8) | bytes[i++];
    
    data.params.PM1 = (bytes[i++] << 8) | bytes[i++];
    data.params.PM2d5 = (bytes[i++] << 8) | bytes[i++];
    data.params.PM10 = (bytes[i++] << 8) | bytes[i++];
    
    data.params.particles_0d3 = (bytes[i++] << 8) | bytes[i++];
    data.params.particles_0d5 = (bytes[i++] << 8) | bytes[i++];
    data.params.particles_1 = (bytes[i++] << 8) | bytes[i++];
    data.params.particles_2d5 = (bytes[i++] << 8) | bytes[i++];
    data.params.particles_5 = (bytes[i++] << 8) | bytes[i++];
    data.params.particles_10 = (bytes[i++] << 8) | bytes[i++];
    
    data.params.version = bytes[i++];
    data.params.Error = bytes[i++]
    
    return data;
}           

複制

下圖是 LoRa PM2.5 節點在物聯網開發平台中的裝置屬性呈現:

分布式大氣監測系統架構介紹及案例解析

4.4 業務平台最終效果

最後再附上一張大氣監測平台的騰訊雲圖呈現效果。

分布式大氣監測系統架構介紹及案例解析