资源描述
《 物联网技术 》
课程设计阐明书
题 目: 物联网终端自制板优化
院 (系): 信息科学与工程学院
专业班级: 电子科学与技术
学生姓名:
学 号:
指引教师:
20 14 年 11 月 24 日至20 14 年 12 月 5 日
华中科技大学武昌分校制
物联网技术 课程设计任务书
课程设计题目(可任选一):
1.无线传感器数据采集器
2.无线远程控制显示系统
3.简易智能门禁系统
4.公交一卡通刷卡器
课程设计题目内容及详细规定:
(1) 无线传感器数据采集器
设计规定:
基于zigbee技术,通过各种传感器采集现场数据,能针对不同监测对象,选取不同类型传感器进行数据采集,采集数据通过zigbee模块由采集节点传送给汇聚节点,汇聚节点能将接受到数据显示出来;数据上传可以实现定期上传和积极报警上传等方式,也可由汇聚节点积极调取采集节点数据。
(2) 无线远程控制显示系统
设计规定:
该系统一方面实现128*64图形点阵液晶显示屏显示,应可实现各种字符、数字、中英文及图形任意显示功能;设计无线遥控功能,通过zigbee无线模块可在线下载要显示信息内容,并可灵活控制显示内容、显示顺序、方向、速度等,运用无线遥控方式可较以便地控制实时翻屏、滚屏等动态显示方式。
(3) 简易型智能门禁系统
设计规定:
采用射频辨认技术实现社区楼宇门禁管理,使用非接触式智能IC卡作为出入身份鉴别凭证,可实现对通道进出权限控制;在异常状况下能实现报警功能;对正常进出行为应能记录下来以备查询;同步应配备相应显示屏件以显示某些提示信息,本系统应能实现多重功能有机结合和智能控制。
(4) 公交一卡通刷卡器
设计规定:
采用射频辨认技术,使用非接触式智能IC卡作为公交卡,刷卡器可以对顾客卡合法性进行认证,具备黑名单管理和存储功能,发现非法卡,会及时报警提示;可设定乘车卡类、时段、票价,按照不同单价收费,显示清晰、明亮,信息简朴、明了,对不同状态不同卡类,不同地段可以显示不同信息,依照不同客户可选用数码管显示或LCD显示;应具备扣费记录查询功能。
三、原始资料
硬件资源:网蜂zigbee开发板、RFID读写卡模块、各种传感器、空白ID卡、CC2530系列编程仿真器、PC机。
设计指引书:zigbee实战演习,优灵电子13.56M模块资料包
四、进程安排
(1)第 1 天:任务布置及有关知识解说
(2)第2-3天:资料查阅与方案制定
(3)第4-8天:硬件设计、程序编制与调试阶段
(4)第 9 天:撰写设计报告
(5)第 10 天:答辩与考核阶段
五、重要参照资料
[1] 网蜂科技. Zigbee实战演习. 电子文档,.
[2] 陈勇. 物联网系统开发及应用实战. 南京:东南大学出版社,.
[3] 华清远见. 物联网应用开发详解——基于ARM Cortex-M3解决器开发设计.北京:电子工业出版社,.
[4] 王建平. RFID应用项目综合实训. 大连:东软电子出版社,.
指引教师(签名):
20 年 月 日
目 录
1 总体设计……………………………………………………………………………页码
1.1 ××××××××……………………………………………………………………页码
1.2 ××××××××……………………………………………………………………页码
2 硬件设计…………………………………………………………………………………页码
2.1 ××××××××……………………………………………………………………页码
2.2 ××××××××……………………………………………………………………页码
3 软件设计…………………………………………………………………………………页码
3.1 ××××××××……………………………………………………………………页码
3.2 ××××××××……………………………………………………………………页码
4 系统测试…………………………………………………………………………………页码
总结…………………………………………………………………………………页码
1 总体设计
1.1 总体设计思路
本系统采用网蜂Zigbee核心版为通讯手段,将各个传感器有机制地链接在一起,实现传感器可控数据采集,数据采集后发送到远程终端,而后以串口通讯为手段与目的机实现系统融合,从而在目的机上形象而直观地实现数据显示和系统构造形态框图,以及历史数据存储,利于对各个节点以及整个系统所在环境调查与分析。
1.2 功能图校园无线监控系统
退出系统
系统信息
拓扑构造
进入系统
选取节点
湿度数据
光照度数据
电压
电流
烟雾数据
温度数据
数据图形化记录
1.3 终端程序流程图开始
中断,驱动,Zigbee网络,板级支持文献,OS系统等初始化
N
启动应用程序END2.c,与协调器通讯并分派任务驱动传感器读取数据
任务号与否轮到lcd12864
任务号与否轮到温湿度传感器
任务号与否轮到烟雾传感器
任务号与否轮到光照度传感器
任务号与否轮到热释电传感器
N
YY
Y
Y
Y
Y
采集电压电流
发送数据到lcd
采集温湿度
采集光照值
采集烟雾值
点对点通讯发送数据到协调器
2 终端硬件设计
2.1 altium线路图
2.1.1 Zigbee核心板
2.1.2 光照度传感器
2.1.3 温湿度传感器
2.1.4 烟雾传感器
2.1.5 热释电传感器
2.1.6 LCD12864
3 软件设计
3.1 修改后应用END2.c
void END_SendOnceNews(uint8* data);
void END_GetNumberMessage(uint8 *num); //显示编号函数
void Delayms(uint xms); //i=xms 即延时i毫秒
void GenericApp_SendTheMessage(void); //发送本节点1网络号
void GenericApp_SendTheMessagedenity(void);
void xiachuancanshu(afIncomingMSGPacket_t *pkt);
void END_SendOnceMessage(uint8 data);
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
uint8 temp;
uint8 *str,msg[8]={0};
int i,j,k;
uint16 Time=0;
uint8 backcmd=0;
//uint8 *str=pkt->cmd.Data;
//HalLedBlink( HAL_LED_1,2,50,500 );
switch ( pkt->clusterId )
{
case COOR_TO_ONE:
END_GetNumberMessage(pkt->cmd.Data);
temp=*(pkt->cmd.Data);
osal_nv_write(END_NV_ID,0,1,&temp);
break;
case COOR_Keys_CLUSTERID:
break;
case SAMPLEAPP_COM_CLUSTERID:
break;
case SAMPLEAPP_CLUSTERID:
break;
case HUOQUJIEDIANDATA:
END_SendPointToPointMessage();
//HalLedBlink( HAL_LED_4,2,50,500 );
break;
case XIACHUANCANSHU:
//HalLedBlink( HAL_LED_4,2,50,500 );
str=pkt->cmd.Data;
j=*str;
for(i=0;i<j-1;i++)
{
msg[i]=str[i+2];
HalUARTWrite(0,msg+i,1 );
}
for(k=0;k<j-1;k++)
{
Time=Time*10;
Time+=(int)(msg[k]-0x30);
}
TIMEOUT=Time;
//HalUARTWrite(0,(uint8 *)&TIMEOUT,sizeof(TIMEOUT));
osal_nv_write(END_NV_TIME,0,4,&TIMEOUT);
//xiachuancanshu(str);
break;
case CONTROLNODE:
HalLedBlink( HAL_LED_1,2,50,500 );
//LED1 = 0;
str=pkt->cmd.Data;
j=*str;
for(i=1;i<=j;i++)
{
HalUARTWrite(0,str+i,1 );
}
LED1_ONOFF();
if(P2_1==0)
{
END_data.ctl_node.light =0x0001;
}
else
END_data.ctl_node.light =0;
backcmd = 1;
AF_DataRequest(&END_DstAddr,&SampleApp_epDesc,
CMDTIMESUCCESS,
sizeof(backcmd),
&backcmd,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS );
//HAL_TURN_ON_LED1();
//HalLedOnOff(HAL_LED_1,HAL_LED_MODE_OFF );
break;
default :
break;
}
return ;
}
void END_SendPointToPointMessage(void) //终端定期发送点对点信息
{
//LED1_ONOFF();
DHT11();
END_data.DHT11_value[0] = (uint16)ucharT_data_H;
END_data.DHT11_value[1] = (uint16)ucharRH_data_H;
wendu[0] = ucharT_data_H/10 + 0x30;
wendu[1] = ucharT_data_H%10 + 0x30;
shidu[0] = ucharRH_data_H/10 + 0x30;
shidu[1] = ucharRH_data_H%10 + 0x30;
smoke_test();
END_data.smoke_value = smoke_value;
smokes[0] = smoke_value/1000 + 0x30;
smokes[1] = smoke_value/100%10 + 0x30;
smokes[2] = smoke_value/10%10 + 0x30;
smokes[3] = smoke_value%10 + 0x30;
light_test();
END_data.Light_value = light_value;
lights[0] = light_value/10000 + 0x30;
lights[1] = light_value/1000%10 + 0x30;
lights[2] = light_value/100%10 + 0x30;
lights[3] = light_value/10%10 + 0x30;
lights[4] = light_value%10 + 0x30;
if(KEY == 1)
{
lcd_display(1,3,wendu);
lcd_display(2,3,shidu);
lcd_display(3,3,smokes);
}
else if(KEY == 2)
{
lcd_display(3,3,lights);
}
//struct end_send_data END_data;
//二号传感器:烟雾传感器
END_data.sensor_state |= (0x0001<<3);
////////////////////////////////////////////////////////////////////
if(PEOPLE == 1) //三号传感器:人体红外释热
{
Delayms(10);
if(PEOPLE == 1)
{
END_data.rs_hongwai = 1;
}
}
else
END_data.rs_hongwai = 0;
END_data.sensor_state |= (0x0001<<4);
END_data.sensor_state |= (0x0001<<2);
////////////////////////////////////////////////////////////////////////////////
//bool DHT11_state = DHT11_TEST(); //四号传感器:DHT11获取温湿度
/*unsigned char WenShiDu[2][2];
WenShiDu[0][0] = *(pkt->cmd.Data)/10 + '0';
WenShiDu[0][1] = *(pkt->cmd.Data)%10 + '0';
WenShiDu[1][0] = *(pkt->cmd.Data+1)/10 + '0';
WenShiDu[1][1] = *(pkt->cmd.Data+1)%10 + '0';*/
// if(DHT11_state)
// {
END_data.sensor_state |= (0x0001<<5);
// }
//if((ucharT_data_H<1)||(ucharT_data_H>100)||(ucharRH_data_H<1)||(ucharRH_data_H>100))
// END_data.sensor_warn |= (0x0001<<5);
//END_data.DHT11_value[0] = (uint16)ucharT_data_H;
//END_data.DHT11_value[1] = (uint16)ucharRH_data_H;
//HalUARTWrite(0,&ucharT_data_H,1);
END_data.sensor_state |= (0x0001<<15);
AF_DataRequest(&END_DstAddr,&SampleApp_epDesc,
END_POINT_TO_POINT_CLUSTERID,
sizeof(END_data),
(uint8 *)&END_data,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS );
return ;
}
4 系统测试
4.1 系统修改后测试效果图
图1 物联网系统运营
图2 整个终端运营
图3 终端未焊接裸板
图4 协调器端顾客界面
图5 协调器端数据采集图形显示
5 总 结
本次课设遇到如下问题:a、终端12864在进入界面时候不能正常显示;
b、DH11引脚和所设计终端板插槽不符合;
c、存在两种lcd12864 一种5v供电 一种3.3v,不能通用;
d、厂家所给资料中所标注引脚和实际有差别;
e、拓扑构造需要协调器在ARM11完毕启动后再次重启才干 显示拓扑构造;
解决办法如下:a、因素是lcd12864在进入显示模式后,直接显示。来不及给lcd12864 执行指令时间,因而显示前加入延时20ms,给lcd执行指令时 间;
b、寻常DH11是3脚:VCC GND D0,没有NC悬空,因而自己改装DH11 以符合读写数据规定;
展开阅读全文