网络工程课程设计报告基于以太网的远程温湿度采集控制系统 2Word文档下载推荐.docx
《网络工程课程设计报告基于以太网的远程温湿度采集控制系统 2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络工程课程设计报告基于以太网的远程温湿度采集控制系统 2Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
![网络工程课程设计报告基于以太网的远程温湿度采集控制系统 2Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/1/074004f4-fd66-4ed9-99bf-17d7e3521dbc/074004f4-fd66-4ed9-99bf-17d7e3521dbc1.gif)
在TCP/IP协议族中,有两个互不相同的传输协议:
TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠性的数据通信。
它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。
由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
而另一方面,UDP则为应用层提供一种非常简单的服务。
它只是把称作数据包的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
任何必需的可靠性必须由应用层来提供。
这两种传输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
4)应用层负责处理特定的应用程序细节。
几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:
4.1Telnet远程登录。
4.2FTP文件传输协议。
4.3SMTP简单邮件传送协议。
4.4SNMP简单网络治理协议。
2.2DHCP
DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。
当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。
DHCP具有以下功能:
1.保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2.DHCP应当可以给用户分配永久固定的IP地址。
3.DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4.DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
1)自动分配方式(AutomaticAllocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
2)动态分配方式(DynamicAllocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3)手工分配方式(ManualAllocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
DHCP消息的格式是基于BOOTP(BootstrapProtocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。
BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。
RFC951和RFC1542对BOOTP协议进行了详细描述。
2.3HTTP
超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。
所有的WWW文件都必须遵守这个标准。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
1960年美国人TedNelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。
TedNelson组织协调万维网协会(WorldWideWebConsortium)和互联网工程工作小组(InternetEngineeringTaskForce)共同合作研究,最终发布了一系列的RFC,其中著名的RFC2616定义了HTTP1.1。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
客户端是终端用户,服务器端是网站。
通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
(我们称这个客户端)叫用户代理(useragent)。
应答的服务器上存储着(一些)资源,比如HTML文件和图像。
(我们称)这个应答服务器为源服务器(originserver)。
在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。
事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。
HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。
HTTP服务器则在那个端口监听客户端发送过来的请求。
一旦收到请求,服务器(向客户端)发回一个状态行,比如"
HTTP/1.1200OK"
,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。
通过HTTP或者HTTPS协议请求的资源由统一资源标示符(UniformResourceIdentifiers)(或者,更准确一些,URLs)来标识。
2.4NTP
NTP是网络时间协议(NetworkTimeProtocol),它是用来同步网络中各个计算机的时间的协议。
在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?
NTP就是用来解决这个问题的,NTP(NetworkTimeProtocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。
它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止恶毒的协议攻击。
NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间吗?
答案是否定的。
因为格林尼治时间是以地球自转为基础的时间计量系统,但是地球每天的自转是有些不规则的,而且正在缓慢加速,因此,格林尼治时间已经不再被作为标准时间使用。
新的标准时间,是由原子钟报时的国际标准时间UTC(UniversalTimeCoordinated,世界协调时)。
所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
有了准确而可靠的的时间源,那这个时间如何传播呢?
在NTP中,定义了时间按照服务器的等级传播,按照离外部UTC源远近将所有的服务器归入不同的Stratum(层)中,例如把通过GPS(GlobalPositioningSystem,全球定位系统)取得发送标准时间的服务器叫Stratum-1的NTP服务器,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。
所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础.
计算机主机一般同多个时钟服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源以便校正主机时间。
即使在主机长时间无法与某一时钟服务器联系的情况下,NTP服务依然可以有效运转。
为了防止对时钟服务器的恶意破坏,NTP使用了识别机制,检查发送来的信息是否是真正来自所宣称的时钟服务器并检查信息的返回路径,以提供对抗干扰的保护机制。
[1]
NTP时间同步报文中包含的时间是格林威治时间,是从1900年开始计算的秒数
三、课程基本要求
•题目:
基于以太网的远程温湿度采集控制系统
•课设内容及要求:
•读取DHT11温度并通过串口打印
•浏览器显示设计网页模板
•网页实时显示温度
•网页按钮控制KED灯
•设计参考资料:
•HTTP协议
•HTML/CCS/JavaScript
•STM32F103单片机
•DHT11温湿度传感器
•课设提交内容:
•设计说明书
•实物效果
•设计总结
四、系统总体设计
系统整体框架设计如图1所示。
数据采集部分由温湿度传感器和单片机构成,以实现对数据的实时采集。
单片机与以太网控制器的接口部分连接,并将测控信息进行协议封装,控制以太网接口发送数据包,同时对接收到的信息进行协议解析,以获取发给本模块相关的命令信息,从而实现下位机与以太网的信息交换。
图1系统整体框架
五、软件设计
系统大致可分为以下五个子系统:
温度采集系统(图2)、恒温控制系统(图3)、以太网传输系统、记录调试系统和上位机显示及控制系统。
在以太网传输系统中,由于常规的TCP/IP对于单片机稀缺的系统资源来说显得过于庞大,于是本系统采用移植精简的TCP/IP。
TCP/IP栈是用于低至8位或16位微处理器嵌入式系统、可实现的极小代码占用量的TCP/IP协议栈。
同时,代码的大小和RAM的需求比其它一般的TCP/IP栈要小。
为了将应用程序挂接,必须将宏定义成实际的应用程序函数名,这样每当某个事件发生时,内核就会调用该应用程序进行处理。
系统流程图如图4所示。
图2温度采集系统图3恒温控制系统
图4以太网传输系统
六、系统的设计
本系统采用芯片架构、硬件编程、上位机软件编程、网页浏览器编程,通过以太网网络连接,传输应用的测控数据。
实现硬件包括STM32F103单片机、DHT11温湿度传感器等,通过在MCU内实现简单的Web服务器功能,将监测控制设备接入已连入Internet的以太网中,这样任何一台只要接入Internet且拥有浏览器的终端用户都可以访问此监控设备。
网页浏览界面如图5所示。
图5网页浏览界面
七、具体实现步骤
第一步:
编写代码并连接设备,主函数如下:
/**
******************************************************************************
*@filemain.c
*@authorWIZnetSoftwareTeam
*@versionV1.0
*@date2015-02-14
*@briefÓ
Ã
3.5.0°
æ
±
¾
¿
â
½
¨
µ
Ä
¹
¤
³
Ì
£
°
å
*@attention
*Ä
¬
È
Ï
Ê
Ó
Ò
»
ð
ª
·
¢
SPI1½
Ú
Ç
ë
¶
¡
J10¡
A4Ó
cs¼
ä
*
Í
ø
²
Ô
Â
ç
Å
É
Æ
÷
à
*DHCP¹
¦
Ü
´
ò
×
*/
#include<
stdio.h>
string.h>
#include"
dht11.h"
stm32f10x.h"
#defineSOCK_HTTP1
bsp_usart1.h"
bsp_i2c_ee.h"
bsp_i2c_gpio.h"
bsp_led.h"
w5500.h"
W5500_conf.h"
socket.h"
utility.h"
/*appº
¯
ý
Î
¼
þ
*/
dhcp.h"
httputil.h"
uint8temp_rh[2]={0,0};
intmain(void)
{
uint8PHY_connect=0;
systick_init(72);
/*³
õ
Systick¹
Ö
USART1_Config();
/*³
®
Ð
:
115200@8-n-1*/
i2c_CfgGpio();
/*³
eeprom*/
LED_GPIO_Config();
GPIO_Configuration();
printf("
W5500DHCPDemoV1.0\r\n"
);
gpio_for_w5500_config();
MCUÏ
Ø
//SPI_FLASH_Init();
reset_w5500();
/*Ó
¸
W5500*/
set_w5500_mac();
/*Å
MACµ
socket_buf_init(txsize,rxsize);
/*³
8¸
ö
Socketµ
Ë
Õ
º
ó
W5500×
DHCP¿
§
DHCP·
ñ
IPµ
\r\n"
while
(1)/*Ñ
»
{
PHY_connect=0x01&
getPHYStatus();
if(PHY_connect==0)
{
PHY_connect=0x01&
while(PHY_connect);
dhcp_state=STATE_DHCP_READY;
}
do_dhcp();
/*DHCP²
if(dhcp_ok==1)
{
DHT11_GetValue(temp_rh);
printf("
hum:
%d\n"
temp_rh[0]);
temp:
%d"
temp_rh[1]);
if(temp_rh[0]<
45)
{
GPIO_SetBits(GPIOA,GPIO_Pin_0);
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
GPIO_SetBits(GPIOA,GPIO_Pin_3);
}
else
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
delay_ms(4000);
do_http(SOCK_HTTP);
}
}第二步:
对代码进行编译,烧录单片机
第三步:
打开Hercules,获取IP地址
第四步:
打开浏览器,输入IP地址172.16.167.38,查看结果:
当湿度大于45时,单片机上灯亮,当湿度小于45,单片机上灯灭。
八、设计总结
本次课程设计经历一周时间,经过实训学习,完成基于以太网的远程温度采集控制系统。
整个过程需有C语言、HTML、网络基础知识、电路等的基本掌握,对整体知识进行整合,由WIZnet公司的讲师进行指导,实现了基于以太网的远程温度采集控制系统。
系统经在学校校园网实际环境应用,发现测温准确、反应及时、控制可靠,达到了预期的效果。
本文提供了一个接入Internet的低成本嵌入式系统和网络访问的有效方法,稍加修改即可以在工业以太网、数字园区、智能家庭控制、物联网中得到广泛的应用。
感谢WIZnet讲师、戴彬老师一周的指导,完成此次课程!
九、参考文献
[]崔建峰陈海峰《物联网TCP/IP技术详解》[M].北京航空航天大学出版社,2015.
[2][日]竹下隆史《图解TCP/IP(第5版)》[M].人民邮电出版社,2014.
[3]马建《物联网技术概论》[M].机械工业出版社,2011.