作者:chenyuechi | 更新時間:2016-05-29 | 瀏覽量:6487
通過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); }