寫程式54.jpg

💽影片名稱:[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("[紀錄]  完成動作");                 //結束連線
}

創作者介紹
創作者 Code Create++ 的頭像
程式創造++

Code Create++

程式創造++ 發表在 痞客邦 留言(0) 人氣( 0 )