選擇 NS3 作為無線感測器網路模擬器的理由(NS3 for WSN)
阿新 • • 發佈:2019-02-10
無線感測器網路(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)
無線感測器網路節點的元件:
- 感測器介面
- 無線電
- 類比電路
- 電池
- 微控制器
引入無線感測器網路的需求:
- 生產成本
- 容錯性
- 安全性
- 生命週期
- 可測量性
- 實時性
無線感測器網路的構架:
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)))
{
}