
💽影片名稱:[Arduino寫程式] 第54集 - ESP8266 控制教學
🎬集數:54集💕若有問題歡迎在下方留言💬讓我知道~😋
🌐(前往YouTube觀看)-[ https://youtu.be/bMNHsHB3EUE?feature=shared ]
🌐(YouTube播放清單)-[ https://youtube.com/playlist?list=PLOrdAySpFIQonYKEWANFiVrICDQY8R0_1&feature=shared ]
🌐程式創造++ 頻道:[ https://www.youtube.com/@CCplus2561 ]🌐Arduino程式語法網頁:[ https://www.86duino.com/?page_id=2255&lang=TW ]
[程式碼]
| EX01: LED燈控制 |
#include <ESP8266WiFi.h> //ESP8266 網路函式庫
char* i;
char* myStrings[]={"LED01 HIGH","LED01 LOW","LED02 HIGH","LED02 LOW"};
//-----------------[變更網路名稱]-------------------------------
const char* ssid = "SSID"; //wifi名稱(熱點帳號)
const char* password = "pass"; //wifi密碼(熱點密碼)
//------------------------------------------------------------
WiFiServer server(80); //開啟port80
void setup() {
Serial.begin(115200); //序列阜速度115200
delay(10);
//-----------------[宣告腳位]----------------------------------
pinMode(4, OUTPUT); //pin2為輸出模式
pinMode(2, OUTPUT); //pin4為輸出模式
digitalWrite(4, 0); //預設為LOW
digitalWrite(2, 0); //預設為LOW
//------------------------------------------------------------
Serial.println(); //下一行
Serial.println(); //下一行
Serial.print("[紀錄] 連接網路中..."); //連接網路中
Serial.println(ssid);
WiFi.begin(ssid, password); //開始連線
while (WiFi.status() != WL_CONNECTED) { //判斷是否連線成功
delay(500);
Serial.print("."); //如果未成功持續顯示"."
}
Serial.println(""); //如果連線成功
Serial.println("[紀錄] 連線成功"); //顯示連線成功
server.begin(); //開啟網路伺服器
Serial.print("[訊息] 主機IP碼:"); //顯示伺服器啟動
Serial.print(WiFi.localIP()); //顯示伺服器IP碼
Serial.println("");
}
void loop() {
WiFiClient client = server.available(); //確認是否連線成功
if (!client) { //如果未連線到 跳出loop迴圈
return;
}
Serial.println("[訊息] 等待新動作"); //等待訊息
while(!client.available()){
delay(1);
}
String req = client.readStringUntil('\r'); //收到訊息儲存至req
Serial.println(req); //顯示req訊息
client.flush();
//-----------------[程式編寫]----------------------------------
if (req.indexOf("LED01/1") != -1){ //如果收到/LED/0
digitalWrite(4,2);
i=myStrings[0];
}
else if (req.indexOf("LED01/0") != -1){ //如果收到/LED/1
digitalWrite(4,0);
i=myStrings[1];
}
else if (req.indexOf("LED02/1") != -1){ //如果收到/LED/1
digitalWrite(2,1);
i=myStrings[2];
}
else if (req.indexOf("LED02/0") != -1){ //如果收到/LED/1
digitalWrite(2,0);
i=myStrings[3];
}
else { //如果收到其他訊息
Serial.println("[紀錄] 無指令"); //顯示無指令
client.stop();
return;
}
//------------------------------------------------------------
client.flush();
String message = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n";
message += i;
message += "</html>\n"; //以HTML格式傳給網頁
client.print(message); //回傳發送訊息
delay(1);
Serial.println("[紀錄] 完成動作"); //結束連線
}
|
請先 登入 以發表留言。