实训报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(vlaue<1)//当vlaue值即光照强度小于一定值,开灯补光。
{
uRxData[1]=0x31;
basicRfSendPacket(SEND_ADDR, uRxData,len);
}
else
{
uRxData[1]=0x32;
basicRfSendPacket(SEND_ADDR, uRxData,len);
basicRfReceiveOn(); //打开RF
}
void MyByteCopy(uint8 *dst, int dststart, uint8 *src, int srcstart, int len)
{
int i;
for(i=0; i<len; i++)
{
*(dst+dststart+i)=*(src+srcstart+i);
halLedToggle(3); //绿灯取反,无线发送指示
一、系统功能分析:
1、光照过强:当传感器采集到的数据大于3时,系统则自动关上窗帘;
2、光照舒适度:传感器采集到的数据处在1(包括1)和3(包括3)之间则是人体感到最舒适的光照强度;
3、光照过弱:传感器采集到的数据小于1,则是光照过弱,不能适合人的正常舒适度,那么则会打开灯光进行补光,让光照强度达到人体所需求的。
/**************************************************/
uint8 APP_SEND_DATA_FLAG; //数据发送标志
/**************************************************/
static basicRfCfg_t basicRfConfig;
二、控制示意图
·
三、功能模块及说明
1、数据采集模块:通过光照传感器定时采集传感数据,把传感数据打包后通过ZigBee无线发出。
2、数据传输模块:通过主控器接收传感器传来的无线数据,并发送到串口。
3、自动控制模块:通过继电器接收主控器发来的控制命令,并按命令做动作。
四、技术说明网络设备
IEEE 802.15.4协议、802.15.4 MAC兼容的数据包结构、ACK包结构、主控器、光敏传感器、继电器
Status=1;
}
T3IF=0;
EA=1;
}
/**************************************************/
//无线RF初始化
/********************MAIN************************/
void main(void)
{
{
APP_SEND_DATA_FLAG = GetSendDataFlag();
if(APP_SEND_DATA_FLAG == 1) //定时时间到
{
//光照传感器
sensor_val=get_adc(); //取模拟电压
//把采集数据传化成字符串,以便于在串口上显示观察
printf_str(pTxData,"A%d.%02d\r\n",sensor_val/100,sensor_val%100);
}
}
/****************************************************/
uint16 RecvUartData(void)
{wk.baidu.com
uint16 r_UartLen = 0;
uint8 r_UartBuf[128];
uRxlen=0;
r_UartLen = halUartRxLen();
{
uRxData[1]=0x31;
basicRfSendPacket(SEND_ADDR, uRxData,len);
}
else
{
uRxData[1]=0x32;
basicRfSendPacket(SEND_ADDR, uRxData,len);
}
}
if(buf[0]==0x42)
{
uRxData[0]=0x42;
}
}
}
}
}
(二)从节点:光敏传感器A(采集数据)
/*****点对点通讯地址设置******/
#define RF_CHANNEL 16 //频道11~26
#define PAN_ID 0x1A9B //网络id
#define MY_ADDR 0xAC7A //本机模块地址
#define SEND_ADDR 0x1055 //发送地址
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定义无线发送缓冲区的大小
static uint8 pRxData[MAX_RECV_BUF_LEN]; //定义无线接收缓冲区的大小
#define MAX_UART_SEND_BUF_LEN 128
#define MAX_UART_RECV_BUF_LEN 128
关键词:ZigBee传感技术智能控制数据采集数据传输
设计要求:根据ZigBee传感技术实现智能控制,达到人们自己可感受到的舒适度。运用ZigBee数据采集技术,将采集到的数据通过传感器传送到PC端。阳光房光照智能系统就是通过根据外界的温度,来判断是否让人的感到舒适,如果光照过弱或者过强则会自动调节。要用ZigBee技术,PC代码编写,小组进行合作,达到实训目的。
//无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID; //zigbee的ID号设置
basicRfConfig.channel = RF_CHANNEL; //zigbee的频道设置
basicRfConfig.myAddr = MY_ADDR; //设置本机地址
buf[0]=pRxData[0];
int i;
for(i=0;i<=strlen(pRxData);i++)
{
pRxData[i]=pRxData[i+1];
}
sscanf(pRxData,"%f",&vlaue);
if(buf[0]==0x41)
{
uRxData[0]=0x41;
if(vlaue>3)//当vlaue值即光照强度大于一定值时,关闭窗帘。
uint8 uTxData[MAX_UART_SEND_BUF_LEN]; //定义串口发送缓冲区的大小
uint8 uRxData[MAX_UART_RECV_BUF_LEN]; //定义串口接收缓冲区的大小
uint16 uTxlen = 0;
uint16 uRxlen = 0;
/*****点对点通讯地址设置******/
while(r_UartLen > 0)
{
r_UartLen = halUartRead(r_UartBuf, sizeof(r_UartBuf));
MyByteCopy(uRxData, uRxlen, r_UartBuf, 0, r_UartLen);
uRxlen += r_UartLen;
halMcuWaitMs(5);
设计原理:Basic RF是由TI公司提供基于cc253x的软件代码,它包含IEEE 802.15.4标准的数据包的收发,是简单无线点对点传输协议。这个协议可用来演示无线设备是如何进行数据传输的,不包含完整功能的协议。但是它采用了与802.15.4 MAC兼容的数据包结构及ACK包结构,其功能有一定限制。通过CC2530的I/O口,通过i2c通讯读取光照传感器的数据,然后通过ZigBee无线发送给主控器,主控器通过串口把数据发送给上位机,这样上位机就能进行集中采集和处理,继电器(控制器)负责接收主控器发来的控制命令,并按命令做相应的动作。本实训主要是通过光照传感器采集数据传送到主控端,主控端在发送到PC端,根据PC端C#相应的代码编写,然后在PC端运行窗口进行数据显示,反馈信息给主控,主控在进行判断从而进一步控制继电器来控制电灯、窗帘。
r_UartLen = halUartRxLen();
}
return uRxlen;
}
#pragma vector = T3_VECTOR
__interrupt void T3_ISR(void)
{
EA=0;
if(counts<8000)
{
counts++;
}
else
{
counts=0; //计数清零
设计过程:先做底层设计ZigBee代码编写
主控制端:
(一)主节点:数据采集
uint8 scan_key();
unsigned int counts=0;
unsigned int flag=0;
unsigned int Status=0;
#define MAX_SEND_BUF_LEN 128
#define MAX_RECV_BUF_LEN 128
HAL_LED_SET_1();//led2 on
float vlaue,tem,hex;
while(1)
{
len = RecvUartData(); //接收串口数据
if(len > 0)
{
//把串口数据通过zigbee发送出去
basicRfSendPacket(SEND_ADDR, uRxData,len);
#define RF_CHANNEL 16 //频道11~26
#define PAN_ID 0x1A9B //网络id
#define MY_ADDR 0x1055 //本机模块地址
#define SEND_ADDR 0xAC7A //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
/******************************************/
//无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID; //zigbee的ID号设置
}
if(basicRfPacketIsReady()) //查询有没收到无线信号
{
//接收无线数据
len = basicRfReceive(pRxData, MAX_RECV_BUF_LEN, NULL);
//接收到的无线发送到串口数
halUartWrite(pRxData,len);
uint8 buf[1];
basicRfConfig.channel = RF_CHANNEL; //zigbee的频道设置
basicRfConfig.myAddr = MY_ADDR; //设置本机地址
basicRfConfig.ackRequest = TRUE; //应答信号
while(basicRfInit(&basicRfConfig) == FAILED); //检测zigbee的参数是否配置成功
阳光房光照系统实训报告
组员:桑成程陈永菊
物联1401班
双号第五组
阳光房光照系统设计
摘要
我们这次是针对阳光房的光照系统进行智能控制。该系统主要是由传感器发送到主节点,然后有由节点发送到继电器,从而进行控制,并且将传感器采集到的数据传送到PC端,将阳光房的光照数据展示出来。我们这个系统主要是解决阳光房的智能控制,光照过弱则需要自动补光,适中则是舒适状态,过强则是自动关上窗帘。这个系统主要用到的技术是ZigBee传感技术进行数据采集、状态判断、智能控制,C#进行数据的上传。
uint16 len = 0;
halBoardInit(); //模块相关资源的初始化
ConfigRf_Init(); //无线收发参数的配置初始化
halLedSet(1);
halLedSet(2);
Timer4_Init(); //定时器初始化
Timer4_On(); //打开定时器
while(1)
CLKCONCMD&=0x80;
while(CLKCONCMD&0x40);
T3CTL=0x7c;//自由重载模式
T3IE=1;
uint16 len = 0;
halBoardInit(); //模块相关资源的初始化
ConfigRf_Init(); //无线收发参数的配置初始化
HAL_LED_SET_1();//led1 on
basicRfConfig.ackRequest = TRUE; //应答信号
while(basicRfInit(&basicRfConfig) == FAILED); //检测zigbee的参数是否配置成功
basicRfReceiveOn(); //打开RF
}
void main(void)
{
uint16 sensor_val,sensor_tem;
相关文档
最新文档