1. 程式人生 > >選擇 NS3 作為無線感測器網路模擬器的理由(NS3 for WSN)

選擇 NS3 作為無線感測器網路模擬器的理由(NS3 for WSN)

無線感測器網路(Wireless Sensor Network,WSN)是由節點集合組織而成的協同網路。每個節點都有處理能力、可能包含多種記憶體、有一個射頻收發器、有一個電源並能適應各種感測器和執行器。ns3 WSN 系統包含一個提供無線連線到有線世界和分散式節點的閘道器。無線協議的選擇依賴於你應用的要求。

無線感測器網路的應用(application):

  • 資產追蹤(Asset tracking)
  • 週期性測量(Periodic measurements)
  • 環境保護與空氣、水土的監測(Environmental and monitoring of air, water and soil)
  • 事件檢測(Event detection)
  • 過程監控(Process monitoring)
  • 工控機監控(Industrial machine monitoring)
  • 建築和橋樑的結構監測(Structural monitoring for buildings and bridges)

無線感測器網路節點的元件:

  • 感測器介面
  • 無線電
  • 類比電路
  • 電池
  • 微控制器

引入無線感測器網路的需求:

  • 生產成本
  • 容錯性
  • 安全性
  • 生命週期
  • 可測量性
  • 實時性

無線感測器網路的構架:

Architecture of WSN

WSN 示例程式碼:

double DegreesToRadians (double degrees)
{
return degrees * M_PI / 180.0
; } double RadiansToDegrees (double radians) { return radians * 180.0 / M_PI; } std::ostream& operator<< (std::ostream& os, const Angles& a) { os << "(" << a.phi << ", " << a.theta << ")"; return os; } std::istream &operator >> (std::istream &is, Angles &a) { char
c; is >> a.phi >> c >> a.theta; if (c != ':') { is.setstate (std::ios_base::failbit); } return is; } Angles::Angles () : phi (0), theta (0) { } Angles::Angles (double p, double t) : phi (p), theta (t) { } Angles::Angles (Vector v) : phi (std::atan2 (v.y, v.x)), theta (std::acos (v.z / sqrt (v.x*v.x + v.y*v.y + v.z*v.z))) { } Angles::Angles (Vector v, Vector o) : phi (std::atan2 (v.y - o.y, v.x - o.x)), theta (std::acos ((v.z - o.z) / CalculateDistance (v, o))) { }