基于zigbee无线光照传感器的设计(3)

2019-01-19 14:38

使CC2530所具备不同运行模式,使得它非常适合有超低功耗要求的系统。同时因为运行模式之间的转换时间短暂,所以能进一步保证了CC2530低能源消耗。因此本设计最后选择CC2530来作为核心模块,构建所需要的网络节点。

3.3.2 光照传感器的选择

本设计中使用GY-30光照传感器。GY-30光照传感器采用ROHM原装BH1750FVI芯片,其光照度范围是0-65535 lx,它自带内置16bitAD转换器,可以直接输出数字,省略负责的计算,省略了标定。作为主流光照传感器,GY-30具有不区分环境光源,接近视觉灵敏度的分光特性,对广泛的亮度达到1勒克斯的高精度,体积小和成本低的优点。并且它的供电电源为3~5V,能够与CC2530很好的配合。

最终设计确定使用GY-30光照传感器做设计用光照传感器,用于测定所需光照度。

4 硬件设计

4.1 整体框架

系统整体框架如图4-1所示,使用CC2530片上系统作为zigbee在体。通过zigbee网络在两块CC2530之间传递数据,实现数据的流通;利用zigbee网络的特性实现模块的添加和减少。

图4-1 整体框架图

电源 GY-30 CC2530 上位机 电源 Zigbee无线通讯 CC2530 GY-30 CC2530

5

4.2 CC2530片上系统设计

通过CC2530F32/64/128/256四个不同闪存版本的切换使CC2530具有不同的运行模式,使其能够适应超低功耗要求的系统。它可应用于楼宇自动化,照明系统,工业控制和监测,消费型电子,医疗保健等领域。

使用的CC2530需要连接GY-30,模拟IIC串口驱动,要重新配置引脚。对此要理解CC2530的各引脚连接到了什么地方,CC2530核心版电路如图4-2所示。

3.3VL1 2nHVCCC1C21uF0.1uFC3C4C5C6C7C80.1uFU11039DVDD AVDD5/AVDD_SOCAVDD_DREG AVDD3DGND_USB AVDD2USB_MUSB_P AVDD1DVDD_USB AVDD4 AVDD_GUARDP2_0P2_1P2_2 RF_PP1_0P1_1P1_2 RF_NP1_3P1_4P1_5 P2_4P1_6P1_7 P2_3P2_0P2_1 XOSC32M_Q1P2_2P2_3 XOSC32M_Q2P2_4P2_5 DCOUPLP2_6P2_7 RBIASRESET_N GND3041CC2530R156K0.1uF0.1uF220pF0.1uF2.2uF212427282931L2 2nHSMA1234P2_0P2_1/DDP2_2/DCP1_0P1_1P1_2P1_3P1_4/CSNP1_5/SCLKP1_6/MOSIP1_7/MISOP0_0P0_1/B TN1P0_2/RXP0_3/TXP0_4/B TN2P0_5/B UT3P0_6P0_7RESET3635341198765383719181716151413122025C10C921C1118pF2632C121pFL3 2nHC132.2pF18pF1pF332223Y1 32MY2 32K354401C14C17C18C16C151uF27pF27pF15pF15pF 图4-2 CC2530核心电路图

对于该系统使用的电源,需要满足CC2530片上系统的规定电压,同时要满足驱动光照传感器的光照电压。接收模块可通过USB接线由上位机提供。发送模块需要使用独立电源,本设计中使用手机12V移动电源对发送模块进行供电。对12V电源需要进行转换,转换电路如图4-3。

4.75-15vVin Vout GNDC10.1uF3.3vC222pF

图4-3 电压转化电路

6

4.3 GY-30光照传感器电路设计

GY-30光照传感器采用BH1750FVI芯片,光照度范围大概是0-65535 lx。同时自带内置16bitAD转换器,能够直接输出数字,省略负责计算的部分,省略也了标定。而且GY-30具有不区分环境光源,接近视觉灵敏度的分光特性,对广泛的亮度达到1勒克斯的高精度的特点。使用3~5V供电电源,有两个IIC总线引脚,分别为SCL时钟引脚和SDA数据引脚;一个BH1750 IIC设备地址引脚ADDR。同时还带有低功耗3.3V稳压器(3~5V供电兼容)和电平转换(3~5V系统通讯兼容)。GY-30与CC2530之间的数据传输主要靠SCL和SDA两个引脚连接,通过拉高和拉低两个连接线电位,由SDA引脚产生的上升沿和下降沿来控制起始信号和停止信号。SDA引脚同时也作为应答信号的接收与发送口。核心电路如图4-4所示。

VCCDVLSCLAMPADCLogic+IIC InterfaceSDAPDOSCADDRGND

图4-4 GY-30核心电路图

要驱动GY-30光照传感器需要一定的输出功率。因为使用CC2530底板,存在引脚占用的现象,可能使输出功率不能够满足驱动GY-30光照传感器,所以需要编写一个简单的小灯闪烁程序,通过小灯时候闪烁来测试功率是否能够满足驱动GY-30光照传感器的要求。经过测试,最终选定用P1_3和P1_4两个引脚接口来连接驱动GY-30光照传感器。如图4-5所示。

VCC 5VVCCSCLSDAADDRGNDP1_4P1_3

图4-5 GY-30连接示意图

7

5 软件设计

5.1 编写环境搭建

5.1.1 环境搭建

1) 第一步需要在PC机上安装IAR用于Zigbee程序的编写和下载;

2) 打开IAR,新建工程开始程序的编写;

3) 设置程序参数,确保程序参数和使用的CC2530片上系统一致; 4) 编译程序,成功后将程序分别下载到发送模块和接收模块中。

安装SFR软件,完成后连接仿真器并安装驱动程序。完成后在SRT软件窗口可看到当前连接的CC2530模块,该软件能够保证PC机同时连接多个CC2530模块,方便程序的下载。软件运行完成后可正常使用CC2530。

5.2 GY-30光照传感器驱动设计

设计中需要使用CC2530来驱动作为光照传感器的GY-30。因为曾在STY89C51上使用过GY-30,所以要做的是将89C51上驱动GY-30的程序进行修改和移植,来实现利用CC2530驱动GY-30测量光照度。使用在89C51上的驱动程序作为基础程序,在此程序的基础上进行修改移植。驱动GY-30需要对接收到的数据进行处理,保证输出的数据满足需要,数据在经过发送后在接收模块上需要经过数据合成,将接收数据合成为符合显示要求的光照数据,方便在Qt界面上显示,部分合成代码如下:

dis_data=BUF[0];

dis_data=(dis_data<<8)+BUF[1];//合成数据,即光照数据 temp=(float)dis_data/1.2;

驱动GY-30时需要设置相应的端口,选取P1_3和P1_2做为光照传感器与CC2530的连接口,设定将光照传感器的SCL时钟引脚,SDA数据引脚分别和P1_3,P1_2对应。在选取串口后需要测试,测试串口是否能够正常使用时,使用控制小灯亮灭的循环方式,程序如下:

while(1) {

SCL=1; SDA =1; halMcuWaitMs(5); SCL=0; SDA =0;

8

halMcuWaitMs(5); }

在光照传感器GY-30采集到数据后,还需要使用CC2530读取其中数据,才能将光照传感器的数据进行发送,需要编写对应的读取程序,对应的部分读取代码如下:

uchar Single_Read_BH1750(uchar REG_Address) {

uchar REG_data;

BH1750_Start(); //起始信号

BH1750_SendByte(SlaveAddress); //发送设备地址+写信号 BH1750_SendByte(REG_Address); //发送存储单元地址,从0开始 BH1750_Start(); //起始信号

BH1750_SendByte(SlaveAddress+1);//发送设备地址+读信号 REG_data=BH1750_RecvByte(); //读出寄存器数据 BH1750_SendACK(1);

BH1750_Stop(); //停止信号 return REG_data;

成功读取数据后,数据将由CC2530发送模块通过zigbee通讯发送到CC2530接收模块,由CC2530接收模块处理后传输到上位机,最终在Qt界面上显示出来。驱动流程图如图5-1所示。

开始

初始化接收应答信号N是否收到应答信号Y读取光照传感器数值数据处理和发送

图5-1 GY-30驱动流程图

5.3 数据传输

设计中一共使用了两种传输方式,一种是各节点之间的Zigbee无线传输,另一种是

9


基于zigbee无线光照传感器的设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化工企业厂级安全教育教材

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: