您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页物联网课程设计报告

物联网课程设计报告

来源:筏尚旅游网


《 物联网技术 》

课程设计说明书

题 目: 物联网终端自制板的优化 院 (系): 信息科学与工程学院 专业班级: 电子科学与技术 学生姓名: 学 号: 指导教师:

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实战演练。 电子文档,2012。 [2] 陈勇。 物联网系统开发及应用实战. 南京:东南大学出版社,2014. [3] 华清远见. 物联网应用开发详解——基于ARM Cortex—M3处理器的开发设计。北京:电子工业出版社,2013。 [4] 王建平. RFID应用项目综合实训. 大连:东软电子出版社,2012. 指导教师(签名): 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,与协调器通 讯并分配任务驱动传感器读取数据 N 任务号是否轮到热释电传感器 任务号是否轮到lcd12864 任务号是否轮到烟雾传感器 任务号是否轮到光照度传感器 任务 号是否轮 到温湿度 传感器 Y 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

以符合读写数据要求;

显示拓扑结构;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务