久久精品亚洲中文字幕无码麻豆-好吊色青青草视频在线-国产一区二区三区久久精品-日韩精品极品视频在线观看免费-欧美成人一区二免费视频软件-中文字幕精品亚洲无线码一区-亚洲欧美一区二区三区国产精图文-国产日韩欧美啊啊啊-蹂躏美女校花大学生翘臀

物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊
RFID世界網(wǎng) >  技術文章  >  制造  >  正文

基于Internet網(wǎng)絡架構的無線傳感器網(wǎng)絡系統(tǒng)

作者:RFID世界網(wǎng) 收編
來源:互聯(lián)網(wǎng)
日期:2011-05-10 10:28:28
摘要:經(jīng)過實際運行和測試證明,系統(tǒng)穩(wěn)定可靠,系統(tǒng)誤差達到了規(guī)定的要求。本系統(tǒng)雖然是以無線溫度傳感器節(jié)點為例,但同樣也適合其他各種類型的無線傳感器節(jié)點,因此可以推廣到無線傳感器網(wǎng)絡的其他應用領域或行業(yè),如電力抄表、配電自動化、路燈監(jiān)控、道路交通等。
  引言

  隨著微機電系統(tǒng)(MicroElectroMechanism System, MEMS)、片上系統(tǒng)(System on Chip,SoC)、無線通信和低功耗嵌入式技術的飛速發(fā)展,無線傳感器網(wǎng)絡(Wireless Sensor Networks, WSN)也以其低功耗、低成本、分布式和自組織等特點帶來了信息感知的一場變革。無線傳感器網(wǎng)絡由部署在監(jiān)測區(qū)域內大量的廉價微型傳感器節(jié)點組成,通過無線通信方式形成一個多跳的自組織網(wǎng)絡。

  無線傳感器網(wǎng)絡可連接眾多類型的傳感器,可探測包括地震波、電磁場、溫度、濕度、噪聲、光強度、壓力、土壤成分、移動物體的大小和速度等。基于MEMS的微傳感技術和無線互聯(lián)網(wǎng)技術為無線傳感器網(wǎng)絡賦予了廣闊的應用前景,在航空、反恐、防爆、救災、環(huán)境、醫(yī)療、保健、家居、工業(yè)、商業(yè)等領域有廣泛的應用。本文以無線溫度傳感器節(jié)點和無線數(shù)據(jù)終端MD600G為例,介紹了基于MD600G的Internet無線傳感器網(wǎng)絡的設計,并給出了對溫度數(shù)據(jù)的可視化處理等操作的實現(xiàn)。

  1  基于Internet的無線傳感器網(wǎng)原理

  1.1  MD600G簡介


  智能無線數(shù)據(jù)終端MD600G可以用于數(shù)據(jù)中心和被監(jiān)控設備間,實現(xiàn)數(shù)據(jù)的遠程透明傳輸。它有如下特點:
  ①基于ARM平臺、8 MB數(shù)據(jù)緩存,內置Siemens MC35i GPRS無線模塊;
  ②嵌入式Linux系統(tǒng),包含TCP/IP協(xié)議棧以及ETCPTM協(xié)議,保證傳輸數(shù)據(jù)不丟失;
  ③提供獨立RS232配置串口及標準RS232/485數(shù)據(jù)接口;
  ④符合電工電子產(chǎn)品低溫GB/T2423.1、高溫GB/T2423.2的要求,適于在氣候條件惡劣的地區(qū)及戶外使用;
  ⑤可以快速連接RTU、PLC、工控機等設備,實現(xiàn)數(shù)據(jù)透明傳輸,廣泛應用于電力抄表、配電自動化、路燈監(jiān)控、道路交通等行業(yè)。‘ 

  1.2  無線傳感器網(wǎng)絡

  用戶設備是自行開發(fā)的溫度傳感器節(jié)點。傳感器節(jié)點采樣的數(shù)據(jù)通過RS232/485接口傳送到智能無線數(shù)據(jù)終端MD600G,MD600G對接收到的數(shù)據(jù)通過GPRS與Internet連接并進行無線數(shù)據(jù)透明傳送,服務器mSever端通過Internet網(wǎng)將接收到的數(shù)據(jù)生成實時數(shù)據(jù)庫,同時將這些實時數(shù)據(jù)以WEB頁的形式動態(tài)顯示和跟蹤。
 
  1.3  溫度傳感器節(jié)點

  溫度傳感器節(jié)點模塊主要由溫度傳感器DS18B20組成,并將其輸出的溫度數(shù)據(jù)送往單片機,然后單片機將這些數(shù)據(jù)進行相關處理,最后再送往后續(xù)的通信設備,并將溫度數(shù)據(jù)進行數(shù)碼管或液晶屏顯示。這里采用了實時時鐘電路DS1302來實現(xiàn)該系統(tǒng)的實時性。
  
  2  軟件設計
  
  基于MD600G和Internet的無線傳感器網(wǎng)的軟件包括溫度傳感器節(jié)點的軟件設計、MD600G與溫度傳感器節(jié)點的串口軟件設計、服務器mSever端與Internet網(wǎng)的數(shù)據(jù)通信軟件及mSever端溫度數(shù)據(jù)可視化程序的設計等。
  
  2.1  mSever端溫度數(shù)據(jù)可視化程序設計
  

  利用Visual C++強大的編譯器以及網(wǎng)絡與數(shù)據(jù)庫的處理能力,開發(fā)出基于Windows平臺的32位數(shù)據(jù)可視化應用程序。

  以下為可視化界面模塊源碼:
  void CDemoView::OnInitialUpdate() {
  CView::OnInitialUpdate();
  CRect Rect;
  GetClientRect(Rect);
  m_Plot.Create(WS_CHILD|WS_VISIBLE,Rect,this,12000);
  m_Plot.SetSerie(0, PS_SOLID, RGB(255,0,0), 0.0, 40.0, "Temperature");//窗口
  m_Plot.SetLegend(0, PS_SOLID, RGB(255,0,0), "Temperature");//背景方框
  m_Plot.m_bAutoScrollX=TRUE;
  SetTimer(1,1000,NULL);//背景刷新時間
  canSize=TRUE;
  }
  void CDemoView::OnTimer(UINT nIDEvent) {
  static BOOL pros={FALSE};
  if(!pros) {
  pros=TRUE;
  CDemoDoc* pDoc=GetDocument();
  ASSERT_VALID(pDoc);
  y=pDoc->p.buffer;
  m_Plot.AddPoint(0,CTime::GetCurrentTime(),y);
  Invalidate();
  pros=FALSE;
  }
  CView::OnTimer(nIDEvent);
  }
  void CDemoView::OnSize(UINT nType, int cx, int cy) {
  CView::OnSize(nType, cx, cy);
  if(canSize) {
  CRect Rect;
  GetClientRect(Rect);
  m_Plot.MoveWindow(Rect);
  }
  }
  void CDASocket::OnReceive(int nERRORCode) { //接收數(shù)據(jù)端的程序
  char buff[64];
  int ret=0;
  ret=Receive(buff,64);//AfxMessageBox("OK");
  if(ret==ERROR)
  {TRACE("ERROR!");}
  else
  m_pDoc->Presscessding(buff);
  CAsyncSocket::OnReceive(nErrorCode);
  }

  2.2  mSever端Web訪問程序設計

  為了實現(xiàn)多個客戶端可以同時訪問數(shù)據(jù)中心服務器,規(guī)定客戶端在打開服務器的Web頁面時,首先提交客戶端的

   IP地址,然后服務器端把客戶端的IP地址收錄入庫,再將接收到的溫度數(shù)據(jù)轉發(fā)給指定的客戶端。因此,當有多個客戶端同時訪問數(shù)據(jù)中心服務器時,服務器端只需要將各個客戶端的IP地址收錄入庫,最后再循環(huán)不斷地往各個客戶端轉發(fā)溫度數(shù)據(jù)即可。
  當客戶端斷開與服務器端的連接時,將向服務器提交斷開請求,從服務器端的IP地址庫中釋放掉該客戶端的IP地址,從而實現(xiàn)了服務器端IP地址庫的動態(tài)更新。
  
  2.3  節(jié)點溫度采集軟件設計

  以下為溫度傳感器節(jié)點的溫度采集部分代碼:
  #include "Mini51B.h"http://Mini51板頭文件
  #include "LCD1602.h"http://液晶模塊頭文件
  #include "ds18b20.h"http://溫度傳感器頭文件
  #include "stdio.h"http://C標準函數(shù)庫,系統(tǒng)集成
  #include "DS1302.h"
  #define uchar unsigned char
  uchar n,temp;
  uchar a[6]="000000"; //串口字符串
  SYSTEMTIME RTC;
  void main(void) {
  float V; //記錄溫度浮點型
  uchar str_buff[20];//字符緩沖區(qū)
  SCON=0x50;//串口工作在方式1,波特率9600,//晶振為22.1184 MHz
  PCON=0;
  TMOD=0x20;//定時器1工作在方式2
  TH1=0xfa;
  TL1=0xfa;
  IE=0x91;//1001 0001,EA=1,ES=1,EX0=1
  IT0=1;//外部中斷0為低電平觸發(fā)方式
  TR1=1;//定時器T1開始計數(shù)
  ds18b20_init();//初始化溫度傳感器時鐘測試
  Initial_DS1302();//初始化時鐘時間設定,執(zhí)行一次后刪除該部分
  Write1302(DS1302_MINUTE, 0x11);
  Write1302(DS1302_HOUR,0x08);
  Write1302(DS1302_DAY,0x15);
  Write1302(DS1302_MONTH,0x04);
  Write1302(DS1302_YEAR,0x08);
  lcd1602_init();
  lcd_put_xyns(2,1,14,"<http://www.stuelab.cn/>");
  delay_ms(1000);
  while(1) {
  for(n=0;n<10;n++) { //10*0.5 s=5 s數(shù)據(jù)發(fā)送周期
  V=ReadTemperature()/100.0; //溫度部分
  sprintf(str_buff,"%2.2f",V); //格式轉換
  lcd_put_xyns(1,1,11,"Temperatur=");
  lcd_put_xyns(12,1,5,str_buff);
  seg7_disp(V*100);
 sprintf(a,"%2.2f",V);//送串口字符串
  DS1302_GetTime(&RTC);//時間部分
  DateToStr(&RTC);
  TimeToStr(&RTC);
  lcd_put_xyns(1,2,8,RTC.DateString);
  lcd_put_xyns(9,2,8,RTC.TimeString);
  delay_ms(500);
  }
  for(n=0;n<6;n++) {
  SBUF=a[n];
  while(!TI);
  TI=0;
  }
  }
  }
  void external
   0() interrupt 0{//外部中斷0發(fā)送數(shù)據(jù)
  for(n=0;n<6;n++) {
  SBUF=a[n];
  while(!TI);
  TI=0;
  }
  delay_ms(1100);
  }
  void receving() interrupt 4 {//串口中斷程序接收數(shù)據(jù)
  temp=SBUF;
  RI=0;
  }

  結語

  經(jīng)過實際運行和測試證明,系統(tǒng)穩(wěn)定可靠,系統(tǒng)誤差達到了規(guī)定的要求。本系統(tǒng)雖然是以無線溫度傳感器節(jié)點為例,但同樣也適合其他各種類型的無線傳感器節(jié)點,因此可以推廣到無線傳感器網(wǎng)絡的其他應用領域或行業(yè),如電力抄表、配電自動化、路燈監(jiān)控、道路交通等。