基于Internet网络架构的无线传感器网络系统
1.3 温度传感器节点
温度传感器节点模块主要由温度传感器DS18B20组成,并将其输出的温度数据送往单片机,然后单片机将这些数据进行相关处理,最后再送往后续的通信设备,并将温度数据进行数码管或液晶屏显示。这里采用了实时时钟电路DS1302来实现该系统的实时性。
2 软件设计
基于MD600G和Internet的无线传感器网的软件包括温度传感器节点的软件设计、MD600G与温度传感器节点的串口软件设计、服务器mSever端与Internet网的数据通信软件及mSever端温度数据可视化程序的设计等。
2.1 mSever端温度数据可视化程序设计
利用Visual C++强大的编译器以及网络与数据库的处理能力,开发出基于Windows平台的32位数据可视化应用程序。图3是mSever端温度数据可视化程序设计的原理图。
图3 可视化界面的设计原理图
以下为可视化界面模块源码:
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) { //接收数据端的程序
评论