黃嬌郁 唐海
摘要:針對于國家氣象部門所用氣象站維護難度大、專業(yè)要求高等問題,提出一種基于阿里云物聯(lián)網(wǎng)平臺的民用自動氣象站設計方案。系統(tǒng)設計方案包括硬件部分和軟件部分。其中,硬件部分包括以AM3358為主控制器的核心電路、Modbus傳感器數(shù)據(jù)采集電路、4G通信模塊等;軟件部分包括設備端Link kit軟件開發(fā)、云服務器端IoT Studio網(wǎng)站應用UI界面開發(fā)、后臺數(shù)據(jù)服務開發(fā)、消息流轉等內容。整個系統(tǒng)實現(xiàn)了六要素自動氣象站的全部功能,并增加了一些實用功能,如在出現(xiàn)特定氣象參數(shù)時,將消息發(fā)送至手機APP群組。實踐測試表明其具有維護簡單、成本低廉等優(yōu)點,特別適用于農業(yè)生產、車站、港口等非氣象部門中對氣象要素的觀測需求。
關鍵詞:阿里云物聯(lián)網(wǎng);自動氣象站;Modbus;MQTT
中圖分類號:TP399 ? ? ? ? 文獻標識碼:A
文章編號:0439-8114(2020)17-0166-04
Abstract: In view of the difficulty of maintenance and high professional requirement of meteorological station used by governmentalmeteorological department, a design scheme of civil automatic weather station based on Aliyun Internet of things platform is proposed. The system design includes hardware and software. The hardware part includes the core circuit of AM3358 controller, Modbus sensor data acquisition circuit ,4G communication module and so on. The software part includes device side Link kit software development, cloud server side IoT Studio website application UI interface development, background data service development, message flow and so on. All functions of the six-element automatic weather station are implementedin the system, and some practical functions are added, such as sending the message to the mobile phone APP group when a specific weather parameter appears. The practical test shows that it has the advantages of simple maintenance and low cost, which is especially suitable for the observation of meteorological elements in non-meteorological departments such as agricultural production, station and port.
Key words: Aliyun Internet of things; automatic weather station; Modbus; MQTT
隨著云計算和物聯(lián)網(wǎng)技術的發(fā)展,越來越多的企業(yè)將核心業(yè)務轉移到云端,而終端設備以物聯(lián)網(wǎng)節(jié)點的形式和終端用戶交互[1,2]。受維護成本和技術的限制,氣象部門所維護的自動氣象站的數(shù)量和分布區(qū)域有限,而與氣象要素緊密相關的企事業(yè)單位難以獨立維護氣象觀測設備[3]。如農田小氣候的觀測、港口、機場、車站氣象監(jiān)測等應用場合[4,5]。因此一種易維護、低成本的氣象監(jiān)測設備的研發(fā)變得十分必要。民用相關的氣象傳感器產品在市場上較普遍,因此數(shù)據(jù)的采集不是難點。數(shù)據(jù)的傳輸和處理是關鍵問題,普通單位沒有條件建立一套完整的數(shù)據(jù)傳輸專網(wǎng)和數(shù)據(jù)處理中心。基于以上考慮,本設計借助云計算和物聯(lián)網(wǎng)技術,實現(xiàn)一套維護簡單、擴展靈活、不受地域范圍限制的自動氣象站設計方案,可以廣泛用于生產實踐。
本自動氣象站包含常見的氣象六要素傳感器:風速、風向、雨量、溫度、濕度、氣壓。傳感器接口是RS-485,協(xié)議符合MODBUS-RTU。在此基礎上,可以動態(tài)增加其他必要的傳感器而不需要修改硬件設計,比如增加土壤、照度等傳感器。
1 主控板硬件設計
1.1 主控芯片選型
自動氣象站硬件需要很強的環(huán)境適應能力,主要包括對環(huán)境溫度的適應能力和對電源的適應能力。處于野外的自動氣象站需要在極熱和極寒的條件下正常工作,且一般以太陽能電池和蓄電池作為電源,需要整機功耗較低才能適應長期連續(xù)不間斷工作條件。
綜合以上考慮,選用德州儀器(TI)的AM335x 微處理器,其基于 ARM Cortex-A8架構,滿足工業(yè)溫度范圍要求(-40~85 ℃),且功耗較低,在典型CPU主頻400 MHz的情況下,功耗僅約3 W,能適應在市電斷電的情況下使用蓄電池和太陽能電池板長時間工作。
1.2 主控板設計
為了擴大硬件的靈活適應性,采用核心板加底板組合的方式,核心板包括了CPU和內存,底板引出AM335x豐富的外部接口,能滿足自動氣象站連接傳感器和通信線路的需要。外部接口見表1,圖1是整個硬件系統(tǒng)框架。
2 軟件設計
為實現(xiàn)完整操作系統(tǒng)功能和網(wǎng)絡接入能力,選擇Linux操作系統(tǒng)內核和Debian根文件系統(tǒng)發(fā)行版。Debian 是一個自由操作系統(tǒng)[6],不只提供一個純粹的操作系統(tǒng),它還附帶了大量的開源軟件包,同時又具有豐富的上游軟件庫的支持,可以方便更新本地軟件包。本方案的整個軟件系統(tǒng)總體框架見圖2。
2.1 系統(tǒng)鏡像構建
在裝有ubuntu 16.04的PC機上構建ARM平臺的Debian根文件系統(tǒng)。安裝 qemu 和 debootstrap 等工具,用 debootstrap 抽取系統(tǒng)。最終構建的根文件系統(tǒng):bin ?boot ?dev ?etc ?home ?lib ?opt ?proc ?root ?run ?sbinsrv ?sys ?tmpusr ?var.
2.2 Modbus-RTU協(xié)議的支持
為支持工業(yè)現(xiàn)場總線Modbus-RTU協(xié)議,采用Linux下開源的libmodbus軟件庫。所有使用同一RS-485總線的傳感器應該使用不重復的Modbus從站地址。其中溫度、濕度、氣壓3個要素被集成在一個傳感器上(表2)。以風速讀取為例,使用0x03功能碼,讀取0x0016寄存器上的風速值,一次通信命令過程如下。
主控板發(fā)出 01 03 00 16 00 01 65 CE
傳感器回復 01 03 02 00 0C B8 41
傳感器回復的溫度值是0x0C,把十六進制換算為十進制,此時得到的風速就是12 m/s。
3 設備接入
3.1 設備接入SDK
阿里云物聯(lián)網(wǎng)平臺的Link Kit軟件開發(fā)包可以快速實現(xiàn)設備的連云開發(fā),且有多種編程語言可以選擇,比如C語言、Java和Python[7-9]。為支持底層硬件驅動訪問和兼容Libmodbus,本方案選用C語言版本SDK。只需將云端設備的三元組(產品密鑰、設備名稱、設備密碼)與軟件開發(fā)包綁定,即可實現(xiàn)安全的數(shù)據(jù)傳輸。
Link Kit支持與云端的MQTT(ISO標準消息隊列遙測傳輸)通信,這為低成本的設備連云提供了基礎。MQTT是一個基于發(fā)布-訂閱機制的輕量級傳輸協(xié)議,專為一些軟硬件資源較少的物聯(lián)網(wǎng)設備設計。
Link Kit支持FOTA(Firmware-Over-the-Air Technology),即空中下載技術[10]。物聯(lián)網(wǎng)平臺支持通過FOTA方式進行設備固件升級。FOTA對自動氣象站的遠程維護升級來說是非常必要的,通過FOTA流程,用戶可以從云端遠程更新Link Kit軟件自身。
Link Kit的程序流程見圖3。①初始化,導入設備三元組;②建立與服務器的MQTT連接;③注冊服務、事件、屬性、FOTA等回調函數(shù);④開啟數(shù)據(jù)采集線程;⑤進入消息循環(huán),采集數(shù)據(jù),檢查是否有事件和屬性需要上報。實現(xiàn)服務、事件、屬性上報和FOTA更新的回調函數(shù)如下。
IOT_RegisterCallback(ITE_SERVICE_REQUEST,user_service_request_event_handler);
IOT_RegisterCallback(ITE_PROPERTY_SET,user_property_set_event_handler);
IOT_RegisterCallback(ITE_REPORT_REPLY, user_report_reply_event_handler);
IOT_RegisterCallback(ITE_TRIGGER_EVENT_ REPLY, user_trigger_event_reply_event_handler);
IOT_RegisterCallback(ITE_FOTA,user_fota_ event_handler).
3.2 阿里物模型編程
物模型指將物理空間中的實體數(shù)字化,并在云端構建該實體的數(shù)據(jù)模型[11]。在物聯(lián)網(wǎng)平臺中,定義物模型即定義產品功能。完成功能定義后,系統(tǒng)將自動生成該產品的物模型。物模型描述產品是什么,能做什么,可以對外提供哪些服務。物模型可以描述為一個JSON格式的文件。它是物理空間中的實體,如傳感器、車載裝置、樓宇、工廠等在云端的數(shù)字化表示,從屬性、服務和事件3個維度,分別描述了該實體是什么,能做什么,可以對外提供哪些信息。定義了這3個維度,即完成了產品功能的定義。
物模型將產品功能類型分為3類:屬性、服務和事件。定義了這3類功能,即完成了物模型的定義(表3)。該自動氣象站支持6個氣象要素屬性,1個設備自檢服務和1個錯誤報警事件。
4 Web可視化界面設計
基于IoT Studio的Web可視化開發(fā)工作臺是物聯(lián)網(wǎng)應用開發(fā)工具。無需寫代碼,只需在編輯器中拖拽組件到畫布上,再配置組件的顯示樣式、數(shù)據(jù)源及交互動作,即可以可視化的方式進行Web應用開發(fā)。開發(fā)好的Web應用直接托管運行在阿里云服務器上并全天運行,用戶無需搭建自己的服務器。該方案所開發(fā)氣象站及監(jiān)控面板如圖4所示。通過CNAME解析,可以將用戶自己的域名和Web應用關聯(lián),從而實現(xiàn)Internet訪問。
5 服務和消息開發(fā)
5.1 定時服務
翻斗式雨量傳感器需要定期清零操作,使用阿里云物聯(lián)網(wǎng)平臺規(guī)則引擎中的定時服務實現(xiàn)。該規(guī)則引擎支持標準5位Cron表達式的計劃任務,可以精確到分鐘。例如,設定每個小時的整點時刻清零雨量,可以設定Cron表達式如下。
0 * * * *
其中,0表示每分鐘的第0秒,其余“*”表示任意的小時、天、月和年。
當定時器滿足條件時,執(zhí)行雨量情況命令,即通過Modbus發(fā)送清零指令給傳感器。以上過程皆由阿里云平臺實現(xiàn),用戶無需維護服務器。
5.2 消息流轉
阿里云平臺支持和釘釘APP的及時交互,當氣象站檢測到特定的氣象參數(shù)或者異常報警時,可以將消息發(fā)送到管理人員的釘釘群組,實現(xiàn)這一過程只需要設置相關的Webhook和釘釘賬戶信息(通常為手機號),在可視化界面編輯消息處理模塊,設置各模塊的輸入和輸出邏輯關系。如圖5所示,傳感器數(shù)據(jù)經(jīng)過設備觸發(fā)條件模塊判斷后,將結果送給路徑選擇模塊做分類處理,從而發(fā)送給特定的釘釘機器人,產生不同的消息到特定釘釘APP群組。
6 小結
系統(tǒng)設計主要完成了以下幾部分工作:自動氣象站硬件設計,該部分電路是承載整個數(shù)據(jù)采集和傳輸業(yè)務邏輯的基礎;基于Link Kit的數(shù)據(jù)采集和聯(lián)網(wǎng)程序;基于Iot Studio的Web界面合計;基于阿里云平臺的消息和服務設計。系統(tǒng)的創(chuàng)新主要體現(xiàn)在:①采用嵌入式SOC處理器運行Linux操作系統(tǒng)內核,結合Debian嵌入式操作系統(tǒng)棧,使得上層軟件開發(fā)變得通用和便于移植,所有程序基于標準的POSIX,功能上與通用計算機兼容,同時系統(tǒng)功耗又非常低;②借助阿里云物聯(lián)網(wǎng)平臺,氣象站的數(shù)據(jù)采集、處理、顯示、運行維護可以全部在云端實現(xiàn),用戶無需自建服務器,真正實現(xiàn)低成本自動氣象站的需求。
參考文獻:
[1] 范天恩. 基于云服務的物聯(lián)網(wǎng)嵌入式開發(fā)平臺研究與設計[D]. 上海:上海師范大學,2018.
[2] 劉 強, 崔 莉,陳海明. 物聯(lián)網(wǎng)關鍵技術與應用[J]. 計算機科學,2010,37(6):1-4.
[3] 李 巖,王 娟,王 勝,等. 基于DZZ6和TYQ200的新型區(qū)域氣象站保障技術[J]. 湖北農業(yè)科學,2019,58(S1):67-69,95.
[4] 馬召偉. 農田小氣候監(jiān)測預警系統(tǒng)[J]. 湖北農機化,2019(15):36.
[5] 陳斌源,紀立恒,鄧曉璐. 農業(yè)氣象自動觀測采集系統(tǒng)對現(xiàn)代農業(yè)氣象觀測的作用[J]. 福建熱作科技,2018,43(1):64-66.
[6] 王 洋. Debian架構研究[J]. 電腦知識與技術,2017,13(13):75-77.
[7] 劉 雨,望育梅,張 琳. 一種無線傳感器網(wǎng)絡中的信息驅動節(jié)點選擇機制[J]. 北京郵電大學學報,2006(6):66-70.
[8] 熊夢彪,高 譽,周龍麗,等. 基于MQTT協(xié)議的物聯(lián)網(wǎng)農業(yè)監(jiān)測系統(tǒng)[J]. 科技經(jīng)濟導刊,2019,27(29):32.
[9] 陳玉兵. 農業(yè)物聯(lián)網(wǎng)動態(tài)感知與智慧決策系統(tǒng)[A]. 2018年全國物聯(lián)網(wǎng)技術與應用大會論文集[C]. 北京:中國通信學會,2018.
[10] 李備備,欒 勇,王 超,等. 基于AM3358處理器的嵌入式實時EtherCAT主站的構建[J]. 組合機床與自動化加工技術, 2015(5):5-9.
[11]OUSSAMA R,MOHAMED T,F(xiàn)ABRICE MONTEIRO A D. Smart device for multi-band industrial IoT communications[J]. ?Procedia computer science,2019,155:660-665.