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

國家常規氣象站供電狀態監控系統的設計與實現

2021-05-15 03:23:16楊昌洪楊勝忠黃大衛
中低緯山地氣象 2021年2期
關鍵詞:微信

楊昌洪,楊勝忠,黃大衛

(貴州省黔東南苗族侗族自治州氣象局,貴州 凱里 556000)

0 引言

近年來,貴州省野外無人值守的地面氣象觀測站(自動氣象站、土壤站、交通氣象站等)因供電系統故障造成的數據缺測占據了近一半的故障,土壤站更是達到了60%以上。目前貴州省自動站主要使用的是36AH的鉛酸蓄電池,該電池的使用壽命一般是5~6 a,但是在實際的使用過程中,蓄電池的使用壽命還是會以不正常的曲線下滑,虧電的現象時有發生。目前對于自動站的運行情況,維護人員只能通過報文是否缺測來判斷,對于故障原因,只能趕赴現場排查,尚未實現對臺站供電狀態的監控[1]。因此,開展自動站供電狀態系統的研究顯得尤為必要,在提高維護效率和加強監控力度上起著重要的意義。同時對供電系統的實時監控可以有效分析全省各個考核站點的供電情況和趨勢,了解太陽能板、蓄電池的充放電情況,實現對站點的供電狀況以及故障原因進行提前的研判。微信作為當下最常用的社交軟件,將承擔站點報警信息推送功能。通過研制自動站供電狀態實時監控系統,加入到現有觀測設備中,對區域自動站太陽能板、蓄電池、負載端電壓進行三路采集,并集成溫濕度傳感器監控機箱內部環境數據,利用后臺編程設定報警閾值,通過微信將站點運行狀態和故障信息通知相關保障人員。

1 系統結構設計與組成

本次設計的自動氣象站供電狀態監控系統主要由溫濕度傳感器、AD轉換系統、數據采集器、GPRS通信模塊以及微信報警系統組成 。在系統的設計上,主要分為3個階段來完成,分別是硬件模塊的設計與搭建、服務器物聯網運行環境的搭建以及微信客戶端報警信息推送功能的設計與實現,主要涉及到電子通信技術、計算機軟件相關技術[1]。在數據的采集和處理上采用型號為AT89C52的8位單片機,溫濕度的采集用的是型號為DHT11的數字溫濕度傳感器,是一款含有已校準數字信號輸出的溫濕度復合傳感器。三路電壓的采集上利用電阻分壓原理,通過PCF8591進行模擬量到數字量的轉換,數據傳輸通過GPRS無線傳輸方式[2],系統總體的結構如圖1所示。

圖1 系統構成圖Fig.1 system composition

2 硬件設計

2.1 數據的采集

系統采集的數據有機箱內部的溫濕度,蓄電池、太陽能板及負載輸出端的電壓。首先在溫濕度的采集上,選用了DHT11數字式溫濕度傳感器,工作電壓3.3~5V,濕度測量范圍20%~95%,溫度測量范圍0~50 ℃,該傳感器具有體積小、穩定性高、功耗低的特點。DHT11數字式溫濕度傳感器在與微控制器連接時只需要一個數據線就可以實現與單片機的通信,通過單總線協議完成,將傳感器輸出的數字信號直接送入I/O口;三路電壓的采集采用電阻分壓原理,匹配的是13 K和91 K的電阻進行分壓,電壓測量設計的范圍是0~40 V,需要將被測量電壓通過分壓原理轉換成0~5 V的模擬量,再通過PCF8591 AD 轉換模塊將0~5 V的電壓模擬量轉換成0~255的數字量,利用相應的公式計算出實際電壓,從而將電壓信號轉換成數字量[1]。

2.2 數據的傳輸

單片機采集到相應的數據后,通過串口通信送到GPRS通訊模塊。數據發送的方式采用的是字符形式發送。數據是以二進制的形式存儲,在用串口發送數據的時候首先將數據轉換為對應的ASCII碼,然后再將這些ASCII碼按照二進制的方式一位一位地發送出去,字符串的打包格式如下表1所示。

表1 數據打包格式Tab.1 data packaging format

如上表所示,溫度、濕度占2字節,三路電壓各4個字節,當GPRS模塊打包發送的數據與后臺幀頭接收設置幀頭相同時,將此幀數據接收并存入數據庫,并準備下一幀數據的接收。

2.3 Workerman開發介紹

Workerman是一款高性能的PHP socket服務器框架,Workerman基于PHP多進程以及libevent事件輪詢庫,PHP開發者只要實現一兩個接口,便可以開發出自己的網絡應用,實現采集端與服務器終端的數據傳輸。Workerman支持TCP和UDP兩種傳輸層協議,只需要更改配置的一個字段,便可以更換傳輸層協議。本次設計基于Workerman開發,搭建了終端設備到服務器端的數據傳輸平臺,從而實現了站點運行狀態數據的采集傳輸,運行示例如下:

use WorkermanWorker;

require_once __DIR__ . '/Autoloader.php';

require_once __DIR__ . '/vendor/autoload.php';

// 創建一個Worker監聽10006端口,使用tcpsocket協議通訊

$tcp_worker = new Worker('tcp://0.0.0.0:10006');

// 啟動4個進程對外提供服務

$tcp_worker->count = 4;

$tcp_worker->onWorkerStart = function($tcp_worker)

{

//將db實例存儲在全局變量中(也可以存儲在某類的靜態成員中)

global $db;

$db = new WorkermanMySQLConnection('127.0.0.1', '3306', 'root', 'Qwer123456', 'yang');//127.0.0.1'

};

// 當收到客戶端發來的數據后將數據插入到數據庫表中

$tcp_worker->onMessage = function($connection, $data)

{

global $db;

$chars = preg_split('/[T]/',"$data");

if($chars[0]=="000001") //判斷幀頭幀尾

{

$HH='Receiving:';

$insert_id = $db->query("INSERT INTO `yyy` ( `name`,`temp`,`humidity`,`Voltage1`,`Voltage2`,`Voltage3`)

VALUES ( '凱里',$chars[1],$chars[2],$chars[3]*0.1,$chars[4]*0.1,$chars[5]*0.1)");

}

elseif($chars[0]=="000002") //判斷幀頭幀尾

{

$HH='Receiving:';

$insert_id = $db->query("INSERT INTO `yyy` ( `name`,`temp`,`humidity`,`Voltage1`,`Voltage2`,`Voltage3`)

VALUES ( '西江',$chars[1],$chars[2],$chars[3]*0.1,$chars[4]*0.1,$chars[5]*0.1)");

$connection->send($str);// 向客戶端發送$HH $data// 這部分運行在子進程

}

elseif($chars[0]=="000003") //判斷幀頭幀尾

{

$HH='Receiving:';

$insert_id = $db->query("INSERT INTO `yyy` ( `name`,`temp`,`humidity`,`Voltage1`,`Voltage2`,`Voltage3`)

VALUES ( '三棵樹',$chars[1],$chars[2],$chars[3]*0.1,$chars[4]*0.1,$chars[5]*0.1)");

$connection->send($str);// 向客戶端發送$HH $data// 這部分運行在子進程

}

};

// 運行worker

Worker::runAll();

3 監控軟件的設計

微信作為當下最常用也是普及度最高的社交軟件之一,憑借高到達、高接收率、高精準度的特點備受廣大用戶的青睞[10]。作為狀態信息發送的載體,可隨時隨地查詢站點運行作態,采用微信來進行監控也是本次設計的特點之一。微信端后臺對數據庫的管理和查詢通過Python編程實現,微信監控程序主要使用Python語言開發,通過Pymysql庫,訪問搭建在阿里云上的Mysql數據庫,將查詢到的監控數據進行文本格式化后通過itchat開源庫提供的微信消息接口將監控信息發送給指定的微信群或微信好友,具體實現數據查詢和發送的代碼如下:

conn11 = pymysql.connect(host='39.98.236.17',

user='root',

password='Qwer123456',

database='yang',

charset='utf8')

# 得到一個可以執行SQL語句的光標對象

cursor11 = conn11.cursor()

# 寫sql語句

sql = "select * from yyy where name =' "+stn +"' order by time desc ;"

# 執行sql語句

ret = cursor11.execute(sql)

s = str(cursor11.fetchone()[1]) + :"溫度" +

str(cursor11.fetchone()[2]) + "濕度" +

str(cursor11.fetchone()[3]) + "蓄電池電壓" +

str(cursor11.fetchone()[4]) + "太陽能電壓" +

str(cursor11.fetchone()[5]) + "負載端電壓" +

str(cursor11.fetchone()[6]) + "時間"

# 發送采集數據到微信

itchat.send(s, toUserName=msg['FromUserName'])

表2 數據的存儲入庫Tab.2 data storage

4 應用效果分析

自動站供電狀態在線監測系統采用微信消息推送和查詢的方式,具體查詢方法為在微信端輸入站點名稱+狀態,就能實時獲取自動站的供電狀態。例如輸入凱里,狀態即能查詢到當前自動站機箱內的溫度、濕度、蓄電池、太陽能板以及負載端的電壓信息,如圖2所示。當自動站蓄電池、負載端電壓低于設定的閾值時,微信會推送報警信息,如圖3所示。該項設計主要解決了自動站運行過程中對三路電壓的監控,包括蓄電池、太陽能板的充放電情況以及負載輸出端的電壓。

圖2 自動站狀態信息查詢Fig.2 automatic station status information query

圖3 自動站狀態信息報警Fig.3 automatic station status information alarm

本次設計具有以下優勢:一是解決了目前區域自動站供電系統無法實時查詢的問題,出現故障后第一時間發現是否因為供電不足引起;二是該系統自帶故障報警、無信號自動復位重啟功能,具有功耗低,性能穩定價格便宜等優勢;三是利用微信客戶端作為狀態信息查詢和報警的媒介,具有使用方便快捷的特點。

5 總結

本次設計完成了對區域常規自動氣象站供電狀態以及機箱內部溫濕度的實時監控,同時客戶端開通了微信實時查詢和報警提醒的功能,方便維護人員實時了解監控站點的供電狀態,還可通過對歷史數據的查詢,了解當地日照情況及蓄電池充放電情況。當蓄電池的輸出高于或低于所設定的閾值時,微信客戶端會第一時間發出報警信號,讓氣象服務人員及時了解設備供電狀態。該項功能的實現有助于維護人員實時掌握各個站點的供電狀態,同時能夠對氣象數據的有效性和準確性進行判斷,特別是當發生重大降水天氣過程時,能夠有效避免因站點數據無效影響氣象防災減災的決策研判。

猜你喜歡
微信
微信
微信
微信
微信
微信
微信
微信
微信
微信
微信
主站蜘蛛池模板: 中文字幕亚洲无线码一区女同| 青青草综合网| 久久国产精品娇妻素人| 无码电影在线观看| 四虎永久在线| 国产精品自拍合集| 99久久无色码中文字幕| 在线播放国产一区| 又黄又湿又爽的视频| 亚洲日本www| 大乳丰满人妻中文字幕日本| 中文字幕在线永久在线视频2020| 91九色最新地址| 欧美精品色视频| 欧美精品aⅴ在线视频| 欧美日韩午夜| 婷婷午夜天| 国产一区在线视频观看| 欧美在线视频不卡第一页| 中文字幕久久亚洲一区| 97视频免费看| 国产精品片在线观看手机版| 欧美激情二区三区| 成人在线观看一区| 欧美日韩一区二区三| 中文成人在线视频| 成人免费一区二区三区| 日本爱爱精品一区二区| 91丝袜美腿高跟国产极品老师| 伊人福利视频| 国产在线精彩视频论坛| 在线精品亚洲一区二区古装| 尤物亚洲最大AV无码网站| 人妻夜夜爽天天爽| 午夜啪啪网| 国产极品嫩模在线观看91| 亚洲欧美综合在线观看| 中文字幕亚洲另类天堂| 亚洲综合色吧| 无码日韩精品91超碰| 国产成人成人一区二区| 色精品视频| 亚洲高清无码精品| www.youjizz.com久久| 久久久久亚洲精品成人网| 久久国产乱子| 国产精品美人久久久久久AV| 亚洲成人一区在线| 99成人在线观看| 午夜久久影院| 亚洲av无码专区久久蜜芽| 亚洲成a人在线观看| 91小视频在线观看| 香蕉综合在线视频91| 亚洲欧美日韩高清综合678| 久久99国产视频| 99国产在线视频| 中文无码精品A∨在线观看不卡 | 亚洲日韩精品伊甸| 99视频在线看| 2021国产v亚洲v天堂无码| 欧美日韩精品一区二区视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 成年A级毛片| 在线免费亚洲无码视频| 国产成人午夜福利免费无码r| 狂欢视频在线观看不卡| 全部无卡免费的毛片在线看| 一本二本三本不卡无码| 国产后式a一视频| 国产精品成人免费视频99| 久久久受www免费人成| 91精品日韩人妻无码久久| 最新亚洲av女人的天堂| 欧美日本在线| 日韩av高清无码一区二区三区| 伊人成人在线| 国产在线自乱拍播放| 亚洲精品不卡午夜精品| 无码AV动漫| 黄片一区二区三区| 少妇精品在线|