物联网信息采集课程设计.docx

上传人:b****6 文档编号:12144543 上传时间:2023-06-04 格式:DOCX 页数:21 大小:776.91KB
下载 相关 举报
物联网信息采集课程设计.docx_第1页
第1页 / 共21页
物联网信息采集课程设计.docx_第2页
第2页 / 共21页
物联网信息采集课程设计.docx_第3页
第3页 / 共21页
物联网信息采集课程设计.docx_第4页
第4页 / 共21页
物联网信息采集课程设计.docx_第5页
第5页 / 共21页
物联网信息采集课程设计.docx_第6页
第6页 / 共21页
物联网信息采集课程设计.docx_第7页
第7页 / 共21页
物联网信息采集课程设计.docx_第8页
第8页 / 共21页
物联网信息采集课程设计.docx_第9页
第9页 / 共21页
物联网信息采集课程设计.docx_第10页
第10页 / 共21页
物联网信息采集课程设计.docx_第11页
第11页 / 共21页
物联网信息采集课程设计.docx_第12页
第12页 / 共21页
物联网信息采集课程设计.docx_第13页
第13页 / 共21页
物联网信息采集课程设计.docx_第14页
第14页 / 共21页
物联网信息采集课程设计.docx_第15页
第15页 / 共21页
物联网信息采集课程设计.docx_第16页
第16页 / 共21页
物联网信息采集课程设计.docx_第17页
第17页 / 共21页
物联网信息采集课程设计.docx_第18页
第18页 / 共21页
物联网信息采集课程设计.docx_第19页
第19页 / 共21页
物联网信息采集课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

物联网信息采集课程设计.docx

《物联网信息采集课程设计.docx》由会员分享,可在线阅读,更多相关《物联网信息采集课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

物联网信息采集课程设计.docx

物联网信息采集课程设计

 

河海大学计算机及信息工程学院(常州)

课程设计报告

 

题目物联网信息采集

专业、学号通信工程1162310120

授课班号277701

学生姓名

指导教师金纪东

完成时间2014年6月15日

课程设计(报告)任务书

(理工科类)

Ⅰ、课程设计(报告)题目:

物联网信息采集

Ⅱ、课程设计(论文)工作内容

一、课程设计目标

1、掌握AD数据采样的原理,同时在实验箱上实现串口输出;

2、掌握网络协议建立的原理;

3、将采样的数据能够在同一网络下通过浏览器查看;

4、培养学生理论联系实际的能力;

5、培养学生的自我学习和解决问题的能力;

6、培养学生的团队合作能力;

二、研究方法及手段应用

1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;

2、对已有程序认真阅读理解,并调试;

3、在独立思考的基础上,模仿已有程序根据自己想法改写程序;

4、反复编译调试、总结经验、排除差错;

三、课程设计预期效果

1、完成实验环境搭建;

2、掌握AD数据采样的原理,同时在实验箱上实现串口输出;

3、掌握网络协议建立的原理;

4、将采样的数据能够在同一网络下通过浏览器查看;

 

学生姓名:

刘国庆专业年级:

11级通信工程

目录

前言4

第一章系统设计5

第一节课题目标及总体方案5

第二节系统简介5

一.ZE-stm32v7e实验平台介绍5

二.ZE-stm32v7e硬件设计分类5

1.stm32v7e平台应用区域5

2.无线传感协议区域5

第三节实验步骤6

一.熟悉设备6

二.ADC数据采样7

三.远程浏览器网页修改7

四.ADC数据定位8

第二章实验(测试)结果及讨论8

第一节预期实验结果8

第二节实验出现的问题及调试8

第三节实验现象9

第三章结论9

心得体会10

参考文献10

附录11

 

前言

物联网是新一代信息技术的重要组成部分,顾名思义,物联网就是物物相连的互联网。

它是一种利用局域网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化、远程管理控制和智能化的网络。

而嵌入式系统是综合了计算机软硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。

经过几十年的演变,以嵌入式系统为特征的智能终端产品随处可见;小到人们身边的MP3、手机,大到航天航空的卫星系统,嵌入式系统正在改变着人们的生活,推动着工业生产以及国防工业的发展。

如果把物联网用人体做一个简单比喻,传感器相当于人的眼睛、鼻子、皮肤等感官,网络就是神经系统用来传递信息,嵌入式系统则是人的大脑,在接收到信息后进行分类处理。

可见嵌入式系统的应用广泛,并在物联网中占有重要的位置和作用。

目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。

通过本次实验,让我们充分认识嵌入式系统与物联网系统的联系,并且了解网络协议在嵌入式系统中的应用及编程方法,掌握AD采样数据在浏览器查看过程中的定位、显示。

 

第一章系统设计

第一节课题目标及总体方案

物联网技术的发展对现代社会各个领域都有着重要的作用,本课题目的是AD数据采集,在实验平台上提供web服务,相当于服务器,PC机上可以访问IP地址来查看采集的数据,具体框图如下:

网线

PC客户

平台服务器

192.168.0.8192.168.0.100

平台与PC通过网线连接,PC设置与服务器同一局域网下的IP,在浏览器中访问服务器IP以查看采集的数据值。

第二节系统简介

一.ZE-stm32v7e实验平台介绍

ZE-stm32v7e实验平台是一款高端的多功能嵌入式教学产品,能够学习ARM开发的嵌入式知识,以及各种主流无线传感协议IPV6、Zigbee、WIFI、Bluetooth等,通过构建项目案例来实现感知层(传感器技术/嵌入式技术)、传输层(WSN无线传感网/IPV6无线传感网/Zigbee无线传感网/WIFI无线传感网/Bluetooth无线传感网)、网关层(嵌入式Linux/ZIGBEE/IPv6)等教学解决方案。

二.ZE-stm32v7e硬件设计分类

1.STM32V7E平台应用区域

1)采用高性能的STSTM32F107处理器,主频72MHz,Flash256KB,4.3寸真彩液晶屏,分辨率480*272,带4.3寸触摸屏。

2)1个4*4的可编程扫描键盘,2个可编程按键,4个可编程LED灯,1个RTC,1个JTAG&DEBUG接口;

3)集成丰富的外围扩展接口,4路RS232串口(一个调试串口,另外三个串口分别作为LCD触摸屏、GSM、ZIGBEE和RFID使用),集成以太网接口、音频接口、CAN、485、蜂鸣器和外接ADC接口等外设。

4)提供两组12PIN传感器应用扩展接口,包含以下信号:

串口、SPI、IIC、GPIO(可用于中断)、ADC接口、PWM接口,5V/3.3V电源;

5)板载集成GSM通信插座,无线ZIGBEE通信插座、无线RFID通信插座;

6)软件上采用嵌入式操作系统Contiki-OS,提供Contiki系统的一些基础实验、基于Contiki系统的无线通信实验和基于Contiki系统的综合DEMO实验。

2.无线传感协议区域:

1)无线传感协议区域包含6组无线传感网节点,每组无线传感网节点包含四个部分:

STM32嵌入式底板、无线节点核心板、传感器接口板、LCD显示板;

2)可以配置四组不同无线协议的节点:

IPV6、Zigbee、WIFI、Bluetooth;

3)实验平台提供稳定的12V稳压电源,可以支持6组无线传感节点和STM32V7E平台同时工作。

4)每个无线传感网节点的STM32嵌入式底板包含一个ARMCortex-M3STM32F103处理器芯片,提供稳定的5V/3.3V电源输入,4个可编程按键,4个可编程LED灯,1个RTC,1个JTAG&DEBUG接口,1个LCD接口,1个24PIN的传感器接口;

 

第三节实验步骤

一.熟悉设备

本实验使用实验教学系统STM32V7E平台实验箱,应用的主要是利用实验箱的应用扩展接口,利用ADC的14通道对开发板上单圈电位器的电压值作AD转换,并通过串口输出到PC机上。

实验前根据已给的实验例程,掌握串口数据的传送和查看,以及网络建立的基本过程。

二.ADC数据采样

1.程序修改

在ADC配置中加入时钟信号,以使数据采样过程中能够实时性采集

2.

线路连接

将实验平台和PC机通过串口线,网线,J-Link相连,设置PC机的网络IPV4地址(IP地址初始化为192.168.0.100,子网掩码255.255.255.0),编译下载程序,运行PC机上CMD输入ping192.168.0.8查看网络连接是否正常。

3.浏览器查看

打开浏览器,在地址栏中输入192.168.0.8查看ADC采集界面是否有数据跳动。

三.远程浏览器网页修改

由于实验例程中给的ADC采样只有一个进度条,为了更加直观,我们把数据显示加入到浏览的网页中。

打开fs.c下的fsdata.c文件找到data_STM32_StatusBar_html网页的十六进制编码。

通过先前的修改,将新网页的十六进制编码替换。

四.ADC数据定位

在httpd.c中查找AD数据转换的相关公式,利用软件Ultraedit在网页中定位数据显示的位置,将具体的偏移数值对httpd.c进行修改,同时添加数值显示位以初始化数值。

在其他的文件中进行相应的修改(必要时可在main中添加延时),使数值能够正常显示。

第二章实验(测试)结果及讨论

第一节预期实验结果

网络建立,浏览器访问192.168.0.8进入ADC数据界面,有进度条和数值的跳动,并且在一定的范围内变化。

第二节实验出现的问题及调试

1.根据步骤连接电脑和实验箱,浏览器无法连接。

解决方法:

查看线路是否连接完好,PC的网络连接Ipv4地址是否正确。

2.浏览器中查看数据的进度条固定,并不跳变。

解决方法:

修改时钟,在main.c中加入延时。

3.浏览器跳变的数据显示位置不正确。

解决方法:

改正httpd.c中数据的偏移量。

第三节实验现象

在浏览器中输入192.168.0.8后点击进入ADC数据采集界面,网页中显示如下界面:

其中进度条和中间的数据是实时跳变的。

第三章结论

本次课设实现的物联网信息采集是物联网技术中比较简单的,现代社会中应用传感、RFID进行物联网建立,无线通信的设计可以在此基础上进行扩展,发散创新。

整个程序的基础是实验平台自带的例程,通过对程序各个模块的理解,以及通过修改程序实现课题的功能,对网络建立和AD数据采集的原理都有了一定的了解。

心得体会

由于嵌入式课程课时有限,我们所掌握的知识并不够,只能参考已给的实验例程,进行学习。

并且通过翻阅许多资料,以及请教学长,对于物联网技术和嵌入式系统技术也有了一定的了解。

通过对实验例程的程序进行编译理解,从最初的对程序的局部修改,到最后我们逐渐掌握了如何建立网络,使用网络协议和AD数据采集。

这个过程我们收获了许多!

在最初阅读程序过程中,我们根据已给的英文注释,再加上先前对嵌入式系统课程的学习,一条条上网查阅资料,对于程序的理解也不断的深入。

在编写程序过程中,尤其是AD数据的显示部分的定位,在网页浏览器中很多次都不能正常显示,然后就在偏移量上一位一位的尝试,仍然没有很好的效果。

在同学之间的讨论中,借鉴其他组的Ultraedit软件,进行精确的定位,使本项工作事半功倍,同时也说明了合作的重要性。

当浏览器上显示出跳变的数据时,我们内心的喜悦溢于言表。

通过此次课设我不仅对嵌入式的开发有了更加深刻的了解,更对理论联系实际,以及团队合作与分工,自学能力的重要性有了新的认识。

这次课设,为我以后的发展打下了基础,积累了经验。

在此真诚地感谢老师的指导!

谢谢!

 

参考文献

[1]王勇,何立民.嵌入式系统原理与设计.杭州:

浙江大学大学出版社,2007.

[2]王田苗.嵌入式系统设计与实例开发[M].北京:

清华大学出版社,2003.1-10

[3]刘强崔莉陈海明.物联网关键技术与应用《计算机科学》2010年6月

附录

一、程序:

Main.c:

#include"stm32f10x.h"

#include

#include"uart.h"

#include"delay.h"

#include"eth.h"

intmain(void)

{

/*SystemClocksConfiguration*/

delay_init(72);

uart2_init();

eth_init();

/*uIPstackmainloop*/

uIPMain();

/*Infiniteloop*/

while

(1)

{

}

}

eth.c:

//各种端口初始化配置

#include"stm32f10x.h"

#include"stm32_eval.h"

#include"stm32_eth.h"

#include

#include"uip.h"

#include"stm32f10x_adc.h"

#include"uart.h"

#include"delay.h"

#include"eth.h"

/*Privatedefine------------------------------------------------------------*/

#defineMESSAGE1"STM32ETHEXAMPLE"

#defineMESSAGE2"LineDevice"

#defineMESSAGE3"WebServerDemobased"

#defineMESSAGE4"onuIP"

#defineMESSAGE5"IPaddressis:

"

#defineMESSAGE6"192.168.0.8"

#defineDP83848_PHY/*EthernetpinsmappedonSTM3210C-EVALBoard*/

#definePHY_ADDRESS0x0100/*RelativetoSTM3210C-EVALBoard*/

 

//#defineMII_MODE/*MIImodeforSTM3210C-EVALBoard(MB784)(checkjumperssetting)*/

#defineRMII_MODE/*RMIImodeforSTM3210C-EVALBoard(MB784)(checkjumperssetting)*/

#defineETH_RXBUFNB8

#defineETH_TXBUFNB2

/*Privatemacro-------------------------------------------------------------*/

/*Privatevariables---------------------------------------------------------*/

ETH_InitTypeDefETH_InitStructure;

/*EthernetRx&TxDMADescriptors*/

ETH_DMADESCTypeDefDMARxDscrTab[ETH_RXBUFNB],DMATxDscrTab[ETH_TXBUFNB];

/*Ethernetbuffers*/

u8Rx_Buff[ETH_RXBUFNB][ETH_MAX_PACKET_SIZE],Tx_Buff[ETH_TXBUFNB][ETH_MAX_PACKET_SIZE];

ErrorStatusHSEStartUpStatus;

vu32Value=0;

voidRCC_Configuration(void)

{

/*EnableETHERNETclock*/

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC|RCC_AHBPeriph_ETH_MAC_Tx|

RCC_AHBPeriph_ETH_MAC_Rx,ENABLE);

/*EnableGPIOsclocks*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|

RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE);

}

/**

*@briefConfiguresthedifferentGPIOports.

*@paramNone

*@retvalNone

*/

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

/*ETHERNETpinsconfiguration*/

/*AFOutputPushPull:

-ETH_MII_MDIO/ETH_RMII_MDIO:

PA2

-ETH_MII_MDC/ETH_RMII_MDC:

PC1

-ETH_MII_TX_EN/ETH_RMII_TX_EN:

PB11

-ETH_MII_TXD0/ETH_RMII_TXD0:

PB12

-ETH_MII_TXD1/ETH_RMII_TXD1:

PB13*/

/*ConfigurePA2asalternatefunctionpush-pull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

/*ConfigurePC1asalternatefunctionpush-pull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOC,&GPIO_InitStructure);

/*ConfigurePB11,PB12andPB13asalternatefunctionpush-pull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOB,&GPIO_InitStructure);

/**************************************************************/

/*ForRemappedEthernetpins*/

/*************************************************************/

/*Input(ResetValue):

-ETH_MII_RX_CLK/ETH_RMII_REF_CLK:

PA1

-ETH_MII_RX_DV/ETH_RMII_CRS_DV:

PD8

-ETH_MII_RXD0/ETH_RMII_RXD0:

PD9*/

/*ConfigurePA1asinput*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA,&GPIO_InitStructure);

/*ConfigurePD8,PD9,PD10asinput*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOD,&GPIO_InitStructure);

}

/**

*@briefConfigurestheADC.

*@paramNone

*@retvalNone

*/

voidADC_Configuration(void)

{

ADC_InitTypeDefADC_InitStructure;

#ifdefined(STM32F10X_LD_VL)||defined(STM32F10X_MD_VL)||defined(STM32F10X_HD_VL)

/*ADCCLK=PCLK2/2*/

RCC_ADCCLKConfig(RCC_PCLK2_Div2);

#else

/*ADCCLK=PCLK2/4*/

RCC_ADCCLKConfig(RCC_PCLK2_Div4);

#endif

/*EnableADC1andGPIOBclock*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOB,ENABLE);

/*ADC1Configuration------------------------------------------------------*/

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;

ADC_InitStructure.ADC_ScanConvMode=DISABLE;

ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;

ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;

ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfChannel=1;

ADC_Init(ADC1,&ADC_InitStructure);

/*ADC1regularchannel14configuration*/

ADC_RegularChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_13Cycles5);

/*EnableADC1*/

ADC_Cmd(ADC1,ENABLE);

/*StartADC1SoftwareConversion*/

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

}

/**

*@briefConfiguresthenestedvectoredinterruptcontroller.

*@paramNone

*@retvalNone

*/

voidNVIC_Configuration(void)

{

/*SettheVectorTablebaselocationat0x08000000*/

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);

}

voideth_init()

{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2