《 物联网集成系统设计 》 课件 4网口节点部分_第1页
《 物联网集成系统设计 》 课件 4网口节点部分_第2页
《 物联网集成系统设计 》 课件 4网口节点部分_第3页
《 物联网集成系统设计 》 课件 4网口节点部分_第4页
《 物联网集成系统设计 》 课件 4网口节点部分_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网应用系统设计智能家居项目单片机LED应用服务程序运程控制LED灯的项目智能家居项目1主动上传灯的状态2被动上传灯的状态

3接收命令控制灯的状态教学目标网口节点的实现难点发送标志位、发送数据指针、接收标志位、接收数据缓冲区意义及用法主动上传灯的状态重点理解实验55本实验是网络通信的实验,程序由网络初始化和网络测试功能组成。

程序初始化LWIP,包括:初始化LAN8720A、申请内存、开启DHCP服务、添加并打开网卡,然后等待DHCP获取IP成功,当DHCP获取成功后,将在LCD屏幕上显示DHCP得到的IP地址,如果DHCP获取失败,那么将使用静态IP(固定为:192.168.1.30),然后开启WebServer服务。

当初始化完成后进入主循环,等待按键输入选择需要测试的功能:TCPServer测试功能、TCPClient测试功能、UDP测试功能、WebServer的测试。理解实验55我们只需要理解:TCPServer测试功能、TCPClient测试功能。程序主循环中:KEY0按键,用于选择TCPServer测试功能KEY1按键,用于选择TCPClient测试功能理解实验55

TCPServer测试的时候,直接使用DHCP获取到的IP(DHCP失败,则使用静态IP)作为服务器地址,端口号固定为:8088。

在电脑端,可以使用网络调试助手(TCPClient模式)连接开发板,连接成功后,屏幕显示连接上的Client的IP地址,此时便可以互相发送数据了。按KEY0发送数据给电脑,电脑端发送过来的数据将会显示在LCD屏幕上。按KEY_UP可以退出TCPServer测试。

TCPClient测试的时候,先通过KEY0/KEY2来设置远端IP地址(Server的IP),端口号固定为:8087。设置好之后,通过KEY_UP确认,随后,开发板会不断尝试连接到所设置的远端IP地址(端口:8087),此时我们需要在电脑端使用网络调试助手(TCPServer模式),设置端口为:8087,开启TCPServer服务,等待开发板连接。

当连接成功后,测试方法同TCPServer测试的方法一样。理解实验55系统集成总体架构添加标题添加标题添加标题添加标题串口调试助手的使用在TCPClient模式下,设置连接的远程主机IP设置通讯模式清空接收区接收区发送区发送在TCPServer模式下设置本地端口号设置自动发送时间间隔在TCPClient模式下,设置连接的远程端口号设置发送格式清空发送区设置接收格式理解实验55接收数据缓冲区u8tcp_client_recvbuf[TCP_CLIENT_RX_BUFSIZE];发送数据指针u8*tcp_client_sendbuf接收完成标志位tcp_client_flag&1<<61接收到数据0没接收到数据标记要发送数据标志tcp_client_flag|=1<<7;1标记发送0不标记发送连接标志位tcp_client_flag&1<<51要连接0不用连接已连接标记connflag1连接上0没连接上客户端缓冲区和标志位的含义和用法:主动上传灯的状态01主动上传

本例程采用主动上传方式发送灯的状态信息,在程序voidtcp_client_test(void)函数底下有一个delay_ms(2)的延时方法,在最小限度改变代码,可以利用这个延时方法完成定时发送。主动上传

本例程采用主动上传方式发送灯的状态信息,在程序voidtcp_client_test(void)函数底下有一个delay_ms(2)的延时方法,在最小限度改变代码,可以利用这个延时方法完成定时发送。主动上传t1++;if(t1==250){if(LED1==0){ tcp_client_sendbuf="dengliang";//发送数据缓指针,指向发送内容 tcp_client_flag|=1<<7;//标记发送信息 }elseif(LED1==1){ tcp_client_sendbuf="dengmie";//发送数据缓指针,指向发送内容 tcp_client_flag|=1<<7;//标记发送信息 }t1=0;}

每一次循环都是要延时2ms,要完成每0.5秒主动上传可以在这里加上一个计数的t1,计数250次,如果时间到时就运行发送数据缓指针指向的数所据。被动上传灯的状态02被动上传

接收信息的时候,只要使用tcp_client_flag&1<<6判断接收信息标志位是否接收到信息,当标志位置1时,再使用tcp_client_recvbuf[TCP_CLIENT_RX_BUFSIZE]把所收到的信息读出来使用。被动上传

当接收到的信息是1时,把LED灯点亮;

当接收到的信息是0时,把LED灯熄灭。if(tcp_client_recvbuf[0]=='0'){

//接收到“0”的时候,关灯

LED1=1;}elseif(tcp_client_recvbuf[0]=='1'){

//接收到“1”的时候,开灯

LED1=0;}

控制灯的状态03控制LED灯状态

控制灯的状态也是从接收信息的判断里面实现的。控制LED灯状态if(tcp_client_recvbuf[0]=='2'){ //接收到“2”,返回灯的状态 if(LED1==0){//判断灯是亮的 tcp_client_sendbuf="dengliang"; tcp_client_flag|=1<<7;//标记发送

} elseif(LED1==1){//判断灯是灭的 tcp_client_sendbuf="dengmie"; tcp_client_flag|=1<<7;//标记发送

}}

接收到2时,根据LED1灯的状态发送不同的数据。参照单片机作为网络通信的客户端代码,完成单片机作为网络通信的服务端的以下三项功能:

1.主动上传灯的状态2.被动上传灯的状态3.控制灯的状态理解实验55客户端缓冲区和标志位的含义和用法:接收数据缓冲区u8tcp_server_recvbuf[TCP_SERVER_RX_BUFSIZE]; 发送数据缓指针u8*tcp_server_sendbuf接收完成标志位tcp_se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论