作者:yjf | 更新時間:2020-12-25 | 瀏覽量:675
#include <ESP8266WiFi.h>
WiFiClient client;
const int relay1 =D3;//#define relay1 D3(原來的代碼不行,改了就可以控制了)//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]=='s') &&( line[i+1]=='t'))//這里需要修改為stop才可以控制
{
digitalWrite(relay1,HIGH);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"ok\"}\r\n");
}
if((line[i]=='p') && (line[i+1]=='l'))//這里需要修改為Play才可以控制
{
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);
}
開始使用網站的代碼一直不行,研究好久改了幾個地方可以控制了,但是現在有個問題,控制延時5秒左右,不知道是什么情況,請大家參謀參謀。。。謝謝嘻嘻嘻
void loop() {
delay(5);
//定時檢查在線狀態,兼做心跳
if (millis() - lastCheckStatusTime > statusInterval) {
checkStatus();
}
//定時上傳光照數據
if (millis() - lastUpdateTime > updateInterval) {
int sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0, 512, 0, 100);
update1(DEVICEID, INPUTID, sensorValue);
lastUpdateTime = millis();
}
//監聽esp01s透傳過來的服務器指令
if (Serial.available()) {
String wifiInputString = Serial.readStringUntil('\n');
processWifiMessage(wifiInputString);
}
}