极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 40092|回复: 17

【arduino for esp8266】ESP8266连接服务器实现远程控制LED

[复制链接]
发表于 2016-12-6 11:14:00 | 显示全部楼层 |阅读模式
本帖最后由 chenyuechi 于 2017-7-18 11:05 编辑

        本教程是通过ESP8266连接云服务器实现远程控制LED灯的亮/灭,只要学会了控制了LED灯,就可以控制其他设备了,开发之前大家需搭好arduino for esp8266的开发环境,具体大家可以看下面两篇帖子:
           http://www.arduino.cn/thread-17895-1-1.html
           http://www.arduino.cn/thread-17896-1-1.html
        搭好arduino for esp8266开发环境后,大家还需要一个服务器,这样才能实现远程控制,这里我用的是酱菜创客(www.jcckiot.com),还有定时功能噢,大家先要去酱菜创客注册申请apikey和添加设备。在代码上修改成你自己的apikey.
       esp8266出现以来针对不同的应用环境发布了多个版本,如esp8266-01~esp8266-12e等等不同的版本,但是他们只是应用范围的不同在开发上没有多大区别。几个常见的8266版本esp8266-01、esp8266-12     
1、硬件:可以选择以下的任一种
(1)ESP8266-01 ~13 + USB 转 TTL串口模块(如PL2303、CH340)
(2)ESP8266开发板或NodeMCU开发板 + USB数据线
硬件连接如下

ESP8266-01 ~13 + USB 转 TTL串口模块(如PL2303、CH340)
(1)如果wifi模块是ESP8266-01的按以下接线:(按烧写模式接线)
烧写模式接线方法:(用USB转TTL串口连接模块与PC)
esp8266-01         u转串
VCC-----------3.3
GND----------GND
GPIO0--------GND
CH_PD--------3.3
RX-------------TX
TX-------------Rx
其余引脚为空。
烧写模式接线方法:烧写模式时需要将gpio0接地,工作模式时gpio0悬空
(注意有时8266需要独立供电,不直接在ttl取电,很多出现问题都在供电上,别对自己的电源太自信)
(2)如果wifi模块是ESP8266-07或12的按以下接线:

代码:
  1. #include <ESP8266WiFi.h>
  2. WiFiClient client;
  3. #define relay1 2 //继电器连接在8266的GPIO2上
  4. const char *ssid&#160;&#160;&#160;&#160; = "xxxx";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
  5. const char *password = "xxxxxxxxxxx";//你要连接的wifi密码
  6. const char *host = "www.jcckiot.com";//酱菜创客服务器IP
  7. const int httpPort =8266;//端口号
  8. String line ="";
  9. int m=0;
  10. void setup() {
  11. &#160;&#160;Serial.begin(115200);
  12. &#160;&#160;delay(10);
  13. &#160;&#160;pinMode(relay1,OUTPUT);
  14. &#160;&#160;// We start by connecting to a WiFi network

  15. &#160;&#160;Serial.println();
  16. &#160;&#160;Serial.println();
  17. &#160;&#160;Serial.print("Connecting to ");
  18. &#160;&#160;Serial.println(ssid);
  19. &#160;&#160;
  20. &#160;&#160;WiFi.begin(ssid, password);
  21. &#160;&#160;
  22. &#160;&#160;while (WiFi.status() != WL_CONNECTED) {
  23. &#160;&#160;&#160;&#160;delay(500);
  24. &#160;&#160;&#160;&#160;Serial.print(".");
  25. &#160;&#160;}

  26. &#160;&#160;Serial.println("");
  27. &#160;&#160;Serial.println("WiFi connected");&#160;&#160;
  28. &#160;&#160;Serial.println("IP address: ");
  29. &#160;&#160;Serial.println(WiFi.localIP());
  30. &#160;&#160;while (!client.connect(host, httpPort)) {
  31. &#160;&#160;&#160;&#160;Serial.println("connection failed");
  32. &#160;&#160;&#160;&#160;//return;
  33. &#160;&#160;&#160;&#160;delay(500);
  34. &#160;&#160;}
  35. &#160;&#160;Serial.print("connecting to ");
  36. &#160;&#160;Serial.println(host);
  37. &#160;&#160;client.write("mode=bind&apikey=你的apikey&data={ck001000bind}\r\n");//绑定apikey,修改成你自己的apikey
  38. &#160;&#160;delay(10);
  39. }

  40. //int value = 0;

  41. void loop() {
  42. &#160;&#160;while(client.available()){
  43. &#160;&#160;&#160;&#160;String line = client.readStringUntil('\r');
  44. &#160;&#160;&#160;&#160; Serial.println(line);&#160;&#160;
  45. &#160;&#160;&#160;&#160;//valueread=line[47];
  46. &#160;&#160;&#160;&#160;//Serial.println(valueread);
  47. &#160;&#160;&#160;&#160;
  48. &#160;&#160;&#160;&#160;if(line[5]=='3' & line[8]=='0' & line[9]=='1')
  49. &#160;&#160;&#160;&#160;{
  50. &#160;&#160;&#160;&#160;&#160;&#160;digitalWrite(relay1,HIGH);
  51. &#160;&#160;&#160;&#160;&#160;&#160;Serial.println("led on");
  52. &#160;&#160;&#160;&#160; }
  53. &#160;&#160;&#160;&#160; if(line[5]=='3' & line[8]=='0' & line[9]=='0')
  54. &#160;&#160;&#160;&#160;{
  55. &#160;&#160;&#160;&#160;&#160;&#160;digitalWrite(relay1,LOW);
  56. &#160;&#160;&#160;&#160;&#160;&#160;Serial.println("led off");
  57. &#160;&#160;&#160;&#160; }
  58. &#160;&#160;}
  59. &#160;&#160;
  60. String line ="";
  61. &#160;&#160;m++;
  62. &#160;&#160;if(m%40==0)
  63. &#160;&#160;{
  64. &#160;&#160;&#160;&#160;client.write("mode=up&apikey=你的apikey&data={ck003000life}\r\n");//发送心跳消息,修改成你自己的apikey
  65. &#160;&#160;&#160;&#160;m=0;
  66. &#160;&#160; }
  67. &#160;&#160;delay(500);
  68. }
复制代码

烧写程序:

最后,进入酱菜创客(www.jcckiot.com)就可以实现远程控制了

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2016-12-7 10:14:23 | 显示全部楼层
8266挺好的,又很方便,只是性能真心不怎么样。容易重启啊。对电源要求也高。前段做了一个小发声的测试。一直循环8266偶尔就会自己重启,同样的程序在 arduino 328上面就很稳定.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-7 12:40:38 | 显示全部楼层
coolcxm 发表于 2016-12-7 10:14
8266挺好的,又很方便,只是性能真心不怎么样。容易重启啊。对电源要求也高。前段做了一个小发声的测试。一 ...

我用着还不错啊,挺稳定的啊,你是用arduino for esp8266烧的吗?
回复 支持 反对

使用道具 举报

发表于 2016-12-7 17:13:08 | 显示全部楼层
http://www.arduino.cn/thread-31520-1-1.html
这个贴子程序你运行试下。反正我是会重启。
回复 支持 反对

使用道具 举报

发表于 2016-12-9 22:57:44 | 显示全部楼层
请发个ESP8266WiFi库文件,谢谢
回复 支持 反对

使用道具 举报

发表于 2016-12-9 23:09:08 | 显示全部楼层
我用ESP-12怎么没办法下载呢?编译没问题下载就不行,板选择的NODEMCU-1.0(ESP-12E),gpio也接地了,还有就是sid   nid填在哪里,程序里我没找到呢?只有apikey怎么控制设备呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 10:16:56 | 显示全部楼层
504835618 发表于 2016-12-9 22:57
请发个ESP8266WiFi库文件,谢谢

http://www.arduino.cn/thread-17895-1-1.html
看这个帖子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-10 10:18:04 | 显示全部楼层
504835618 发表于 2016-12-9 23:09
我用ESP-12怎么没办法下载呢?编译没问题下载就不行,板选择的NODEMCU-1.0(ESP-12E),gpio也接地了,还有就 ...

http://jcck.online/phpwind/read.php?tid=2
看一下这个帖子
回复 支持 反对

使用道具 举报

发表于 2016-12-10 15:27:44 | 显示全部楼层
谢谢,已解决,很不错的物联平台,推荐大家去看看
回复 支持 反对

使用道具 举报

发表于 2016-12-16 03:42:35 来自手机 | 显示全部楼层
#include <ESP8266WiFi.h>这个头文件哪里找的?能分享下嘛,还是能直接用???谢谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-16 14:14:29 | 显示全部楼层
靳靳 发表于 2016-12-16 03:42
#include 这个头文件哪里找的?能分享下嘛,还是能直接用???谢谢了

先看一下这个帖子搭一下arduino for esp8266的环境 http://www.arduino.cn/thread-17895-1-1.html
回复 支持 反对

使用道具 举报

发表于 2016-12-20 10:39:04 | 显示全部楼层
谢了,弄好了,太感谢了
回复 支持 反对

使用道具 举报

发表于 2016-12-21 21:24:53 | 显示全部楼层
请问该怎样写代码才能让8266把传感器采集到的数据上传到自建服务器上,我是用USR-TCP233-Test创建的TCP Server?局域网ip
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-24 11:26:35 | 显示全部楼层
丶陪妳看流星 发表于 2016-12-21 21:24
请问该怎样写代码才能让8266把传感器采集到的数据上传到自建服务器上,我是用USR-TCP233-Test创建的TCP Ser ...

改一下服务器的ip和端口号
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 05:47 , Processed in 0.053036 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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