แก้ดค้ดให้หน่อยครับ ตอนนี้ บอร์ดเชื่อมต่อ Wi-Fi แล้วจอLDC แสดงผลเป็น ON แล้วพอปิด Wi-Fi จอแสดงผลยังเป็น ON อยู่ครับ อยากให้เวลา ปิดWi-Fi จอแสดงผลเป็นOFF ครับ
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, D2, D1);
const char* ssid = "GTXBRC";
const char* password = "22222222";
WiFiServer server(80);
int val1 = 1;
int val2 = 1;
int val3 = 1;
int val4 = 1;
void setup() {
Serial.begin(9600);
delay(10);
lcd.begin();
lcd.backlight();
lcd.print("WELCOME !!!");
lcd.setCursor(0, 1);
lcd.print("STATUS: OFF");
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(D8, OUTPUT);
digitalWrite(D5, 1);
digitalWrite(D6, 1);
digitalWrite(D7, 1);
digitalWrite(D8, 1);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
lcd.clear();
lcd.print("Smart PlugBy B.T");
lcd.setCursor(0, 1);
lcd.print("STATUS: ON");
lcd.setCursor(0, 2);
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
// Match the request
// ch1
if (req.indexOf("/?ch1=0") != -1)
val1 = 1;
else if (req.indexOf("/?ch1=1") != -1)
val1 = 0;
// ch2
else if (req.indexOf("/?ch2=0") != -1)
val2 = 1;
else if (req.indexOf("/?ch2=1") != -1)
val2 = 0;
// ch3
else if (req.indexOf("/?ch3=0") != -1)
val3 = 1;
else if (req.indexOf("/?ch3=1") != -1)
val3 = 0;
// ch4
else if (req.indexOf("/?ch4=0") != -1)
val4 = 1;
else if (req.indexOf("/?ch4=1") != -1)
val4 = 0;
else {
Serial.println("invalid request");
client.stop();
return;
}
// Set GPIO2 according to the request
digitalWrite(D5, val1);
digitalWrite(D6, val2);
digitalWrite(D7, val3);
digitalWrite(D8, val4);
client.flush();
// Prepare the response
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO is now ";
s += "\n";
client.print(s);
delay(1);
Serial.println("Client disonnected");
}
ดูโคดบรรทัดนี้ครับ
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
อยากให้ดูการใช้งานตรงนี้ WiFi.status() เป็นการเช็คสถานะของ wifi
ใช้ if เช็คว่าถ้าสถานะไม่ได้เชื่อมต่อ ให้ปิดจอหรือแสดงข้อความที่ lcd ตามที่ออกแบบไว้ครับ
ใช้ตัวไหนบ้าง ขอเลขที่สั่งซ์้อด้วย จะได้แนะนำให้ได้ครับ