当前位置:文档之家› 基于ZigBee的无线温湿度采集系统

基于ZigBee的无线温湿度采集系统

基于ZigBee的无线温湿度采集系统
基于ZigBee的无线温湿度采集系统

基于ZigBee的无线温湿度采集系统

摘要:针对传统温湿度检测存在的问题,结合无线传感器网络技术,本文提出一种基于ZigBee 技术的无线温湿度采集系统的设计方法。设计采用CC2530 射频芯片及SHT11 数字温湿度传感器,在ZigBee 协议栈的基础上进行应用开发。阐述了ZigBee技术,系统组成及工作原理,系统软硬件设计等内容,并通过实验测试表明,该无线温湿度采集系统能够稳定可靠的运行,并且具有组网简单、功耗低,成本低等优点,具有十分好的实用价值和经济效益。

关键字:ZigBee,温湿度,CC2530,协议栈

Wireless temperature and humidity acquisition system

based on ZigBee technology

Abstract: According to the problems existing in temperature and humidity detecting of traditional ways,combining with wireless sensor network technology , this paper puts forward a new design of temperature and humidity acquisition system based on ZigBee technology. The design was carried out based on the ZigBee protocol, adopting CC2530 RF chip and digital humidity and temperature sensor SHT11. Paper introduces ZigBee technology, the overall design of the system, hardware and software design of the nodes and so forth. Finally, the experimental tests have proved that the wireless temperature and humidity acquisition system was stable and credible , with the advantages of simple networking , low cost and low power, and it has a very good practical value and economic benefits .

Keywords: ZigBee, Temperature and humidity, CC2530, Protocol

1 引言

在冷链物流、农业生产、仓库管理以及食品保存等领域,温度和湿度控制显得十分重要,但传统的方法采用测试器材来测量温度和湿度,通过人工进行检测,这种人工测试方法费时费力、效率低,而且测试的温度及湿度的误差大,随机性大。因此,开发一种全新的温湿度采集系统就显得十分迫切和重要了。本文设计了一种采用无线传感器网络技术进行温度和湿度的采集系统。无线传感器网络不需要较高的传输带宽,但需要较低的传输时延和较低的功率消耗。ZigBee 是一种新兴的短距离、低功耗、低数据速率、低成本、低复杂度的无线网络技术,它的出现正好满足了这个要求。

2 ZigBee技术

ZigBee是一种标准,该标准定义了短距离、低数据传输速率无线通信所需要的一系列通信协议,它拥有一套完整的协议层次结构,由IEEE802. 15. 4 和ZigBee 联盟共同制定完成。其工作频段分别是868MHz(欧洲)、915MHz(北美)、2. 4GHz(全球)3个频段,可以应用于不同的场合,诸如家庭自动化网络、工业控制网络、交互式玩具、远程检测等。完整的ZigBee 协议栈包括物理层(PHY) 、媒体访问控制层(MAC) 、网络层(NWK) 和应用层(APL)。其中,ZigBee 的应用层由应用支持子层(APS) 、ZigBee 设备对象(ZDO) 和制造商定义的应用对象组成。在ZigBee 协议栈中,每一层通过使用下层提供的服务完成自己的功能,同时对上层提供服务,网络中的通信在对等的层次上进行。

ZigBee 网络含三种类型的节点,即协调器、路由器和终端设备,其中协调器和路由器均为全功能设备(FFD),而终端设备选用精简功能设备(RFD) 。一个ZigBee 网络有且仅有一个协调器,该设备负责启动网络,配置网络成员地址,维护网络,维护节点的绑定关系表等,需要最多的存储空间和计算能力,它可以看作是一个PAN 的网关节点。路由器主要实现扩展网络及路由消息的功能,终端设备则负责与实际的监控对象相连,实现具体功能的单元。

无线传感器网络中可以根据不同的需要组成星型、簇型网和网状型三种不同的网络拓扑结构。星状网络由一个PAN 协调器和多个终端设备组成。只存在PAN 协调器与终端设备的通信,终端设备间的通信都需通过PAN 协调器的转发;树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输;网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表配合实现消息的网状路由。一个ZigBee 网络最多可含有65000 多个子节点,通过无线网络数据从一个节点传送到另一个节点,最终传送到控制中心。另外,它可以与其他的无线网络如GPRS 和CDMA 等兼容,也可以接入有线网络如Internet 、Ethernet ,

实现远程监控。

3 系统结构和原理

基于ZigBee的无线温湿度采集系统采用ZigBee星型拓扑组网方式,多个具有简单功能的设备和传感器构成传感器节点(终端设备),一台具有完整功能的设备作为中心节点(协调器节点),中心节点与中心控制计算机(PC机)相连,中心控制计算机通过上位机软件可以实现对整个系统节点的监测和控制。

整个系统工作时,传感器节点负责现场温湿度数据的采集,将采集到数据一定的数据格式存储起来,当上位机需要读取温湿度时,就发送相应指令给协调器,协调器将指令翻译后发送给传感器节点,传感器节点接收到指令,就将温湿度数据无线发送给协调器,协调器通过串口RS232 将数据发送给PC 机,PC机就可以对温湿度数据进行显示、分析和处理,从而实现了温湿度全程的无线采集和监测工作。此外,整个温湿度采集系统还可以实现协调器自检、发送功率设置、终端节点地址设定、时间读取和设置、低功耗设置、拍照等其它功能。

4 系统硬件设计

4.1 传感器节点

无线传感器节点由数据采集、数据处理、无线通信和能量供应四个模块组成。数据采集模块由数字传感器或者模拟传感器加A/ D 转换器组成,负责区域内的温湿度信息采集和数据转换;数据处理模块由微控制器组成,负责控制整个传感器节点的操作和数据存储;无线通信模块由无线收发器组成,负责与其他传感器节点进行通信,能量供应模块为系统其他的三个部分提供能量。传感器节点由瑞温湿度传感器SHT11 检测得到温湿度信息,并转化为数字信号,传输至CC2530,由CC2530负责对信号进行处理发送。节点电源部分使用两节五号电池为整个节点供电。为了使系统工作时间持续长,节点通常在闲置时快速进入休眠模式,其外设模块进入休眠状态,或者电源管理部分不对这些外设模块供电。

SHT11是瑞士Sensirion 公司推出的基于CMOSensTM 技术的新型温湿度传感器。SHT11将温湿度传感器、信号放大调理、A/ D 转换、I2C 总线接口全部集成于一个芯片上,该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大器;然后进入一个14 位的A/ D 转换器;最后经过二线串行数字接口输出数字信号。SHT11 通过DA TA 数据总线输出的是相对湿度,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。

CC2530芯片是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能。在本无线温湿度采集系统中,我们采用的是CC2530F256芯片,它结合了德州仪器的业界领先的黄金单元ZigBee 协议栈(Z-Stack?),提供了一个强大和完整的ZigBee 解决方案。温湿度传感器SHT11采集到的温湿度数据,存储在CC2530的FLASH ROM中,当传感节点接收到读取温湿度指令时,就通过ZigBee协议栈将温湿度数据发送出去。

4.2 协调器节点

网络协调器主要负责网络的建立,信息的接收、汇总、处理及控制指令的发送ZigBee 网络最初由协调器发动并建立。协调器通过主动扫描选择一个合适信道,根据扫描的结果选择自己的PANID 及0x0000 作为自己的短地址,其网络层将通过向MAC 层发送MLME2START. request原语启动一个新的PAN 。协调器节点在建成网络后,开始数据收发工作及各种操作指令的执行。当协调器收到数据时,根据数据的串ID 来判断传送的数据是地址信息还是传感器采集的数据,根据不同的数据类型解析数据包提供给PC 机显示和处理。

5 系统软件设计

本系统的软件设计是基于Ti 公司推出的跟CC2530 芯片配套的Z2STACK 协议栈和IAR 集成开发环境进行设计的。ZSTACK 协议栈运行在一个基于任务调度机制的OSAL 操作系统上,OSAL 通过触发任务的事件来实现任务调度。OSAL 中的任务可以通过任API 将其添加到系统中,实现多任务机制。系统中传感器节点由CC2530 内部的MCU(8051) 控制,定时向温湿度传感器SHT11 发送读温度和湿度指令,SHT11完成温度和湿度转换后会发出转换完成信号,MCU 在接收到转换完成信号后,读取温湿度值,并将这些数据信号传送给协调器。协调器通过串口RS232 和上位机( PC) 相连,通过人机交互的方式对整个区域的进行检测。为了实现这一功能,必须知道节点的长短地址对应表,这就需要节点在加入网络后发送自己的长短地址给协调器,协调器将长短地址对应列表存储起来,以便用户要求采集数据时依据地址表来采集每个传感器的数据。传感节点与协调器节点的温湿度采集及通信流程图如下图1所示。

图1 传感器节点与协调器节点的通信流程图

6 系统测试验证

本无线温湿度采集系统设计完成后,进行了一系列的测试工作,包括通信距离,穿墙能力,系统稳定性以及数据准确性等。经过测试,系统通信距离200米左右(与发送功率有关),可以成功穿越一堵墙通信(与网络拓扑形式有关),并可以稳定工作,预计传感器节点工作寿命可达1年。

7 结束语

本文设计的基于ZigBee技术的CC2530无线温湿度采集系统,其外围设备简单、功耗低、传输无线化,而且精度高,可靠性好,提供了良好的人机交互界面,方便控制使用,在冷链物流,农业生产以及食品保存等等领域都有很好的应用前景。

参考文献:

[1]王小强,欧阳骏,黄宁淋,ZigBee无线传感网络设计与实现,北京:化学工业出版

社,2012.5.

[2]高手玮,吴灿阳. ZigBee技术实践教程,北京:北京航空航天大学出版社,2009.6

[3]瞿雷,刘盛德,胡咸斌. ZigBee技术及应用,北京:北京航空航天大学出版社,2007.9.

[4]吕强,刘玉华,刘志军,王国胜. 基于ZigBee的无线温湿度检测终端设计. 科学技

术与工程, 2008.12; 8 (23) .

[5]Shahin Farahani. ZigBee Wireless Networks and Transceivers, Elsevier Ltd ,2008

[6]Sensirion.SHT11Datasheet.http//https://www.doczj.com/doc/8219031768.html,/en/pdf/Datasheet2SHT1x2SHT7x.

pdf

[7]X. Li , W. David. Combining the Best of Global2as2 View and Local2as2View for Data

Integration[C]. PODS ,2004.

[8] A Cal , D Lembo , et al. Experimenting Data Inte2 gration with DIS@DIS[C] . CAiSE

2004 , Lecture Notes in Computer Science ,2004 ,3084 ,9 :51~66.

附录:实物图及部分代码

1 实物图

传感器节点实物传感器节点外包装

手持读写器(协调器节点)

2 部分程序代码

2.1 终端节点(传感器节点)部分代码

static void SerialApp_ProcessZDOMsgs( zdoIncomingMsg_t *inMsg );

static void SerialApp_HandleKeys( uint8 shift, uint8 keys );

static void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt );

static void SerialApp_Send(void);

static void SerialApp_Resp(void);

static void SerialApp_CallBack(uint8 port, uint8 event);

void SerialApp_ProcessHym8563(void); //处理时钟芯片,得到时间数据

void SerialApp_ProcessSht11(void); //处理温湿度传感器,得到温湿度数据

uint8 SerialApp_GetVoltage(void); //获取电压数据

void SerialApp_MemoryTime(void); //存储时间数据(一组时间以及第一组温湿度数据)

void SerialApp_MemoryTemp_Humi(void); //存储温湿度数据(第二组到第十七组温湿度数据)

void SerialApp_LowPower(void); //低功耗处理函数

if ( events & SERIALAPP_MEM_TIME_EVT )

{

PktNum++; //存储时间事件发生,温湿度组数加1

SerialApp_ProcessHym8563();

SerialApp_ProcessSht11();

SerialApp_GetVoltage();

SerialApp_MemoryTime();

osal_start_timerEx( SerialApp_TaskID, SERIALAPP_MEM_TEMP_HUMI_EVT, 10000 );

//一组时间数据和第一组温湿度数据存储好后,等待10秒,触发温湿度存储事件,存储第二到第十七组温湿度//注意:此处时间最大为65536毫秒,因此为了方便,最多我们可以设置1分钟的延时,即60000

return ( events ^ SERIALAPP_MEM_TIME_EVT );

}

if ( events & SERIALAPP_MEM_TEMP_HUMI_EVT )

{

if(PktNum > 1 && PktNum <= 17) //温湿度数据的组数小于17时,依次每10秒存一组温湿度数据

{

//SerialApp_ProcessHym8563();

SerialApp_ProcessSht11();

SerialApp_MemoryTemp_Humi();

PktNum++; //存一组温湿度,其组数加1

osal_start_timerEx( SerialApp_TaskID, SERIALAPP_MEM_TEMP_HUMI_EVT, 10000 );

//每10秒存储一组,同上最长延时为65536毫秒,为方便,可最多设置为一分钟

}

if(PktNum == 18) //当存满17组温湿度数据时,NV条目自动加1,温湿度数据组数重新归1,并再次注册存储时间任务

{

PktNum = 1 ;

CCLD_NV = CCLD_NV + 1 ;

offset = 5 ;

osal_start_timerEx( SerialApp_TaskID, SERIALAPP_MEM_TIME_EVT, 100 );

}

return ( events ^ SERIALAPP_MEM_TEMP_HUMI_EVT );

}

void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt )

{

uint8 buffer[20];

uint8 Temp_Humi_Read[70] ; //存放读取的温湿度数据

uint8 Time_Read[5]; //存放读取的时间数据

uint8 Data_Package[80]; //存放要发给协调器的数据包

uint8 delay;

uint8 i,ReturnValue1,ReturnValue2;

switch ( pkt->clusterId )

{

// A message with a serial data block to be transmitted on the serial port.

case SERIALAPP_CLUSTERID1:

// Store the address for sending and retrying.

osal_memcpy(&SerialApp_RxAddr, &(pkt->srcAddr), sizeof( afAddrType_t ));

if(pkt->cmd.Data[3] == 0x00) //读温湿度指令

{

CCLD_NV = 0x0400 + pkt->cmd.Data[4]; //将选择读取的数据包与NV条目对应起来ReturnValue1 = osal_nv_read(CCLD_NV,0,5,Time_Read); //读时间数据

ReturnValue2 = osal_nv_read(CCLD_NV,5,68,Temp_Humi_Read); //读17组温湿度数据

if(ReturnValue1 == ZSUCCESS && ReturnValue2 == ZSUCCESS && osal_nv_item_len(CCLD_NV) )//读取成功,返回相应数据

{

Data_Package[0] = pkt->cmd.Data[0] ; //前缀

Data_Package[1] = pkt->cmd.Data[1] ; //读写器ID

Data_Package[2] = pkt->cmd.Data[2] ; //TagID

Data_Package[3] = pkt->cmd.Data[3] ; //功能位,读温湿度

Data_Package[4] = 0xFF ; //状态位

Data_Package[5] = Time_Read[0]; //时间

Data_Package[6] = Time_Read[1];

Data_Package[7] = Time_Read[2];

Data_Package[8] = Time_Read[3];

Data_Package[9] = Time_Read[4];

for(i=10;i<78;i++) //将17组温湿度的有效数据提取出来

{

Data_Package[i] = Temp_Humi_Read[i-10]; //温湿度

if(Data_Package[i] == 0xFF)break; //NV条目初始化后全为FF,故当读到的温湿度数据为FF时,说明实际温湿度已经读完,该处没有存温湿度

}

SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit; //单播发送

SerialApp_TxAddr.addr.shortAddr = 0x0000; //协调器地址

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT; //发送端口

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

i, Data_Package,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

}

else //读取失败,则返回下面数据

{

Data_Package[0] = pkt->cmd.Data[0] ; //前缀

Data_Package[1] = pkt->cmd.Data[1] ; //读写器ID

Data_Package[2] = pkt->cmd.Data[2] ; //TagID

Data_Package[3] = pkt->cmd.Data[3] ; //功能位,读温湿度

Data_Package[4] = 0xFE ; //状态位

SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;

SerialApp_TxAddr.addr.shortAddr = 0x0000;

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

5, Data_Package,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

}

}

if(pkt->cmd.Data[3] == 0x01) //设定冷链标签时间,通常设定为当前时间

{

extern uint8 seconds,minute,hour,date,week,month,years;

minute = pkt->cmd.Data[8]; //设定时间,将协调器发送过来的年月时分秒分别对应赋给年月时分秒

hour = pkt->cmd.Data[7];

date = pkt->cmd.Data[6];

month = pkt->cmd.Data[5];

years = pkt->cmd.Data[4];

HYM8653_Init(); //时钟芯片初始化

HYM8563_Write_time(); //将设定的时间写入时钟

buffer[0] = pkt->cmd.Data[0]; //前缀

buffer[1] = pkt->cmd.Data[1]; //读写器ID

buffer[2] = pkt->cmd.Data[2]; //TagID

buffer[3] = pkt->cmd.Data[3]; //功能位,设定时间

if(date != 0x00) //通过日期来判定时间是否设定成功,日期等于0,设定失败,否则成功{

buffer[4] = 0xFF;

}

else

{

buffer[4] = 0xFE;

}

SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;

SerialApp_TxAddr.addr.shortAddr = 0x0000;

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

5, buffer,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

}

if(pkt->cmd.Data[3] == 0x02) //读取冷链标签时间数据(不一定是当前时间)

{

uint8 Tx_Len; //要发送的数据长度(字节数)

buffer[0] = pkt->cmd.Data[0]; //前缀

buffer[1] = pkt->cmd.Data[1]; //读写器ID

buffer[2] = pkt->cmd.Data[2]; //TagID

buffer[3] = pkt->cmd.Data[3]; //功能位,读取时间

buffer[5] = TimeBuf[0]; //时间数据

buffer[6] = TimeBuf[1];

buffer[7] = TimeBuf[2];

buffer[8] = TimeBuf[3];

buffer[9] = TimeBuf[4];

if(buffer[7] != 0x00) //通过日期来判断是否读到时间,因为日期是不可能为0的

{

buffer[4] = 0xFF;

Tx_Len = 10 ;

}

{

buffer[4] = 0xFE;

Tx_Len = 5 ;

}

SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;

SerialApp_TxAddr.addr.shortAddr = 0x0000;

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

Tx_Len, buffer,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

}

if(pkt->cmd.Data[3] == 0x03) //复杂指令

{

//osal_stop_timerEx(SerialApp_TaskID, SERIALAPP_MEM_TIME_EVT); //收到此指令时,停止存储数据

//osal_stop_timerEx(SerialApp_TaskID, SERIALAPP_MEM_TEMP_HUMI_EVT);

uint8 DataBuf[80];

uint8 T_H[80];

uint8 i=0 ;

osal_nv_read(CCLD_NV,0,73,DataBuf); //读取最后一个数据包的数据

for(i=0;i<73;i++)

{

T_H[i] = DataBuf[i];

if(T_H[i] == 0xFF)break; //获取最后一个数据包的有效数据

}

buffer[0] = pkt->cmd.Data[0];

buffer[1] = pkt->cmd.Data[1];

buffer[2] = pkt->cmd.Data[2];

buffer[3] = pkt->cmd.Data[3];

buffer[4] = 0xFF;

buffer[5] = SerialApp_GetVoltage(); //电压

buffer[6] = Total_Pkt_Num; //总的数据包数

buffer[7] = (i-5)/4; //最后一个数据包的温湿度数据组数

buffer[8] = pkt->rssi; //RSSI值

SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;

SerialApp_TxAddr.addr.shortAddr = 0x0000;

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

9, buffer,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

}

break;

2.2 协调器节点部分代码

void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt )

{

uint8 BUF[100];

uint8 Frame_Buf[100];

uint8 i;

uint8 delay;

switch ( pkt->clusterId )

{

// A message with a serial data block to be transmitted on the serial port.

case SERIALAPP_CLUSTERID1:

// Store the address for sending and retrying.

osal_memcpy(&SerialApp_RxAddr, &(pkt->srcAddr), sizeof( afAddrType_t ));

osal_memcpy(BUF, pkt->cmd.Data, pkt->cmd.DataLength);

if(BUF[3] == 0x00) //读温湿度

{

if(BUF[4] == 0xFF) //读取成功

{

Frame_Buf[0] = pkt->cmd.DataLength + 2 ; //总的数据长度

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ; //冷链标签的地址高8位

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ; //冷链标签的地址低8位Frame_Buf[3] = BUF[2]; //TagID

Frame_Buf[4] = BUF[3]; //功能位

Frame_Buf[5] = BUF[4]; //状态位

Frame_Buf[6] = SerialApp_TxBuf[4]; //数据包的序号

for(i=7;icmd.DataLength + 2 ;i++) //温湿度数据

{

Frame_Buf[i] = BUF[i-2];

}

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 2 );

}

if(BUF[4] == 0xFE)

{

Frame_Buf[0] = pkt->cmd.DataLength + 1 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

Frame_Buf[3] = BUF[2];

Frame_Buf[4] = BUF[3];

Frame_Buf[5] = BUF[4];

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 1 );

}

}

if(BUF[3] == 0x01) //设置冷链标签时间

{

Frame_Buf[0] = pkt->cmd.DataLength + 1 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

for(i=3;icmd.DataLength + 1 ;i++)

{

Frame_Buf[i] = BUF[i-1];

}

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 1 );

}

if(BUF[3] == 0x02) //读冷链标签的时间(不一定是当前时间)

{

Frame_Buf[0] = pkt->cmd.DataLength + 1 ; //总的数据长度

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

for(i=3;icmd.DataLength + 1 ;i++)

{

Frame_Buf[i] = BUF[i-1];

}

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 1 );

}

if(BUF[3] == 0x03) //复杂指令

{

Frame_Buf[0] = pkt->cmd.DataLength + 1 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

for(i=3;icmd.DataLength + 1 ;i++)

{

Frame_Buf[i] = BUF[i-1];

}

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 1 );

}

if(BUF[3] == 0x04) //检查协调器的工作状态

{

Frame_Buf[0] = pkt->cmd.DataLength + 2 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

Frame_Buf[3] = SerialApp_TxBuf[2];

Frame_Buf[4] = SerialApp_TxBuf[3];

Frame_Buf[5] = 0xFF;

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 2 );

}

if(BUF[3] == 0x05) //设置发送功率

{

//uint8 T[3];

uint8 Return_Value ;

void *Tx_Value ;

uint8 TransmissionPower ;

TransmissionPower = SerialApp_TxBuf[4];

Tx_Value = &TransmissionPower;

Return_Value = MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER_SIGNED,Tx_Value); //T[0] = macPhyTxPower;

//HalUARTWrite(SERIAL_APP_PORT, T, 1 );

Frame_Buf[0] = pkt->cmd.DataLength + 2 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

Frame_Buf[3] = SerialApp_TxBuf[2];

Frame_Buf[4] = SerialApp_TxBuf[3];

if(Return_Value == MAC_SUCCESS)

{

Frame_Buf[5] = 0xFF;

}

else

{

Frame_Buf[5] = 0xFE;

}

Frame_Buf[6] = SerialApp_TxBuf[4];

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 2 );

}

if(BUF[3] == 0x07) //设置读写器ID

{

Frame_Buf[0] = pkt->cmd.DataLength + 2 ;

Frame_Buf[1] = SerialApp_RxAddr.addr.shortAddr >> 8 ;

Frame_Buf[2] = SerialApp_RxAddr.addr.shortAddr ;

Frame_Buf[3] = SerialApp_TxBuf[2];

Frame_Buf[4] = SerialApp_TxBuf[3];

Frame_Buf[5] = 0xFF;

Frame_Buf[6] = SerialApp_TxBuf[4];

HalUARTWrite(SERIAL_APP_PORT, Frame_Buf, pkt->cmd.DataLength + 2 );

}

break;

static void SerialApp_Send(void)

{

SerialApp_TxLen = HalUARTRead(SERIAL_APP_PORT, SerialApp_TxBuf, SERIAL_APP_TX_MAX);

if(SerialApp_TxBuf[0] == 0xFF && SerialApp_TxBuf[1] == 0xFF)

{

SerialApp_TxAddr.addrMode = (afAddrMode_t)afAddrBroadcast; //广播发送

}

else

{

SerialApp_TxAddr.addrMode = (afAddrMode_t)afAddr16Bit; //单播发送

}

SerialApp_TxAddr.addr.shortAddr = SerialApp_TxBuf[0] << 8;

SerialApp_TxAddr.addr.shortAddr += SerialApp_TxBuf[1] ;

//SerialApp_TxAddr.addrMode = (afAddrMode_t)AddrBroadcast;

//SerialApp_TxAddr.addr.shortAddr = 0xFFFF;

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT; SerialApp_TxBuf[0]= PreNum++ ; //前缀

if(SerialApp_TxBuf[3] == 0x07)

{

SerialApp_TxBuf[1]= SerialApp_TxBuf[5] ;

}

else

{

SerialApp_TxBuf[1]= 0x01 ; // 读写器ID

}

AF_DataRequest(&SerialApp_TxAddr,

(endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1,

SerialApp_TxLen, SerialApp_TxBuf,

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS); SerialApp_TxLen = 0;

}

基于单片机的无线温湿度采集系统设计说明

毕业论文(设计)论文题目无线温湿度采集系统设计

二零一一年六月 目录 1 引言 (1) 2 设计要求 (1) 3 系统总体方案 (1) 4 采集模块硬件电路设计 (2) 4.1 电源模块设计 (2) 4.2S H T10温湿度传感器 (3) 4.3A T89S52芯片介绍 (4) 4.3.1 时钟电路 (4) 4.3.2 复位电路……………………………………………………………………… 5 4.4n R F905功能的实现 (5) 4.4.1n R F905的接口 (5) 4.4.2 nRF905的工作模式………………………………………………………… 6 4.4.3 器件配置 (7) 4.4.4n R F905供电电源 (8) 5 接收模块硬件电路设计 (8) 5.1n R F905的接收流程 (8) 5.2L C D1602液晶显示 (9) 6 软件设计………………………………………………………………………… 10 6.1 采集模块软件设计…………………………………………………………… 10 6.2 接收模块软件设计…………………………………………………………… 1 2 6.3 nRF905通过SPI口与单片机通讯 (13) 7 系统调试与性能分析…………………………………………………………… 1 4

结论 (15) 致谢 (15) 参考文献 (16) 附录A 发射模块电路图……………………………………………………………18附录B 接收模块电路图…………………………………………………………… 19 附录C n R F905原理图 (20) 附录D 实物图……………………………………………………………………… 2 1 无线温湿度采集系统设计 摘要:温湿度测量在工业生产中有着广泛的应用。通常,要实现温湿度测量和自动控制,监控室与现场之间必须敷设大量的电缆,这是一个麻烦的问题。本文提出采用无线温湿度测量的方案,不必敷设电缆,可以节省费用和时间。该采集系统是以AT89S52芯片为主要,利用数字式温湿度传感器SHT10进行收集,将收集数据传给单片机AT89S52,经过处理从无线发送模块nRF905发射出去,单片机通过模拟SPI口实现与nRF905之间的通信,因为nRF905兼具发射和接收功能,经过一定距离的通信,接受模块通过NRF905将数据传给 AT89S52,单片机经处理后,将数据传给显示屏LCD1602.完成无线数据采集与发送。 关键词:nRF905 AT89S52 AHT10

基于物联网的温湿度信息采集系统设计

兰州理工大学 计算机与通信学院 2014年春季学期 物联网综合应用实践课程设计 题目:基于物联网的温湿度信息采集系统设计 专业班级: 姓名: 学号: 指导教师: 成绩:

基于物联网的温湿度信息采集系统设计 摘要 基于物联网的无线传感网络是多学科的高度交叉,知识的高度集成的前沿热点研究领域。它通过各类集成化的微型传感器协作地实时监测,感知和采集各种环境或监测对象的信息,这些信息通过无线方式被发送,并以自组多跳的网络方式传送到用户终端无线传感器网络的特性决定了其不需要较高的传输带宽,而要求较低的传输延时和极低的功率消耗。IEEES02.15.4/ZigBee 技术是近年来通信领域中的研究热点,具有低成本、低功耗、低速率、低复杂度的特点和高可靠性、组网简单、灵活等优势,逐渐成为无线传感器网络事实上的国际标准。 此次课设设计并实现了用无线传感器网络构成的分布式温度湿度监控系统。 关键词:物联网、信息采集、SHT10、串口通信

正文: (4) 一、前言 (4) 二、基本原理 (5) 2.1 SHT10引脚特性 (5) 2.2 温湿度传感器模块 (8) 2.3 CC2530串口通信原理 (9) 2.4 Zig Bee 简介 (10) 三、系统分析 (16) 四、详细设计 (18) 4.1硬件设计 (18) 4.2 软件设计 (21) 4.3 设计结构图 (21) 4.4 代码 (22) 总结 (33) 参考文献 (34)

正文: 一、前言 物联网系统是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统。随着生活水平的提高和科学技术发展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;随着物联网技术的发展,为环境环境检测提供了更进一步的保障。 基于物联网的环境信息采集系统包含感知层、传输层、应用层三个层面;传输层常见的有温湿度、烟感、一氧化碳、压力等物联网传感器模块,传输层包括有线通信和无线通信两部分,应用层包括各种终端。 在室内环境监测领域,以物联网技术为基础,结合ZigBee 技术可以实现、准确、完整、可靠的反应环境信息,做到实时监控。 基本原理: 湿度传感器和温度传感器采集到数据后,通过给RS232串口增加ZigBee功能,替代设备电缆线进行无线传输,串口传输设计为双向全双工,无硬件流控制,强制允许OTA(多条)时间和丢包重传。本次课设采用的senser节点中烧写EndDeviceEB程序,

温度数据采集系统

第三章系统硬件设计 温度数据采集系统和接收显示硬件电路主要包含温度数据采集、发送、接收和显示等模块,温度数据采集采用数字式温度传感器DS18B20,数据的发送和接收采用无线数据收发模块PTR2000,整个系统采用单片机STC89C52进行各模块的协调控制,下面对各个模块进行介绍。 3.1 数字温度传感器DS18B20 3.1.1 DS18B20 的性能特点 DS18B20 是由DALLAS 半导体公司生产的单线型智能数字温度传感器,是新一代适配微处理器的智能温度传感器,广泛应用于工业、农业等领域,具有体积小、接口方便和传输距离远的特点,在一根通信线上可以挂很多个DS18B20,很方便。具有以下特点: (1)具有独特的1-Wire 接口,只需要一个端口引脚就可以进行通信; (2)具备多节点能力,能够简化分布式温度检测应用中的设计; (3)不需要外部元件; (4)可以直接从数据线供电,电源电压范围在3~5.5V; (5)在待机状态下可以不消耗电源电量; (6)测量温度范围在-55~+125℃; (7)在-10~+85℃时测量精度在±0.5℃; (8)可以用程序设定9~12 位分辨率; (9)用户可根据需要定义温度的上下限报警设置。 DS18B203 脚封装的管脚排列图如图3.1.1 所示。

图 3.1.1 DS18B20 管脚排列图 DS18B20 只有三个引脚。其中,引脚1 和3 分别是GND 和VDD,引脚2 是DQ 端,是用于数据信息的输入和输出。当给DS18B20 加电后,单片机可以通过DQ 端写入命令,并可以读出含有温度信息的数字量。在使用寄生电源情况下,可以向DS18B20 提供电源。 3.1.2 DS18B20 的内部结构 DS18B20的内部框图如图3.1.2所示。 图3.1.2 DS18B20的内部框图 DS18B20主要由64位ROM、温度传感器、非易失性温度报警触发器TH和TL及暂存器四部分组成。64位ROM存储器具有独一无二的序列号,可以看作是该DS18B20的地址系列号,是在出厂前就被光刻好的。暂存器各字节具有不同的意义,0和1字节是用于存储温度传感器数字输出的温度寄存器;2字节和3字节分别是非易失性上限报警触发寄存器(TH)和下限报警触发寄存器(TL);4字节的配置寄存器能够用来设置温度转换的精度; 5、6和7字节作为内部保留使用。DS18B20有两种供电方式,可以使用寄生电源供电,也可以使用外部电源。在使用寄生电源的时候,不用外部电源,而是在总线为高时由DQ端提供电源,同时向内部电容充电,以求在总线拉低时为DS18B20提供电量。上电后,DS18B20进入空闲状态;当MCU向DS18B20发出Convert T [44h]的命令后,DS18B20 向MCU传送转换状态,开始温度测量和A/D转换。温度数据以带符号位的补码形式存储在温度寄存器中,温度寄存器格式如图3.1.3所示。 图3.1.3 DS18B20温度寄存器格式 温度的正负值是由符号为来说明的,正为0,负为1。表3.1给出一部分数字数据与温度的对应关系。 表3.1 DS18B20温度与数据对应关系

ZIGBEE无线定位技术

ZIGBEE无线定位技术 大多数无线传感器网络都要求具备一种确定网络节点位置的方法。因此在设备安装期间,需要弄清楚哪些节点相互之间直接进行数据交换,或者确定哪些节点直接与中央数据采集点进行数据交换。 当通过基于软件的计算方法来确定网络节点位置时,就需要考虑到市场化解决方案(market solution)。这些具体的计算方法是:节点首先读取计算节点位置的参数,然后将相关信息传送到中央数据采集点,对节点位置进行计算,最后,再将节点位置的相关参数传回至该节点。这就是典型的数据密集型计算,并且需要配置一台PC 或高性能的MCU。 这种计算节点位置的方法之所以只适用于小型的网络和有 限的节点数量,是因为进行相关计算所需的流量将随着节点数量的增加而呈指数级速度增加。因此,高流量负载加上带宽的不足限制了这种方法在电池供电网络中的应用。 针对上述问题,CC2431 采用了一种分布式定位计算方法。这种计算方法根据从距离最近的参考节点(其位置是已知的)接收到的信息,对节点进行本地计算,确定相关节点的位置。因此,网络流量的多少将由待测节点范围中节点的数量决定。另外,由于网络流量会随着待测节点数量的增加而成比例递增,因此,C C2431 还允许同一网络中存在大量的待测节点。 本文所提供的结果是根据对ZigBee 网络的测量得出的,然

而,这些测量结果同样适用于基于IEEE 802.15.4协议构建的更简单的网络。 定位引擎技术 定位引擎根据无线网络中临近射频的接收信号强度指示(R SSI),计算所需定位的位置。在不同的环境中,两个射频之间的RSSI 信号会发生明显的变化。例如,当两个射频之间有一位行人时,接收信号将会降低30dBm。为了补偿这种差异,以及出于对定位结果精确性的考虑,定位引擎将根据来自多达16 个射频的RSSI 值,进行相关的定位计算。其依据的理论是:当采用大量的节点后,RSSI 的变化最终将达到平均值。 在RF 网络中,具有已知位置的定位引擎射频称为参考节点,而需要计算定位位置的节点称为待测节点。 要求在参考节点和待测节点之间传输的唯一信息就是参考节点的X 和Y 坐标。定位引擎根据接收到的X 和Y 坐标,并结合根据参考节点的数据测量得出的RSSI 值,计算定位位置。 将定位技术纳入网络协议 一些采用定位引擎的应用可能要求放置若干个参考节点,以作为基础设施设置不可或缺的一部分。ZigBee 技术能够实现对家庭、办公以及工业等应用的无线控制。随着ZigBee 设备在楼宇基础设施中的安装数量不断增多,ZigBee 将会在家庭和办公自动化方面拥有更为广阔的应用前景。

基于ZigBee技术的RFID空间定位系统

中图分类号:TP391 文献标识码:A 文章编号:1009-2552(2009)09-0102-04 基于ZigBee技术的RFID空间定位系统 房淑芬 (辽宁省铁岭师范高等专科学校,铁岭112001) 摘 要:通过ZigBee mote与RFID reader结合的方式应用随机数定位算法展示了一种低能耗的基于Zigbee技术的R FID空间定位系统,使得对佩带了Zigbee mote的人可以实时进行定位。在本系统中,通过使用基于取样的表示方法,定位算法能够表示任意分布。通过将系统实现的算法与算法原型比较,可以发现在Non-Line-Of-Sight(NLOS)场景下,本算法的定位错误(positioning er-r ors)有明显改进。 关键词:RFI D;ZigBee;空间定位算法 RFID space location system based on ZigBee technology FANG Shu-fen (Tieling Normal C ollege of Liaoning Province,Tieling112001,China) Abstract:This paper presented a low energy cost RFID space location system based on Zigbee technology by using the combination of ZigB ee mote and R FID reader,and random sa mpling algorithm,by which a person holding an Zigbee mote can be located in real time.In this system,by using the representation based on random sa mpling,the location algorithm can represent ar bitrar y distribution.According to the comparison of the algorithm implemented in this system and the prototype algorithm,we it is concluded that the location err ors in this algorithm have been distinctly impr oved under the scenario of Non-Line-Of-Sight(NL OS). Key words:RFID;ZigBee;space location algorithm 0 引言 移动计算设备、无线技术和Inter net的飞速发展,促使人们对位置感知的服务系统越来越感兴趣。在许多应用中,都需要知道一个物体的确切位置。其中,GPS[1]是最著名,也是应用最广泛的定位系统,它被用来对户外移动的物体进行定位。对于室内的定位机制,有红外线[2]、超声波[3]、RFID[4]等等。 上面介绍了三种基于网络的定位机制。它们的共同点是采用固定的接收装置来接收佩带在人或物体上的发射装置发出的信息并将这些信息通过有线网络转发到控制中心。这些机制经常在一些跟踪系统中被采用。 红外线机制为每一个物体附带一个标签,这些标签周期性地通过红外线发射器发射自己的唯一的ID,固定的接收装置接收这些信息并通过有线网络将这些信息传到控制中心,通过这种方式来实现对室内物体的识别、定位。但是,这种机制存在两个缺点,首先它要求发射装置跟接收装置之间的光线不能被阻隔,另外,它要求在一个建筑内布置一个有线的网络以进行数据的传输。 超声波机制与红外线机制的区别就是把红外线换成了超声波。但是,由于目前超声波装置结构比较复杂,使得它的成本过高,目前还很难让大多数用户接受。RFID定位的典型系统是LANDMARC(Location identification based on dynamic active RFID calibra-tion)[4],它使用tags和r eaders来实现定位。这一系统的精确度随着所部署的tag的密度的增加而增加。但是部署太多的ta g是不实际的。 收稿日期:2009-02-10 作者简介:房淑芬(1965-),女,副教授,本科,研究方向为电子测量技术。 — 102 —

无线温度采集系统实现分析

龙源期刊网 https://www.doczj.com/doc/8219031768.html, 无线温度采集系统实现分析 作者:李佩张红李新娥 来源:《数字技术与应用》2012年第01期 摘要:介绍了一种以单片机为中心的无线数据采集方法和VB系统的计算机端的数据采集控制系统的实现过程。温度数据的无线传输模块采用Nordic公司的nRF905作为控制核心,实验开发板采用的是DD-900,PC通过VB的串口通信控件与无线模块进行通信,以达到实时数据采集的目的。 关键词:无线温度采集 VB DD-900 nRF905 中图分类号:TP274.2 文献标识码:A 文章编号:1007-9416(2012)01-0068-02 Abstract:Introduces a method of wireless tempreture acquisition by single-chip,and the achieve process of tempreture acquisition control system based on PC teminal by VB. Wireless transmisson unit adopt nRF905 produced by Nordic as control centre, and DD-900 as expriment unit.The communication between PC and wireless unit use Serial Interface communication control in VB,in order to achievement tempreture acquisition real-time. Key words:Wireless tempreture acquisition Visual Basic DD-900 nRF905 在生活中使用最多的温度参数被广泛地应用于科学研究和人们的日常生活等领域。针对恶劣环境的工业现场以及高科技的农业现场,布线困难,浪费资源,占用空间,可操作性差等问题做出的一个解决方案。该方案主要是利用51单片机采集实时外界的温度,利用无线传输实现在VB上位机显示温度采集的结果,并对数据进行相应的对比和处理。 1、无线温度采集系统设计 1.1 无线温度采集的原理 无线温度采集的原理如下:温度传感器将被测点的温度采集后输出的模拟信号逐步送往信号放大电路、低通滤波器以及A/D转换器(即信号调理电路),然后在单片机的控制下将 A/D转换器输出的数字信号传送到无线收发芯片中,并通过芯片的调制处理后由芯片内部的天线发送到上位机,在上位机模块中,发送来的数据由单片机控制的无线收发芯片接收并解调,最后通过接口芯片发送到PC机中进行显示和处理。 1.2 无线温度采集系统方案

基于单片机的温湿度采集管理系统

基于单片机的温湿度采集管理系统

目录 摘要 (1) 第1章绪论 (1) 1.1 系统开发背景 (1) 1.2 课题设计目的和意义 (2) 1.3 课题研究内容 (2) 第2章无线温湿度采集管理系统总体设计 (3) 2.1 系统的总体设计 (3) 2.2 系统设计的功能 (4) 第3章无线温湿度传输系统硬件设计 (4) 3.1 nRF905高频头通信模块 (5) 3.1.1 nRF905概述 (5) 3.1.2 nRF905无线模块硬件结构 (5) 3.1.3 nRF905天线 (6) 3.1.4 nRF905频率调制 (6) 3.1.5 nRF905输出频率 (6) 3.1.6 高频头输出接口电路 (7) 3.2 AT89S52单片机 (8) 3.2.1 单片机与nRF905通信 (9) 3.2.2 单片机与主机通信 (11) 3.2.3 单片机程序下载模块 (12)

3.3 DS18B20温度传感器 (12) 3.3.1 温度传感器概述 (12) 3.3.2 温度传感器构成及原理 (12) 3.3.3 温度传感器寄生电源 (13) 3.3.4 传感器温度测量 (14) 3.4 DHT11传感器 (14) 3.4.1 DHT11温湿度传感器概述 (14) 3.4.2DHT11构成及其工作原理 (15) 3.4.3 测量分辨率 (16) 3.5 系统电源模块 (16) 第4章无线温湿度传输系统软件(下位机)设计 (16) 4.1 无线温湿度传输系统软件总体设计 (17) 4.2 单片机串口通信 (18) 4.2.1 SBUF数据缓冲寄存器 (19) 4.2.2 SCON串行口控制寄存器 (19) 4.2.3 PCON特殊功能寄存器 (20) 4.2.4 串口通信波特率选择 (20) 4.2.5 IE中断允许控制寄存器 (21) 4.3 nRF905与单片机通信 (21) 4.3.1 nRF905的数据发送 (21) 4.3.2 nRF905的数据接收 (22) 4.3.3 掉电模式 (24)

基于Zigbee无线定位技术研究毕业论文

基于ZigBee的无线定位技术研究 摘要: 随着现代通信技术和无线网络的快速发展,人们对定位与导航的需求日益增大,尤其在复杂的室环境,但是受定位时间、定位精度以及复杂室环境等条件的限制,比较完善的封闭空间定位技术目前还无法很好地利用。本文的重点就在于设计并实现了一种低成本、实用的无线传感器定位系统。 本论文主要研究了基于ZigBee网络的室无线定位技术,它包括硬件平台、节点通信程序和上位机监测软件三部分。本文详细介绍了三部分的实现。其中,硬件平台以集成了射频与51微控制器的CC2430芯片为核心,该平台包括射频模块、辅助电路、功能指示电路等。 论文最后对定位系统进行了实际测试。测试表明:本系统达到了设计要求,是一个低成本、易实现的系统。 关键词:ZigBee 无线定位CC2430 Z-STACK

The Research Wireless localization Based on ZigBee Teacher:liu zhi (Changchun university of science and technology of electronic information engineering institute,060412225 wang meng) Abstract: With the rapid development of modern communication technology and wireless network,people's demand for positioning and navigation is increasing. Especially in complex indoor environments, but as the limitation of positioning time, positioning accuracy as well as the complexity of the indoor environment conditions, well-positioning technology is still unable to be used in an encloseure space. The combination of ZigBee technology and localization is one of the key researches. This paper, aiming at ZigBee network, investigates the indoor wireless location techniques and implements a real-time localization system. This paper achieves a localization system. three parts are included. They are hardware platform, communication program of nodes and PC monitor software. The achievement of every part is clear introduced in this paper. The core of hardware platform is CC2430 which is integrated by RF and 51 MCU, the localization nodes are designed and made. It includes RF module, auxiliary module and function indication circuits. In the end, practical test is implemented. This system is confirmed to be a

无线温湿度采集系统设计说明

无线温湿度采集系统设计 作者:xx 指导老师:xx 农业大学工学院 xx级电子信息工程 230036 摘要:温湿度测量广泛应用于工农业领域,为了避免传统布线安装的测量不便,以及所引起的电磁干扰和信号衰减,达到对温湿度的精确测量,设计并实现了一种无线数据采集系统。该采集系统是以AT89S52单片机为核心,利用数字式温湿度传感器SHT10进行测量,将测量数据传送至单片机AT89S52,经过处理从无线发送模块nRF905发射出去,单片机通过模拟SPI口实现与nRF905之间的通信,因为nRF905兼具发射和接收功能,经过一定距离的传输,无线接收模块将接收到的数据送单片机串口,进行数据识别以及通过LCD1602显示温湿度,成功地实现了无线温湿度的数据采集。 关键词:nRF905 AT89S52 AHT10 1 引言 温度、湿度是工农业生产的主要环境参数,在工农业生产实践中占有重要地位,对其进行适时准确的测量具有重要意义。而传统的温湿度传感器需通过较复杂的电路才能将温度信号转化为数字信号,且远距离传输会引起较大的误差。本系统采用单总线数字温湿度传感器SHT10,直接将温湿度变为数字信号,配合单片机及无线通信模块nRF905进行无线数据传输,达到实时采集的目的。利用单片机对温、湿度控制具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。本文介绍了利用AT89S52单片机进行温度和湿度检测的智能化方法。 2 设计要求 无线温度、湿度采集系统是家庭信息智能化的一个部分,也独立应用于农业大棚温湿度监控。传统的布线安装给使用带来很大不便,为了解决这一问题,本设计需要设计一款无线温湿度采集系统,通过无线的方式实现主机对各采样点的温度、湿度信息进行监控。 本设计是实现温度和湿度的测量和实时监控,通过单片机(AT89C52)直接连接SHT10,将测量得到的温度和湿度数据显示在液晶屏上。上位机的数据经过无线传输及显示后再被传输至接受端的89S52单片机中,然后再由单片机将数据转化为可以由液晶显示板1602显示的数据。 3 系统总体方案 无线温湿度采集系统是一种基于射频技术的无线湿温度检测装置。本系统由

温度数据采集系统

第三章 系统硬件设计温度数据采集系统和接收显示硬件电路主要包含温度数据采集、发送、接收和显示等模块,温度数据采集采用数字式温度传感器 DS18B20,数据的发送和接收采用无线数据收 发模块PTR2000,整个系统采用单片机STC89C52进行各模块的协调控制,下面对各个模块进行介绍。 3.1 数字温度传感器DS18B20 3.1.1 DS18B20 的性能特点 DS18B20 是由 DALLAS 半导体公司生产的单线型智能数字温度传感器,是新一代适配微处理器的智能温度传感器,广泛应用于工业、农业等领域,具有体积小、接口方便和传输距离远的特点,在一根通信线上可以挂很多个 DS18B20,很方便。具有以下特点:(1)具有独特的 1-Wire 接口,只需要一个端口引脚就可以进行通信;(2)具备多节点能力,能够简化分布式温度检测应用中的设计;(3)不需要外部元件; (4)可以直接从数据线供电,电源电压范围在 3~5.5V ;(5)在待机状态下可以不消耗电源电量;(6)测量温度范围在-55~+125℃;(7)在-10~+85℃时测量精度在±0.5℃;(8)可以用程序设定 9~12 位分辨率;(9)用户可根据需要定义温度的上下限报警设置。DS18B203 脚封装的管脚排列图如图 3.1.1 所示。、管路敷设技术通过管线敷设技术不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

基于ZigBee的无线温湿度采集系统

基于ZigBee的无线温湿度采集系统 摘要:针对传统温湿度检测存在的问题,结合无线传感器网络技术,本文提出一种基于ZigBee 技术的无线温湿度采集系统的设计方法。设计采用CC2530 射频芯片及SHT11 数字温湿度传感器,在ZigBee 协议栈的基础上进行应用开发。阐述了ZigBee技术,系统组成及工作原理,系统软硬件设计等内容,并通过实验测试表明,该无线温湿度采集系统能够稳定可靠的运行,并且具有组网简单、功耗低,成本低等优点,具有十分好的实用价值和经济效益。 关键字:ZigBee,温湿度,CC2530,协议栈 Wireless temperature and humidity acquisition system based on ZigBee technology Abstract: According to the problems existing in temperature and humidity detecting of traditional ways,combining with wireless sensor network technology , this paper puts forward a new design of temperature and humidity acquisition system based on ZigBee technology. The design was carried out based on the ZigBee protocol, adopting CC2530 RF chip and digital humidity and temperature sensor SHT11. Paper introduces ZigBee technology, the overall design of the system, hardware and software design of the nodes and so forth. Finally, the experimental tests have proved that the wireless temperature and humidity acquisition system was stable and credible , with the advantages of simple networking , low cost and low power, and it has a very good practical value and economic benefits . Keywords: ZigBee, Temperature and humidity, CC2530, Protocol

温度采集无线传输

多对一/星型结构模块组合APC300 / RF5150超低功耗无线测温发射模块 APC250S 无线传感器接收模块 APC300超低功耗微功率无线传感器发射模块

APC300(RF5150)模块是专为无线测温产品设计的超低功耗微功率发射模块,模块采用了超低功耗单片机和高性能低功耗发射芯片,内置12bits高精度ADC,可以直接连接主流的各种数字与模拟传感器,如PT1000热敏电阻、DS18B20传感器等;用户无需编写无线与传感器部分的软件,也不需要额外的MCU和外围器件,只需将传感器直连到模块相应管脚即可使用。 图示,使用DS18B20传感器:

模块提供了多个频道的选择,可在线修改串口速率,收发频率,发射功率,射频速率,发射间隔以及传感器类型等各种参数。 模块工作方式为定时采集传感器数据并发送直接收模块,发射间隔可通过软件及MCU 轻松设置,模块工作电压2.1-3.6V,完全为电池供电设计,在10mW发射功率下发射电流仅14mA,休眠功电流低至1.5uA,一节普通的的锂亚电池(如ER18505)工作寿命可达数年至十几年。 注意:模块分无中继与有中继两种,如无特别说明,将默认为无中继。 APC300 发射模块特点: ?700米传输距离 (3.125Kbps) ?频率425-450 ?发射功率最大10mW

?工作湿度:10%~90% (无冷凝) ?工作温度:-30℃- 85℃ ?休眠电流:1.5uA@2.1-3.6V(典型值),最大2.5uA ? 2.1-3.6V 宽电压工作范围 ?发射电流14mA@10dBm,待机电流1.5uA ?多频道可设,GFSK的调制方式 ?可设置定时采集时间间隔 ?可直接连接模拟与数字传感器 ?数年至十几年电池使用寿命 ?体积22.4mm x 15.9mm x 2.4mm APC250S 接收模块特点: ?1500 - 1800 米传输距离 ?工作频率410 - 440 MHz ?通讯频道以0.2MHz为步进,连续可调 ?工作湿度:10%~90% (无冷凝) ?工作温度:-30℃- 85℃ ?发射功率:100mW 可调),供电电压:3.4 - 5.5V ?电流消耗:20mA(接收),100mA(发射),3uA (休眠)?空中最大速度19.2K,最大串口速度57.6K ?UART接口 ?大于100个频道 ?GFSK的调制方式 ?高效的循环交织纠错编码,最大可纠24bits 连续突发错误 ?灵活的软件编程选项设置 ?超大的 2 × 256 bytes 数据缓冲区 ?体积:32.1 × 18.3 × 7.0 (mm) 应用: ?高压电力线,开关柜测温 ?农业大棚温湿度采集 ?生鲜,疫苗冷链物流 ?无线轴承,缸体及纺机温度监测 ?混凝土,矿井及隧道测温 ?仓储,图书馆和博物馆等温湿度监测 ?室内外温湿度监测 ?无线单向数据传输

单片机实验温度采集系统

单片机原理与运用 课 程 设 计 课题名称:专业班级:学生姓名:指导老师:完成时间:温度采集与显示系统2012年7月4号

摘要 随着信息技术的飞速发展,嵌入式智能电子技术已渗透到社会生产、工业 控制以及人们日常生活的各个方面。单片机又称为嵌入式微型控制器,在智能 仪表、工业控制、智能终端、通信设备、医疗器械、汽车电器、导航系统和家 用电器等很多领域都有着广泛的应用,已成为当今电子信息领域应用最广泛的 技术之一。 本文主要介绍了一个基于STC89C52单片机的温度采集与显示系统,详细 描述了利用液晶显示器件温度传感器DS18B20开发测温系统的原理,重点对传感器与单片机的硬件连接和软件编程进行了详细分析。主要地介绍了数字温度 传感器DS18B20的数据采集过程,进而对各部分硬件电路的工作原理进行了介绍。温度传感器DS18B20与STC89C52结合构成了最简温度检测系统,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工、农业生产中的温 度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。 单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对 一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和 仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌 握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握 示波器和万用表等杆塔工具在单片机系统调试中应用。 关键词:单片机STC89C52、DS18B20温度传感器、液晶显示器LCD1602、AT24C02数据存储芯片

温湿度采集无线通信系统设计

通信系统课程设计报告 ----温湿度采集通信模块 指导老师: 学院: 班级: 姓名: 学号: 年月日

目录 设计框图 (1) 设计采用技术及模块说明 (2) 温湿度测量 (2) 传感器模块 (3) 数据处理模块 (4) 工作原理 (4) 设计方案 (5) 控制模块 (6) 显示模块 (6) 电源模块 (7) 报警模块 (7) 无线网络模块 (8) 总结 (8)

温湿度采集通信模块的设计在工农业生产过程中,许多原材料和产品必须保存于库房中,其中有些原材料和产品对存放库房的环境温度和湿度有一定的要求。同时,许多生产车间和温室大棚等也同样对环境的温度和湿度有一定限制。因此,对环境温度和湿度进行检测和显示,并将相关数据进行保存以及分析处理就显得尤为重要。但是在库房、车间的原有结构上进行温湿度仪表布线将会非常困难,同时费用也高,并且传统的监测装备大多是有线的,线路多,布置起来比较复杂。所以,利用无线通信系统来构建新型的监测系统显得的必要,无线通信监测系统特点是利用多节点来自动组网,布线简单,成本较低。此款通信模块就采用了无线通信技术来完成将收集到的温湿度的数据及时的传输到手机或电脑的PC终端上。 在电子信息领域中,单片机的利用率是很高的,其有较高的稳定性,应用也比较广泛,在生产生活中也比较常见。单片机的特点是体积小,有较高的集成性,内部可以有多种连接组成方式,外部也可以有较大的扩展,组成用户需要的系统,并且具有较强的处理能力,所以在该无线网络监测系统中利用单片机可以处理传感器传输的温湿度数据。 一、设计框图

二、设计采用技术及模块说明 1、温湿度测量 对于温湿度,温度显而易见是指空气的温度,湿度的概念即为水蒸气在空气中的含量,通常用绝对湿度、相对湿度和露点表示。绝对温度是指单位体积空气中实际所含的水蒸气的重量,单位为g/m3;相对湿度为空气中的实际水汽压与同温度下的饱和水汽压的百分比,当相对湿度为100%时,空气是饱和的;当相对湿度为1%并且空气为饱和的时候,蒸发和沉积处于平衡状态,到达平衡说明的蒸发增加的数量作为水分沉淀物;在0°C以上,气压和水汽含量不变时,空气中水蒸气因降低温度,使空气达到水汽饱和,开始发生凝结时的温度,称为露点,也叫露点温度。科学家们一般使用相对湿度来形容空气中水汽的多少,在我们的日常生活中提到的湿度也是指相对湿度,明显的,湿度高的空气中水蒸气含量就高。温湿度的测量一般都要结合物理和化学理论的支撑和分析,其在原理上划分有30种左右,这里就讨论一些比较常见的方法。常见的测量方法分为动态和静态。 ①双压、双温法:这种方法是根据热力学中P、V、T平衡的原理来测量的,由于有现代的先进测控手段,设备比较精密,测量精度高,但是成本太贵。此方法属于动态法。 ②饱和盐法:总体来说这种测量方法比较简单,但是对液体、气体的平衡要求很严,对环境温度的稳定性要求也高,要花费很长时间来等待这个平衡状态;此方法属于静态法的一种。 ③露点法:测量湿空气达到饱和时的温度,较准确,其范围也大,精度达到±0.2°C或者更高,一般和其他测试器一起使用。

温湿度采集系统设计

目录 第1章设计意义及要求 (1) 1.1 设计意义 (1) 1.2 设计要求 (1) 第2章硬件设计 (2) 2.1 AT89S52芯片介绍 (2) 2.2 液晶显示器LCD1602 (3) 2.2.1 液晶显示原理 (3) 2.2.2 液晶显示器分类 (3) 2.2.3 显示原理 (3) 2.2.4 LCD1602的基本参数及引脚功能 (4) 2.3 温湿度模块DHT11介绍 (6) 2.3.1 DHT11概述 (6) 2.3.2 DHT11传感特性说明 (7) 2.3.3 DHT11封装信息 (8) 2.3.4 串行接口(单线双向) (8) 第3章设计实现 (11) 3.1 设计框图及流程 (11) 3.2 设计结果及分析 (11) 第4章设计总结 (13) 参考文献 (14) 附录 (15)

第1章设计意义及要求 1.1 设计意义 最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。 现代社会越来越多的场所会涉及到温度与湿度并将其显示。由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18℃,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。如何高效、稳定地对数据(包括温度、湿度光线、压力等项目)进行实时采集对于现代的企业、工厂、研究所等对数据精度要求较高的单位具有非常重要的意义。 1.2 设计要求 本系统设计采用温度和湿度作为采集对象,是以单片机为核心的温度、湿度采集、数字显示系统,用液晶显示出当前温度、湿度的信息。以此了解AT89S52芯片为核心外接温度传感器和湿度传感器模块在液晶显示屏上显示当前的温度和湿度的过程。

相关主题
文本预览
相关文档 最新文档