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