极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29355|回复: 10

乐联网应用 - 通过长连接控制arduino设备(W5100+UNO)

[复制链接]
发表于 2013-6-19 16:20:45 | 显示全部楼层 |阅读模式
本帖最后由 laoliu1982 于 2013-6-19 16:21 编辑

代码由瘦网虫提供。

简单介绍一下这个功能能干什么事情,之前发的帖子都需要公网地址或者可以在公网入口做NAT映射,现在完全不需要了。

1 可以通过乐联网平台控制你自己的arduino设备,只要设备在网上就行,关于控制以后干嘛,就要自己想了。(点灯是最无聊的想法了,呵呵),乐联网提供了很多控制方式,比如说定时控制啥的。可以自己捡着好玩的尝试一下。

2 通过我们开放的api,可以开发自己的应用,这时候把乐联网平台作为一个提供api的中介就行了。可以定制出很多类似定时开关操作一类的第三方应用。

之前做过一个PC及软件的长连接演示:http://www.lewei50.com/home/Case/114 ,现在瘦网虫把这个软件的功能用arduino实现了(网络接入使用w5100)

顺便说一下,我们的app开源了,https://github.com/lewei50/LeweiApp ,欢迎大家添砖加瓦,对代码有贡献的我们会送出小礼物。

开始进入正题
------------------------------------------------------------万恶的分界线--------------------------------------------------------------

步骤:

1 github上面下载代码 https://github.com/lewei50/LeweiTcpClient  选择zip 下载代码。

2 把代码放到 arduino-1.0.1libraries 里面,文件夹改名为leweitcpclient

3 example/leweitcpclient 打开代码



4 修改代码里的usrkey

简单解释一下代码与乐联网设置的关系

void setup()

{

  Serial.begin(9600);

  client = new LeweiTcpClient(LW_USERKEY, LW_GATEWAY);





  //同时在setup里面设置好自己写的函数与网站写的函数名的对应关系。



//uf1里面的test1是自己定义的函数名,见下一页,后面的”testFunction”是网站上设置的方法名

  UserFunction uf1(test1,"testFunction");

  client->addUserFunction(uf1);



//我设置的5个测试方法分别对应了1-5个参数。

//例如testFunction2





//例如testFunction5





//据我了解,现在只支持5个参数,不过貌似5个参数够用狠了。



/*

  UserFunction uf2 (test2,"testFunction2");

  client->addUserFunction(uf2);

  UserFunction uf3 (test3,"testFunction3");

  client->addUserFunction(uf3);

  UserFunction uf4 (test4,"testFunction4");

  client->addUserFunction(uf4);

  UserFunction uf5 (test5,"testFunction5");

  client->addUserFunction(uf5);

*/



}



void loop()

{

//loop里面没什么,就一句话,keepOnline(),别掉线了,掉线就不能实时反向控制了。

client->keepOnline();

}



//下面的test1-test5分别对应网站上1-5的函数,分别有1-5个参数。

//function test1 use 1 parameter,on the website,it point to "p1"

void test1(char * p1)

{

Serial.println("test function recall1");

//现在可以发送数据了,支持String/int/double/float

   

    client->sendSensorValue("tcp1",129);



  Serial.println(p1);

}

//function test2 use 2 parameter,on the website,it point to "p1,p2"

void test2(char * p1,char * p2)

{

  Serial.println("test function recall2");

  Serial.println(p1);

  Serial.println(p2);

}

void test3(char * p1,char * p2,char * p3)

{

  Serial.println("test function recall3");

  Serial.println(p1);

  Serial.println(p2);

  Serial.println(p3);

}

void test4(char * p1,char * p2,char * p3,char * p4)

{

  Serial.println("test function recall4");

  Serial.println(p1);

  Serial.println(p2);

  Serial.println(p3);

  Serial.println(p4);

}

void test5(char * p1,char * p2,char * p3,char * p4,char * p5)

{

  Serial.println("test function recall5");

  Serial.println(p1);

  Serial.println(p2);

  Serial.println(p3);

  Serial.println(p4);

  Serial.println(p5);

}





注,完整的例程可以看example->LeweiTcpClient,里面有详细的代码。

你改网站上的参数后,你的arduino就可以立刻反馈出来了。

怎么用,可以自己琢磨。库会继续完善。



Enjoy it~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-6-19 17:47:26 | 显示全部楼层
不错,大力支持一下~!
回复 支持 反对

使用道具 举报

发表于 2013-6-19 18:05:46 | 显示全部楼层
看起来不错 控制红外转接就用它做DEMO了~
http://www.geek-workshop.com/thread-4973-1-1.html

刚实现了内网的手机APP控制,正愁外网呢,这功能来的真是时候 :)
回复 支持 反对

使用道具 举报

发表于 2013-6-20 16:08:10 | 显示全部楼层
由于不同的版本的arduino运行内存不一样,对于uno板,请使用此版本的简化版分支

https://github.com/lewei50/LeweiTcpClient/tree/LeweiTcpClientLite

欢迎建议。
回复 支持 反对

使用道具 举报

发表于 2013-8-13 20:08:59 | 显示全部楼层
感谢楼主分享。
回复 支持 反对

使用道具 举报

发表于 2013-11-2 09:18:12 | 显示全部楼层
也就是说帖子 http://www.geek-workshop.com/for ... thread&tid=3576 中所说的同一网段和不同网段不用考虑了?控制手机里的API地址应该是哪一个呢?请楼主解释一下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2014-11-6 09:10:18 | 显示全部楼层
ntwhq 发表于 2013-11-2 09:18
也就是说帖子 http://www.geek-workshop.com/forum.php?mod=viewthread&tid=3576 中所说的同一网段和不同网 ...

你回复的链接里面的方法也可以用,但是已经过时了,不建议用了。
用更简单、更强大、穿透力更强的方法不是更好?
回复 支持 反对

使用道具 举报

发表于 2014-12-4 10:16:49 | 显示全部楼层
瘦网虫 发表于 2014-11-6 09:10
你回复的链接里面的方法也可以用,但是已经过时了,不建议用了。
用更简单、更强大、穿透力更强的方法不 ...

请问是什么方法呢?谢谢!
回复 支持 反对

使用道具 举报

发表于 2015-3-27 11:55:18 | 显示全部楼层
厉害厉害,现在我看好些都和微信关联了,可以的话希望楼主试试,之后坐等楼主赐教
回复 支持 反对

使用道具 举报

发表于 2015-10-11 10:46:57 | 显示全部楼层
为什么我的总是通不过?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2017-8-3 11:33:48 | 显示全部楼层
请问大神还有用乐联网吗?小弟有事请教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 10:13 , Processed in 0.060196 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表