国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

開源硬件arduino在通信機房環(huán)境集中監(jiān)控中的應用

2014-09-11 18:23:36趙鵬褚劍
中國新通信 2014年11期
關(guān)鍵詞:通信機房機房空調(diào)

趙鵬 褚劍

【摘要】通信機房環(huán)境集中監(jiān)控系統(tǒng)主要是對機房的溫濕度、電源、空調(diào)等相關(guān)設(shè)備運行情況進行監(jiān)控,然后對采集到的環(huán)境數(shù)據(jù)和動力設(shè)備運行數(shù)據(jù)進行相關(guān)的分析與研究。本文采用arduino控制器以及配套的傳感器獲取環(huán)境數(shù)據(jù),利用arduino控制器和MAX485模塊通過Modbus協(xié)議監(jiān)控空調(diào)、UPS等運行狀態(tài)可以完成數(shù)據(jù)采集工作。

【關(guān)鍵詞】arduino傳感器modbus監(jiān)控

一、環(huán)境集中監(jiān)控系統(tǒng)結(jié)構(gòu)

隨著信息網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,不同種類、不同數(shù)量的網(wǎng)絡(luò)設(shè)備分布于用戶分支機構(gòu)所在的不同地域,由于缺乏與之相對稱的運維系統(tǒng),數(shù)量眾多的無人值守機房的物理運行環(huán)境、動力配電狀況、設(shè)備運行狀況等可能發(fā)生危急狀況,而無法及時發(fā)現(xiàn)和處理。因此,機房環(huán)境集中監(jiān)控系統(tǒng)可以對電力供應、溫度、濕度、空氣含塵量、UPS、空調(diào)等設(shè)備運行狀態(tài)進行24小時實時測量與智能化調(diào)節(jié),保證網(wǎng)絡(luò)運行環(huán)境的穩(wěn)定與網(wǎng)絡(luò)軟硬件資源的安全。

該系統(tǒng)可以實現(xiàn)對機房溫濕度、精密空調(diào)、配電柜、UPS、門禁等實現(xiàn)監(jiān)控,如圖1所示。

二、數(shù)據(jù)采集

通信機房環(huán)境集中監(jiān)控需要實現(xiàn)對環(huán)境數(shù)據(jù)的采集,例如機房的溫濕度,空氣含塵量,空調(diào)的運行狀態(tài),配電柜的輸入電壓、電流、功率,UPS的運行狀態(tài)等數(shù)據(jù)進行采集。其中一些環(huán)境數(shù)據(jù)可以利用傳感器直接獲取,而UPS、精密空調(diào)的運行狀態(tài)可以通過廠家提供的RS485接口的modbus協(xié)議獲取。

2.1傳感器

傳感器是一種檢測裝置,能夠感受被測的信息并能將感受的信息按照一定的規(guī)律轉(zhuǎn)換成電信號或者其他形式輸出,傳感器是實現(xiàn)自動檢測盒自動控制的首要環(huán)節(jié)。對于通信機房的一些環(huán)境數(shù)據(jù)可以采用傳感器獲取,以下是部分采集通信機房環(huán)境實時數(shù)據(jù)的傳感器,見表1。

2.2modbus協(xié)議

Modbus協(xié)議是應用于電子控制器的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其他設(shè)備之間可以通信,成為一種通用的工業(yè)標準。不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。Modbus協(xié)議有兩種模式,ASCII模式和RTU模式。其中RTU模式比ASCII模式可以傳送更多的數(shù)據(jù),廣泛應用于工控領(lǐng)域。Modbus協(xié)議采用主從方式,其中一臺控制器作為主機設(shè)備發(fā)送信息到從設(shè)備,從設(shè)備返回一個響應,見圖2。

Modbus RTU查詢命令格式,見表2。

Modbus RTU正常回應格式,見表3。

Modbus RTU異常響應格式,見表4。

三、控制器——開源硬件arduino

Arduino是一個基于開放源碼的軟硬件平臺,使用了AVR單片機,構(gòu)建于開放源代碼simple I/O接口板,可以與傳感器和各式各樣的電子元件連接,通過傳感器感知外界環(huán)境數(shù)據(jù)。

3.1接收傳感器數(shù)據(jù)

利用arduino控制器可以獲取通信機房溫濕度、空氣含塵量、電流、電壓、電功率數(shù)據(jù)。以下是利用DHT11采集機房溫濕度的arduino代碼。

#include "DHT.h"

#DHT dht(2, DHT11);

void setup( ) {

dht.begin( );

}

void loop( ) {

if (isnan(t) || isnan(h)) {

float h = dht.readHumidity( );

float t = dht.readTemperature( );

}

}

3.2接收modus協(xié)議數(shù)據(jù)

對于UPS、精密空調(diào)的運行狀態(tài)可以通過廠家提供的RS485接口的modbus協(xié)議讀取設(shè)備的運行狀態(tài)。

3.2.1對UPS進行監(jiān)控

通過UPS廠家提供的modbus協(xié)議通訊接口對UPS內(nèi)部整流器、逆變器、電池、旁路、負載等各部件的運行狀態(tài)進行實時監(jiān)視,參數(shù)超出閾值時,及時報警。

艾默生UH31UPS安裝modbus適配卡,設(shè)置通信波特率和設(shè)備地址后,就可以通過arduino控制板提供的modbus server端與UPS進行通信。該適配卡僅對功能碼#03的查詢命令有應答信息,適配卡扮演從機的角色,等待控制器的查詢。將arduino控制器與max485模塊連接,轉(zhuǎn)換TTL到RS485。

以下是讀取UPS相位電壓的相關(guān)arduino代碼:

#include

#define TxEnablePin 2

enum{

PACKET1,

TOTAL_NO_OF_PACKETS // leave this last entry

};

Packet packets[TOTAL_NO_OF_PACKETS];

packetPointer packet1 = &packets[PACKET1];

unsigned int readRegs[2];

void setup() {

modbus_construct(packet1, 0x01, READ_HOLDING_REGISTERS, 0x041A, 2, readRegs);

modbus_configure(&Serial, 9600, SERIAL_8N2, 1200, polling, 10, TxEnablePin, packets, TOTAL_NO_OF_PACKETS);

}

void loop( ) {

modbus_update( );

}

首先導入modbus庫文件,SimpleModbusMaster.h。

然后通過modbus_construct( )函數(shù)構(gòu)造請求信息,其中packect1為返回參數(shù),包含了從設(shè)備的返回信息。Modubs_configure( )函數(shù)初始化主從設(shè)備通訊參數(shù)。

最后通過Modbus_update( )將請求信息發(fā)送到從設(shè)備,返回信息包含在readRegs緩存中,可以從中讀取相關(guān)數(shù)據(jù),該實例中返回UPS輸入電壓A相電壓值。

3.2.2對精密空調(diào)進行監(jiān)控

通過空調(diào)廠家提供的modbus協(xié)議通訊接口對空調(diào)各部件的運行狀態(tài)與參數(shù)進行監(jiān)控,若空調(diào)組發(fā)生故障,及時報警。

如果要查詢室內(nèi)溫度需要構(gòu)造如下請求信息:

modbus_construct(packet1, 0x01, READ_HOLDING_REGISTERS, 0x7E, 4, readRegs);

Packet1為從設(shè)備返回信息,其中regRead緩存中包含了返回數(shù)據(jù),例如返回的數(shù)據(jù)是41 A8 00 00轉(zhuǎn)換為float型數(shù)據(jù)就是室內(nèi)溫度21度。

四、對設(shè)備的控制

4.1modbus協(xié)議

可以通過modbus協(xié)議的功能碼16寫輸出寄存器,更改寄存器的狀態(tài)實現(xiàn)對設(shè)備的控制。例如控制UPS逆變器關(guān)機可以構(gòu)造如下請求信息。

unsigned int writeRegs[1];

modbus_construct(packet2, 0x01, PRESET_MULTIPLE_REGISTERS, 0x4E22, 2, writeRegs);

通過功能碼PRESET_MULTIPLE_REGISTERS(功能碼16)寫輸出寄存器(0x4E22),實現(xiàn)UPS逆變器關(guān)機,其中writeRegs中的數(shù)據(jù)為延時時間。

4.2繼電器

可以采用與arduino控制器配套的繼電器模塊,利用3.3V~5V的TTL控制信號,實現(xiàn)“自動開關(guān)”的功能。根據(jù)采集到的環(huán)境參數(shù)控制相關(guān)設(shè)備的運行。例如當機房濕度小于某值時,可以控制加濕器開機,增加通信機房的濕度。

五、報警模塊

利用GSM/GPRS SIM900模塊,插入arduino控制器。當所檢測的環(huán)境數(shù)據(jù)超出閾值時,通過GSM模塊發(fā)送語音或者短信報警信息。

#include

#include

char number[]="+39123456789";//Destination number

char text[]="alarm: UPS1 is power off";//SMS to send

byte type_sms=SMS_UNREAD;//Type of SMS

byte del_sms=0;//0: No deleting sms - 1: Deleting SMS

GSM gsm;

void setup( ) {

gsm.TurnOn(9600);//module power on

gsm.InitParam(PARAM_SET_1);//configure the module

gsm.Echo(0); //enable AT echo

}

void loop( ){

char inSerial[5];

int i=0;

delay(2000);

Check_SMS();//Check if there is SMS

if (Serial.available() > 0) {

while (Serial.available() > 0) {

inSerial[i]=(Serial.read()); //read data

i++;

}

inSerial[i]='

德州市| 沽源县| 武胜县| 泸州市| 庆安县| 水富县| 库伦旗| 龙口市| 措勤县| 平陆县| 丰县| 婺源县| 万州区| 普安县| 镇坪县| 武功县| 富宁县| 大埔县| 兴国县| 长宁区| 上蔡县| 黎川县| 高平市| 城市| 桃园县| 娱乐| 诸城市| 孟村| 紫阳县| 罗定市| 汉沽区| 神农架林区| 南澳县| 伊通| 滕州市| 施秉县| 神池县| 鄂托克前旗| 绩溪县| 白山市| 家居|