查看“Microduino ENC网络(三)/zh”的源代码
←
Microduino ENC网络(三)/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language | Microduino_ENC_Network_(3)}} {| style="width: 800px;" |- | ==目的== 本教程将教大家如何向一个网站发送数据和接收该网站的返回数据。 ==设备== *'''[[Microduino-Core/zh]]''' *'''[[Microduino-USBTTL/zh]]''' *'''[[Microduino-ENC28J60/zh]]''' *'''[[Microduino-RJ45/zh]]''' *其他硬件设备 **USB数据连接线 一根 ==DNS== 通常我们连接一个网站是键入他的域名(如http://www.microduino.cc),我们的电脑,会通过一个dns服务器将他的域名解析为相应ip来进行连接。 在Microduino中配置你网络对应的dns服务器地址是非常重要的: 如果你的Microduino是采用DHCP服务器来进行配置,通常DNS服务器地址也是自动获取的。 如果是静态配置,那么你调用 staticSetup()方法时需要包含DNS服务器地址。 ==原理图== *Microduino-ENC28J60 *Microduino-RJ45 *Microduino-Core *Microduino-FT232R 层层堆叠,再插上网线。 如下图所示: [[File:MicroduinoENCShow.jpg|600px|center|thumb]] ==程序== https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_ENC/ENCnetworkthree ==调试== 步骤一:首先需要下载EtherCard库:https://github.com/jcw/ethercard 放到你的IDE的libraries文件夹中,重启IDE。 步骤二:解释一下代码: 为了使下面的例子更实际,这里有一个简单的php网页,每次连接将随机返回一句格言,地址如下http://www.lucadentella.it/demo/aphorisms.php 我们编写的代码可以获得这些格言并输出到串口。 在代码中,用dnsLookup()方法验证域名服务器是否正常。 EtherCard库提供了一个非常方便的方法browseUrl()来连接一个网站。 browseUrl()方法需要一些参数: prog_char urlbuf,地址的 固定部分; const char * urlbuf_varpart,地址的变量部分; prog_char hoststr,网站的名称; void (*callback)(byte,word,word)),这是一个回调函数名称,连接结束时调用的函数。 地址分为两部分,以优化内存的利用率:静态部分存储在flash中(PSTR()命令),以节省RAM空间。 '''回调函数:''' 回调函数包含连接结束时执行的一个动作,在这个例子,是在串口打印出网站返回的格言。 你可以选择任意的函数名称,但必须声明如下的参数: static void response_callback (byte status, word off, word len); 第一个参数为连接的状态,第二个参数为响应存储在buffer中的偏移量,第三个参数为响应的长度。 要理解偏移量(OFF)参数的含义,你必须要注意的以太网连接发送和接收的所有数据存储在我们定义的缓冲区中: byte Ethernet::buffer[700]; 你收到数据,整个数据包(包含头文件及校验字段等),都存储在这个缓冲区中,偏移量值告诉我们从那个字段开始存储这个数据包,及哪儿是我们收到的网页响应。 下面是一个回调函数在串口打印网页的响应: static void response_callback (byte status, word off, word len) { Serial.print((const char*) Ethernet::buffer + off); } 步骤三:下载代码并编译通过。 步骤四:看看你的串口有啥反应。 ==结果== 如果没其他问题的话,你应该可以看到如下信息: [[File:responseCallback.jpg|600px|center|thumb]] 格言会随机一行一行的显示给你。 ==视频== |}
该页面使用的模板:
模板: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
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息