基于Zigbee的智能灯光控制系统设计 - 图文 联系客服

发布时间 : 星期六 文章基于Zigbee的智能灯光控制系统设计 - 图文更新完毕开始阅读f32f37d158f5f61fb73666d9

基于Zigbee的无线智能灯光控制系统设计

首先,光敏传感器对光照度进行检测,检测信号将以电信号形式发给CC2530,之后经过此段代码,进行环境判断,并输出判断结果信息至协调器,由协调器根据当前环境判断信息进行控制指令判断。

void SampleApp_SendPointToPointMessage( void ) //点对点通信协议,使终端信息仅

能传至与终端地址相同的协调器上//

{ uint8 L; //定义8位整形变量// if(P0_1==1) //判断光敏电阻检测信息,0为有光,1为

{ 无光//

L=1; //当完成光信号判断时,输出的信号L

} 由协调器接收,并完成指令的逻辑判断//

else { L=0; }

if ( AF_DataRequest( &Point_To_Point_DstAddr, //该if结构体为Zigbee点对点通信协议

&SampleApp_epDesc, 的数据传输部分// SAMPLEAPP_LIGHT_CLUSTERID, //传输的数据包类型//

1, //传输数据长度//

&L, //传输数据L的内容//

&SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS afStatus_SUCCESS )

{ }

) ==

15

福州大学本科生毕业论文

else {

//错误发送时,不传输数据//

} }

(2)红外热释电传感器终端代码

本段代码功能及作用与光敏终端代相似,对室内有无人员情况进行判断,并将判断结果通过点对点通讯方式,发至协调器,供协调器进行控制指令判断。

#define SAMPLEAPP_PEOPLE_CLUSTERID 3 //定于红外信号数据包类型,传输编号,方便协调器端接收识别//

void SampleApp_SendPointToPointMessage( void ) { uint8 L;

if(P0_5==1) //判断热释电红外传感器检测信息,

{ 0为无人,1为有人// L=1; //用于协调器端进行指令判断的数据

} 内容 else {

L=0; }

if ( AF_DataRequest( &Point_To_Point_DstAddr, //红外信号的点对点发送协议

&SampleApp_epDesc,

SAMPLEAPP_PEOPLE_CLUSTERID, //所发送的L的数据类型

1, //L的数据长度

&L, //L的数据内容

&SampleApp_TransID,

16

基于Zigbee的无线智能灯光控制系统设计

AF_DISCV_ROUTE, AF_DEFAULT_RADIUS afStatus_SUCCESS )

{ } else {

// Error occurred in request to send. } }

(3)协调器接收终端信号、判断、执行部分

本段代码将实现数据的接收到判断到执行的全过程。首先,协调器接收到终端发出的环境判断信息,根据本段代码的逻辑判断部分,决定当前环境状态下该执行何种操作,并最终执行操作指令。

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) //Zigbee数据接收协议//

{

switch (pkt->clusterId) // 判断所接受的数据类型,在光敏和红

外传感部分,已分别定义了各自的数据类型//

{ case SAMPLEAPP_LIGHT_CLUSTERID: //若接收数据包为光敏信号的数据包则执行

相应指令;//

H=pkt->cmd.Data[0]; //由于接收协议以此只能接收一个数据,而系统中两个

用全局变量

进行数据保存// break;

case SAMPLEAPP_PEOPLE_CLUSTERID: //若为红外信号的数据包,则将内容赋给

D=pkt->cmd.Data[0]; 全局变量D// break;

) ==

终端同时对协调器进行信号传输,因此需要

17

福州大学本科生毕业论文

}

if((H==1)&&(D==1)) //根据全局变量的赋值情况,进行逻辑判断//

{

P1_0=1; //若所读环境信息为有人且无光的状态,

} 输出控制指令,使受控端LED1亮//

else {

P1_0=0; //除了有人且无光的环境,其他情况一律输出

} 熄灭灯的指令// }

代码及其注释中,针对系统功能实现的每一步流程都给出了详细解释。其中包括传感器对应IO口,两个信息采集终端环境采集信号的赋值操作、输出数据包类型、数据包名称、以及输出内容、协调器接收后的逻辑判断取值,控制指令内容等。

本套实验由于时间及硬件有限,仅在系统中加入两个传感器即光敏传感器和红外传感器的应用。该系统还具有较大的功能扩展空间,有待日后开发。

18