【酱菜创客】ESP8266连接服务器实现远程控制LED灯

本教程是用ESP8266实现远程控制LED灯的亮/灭,只要学会了控制LED灯,就可以控制继电器、电机等很多东西噢
开发之前大家需要先搭好arduino for esp8266 的开发环境噢,具体可以看下面两个大神写的帖子

http://www.arduino.cn/thread-17895-1-1.html

http://www.arduino.cn/thread-17896-1-1.html

1、硬件:
可以选择以下的任一种
1ESP8266-01 ~13 + USB  TTL串口模块(如PL2303CH340
2ESP8266开发板或NodeMCU开发板 + USB数据线
硬件连接如下
ESP8266-01 ~13 + USB  TTL串口模块(如PL2303CH340
1)如果wifi块是ESP8266-01的按以下接线:(按烧写模式接线)
烧写模式接线方法:(用USBTTL串口连接模块与PC)
esp8266-01         u转串模块
VCC-----------3.3
GND----------GND
GPIO0--------GND
CH_PD--------3.3
RX-------------TX
TX-------------Rx
其余引脚为空。
烧写模式接线方法:烧写模式时需要将gpio0接地,工作模式时gpio0悬空
(注意有时8266需要独立供电,不直接在ttl取电,很多出现问题都在供电上,别对自己的电源太自信)
【酱菜创客】ESP8266连接服务器实现远程控制LED灯_第1张图片 




(2)如果wifi模块是ESP8266-07或12的按以下接线:
【酱菜创客】ESP8266连接服务器实现远程控制LED灯_第2张图片
2、物联平台 
           这里我用的是 酱菜创客 的服务器,免费提供接口,用了一段时间感觉还不错,比较稳定,控制页面设计的也不错,还有定时功能噢。开发之前大家需要去酱菜创客(www.jcckiot.com)注册申请apikey和添加设备,在程序上换成自己的apikey、sid和nid。
3、代码:
#include 
 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);
}

大家把代码烧录进8266,烧写完成后把LED的正极接GPIO2,LED的负极接地
最后,进入酱菜创客(www.jcckiot.com)就可以控制了噢

【酱菜创客】ESP8266连接服务器实现远程控制LED灯_第3张图片 

你可能感兴趣的:(ESP8266)