查看“Microduino ENC网络(六)/zh”的源代码
←
Microduino ENC网络(六)/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language | Microduino_ENC_Network_(6)}} {| style="width: 800px;" |- | ==目的== 本教程将教大家如何使用Microduino更新著名的动态域名服务提供商之一no-ip服务器上关于你的DNS记录。 ==设备== *'''[[Microduino-Core/zh]]''' *'''[[Microduino-USBTTL/zh]]''' *'''[[Microduino-ENC28J60/zh]]''' *'''[[Microduino-RJ45/zh]]''' *其他硬件设备 **USB数据连接线 一根 ==动态IP地址== 我们大部分人在家上网都是用一些网络服务提供商的服务,方正,电信之类的。它们每次分派给我们的地址都是动态的,随时都有可能在变。 所以给访问设备打来了不便。 ==动态DNS== 在互联网上你可以找到免费的动态DNS(DDNS)服务:他允许你将你选择的域名和一个IP地址绑定,并且可以随时更新IP地址(绑定不同的IP地址)。 更新可以有不同的方法: *在你的PC上用一个客户端更新; *在你的路由器上应用DDNS功能; *让Arduino为我们做这个事情。 ==NO-IP== 应用比较多的动态域名服务商之一是NO-IP。 如果你注册了NO-IP的免费服务,你最多可以设置5台主机,使用Hosts/重定向功能。 [[File:noipPhoto.jpg|600px|center|thumb]] 在这个教程,我注册了以下域名:enctutorial.no-ip.info。 ==动态域名客户端== 每个动态域名客户端,执行以下步骤: *得到实际的公网IP。 *公网IP和动态域名服务器注册的IP地址进行比较。 *如果不同,通过服务提供商的API更新DNS记录。 ==原理图== *Microduino-ENC28J60 *Microduino-RJ45 *Microduino-Core *Microduino-USBTTL 层层堆叠,再插上网线。 如下图所示: [[File:MicroduinoENCShow.jpg|600px|center|thumb]] ==程序== [https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_ENC/ENCnetworksix ENCnetworksix] ==调试== 步骤一:首先需要下载EtherCard库:https://github.com/jcw/ethercard 放到你的IDE的libraries文件夹中,重启IDE。 步骤二:解释一下代码: 公网IP: 要获得实际的公网IP,这里有个网址写了一个简单的PHP页面: [[File:getPublicIP.jpg|600px|center|thumb]] Microduino浏览这个页面获得实际的公网IP。 DNS记录和比较: //程序用dnsLookup()方法获取域名绑定的IP地址。然后将结果转换成一个字符串,与用上面方法获得的实际公网IP地址用compareTo()方法进行比较: if(!ether.dnsLookup(noIP_host)) { [...] } else { for(int i = 0; i < 4; i++) { dnsIp = dnsIp + String(ether.hisip[i]); if(i < 3) dnsIp = dnsIp + "."; } if(actualIp.compareTo(dnsIp) == 0) { Serial.println("No update needed :)"); [...] } else { Serial.println("Update needed :("); actual_status = STATUS_NOIP_NEEDS_UPDATE; } 认证: NO-IP在更新DNS记录前要进行身份认证。在代码中定义了一个常量: [[File:NoIPAuth.jpg|600px|center|thumb]] 这个值是用户名:密码字符串,必须用base64编码,我们使用在线的编码器:http://tuxgraphics.org/~guido/javascript/base64-javascript.html [[File:onlineEncode.jpg|600px|center|thumb]] 步骤三:下载代码并编译通过。 步骤四:测试一下看看能不能访问到你的Microduino. ==结果== Microduino会定期的获得动态分给它的公网IP,并比较和更新no-ip网站上的ip地址,使得Microduino可以被访问。 ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
Microduino ENC网络(六)/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息