“Microduino ENC网络(二)/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何使用DHCP服务器自动配置网络参数,使你的Microduino自动获取IP地址。 ==设备== *'''...") |
(→原理图) |
||
(未显示2个用户的6个中间版本) | |||
第1行: | 第1行: | ||
+ | {{Language | Microduino_ENC_Network_(2)}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
第6行: | 第7行: | ||
==设备== | ==设备== | ||
− | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
− | *'''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
− | *'''[[Microduino-ENC28J60]]''' | + | *'''[[Microduino-ENC28J60/zh]]''' |
− | *'''[[Microduino-RJ45]]''' | + | *'''[[Microduino-RJ45/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
− | **USB数据连接线 一根 | + | **USB数据连接线 一根 |
==DHCP== | ==DHCP== | ||
第20行: | 第21行: | ||
简单意义上讲,它的工作原理是这样的: | 简单意义上讲,它的工作原理是这样的: | ||
− | + | 需要一个IP地址的设备(客户端),发送一个'''DISCOVERY'''广播数据包(这个数据包将到达设备所在的整个网络),“发现”可用的DHCP服务器; | |
− | + | 如果一个或多个DHCP服务器可用,它们应答一个'''OFFER'''包,“建议”发出请求的客户端设置可用的IP地址; | |
− | + | 客户选择所提供的IP地址,并向对应服务器发送一个'''REQUEST'''数据包,要求允许使用该地址; | |
− | + | 建议设置这个ip地址的服务器,发回一个'''ACK'''包来确认IP地址关联。 | |
[[File:DHCPShow.jpg|600px|center|thumb]] | [[File:DHCPShow.jpg|600px|center|thumb]] | ||
幸运的是我上面所说的获取IP地址的过程已经在dhcp.cpp 库文件为我们实现:在接下来的页面中,我要编写一个简单的例子来使用DHCP服务。 | 幸运的是我上面所说的获取IP地址的过程已经在dhcp.cpp 库文件为我们实现:在接下来的页面中,我要编写一个简单的例子来使用DHCP服务。 | ||
− | |||
− | |||
==原理图== | ==原理图== | ||
第39行: | 第38行: | ||
*Microduino-RJ45 | *Microduino-RJ45 | ||
*Microduino-Core | *Microduino-Core | ||
− | *Microduino- | + | *Microduino-USBTTL |
层层堆叠,再插上网线。 | 层层堆叠,再插上网线。 | ||
第45行: | 第44行: | ||
[[File:MicroduinoENCShow.jpg|600px|center|thumb]] | [[File:MicroduinoENCShow.jpg|600px|center|thumb]] | ||
− | |||
==程序== | ==程序== | ||
− | + | [https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_ENC/ENCnetworktwo ENCnetworktwo] | |
− | |||
==调试== | ==调试== | ||
第70行: | 第67行: | ||
ether.printIp(); | ether.printIp(); | ||
− | + | 步骤三:下载代码并编译通过。 | |
− | + | 步骤四:如果没其他问题的话,你应该可以ping通你的Microduino了。 | |
[[File:DHCPcmdPing.jpg|600px|center|thumb]] | [[File:DHCPcmdPing.jpg|600px|center|thumb]] |
2015年1月27日 (二) 12:32的最新版本
Language | English |
---|
目的本教程将教大家如何使用DHCP服务器自动配置网络参数,使你的Microduino自动获取IP地址。 设备
DHCP通常情况下,在本地网络中,你可以找到一个DHCP(Dynamic Host Configuration Protoco,动态主机配置协议,是一个局域网的网络协议,使用UDP协议工作)服务器,作用是给一个内部网络设备自动分配网络参数(IP地址、掩码、网关及DNS)。 简单意义上讲,它的工作原理是这样的: 需要一个IP地址的设备(客户端),发送一个DISCOVERY广播数据包(这个数据包将到达设备所在的整个网络),“发现”可用的DHCP服务器; 如果一个或多个DHCP服务器可用,它们应答一个OFFER包,“建议”发出请求的客户端设置可用的IP地址; 客户选择所提供的IP地址,并向对应服务器发送一个REQUEST数据包,要求允许使用该地址; 建议设置这个ip地址的服务器,发回一个ACK包来确认IP地址关联。 幸运的是我上面所说的获取IP地址的过程已经在dhcp.cpp 库文件为我们实现:在接下来的页面中,我要编写一个简单的例子来使用DHCP服务。 原理图
层层堆叠,再插上网线。 如下图所示: 程序调试步骤一:首先需要下载EtherCard库:https://github.com/jcw/ethercard 放到你的IDE的libraries文件夹中,重启IDE。 步骤二:解释一下代码: //首先我只定义一个MAC地址和输入输出缓存,不再定义一个固定的IP地址,仍需用begin()方法进行网络控制器的初始化。 //dhcpSetup()方法执行上述所有的详细步骤:寻找一个DHCP服务器,检查的答复,选择一个IP地址,并要求使用权限。如果成功将返回1,这种方法等待30秒后,如果还没获得IP地址,它将返回0。 ether.dhcpSetup(); //printIp()方法是一个简单的方法在串口上打印一个“点分十进制表示法”的IP地址(它是以uint8_t数组的形式存储在以太网缓冲区中)。 ether.printIp(); 步骤三:下载代码并编译通过。 步骤四:如果没其他问题的话,你应该可以ping通你的Microduino了。 结果如果你可以查看你的DHCP服务器(通常在我们的路由器的DHCP客户端中可以找到),你将看到连接了一个新的设备(EtherCard库选择的“Arduino-XX” ,XX为MAC地址的最后一个字节)。 视频 |