【arduino for esp8266】ESP8266连接服务器实现远程控制LED
本帖最后由 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;
//Serial.println(valueread);
if(line=='3' & line=='0' & line=='1')
{
digitalWrite(relay1,HIGH);
Serial.println("led on");
}
if(line=='3' & line=='0' & line=='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)就可以实现远程控制了
:lol:lol:lol:lol:lol 8266挺好的,又很方便,只是性能真心不怎么样。容易重启啊。对电源要求也高。前段做了一个小发声的测试。一直循环8266偶尔就会自己重启,同样的程序在 arduino 328上面就很稳定. coolcxm 发表于 2016-12-7 10:14
8266挺好的,又很方便,只是性能真心不怎么样。容易重启啊。对电源要求也高。前段做了一个小发声的测试。一 ...
我用着还不错啊,挺稳定的啊,你是用arduino for esp8266烧的吗? http://www.arduino.cn/thread-31520-1-1.html
这个贴子程序你运行试下。反正我是会重启。
请发个ESP8266WiFi库文件,谢谢 我用ESP-12怎么没办法下载呢?编译没问题下载就不行,板选择的NODEMCU-1.0(ESP-12E),gpio也接地了,还有就是sid nid填在哪里,程序里我没找到呢?只有apikey怎么控制设备呢? 504835618 发表于 2016-12-9 22:57
请发个ESP8266WiFi库文件,谢谢
http://www.arduino.cn/thread-17895-1-1.html
看这个帖子 504835618 发表于 2016-12-9 23:09
我用ESP-12怎么没办法下载呢?编译没问题下载就不行,板选择的NODEMCU-1.0(ESP-12E),gpio也接地了,还有就 ...
http://jcck.online/phpwind/read.php?tid=2
看一下这个帖子 谢谢,已解决,很不错的物联平台,推荐大家去看看 #include <ESP8266WiFi.h>这个头文件哪里找的?能分享下嘛,还是能直接用???谢谢了 靳靳 发表于 2016-12-16 03:42
#include 这个头文件哪里找的?能分享下嘛,还是能直接用???谢谢了
先看一下这个帖子搭一下arduino for esp8266的环境 http://www.arduino.cn/thread-17895-1-1.html 谢了,弄好了,太感谢了
:D 请问该怎样写代码才能让8266把传感器采集到的数据上传到自建服务器上,我是用USR-TCP233-Test创建的TCP Server?局域网ip 丶陪妳看流星 发表于 2016-12-21 21:24
请问该怎样写代码才能让8266把传感器采集到的数据上传到自建服务器上,我是用USR-TCP233-Test创建的TCP Ser ...
改一下服务器的ip和端口号
页:
[1]
2