基于 zigbee 的无线测温实验.docx

上传人:b****6 文档编号:6521708 上传时间:2023-01-07 格式:DOCX 页数:11 大小:259.47KB
下载 相关 举报
基于 zigbee 的无线测温实验.docx_第1页
第1页 / 共11页
基于 zigbee 的无线测温实验.docx_第2页
第2页 / 共11页
基于 zigbee 的无线测温实验.docx_第3页
第3页 / 共11页
基于 zigbee 的无线测温实验.docx_第4页
第4页 / 共11页
基于 zigbee 的无线测温实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于 zigbee 的无线测温实验.docx

《基于 zigbee 的无线测温实验.docx》由会员分享,可在线阅读,更多相关《基于 zigbee 的无线测温实验.docx(11页珍藏版)》请在冰豆网上搜索。

基于 zigbee 的无线测温实验.docx

基于zigbee的无线测温实验

基于ZigBee的无线测温系统

摘要:

本实验采用TI公司的cc2430作为核心,利用了该芯片上丰富的资源,实现小车的zigbee无线控制和实时测量温度。

Zigbee是IEEE802.15.4协议的代名词,主要适合用于自动控制和远程控制领域,可以嵌入各种设备,是一种便宜的,低功耗的近距离无线组网通讯技术。

本实验中,打开IAR开发环境,打开程序工程,接上仿真器,并把仿真电缆连到CC2430模块上,把程序下载到两个模块上,两个模块之间通过PC机串口发送命令到另一个模块,另一个模块的zigbee放在小车上,可以驱动小车按照预定的轨迹前进,并实时测量温度值,显示到电脑界面上。

关键词:

无线通信,实时测量显示

 

目录

1引言…………………………………………………………………………3

2功能概述及方案设定………………………………………………………3

2.1功能概述…………………………………………………………………3

2.2具体方案设定……………………………………………………………4

2.2.1小车控制模块设计……………………………………………………5

2.2.2无线通信模块设计……………………………………………………7

2.2.3测温模块设计…………………………………………………………12

3总结…………………………………………………………………………14

 

1引言

当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能通信也就应运而生。

同时,在建设以人为本的和谐社会的过程中,智能通信能够完成考古发掘,海底揭密,宇宙探索等危险作业,以保证人身安全。

凭借参加本次课外实验机会,我们能够对嵌入式系统的开发有进一步的学习和理解。

CC2430是一颗真正的系统芯片(SoC)CMOS解决方案。

这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHzISM波段应用对低成本,低功耗的要求。

它结合一个高性能2.4GHzDSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器。

CC2430包含一个DMA控制器,集成了4个振荡器用于系统时钟和定时操作,也集成了用于用户自定义应用的外设,CC2430内集成的其他外设有:

实时时钟;上电复位;8通道,8-14位ADC;可编程看门狗;两个可编程USART,用于主/从SPI或UART操作。

为了更好的处理网络和应用操作的带宽,CC2430集成了大多数对定时要求严格的一系列IEEE802.15.4MAC协议,以减轻微控制器的负担。

我们的系统主要分为控制小车模块、无线通信模块、测温模块。

前一模块主要是用到控制IO口和定时器,后一模块主要用到SPI总线和串口。

2功能概述与方案设定

2.1功能概述

我们设计的“基于ZigBee的无线小车测温系统”主要是让小车从预定的位置按一定路线行走,并实时测量温度,传输给电脑显示。

系统主要分为控制小车模块、无线通信模块、测温模块。

前一模块主要是用到控制IO口和定时器,后一模块主要用到SPI总线和串口。

另外,无线通信模块还具有自动组网的功能,在多台小车之间也可以通信,这样,多台小车就可以很大程度上提高工作效率。

其效果图如下:

图2-1通信示意图

2.2具体方案设定

我们将系统分为小车控制模块、无线通信模块、测温模块这三个大模块。

其中小车控制模块包括小车以及稳压电路设计模块;无线通信又包括小车这一端和与电脑相连的一端;测温模块主要用到了DS18B20及相应的外围电路设计。

图2-2小车端系统框图

2.2.1小车控制模块设计

稳压模块采用9V电池为直流电机供电,将9V电压降压、稳压到5V,为外围芯片供电,再降压稳压到3.3V给CC2430芯片供电, 我们利用lm7805这块芯片将9V的电池降压到5V,LM117芯片将5v降压到3.3v。

图2-3稳压模块1

图2-4稳压模块2

电机驱动模块采用专用芯片L298N作为电机驱动芯片。

L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。

用该芯片作为电机驱动,操作方便,稳定性好,性能优良。

小车控制模块是由专用芯片L298N来完成的,我们用四个IO口来控制小车的运动,其中两个IO口是产生PWM波,控制电机的速度;另外两个IO口又分成两组,分别控制两个电机的正反转,来实现小车的变速前进、转弯等动作。

相应程序代码如下:

voidt1init(void)

{

EA=1;//开总中断

T1IE=1;//开T1中断

OVFIM=1;//开T1溢出中断

T1CC0L=0xD4;//溢出值低8位0x30d4=12500

T1CC0H=0x30;//溢出值高8位中断一次50ms

}

//t1计数中断子程序

HAL_ISR_FUNCTION(T1_ISR,T1_VECTOR)

{

EA=0;//关中断

m2--;

EA=1;//开中断

T1CTL&=~0x10;//清中断标志

}

//向前和向后走时将距离转化为时间/////////////////////待调

uint8zhuanhuan1(uint8lt)

{lt=lt*3;

returnlt;

}

//向左和向右拐时将角度转化为时间、、、、、、待调

uint8zhuanhuan2(uint8jt)

{jt=jt/9;

returnjt;

}

2.2.2无线通信模块设计

无线通信模块的作用非常重要,它为小车的行走指明了方向,也拓展了小车的其他功能。

当小车行走时,每隔一定时间将数据譬如速度、温度信息传送给PC机,当小车行走到终点,小车该如何走呢?

如果PC可以实时和小车通信,从而控制小车的行动,则小车就可以选择另外一条路进行探测了。

我们的无线模块是Zigbee的,有了此无线通信模块,我们的小车系统就可以不是一辆小车而是多辆小车共同测量目标了。

成品图如下:

图2-5成品图1

图2-6成品图2

硬件方面我们的射频芯片采用德州公司的CC2430芯片,用于数据的无线收发,它有64字节RX和TX数据FIFO;SPI用于MCU与射频芯片CC2430之间的通信;直流电源及电源保护电路是必不可少的部分;RS232串口及电平转换提供主芯片与PC机的接口。

CC2430的主要特性:

图2-7CC2430芯片

工作频率:

2.4GHz―2.5GHzISM微波段识别距离:

有效识别距离可达1500m环境温度:

在-40℃-85℃抗干扰性:

使用频道隔离技术,多个设备互不干扰通信接口:

RS232/RS485/RJ45电源:

5V/9V/12V-3ADC电源

无线通信模块主要由射频芯片CC2430构成,而我们采用的是它的典型电路,电路图如下:

图2-8CC2430通信电路

它与CC2430的通信是通过SPI总线来实现的,它的接口主要有SI、SCLK、SO、GDO0、GDO2、CSn。

其中SI、SCLK、SO即为利用SPI总线通信的几个接口,另外GDO0的作用是当接受到报文的时候由低置为高,GDO2的作用是当开始发送一个报文时由低置为高,这两个接口给MCU提示报文的接受与发送是否完成。

CSn用来作片选。

相应程序代码如下:

voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt)

{

//收到后回复提醒

uint8i;

p1=&pkt->cmd.Data[0];

for(i=2;i<=*p1;i++)

{

pkt->cmd.Data[i]=pkt->cmd.Data[i]-48;//将串口输入的字符型数据还原

}

p=&pkt->cmd.Data[1];//数据处理

if(*p=='q'||*p=='h'||*p=='z'||*p=='y')//如果为路径数据,则存入lujing[]数组中

{lujing[j++]=*p;

if(*p1==3)

*(p+1)=*(p+1)*10+*(p+2);

elseif(*p1==4)

*(p+1)=*(p+1)*100+*(p+2)*10+*(p+3);

lujing[j++]=*(p+1);//jj;

shoudaotixing();

}

elseif(*p=='k')//如果为开始信号,则小车开始读取lujing[]中的数据,并开始运行

{lujing[j]=*p;//先将字符k存至lujing中

xiaocheyunxing();

j=0;

}

elseif(*p=='w')//如果为开始传递温度的信号,则子节点开始向coordinator发送温度数据

{kt=!

kt;

shoudaotixing();

}

elseif(*p=='d')

{i=*(p+1);

zkb=dw[i];

shoudaotixing();

}

2.2.3测温模块设计

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。

与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

此处可以直接和核心芯片相接测温。

相应程序代码如下:

voidread_data(void)

{

uint8temh,teml;

init_1820();//复位18b20

write_1820(0xcc);//发出转换命令搜索器件

write_1820(0x44);//启动

Delay_nus(500);

init_1820();

write_1820(0xcc);

write_1820(0xbe);

teml=read_1820();//读数据

temh=read_1820();

sensor_data_value[0]=teml;

sensor_data_value[1]=temh;

}

////////////处理数据部分/////////////////

uint16DataChange(void)

{

uint8temh,teml;

uint16num;

read_data();

teml=sensor_data_value[0];

temh=sensor_data_value[1];

num=temh;//将两个字节整合到一个unsignedint中

num<<=8;

num|=teml;

num=num*0.0625*100;

return(num);//返回值

}

voidwendushuzhi(void)

{

uint8n;

unsignedintm=0;

unsignedintT;

init_1820();

while(m<20)

{Delay_nus(50000);

m++;

}

T=DataChange();//读取温度值,是一个4位的十进制数,如:

2345

temperature[0]=T/1000+48;

temperature[1]=T/100%10+48;

temperature[2]='.';

temperature[3]=T%100/10+48;

temperature[4]=T%10+48;

temperature[5]='';

temperature[6]='C';

for(n=7;n>0;n--)

{

temperature[n]=temperature[n-1];

}

temperature[0]=7;

}

3总结

我们所完成的工作是对硬件的设计并作了些验证性试验,对于稳压模块,我们搭起了电路,但是效果不是很好,还有待改进;对于无线通信模块我们是用CC2430来实现通信的,效果不错,所以在我们的小车系统里,为节约成本,连接在PC端的射频模块我们就采用与CC2430连接,通过串口与PC机通信;对于小车控制模块,我们能够正常的控制小车的运动和转弯;对于软件部分,我们只是做了大概的设计,还有待我们具体设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1