การทดลองนี้มีจุดประสงค์เพื่อทดสอบว่า ESP8266 สามารถควบคุมจาก PC ผ่าน IP ของ ESP8266 ได้หรือไม่
อุปกรณ์
1.LED 2.ESP8266 3.สายจัมป์เปอร์ 4.Notebook 5.โทรศัพท์ที่สามารถแชร์ Wifi ได้
วิธีการทดลอง
1.Load Code ลงบอร์ด 2.ต่อ LED ตาม GPIO ที่ได้เขียนไว้ใน Code 3.แชร์ Wifi จากโทรศัพท์ของเรา 4.ทดสอบเข้า IP ของ ESP8266 ด้วย Browser 5.ลองกด Switch LED ON ,LED OFF
Code
#include#define LED D0 //กำหนดขาที่ต่อ LED เป็นขา D0 const char* ssid = "sleep"; //กำหนด SSID (อย่าลืมแก้เป็นของตัวเอง) const char* password = "22222222"; //กำหนด Password(อย่าลืมแก้เป็นของตัวเอง) unsigned char status_led = 0; //กำหนดตัวแปร ที่เก็บค่าสถานะของ LED WiFiServer server(80); //กำหนดใช้งาน TCP Server ที่ Port 80 void setup() { Serial.begin(115200); //เปิดใช้ Serial pinMode(LED, OUTPUT); //กำหนด Pin ที่ต่อกับ LED เป็น Output Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); //เชื่อมต่อกับ AP while (WiFi.status() != WL_CONNECTED) //รอการเชื่อมต่อ { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //แสดงข้อความเชื่อมต่อสำเร็จ server.begin(); //เปิด TCP Server Serial.println("Server started"); Serial.println(WiFi.localIP()); // แสดงหมายเลข IP ของ Server } void loop() { WiFiClient client = server.available(); //รอรับ การเชื่อมต่อจาก Client if (!client) { //ถ้าไม่มี Client เข้ามาให้เริ่มกับไปวน loop รอรับใหม่ return; } Serial.println("new client"); while (!client.available()) { delay(1); } String req = client.readStringUntil('\r'); //อ่านค่าที่ได้รับจากclient จากข้อมูลแรกถึง ‘\r’ Serial.println(req); //แสดงค่าที่ได้รับทาง Serial client.flush(); if (req.indexOf("/ledoff") != -1) //ตรวจสอบว่า data ที่เข้ามามีข้อความ”/ledoff”หรือไม่ { status_led = 0; //ถ้ามีให้กำหนดค่า ในตัวแปรใน status_led=0 digitalWrite(LED, HIGH); //ให้ LED ดับ Serial.println("LED OFF"); } else if (req.indexOf("/ledon") != -1) //ตรวจสอบว่า data ที่เข้ามามีข้อความ”/ledon”หรือไม่ { status_led = 1; //ถ้ามีให้กำหนดค่า ในตัวแปรใน status_led=1 digitalWrite(LED, LOW); //ให้ LED ติด Serial.println("LED ON"); } String web = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; web += "\r\n"; web += "\r\n"; web += " LED Status
\r\n"; web += "\r\n"; if(status_led==1) web += "LED On\r\n"; else web += "LED Off\r\n"; web += "
\r\n"; web += "\r\n"; web += "\r\n"; web += "\r\n"; web += "\r\n"; web += "
\r\n"; web += "\r\n"; web += "\r\n"; web += "\r\n"; web += "\r\n"; web += "\r\n"; client.print(web); }
0 ความคิดเห็น:
แสดงความคิดเห็น