基于 zigbee 的无线测温实验Word格式.docx
- 文档编号:19535477
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:11
- 大小:259.47KB
基于 zigbee 的无线测温实验Word格式.docx
《基于 zigbee 的无线测温实验Word格式.docx》由会员分享,可在线阅读,更多相关《基于 zigbee 的无线测温实验Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
这种解决方案能够提高性能并满足以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的无线小车测温系统”主要是让小车从预定的位置按一定路线行走,并实时测量温度,传输给电脑显示。
系统主要分为控制小车模块、无线通信模块、测温模块。
另外,无线通信模块还具有自动组网的功能,在多台小车之间也可以通信,这样,多台小车就可以很大程度上提高工作效率。
其效果图如下:
图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--;
//开中断
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=&
cmd.Data[1];
//数据处理
if(*p=='
q'
||*p=='
h'
z'
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;
w'
)//如果为开始传递温度的信号,则子节点开始向coordinator发送温度数据
{kt=!
kt;
d'
)
{i=*(p+1);
zkb=dw[i];
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);
write_1820(0xbe);
teml=read_1820();
//读数据
temh=read_1820();
sensor_data_value[0]=teml;
sensor_data_value[1]=temh;
////////////处理数据部分/////////////////
uint16DataChange(void)
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机通信;
对于小车控制模块,我们能够正常的控制小车的运动和转弯;
对于软件部分,我们只是做了大概的设计,还有待我们具体设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 zigbee 的无线测温实验 无线 测温 实验