darkorigin 发表于 2012-5-25 16:14:52

其实感觉可以考虑另外一种方式来提交数据。就是BS模型;
单片机以访问WEB服务器来提交数据,比如以前常用的 POST方式(适合大量数据)
其他的直接用参数访问就好了嘛,服务器用一个ASP或者PHP就加上数据库就可以记录所有数据比如单片机访问
HTTP:\\xxxx.xxxx.xxx.xxx\postdata.asp?data1=xxx,date2=xxxx,date3=xxxx;
服务器记录之后以网页形式返回一个字符串,若未收到反馈字符串,就继续重发;
安全方面服务器可以通过甄别访问者的IP和MAC地址,来处理;比如反馈给客户端非法。或者直接丢弃数据。

darkorigin 发表于 2012-5-25 16:20:32

本帖最后由 darkorigin 于 2012-5-25 16:21 编辑

smallzzy 发表于 2011-12-10 19:20 static/image/common/back.gif
如果有密码,如何让程序自动输入

网页输入的密码,单片机似乎很难搞定。毕竟还涉及到post的处理了。
服务器密码记得好像可以用@来搞定
好像是
http://username@password:www.163.com/
意思就是尝试用用户名 USERNAME 和密码是 PASSWORD来访问某网站
不过大多数网站都不会用这种(至少国内如此)
FTP协议也是如此(题外话:当年玩FTP和主页空间的时候没有合适的FTP软件,就直接用IE用这种方式登陆上去,密码都不需要保存就自动啦)

darkorigin 发表于 2012-5-25 16:25:13

taotao71 发表于 2012-3-10 18:42 static/image/common/back.gif
东西不错,就是不知道价格怎么样?

30多能买到简易型的模块,自己用杜邦线连接就好了。100-150能买到网络板直接插到UNO上面(这种的一般都还带个SD卡槽。可以作为数据存放的外部存储器了,不过友情提醒:由于只支持FAT文件系统,所以不支持单个分区超过4G,如果你拿着16G的卡建议你先分好区再插入)。
感觉还是很不错的

darkorigin 发表于 2012-5-25 16:27:08

安子 发表于 2012-1-5 18:09 static/image/common/back.gif
**** 作者被禁止或删除 内容自动屏蔽 ****

arduino方面需要制作另外的程序,接收数据的。比如接收POST方式提交的数据,然后响应的。
好像坛子精华区有例子,可以控制LED的。

Chenmin 发表于 2012-6-7 18:03:40

楼主 介绍的板子 在哪里买?上个地址,谢谢。:):)

erjiang 发表于 2012-6-7 23:06:16

darkorigin 发表于 2012-5-25 16:14 static/image/common/back.gif
其实感觉可以考虑另外一种方式来提交数据。就是BS模型;
单片机以访问WEB服务器来提交数据,比如以前常用的 ...

非常好的主意。

我的建议是,使用arduino+ ethenet shield,发送到yeelink平台上做数据的存储和展现,节省了极客们学习和开发服务器的工作了,完整的教程和代码可以从下面的地方下载。

http://blog.yeelink.net/?p=34

祝玩得高兴

erjiang 发表于 2012-6-7 23:06:56

darkorigin 发表于 2012-5-25 16:20 static/image/common/back.gif
网页输入的密码,单片机似乎很难搞定。毕竟还涉及到post的处理了。
服务器密码记得好像可以用@来搞定
...

如果熟悉linux的朋友,可以用Expect这个强大的交互脚本语言实现,当然,学习稍微有些曲线。

darkorigin 发表于 2012-6-8 23:07:20

erjiang 发表于 2012-6-7 23:06 static/image/common/back.gif
非常好的主意。

我的建议是,使用arduino+ ethenet shield,发送到yeelink平台上做数据的存储和展现, ...

如果使用户ASP也很简单,好处是数据可以直接被存储到数据库,遇到大量的数据采集(比如某1组震动传感器3个月每秒数据)。分析也可以使用专业分析软件完成。
你说的使用第三方平台,数据的巨量存储就是问题了,当然,少量数据分析还是很给力的;

另外,学习了你的代码,真的不错,用POST方式可以一次性提交大量数据,还是很爽的似乎,呵呵,用在自己构建的ASP平台貌似也可以,只需要简单的数据采集整理和存储到数据库就可以。

darkorigin 发表于 2012-6-8 23:11:38

erjiang 发表于 2012-6-7 23:06 static/image/common/back.gif
如果熟悉linux的朋友,可以用Expect这个强大的交互脚本语言实现,当然,学习稍微有些曲线。

单片机上LINUX,特别是AVR单片机,基本上不用指望了,毕竟处理能力不比强悍的ARM。
登录带网页密码的编程能力需要的不是一般的强;
但是如果仅仅是服务器密码还是很简单(大多数服务器都支持匿名访问,不支持的也可以用过访问的URL格式来解决 例:http://aaa@bb:cc.net)

darkorigin 发表于 2012-6-8 23:17:56

erjiang 发表于 2012-6-7 23:06 static/image/common/back.gif
非常好的主意。

我的建议是,使用arduino+ ethenet shield,发送到yeelink平台上做数据的存储和展现, ...

ethenet shield 太贵,我的ENC28J60也才35块钱。。。
常见的WEB页面提交数据方式就是 POST 和 GET两种方式:
POST 最初被用来上传文件(以前某些服务器漏洞可以直接用匿名账户上传 木马脚本) 主要适合上传大量数据,比如文件;
GET本来是获取,但是由于ASP支持参数,也可以以访问的形式提交数据,特点是简构造单,缺点是收到URL字符数量限制,提交数据量有限。

很多第三方数据网站貌似都是POST方式。

erjiang 发表于 2012-6-9 11:50:05

本帖最后由 erjiang 于 2012-6-9 11:53 编辑

darkorigin 发表于 2012-6-8 23:17 static/image/common/back.gif
ethenet shield 太贵,我的ENC28J60也才35块钱。。。
常见的WEB页面提交数据方式就是 POST 和 GET两种方 ...

ENC这个模块,使用起来和ethernet shield一样吗?能不能直接复用httpclient库?
如果可以的话,能不能请你写一个使用教程,用ENC这个低价板子发送POST?
我把教程贴到博客里面,让更多的朋友更便宜的用这个功能。

确实很多朋友都抱怨,ethernet shield的价格是个问题,都比较贵

yyy_zc 发表于 2012-6-9 22:09:36

有连接图吗,2脚是芯片的2脚还是数字脚2

darkorigin 发表于 2012-6-9 23:03:53

本帖最后由 darkorigin 于 2012-6-9 23:12 编辑

erjiang 发表于 2012-6-9 11:50 static/image/common/back.gif
ENC这个模块,使用起来和ethernet shield一样吗?能不能直接复用httpclient库?
如果可以的话,能不能 ...

教程见本帖的第一页,我也是拾人牙慧,拿楼主的代码测试的
接线很简单,8根线,
库文件也有现成的,基本上和5100的函数兼容,只是2种模块由于函数名称完全相同,会冲突,所以LIB文件里只能有一种以太库文件。原来的库文件需要挪出来或者删除(改名无效,因为函数还是一样),因此需要同时使用2种模块会有麻烦,另外使用2个相同模块貌似也会有问题,因为中断的连接口貌似2560只有1个。。。 做路由器之类应用的朋友可以直接飘过了。
其他代码兼容你的代码。。。。(可以说是硬件透明化。呵呵) 完全不需要考虑代码(至少我目前的WEBserve测试完全通过了,压力测试没做,不过估计瓶颈还是在AVR处理器和存储空间大小上)


图片就是
http://ftp.geek-workshop.com/forum/201111/16/172003zk854z7xd8e4ek08.jpg
连接方式
http://ftp.geek-workshop.com/forum/201111/16/172004eierrfwri9xsfamq.jpg

另外提醒下: 我买这个模块到手后发现接口的顺序和之前的2个图片不完全相同,不过还好,都有标注,对着上面的表格插好就可可以了。不知道其他模块会不会有不同的线序。所以要仔细看介绍,一般板子上都有标注脚定义。千万不要不动脑子的按图索骥,损坏东西都不知道怎么搞的。

darkorigin 发表于 2012-6-9 23:04:47

本帖最后由 darkorigin 于 2012-6-9 23:06 编辑

yyy_zc 发表于 2012-6-9 22:09 static/image/common/back.gif
有连接图吗,2脚是芯片的2脚还是数字脚2

连接图直接看帖子里面有介绍

所有数字设备都是用数字IO的,网络设备基本上全都是数字的,除了电源输入线性模拟元件,其他都是数字的。包括中断。
硬件连接都是数字IO口;

erjiang 发表于 2012-6-10 19:11:14

darkorigin 发表于 2012-6-9 23:03 static/image/common/back.gif
教程见本帖的第一页,我也是拾人牙慧,拿楼主的代码测试的
接线很简单,8根线,
库文件也有现成的,基 ...

很好,webserver有个小问题,就是不能完成远程的控制。

因为NAT映射的原因,我们内网的webserver是很难从外网直接访问到的,所以完成类似远程数据共享和控制的功能就比较困难。

我会提供一个用webclient的示例程序,介绍实现将arduino+ENC/w5100模块,通过yeelink进行中转,实现从web远程控制开发板的IO口或者功能。

有了这个功能,从学校或办公室控制家里的电器,就变得非常简单啦。
页: 1 2 3 [4] 5 6 7 8 9 10
查看完整版本: arduino学习笔记26 - ENC28J60以太网模块实验