作者:chenyuechi | 更新时间:2016-05-29 | 浏览量:6917
通过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); }