作者:chenyuechi | 更新时间:2016-05-29 | 浏览量:7277
通过ESP8266连接贝壳物联服务,实现远程控制LED灯亮灭,并将结果反馈至控制界面。
ESP8266-01 ×1
面包板 ×1
杜邦线(公对母) ×5
电阻10K ×2
LED灯 ×1
面包板跳线 ×4
三、软件
首先下载arduino IDE 百度网盘:http://pan.baidu.com/s/1qWSpA92
安装arduino成功后,再根据arduino中文社区一位大神的教程配置一下环境:http://www.arduino.cn/thread-17895-1-1.html
如果wifi模块是ESP8266-01的按以下接线:(按烧写模式接线)
运行模式接线方法:(用USB转TTL串口连接模块与PC)
esp8266-01 u转串
VCC-----------3.3
GND----------GND
CH_PD--------3.3
RX-------------TX
TX-------------Rx
GPIO2---------LED正极
GND------------LED负极
其余引脚为空。
烧写模式接线方法:烧写模式时需要将gpio0接地,工作模式时gpio0悬空
(注意有时8266需要独立供电,不直接在ttl取电,很多出现问题都在供电上,别对自己的电源太自信)
参考这篇帖子上的说明进行接线:http://www.arduino.cn/forum.php?mod=viewthread&tid=17896&page=1&extra=#pid148026
四、代码
#include <ESP8266WiFi.h>
WiFiClient client;
#define relay1 2 //LED连接在8266的GPIO2上
const char *ssid = "*****";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
const char *password = "**********";//你要连接的wifi密码
const char *host = "121.42.180.30";
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());
const int httpPort =8181;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
Serial.print("connecting to ");
Serial.println(host);
client.write("{\"M\":\"checkin\",\"ID\":\"***\",\"K\":\"*******\"}\r\n");//登陆设备,修改成自己的ID和key
delay(10);
}
void loop() {
char valueread;
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
int i;
for(i=0;i<=150;i++)
{
if((line[i]=='o') &&( line[i+1]=='n'))
{
digitalWrite(relay1,HIGH);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"ok\"}\r\n");
}
if((line[i]=='o') && (line[i+1]=='f'))
{
digitalWrite(relay1,LOW);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"ok\"}\r\n");
}
}
}
client.write("{\"M\":\"say\",\"ID\":\"***\",\"C\":\"123456\"}\r\n");//修改自己的ID,向设备发送信息,防止掉线
delay(2000);
}