物联网信息采集课程设计.docx
- 文档编号:25070666
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:21
- 大小:776.91KB
物联网信息采集课程设计.docx
《物联网信息采集课程设计.docx》由会员分享,可在线阅读,更多相关《物联网信息采集课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
物联网信息采集课程设计
河海大学计算机及信息工程学院(常州)
课程设计报告
题目物联网信息采集
专业、学号通信工程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()
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 联网 信息 采集 课程设计