网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

基于Internet网络架构的无线传感器网络系统

    摘要: 由MD600G和无线传感器节点组成了基于Internet网络架构的无线传感器网络系统,实现了远程分布节点的过程行为实时数据跟踪和实时数据库生成。本系统不仅具有低功耗、低成本、分布式和自组织的特点,而且还实现了通信信息的无线透明传输和基于Internet可视化动态数据显示等功能。

    引言

    随着微机电系统(MicroElectroMechanism System, MEMS)、片上系统(System on Chip,SoC)、无线通信和低功耗嵌入式技术的飞速发展,无线传感器网络(Wireless Sensor Networks, WSN)也以其低功耗、低成本、分布式和自组织等特点带来了信息感知的一场变革。无线传感器网络由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成一个多跳的自组织网络。

    无线传感器网络可连接众多类型的传感器,可探测包括地震波、电磁场、温度、湿度、噪声、光强度、压力、土壤成分、移动物体的大小和速度等。基于MEMS的微传感技术和无线互联网技术为无线传感器网络赋予了广阔的应用前景,在航空、反恐、防爆、救灾、环境、医疗、保健、家居、工业、商业等领域有广泛的应用。本文以无线温度传感器节点和无线数据终端MD600G为例,介绍了基于MD600G的Internet无线传感器网络的设计,并给出了对温度数据的可视化处理等操作的实现。

    1  基于Internet的无线传感器网原理

    1.1  MD600G简介

    智能无线数据终端MD600G可以用于数据中心和被监控设备间,实现数据的远程透明传输。MD600G的内部结构如图1所示,它有如下特点:

    ①基于ARM平台、8 MB数据缓存,内置Siemens MC35i GPRS无线模块;

    ②嵌入式Linux系统,包含TCP/IP协议栈以及ETCPTM协议,保证传输数据不丢失;

    ③提供独立RS232配置串口及标准RS232/485数据接口;

    ④符合电工电子产品低温GB/T2423.1、高温GB/T2423.2的要求,适于在气候条件恶劣的地区及户外使用;

    ⑤可以快速连接RTU、PLC、工控机等设备,实现数据透明传输,广泛应用于电力抄表、配电自动化、路灯监控、道路交通等行业。

基于Internet网络架构的无线传感器网络系统

    1.2  无线传感器网络

    由MD600G组成的基于Internet无线传感器网络原理图如图2所示。

基于Internet网络架构的无线传感器网络系统

    图2中的用户设备是自行开发的温度传感器节点。传感器节点采样的数据通过RS232/485接口传送到智能无线数据终端MD600G,MD600G对接收到的数据通过GPRS与Internet连接并进行无线数据透明传送,服务器mSever端通过Internet网将接收到的数据生成实时数据库,同时将这些实时数据以WEB页的形式动态显示和跟踪。

    1.3  温度传感器节点

    温度传感器节点模块主要由温度传感器DS18B20组成,并将其输出的温度数据送往单片机,然后单片机将这些数据进行相关处理,最后再送往后续的通信设备,并将温度数据进行数码管或液晶屏显示。这里采用了实时时钟电路DS1302来实现该系统的实时性。

    2  软件设计

    基于MD600G和Internet的无线传感器网的软件包括温度传感器节点的软件设计、MD600G与温度传感器节点的串口软件设计、服务器mSever端与Internet网的数据通信软件及mSever端温度数据可视化程序的设计等。

    2.1  mSever端温度数据可视化程序设计

基于Internet网络架构的无线传感器网络系统

    利用Visual C++强大的编译器以及网络与数据库的处理能力,开发出基于Windows平台的32位数据可视化应用程序。图3是mSever端温度数据可视化程序设计的原理图。

    以下为可视化界面模块源码:

    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) { //接收数据端的程序

    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);

    }

    图4是用Visual C++开发的mSever端温度数据可视化显示的界面,图中显示的是1个节点的温度变化实时曲线。

基于Internet网络架构的无线传感器网络系统

    2.2  mSever端Web访问程序设计

    为了实现多个客户端可以同时访问数据中心服务器,规定客户端在打开服务器的Web页面时,首先提交客户端的IP地址,然后服务器端把客户端的IP地址收录入库,再将接收到的温度数据转发给指定的客户端。因此,当有多个客户端同时访问数据中心服务器时,服务器端只需要将各个客户端的IP地址收录入库,最后再循环不断地往各个客户端转发温度数据即可。

    当客户端断开与服务器端的连接时,将向服务器提交断开请求,从服务器端的IP地址库中释放掉该客户端的IP地址,从而实现了服务器端IP地址库的动态更新。

    2.3  节点温度采集软件设计

    以下为温度传感器节点的温度采集部分代码:

    #include "Mini51B.h"//Mini51板头文件

    #include "LCD1602.h"//液晶模块头文件

    #include "ds18b20.h"//温度传感器头文件

    #include "stdio.h"//C标准函数库,系统集成

    #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];//字符缓冲区

    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为低电平触发方式

    TR1=1;//定时器T1开始计数

    ds18b20_init();//初始化温度传感器时钟测试

    Initial_DS1302();//初始化时钟时间设定,执行一次后删除该部分

    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数据发送周期

    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 external0() interrupt 0{//外部中断0发送数据

    for(n=0;n<6;n++) {

    SBUF=a[n];

    while(!TI);

    TI=0;

    }

    delay_ms(1100);

    }

    void receving() interrupt 4 {//串口中断程序接收数据

    temp=SBUF;

    RI=0;

    }

    结语

    经过实际运行和测试证明,系统稳定可靠,系统误差达到了规定的要求。本系统虽然是以无线温度传感器节点为例,但同样也适合其他各种类型的无线传感器节点,因此可以推广到无线传感器网络的其他应用领域或行业,如电力抄表、配电自动化、路灯监控、道路交通等。

 

热门搜索:6SPDX 6NX-6 2986122 SBB2805-1 TLM609NS TLM815NS BTS412B2E3062A PS-415-HGULTRA UL24CB-15 01C1001JF RBC11A EURO-4 PS-615-HG 2882828 PDU1220 PS4816 2866569 2320089 2320322 2839376 2839224 UL603CB-6 ULTRABLOK SBB830-QTY10 BQ25895MRTWR
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质