|
本帖最后由 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的按以下接线:
代码: - #include <ESP8266WiFi.h>
- WiFiClient client;
- #define relay1 2 //继电器连接在8266的GPIO2上
- const char *ssid     = "xxxx";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
- const char *password = "xxxxxxxxxxx";//你要连接的wifi密码
- const char *host = "www.jcckiot.com";//酱菜创客服务器IP
- const int httpPort =8266;//端口号
- String line ="";
- int m=0;
- void setup() {
-   Serial.begin(115200);
-   delay(10);
-   pinMode(relay1,OUTPUT);
-   // We start by connecting to a WiFi network
-   Serial.println();
-   Serial.println();
-   Serial.print("Connecting to ");
-   Serial.println(ssid);
-   
-   WiFi.begin(ssid, password);
-   
-   while (WiFi.status() != WL_CONNECTED) {
-     delay(500);
-     Serial.print(".");
-   }
-   Serial.println("");
-   Serial.println("WiFi connected");  
-   Serial.println("IP address: ");
-   Serial.println(WiFi.localIP());
-   while (!client.connect(host, httpPort)) {
-     Serial.println("connection failed");
-     //return;
-     delay(500);
-   }
-   Serial.print("connecting to ");
-   Serial.println(host);
-   client.write("mode=bind&apikey=你的apikey&data={ck001000bind}\r\n");//绑定apikey,修改成你自己的apikey
-   delay(10);
- }
- //int value = 0;
- void loop() {
-   while(client.available()){
-     String line = client.readStringUntil('\r');
-      Serial.println(line);  
-     //valueread=line[47];
-     //Serial.println(valueread);
-     
-     if(line[5]=='3' & line[8]=='0' & line[9]=='1')
-     {
-       digitalWrite(relay1,HIGH);
-       Serial.println("led on");
-      }
-      if(line[5]=='3' & line[8]=='0' & line[9]=='0')
-     {
-       digitalWrite(relay1,LOW);
-       Serial.println("led off");
-      }
-   }
-   
- String line ="";
-   m++;
-   if(m%40==0)
-   {
-     client.write("mode=up&apikey=你的apikey&data={ck003000life}\r\n");//发送心跳消息,修改成你自己的apikey
-     m=0;
-    }
-   delay(500);
- }
复制代码
烧写程序:
最后,进入酱菜创客(www.jcckiot.com)就可以实现远程控制了
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|