ในช่วงไม่กี่ปีที่ผ่านมา ESP8266 เป็นดาวเด่นในโครงการ IoT หรือ ที่เกี่ยวข้อง WiFi ซึ่ง ESP8266 NodeMCU เป็นโมดูล WiFi ที่คุ้มค่ามาก โดยสามารถเชียนโปรแกรมเพื่อสร้างเว็บเซิร์ฟเวอร์แบบสแตนด์อโลนได้
โหมดการทำงานของ ESP8266
หนึ่งในคุณสมบัติที่ยอดเยี่ยมที่สุดของ ESP8266 คือไม่เพียง แต่เชื่อมต่อกับเครือข่าย WiFi ที่มีอยู่และทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ แต่ยังสามารถตั้งค่าเครือข่ายของตัวเอง เพื่อให้อุปกรณ์อื่น ๆ สามารถเชื่อมต่อโดยตรงและเข้าถึงได้โดยเว็บเพจ สิ่งนี้เป็นไปได้เพราะ ESP8266 สามารถทำงานในโหมดต่าง ๆ ได้ 3 โหมด คือ โหมด AP โหมด STA และโหมด AP & STA โดยในแต่ละโหมดมีความแตกต่างกันดังนี้
- โหมด AP - เป็นโหมดที่จะต้องรอให้มีอุปกรณ์มาเชื่อมต่อจึงจะสามารถรับส่งข้อมูลกันได้
- โหมด STA - เป็นโหมดที่กำหนดให้ ESP8266 ไปเชื่อมต่อกับอุปกรณ์อื่น ๆ เช่น เร้าเตอร์ แล้วรับส่งข้อมูลระหว่างเครื่องในวงแลนได้
- โหมด AP & STA - เป็นโหมดที่สามารถทำงานได้ทั้ง 2 อย่างภายในเวลาเดียวกัน แต่ความสเถียรจะลดลง และทำให้ใช้กำลังไฟฟ้ามากขึ้น
- ในการใช้งานควบคุมอุปกรณ์ต่าง ๆ ที่อยู่ในระยะใกล้ และต้องย้ายสถานที่ใช้งานที่บ่อย เช่น นำไปใช้งานควบคุมหุ่นนต์ ควรจะใช้งานในโหมด AP
แบบ Station (STA) Mode
โหมด STA - เป็นโหมดที่กำหนดให้ ESP8266 ไปเชื่อมต่อกับอุปกรณ์อื่น ๆ เช่น เร้าเตอร์ แล้วรับส่งข้อมูลระหว่างเครื่องในวงแลนได้
แบบ Soft Access Point (AP) Mode
ESP8266 ที่สร้างเครือข่าย WiFi ของตัวเองและทำหน้าที่เป็นฮับ (เช่นเดียวกับเราเตอร์ WiFi) สำหรับสถานีหนึ่งสถานีหรือมากกว่านั้นเรียกว่าจุดเชื่อมต่อ (AP) ไม่เหมือนกับเราเตอร์ WiFi มันไม่มีส่วนต่อประสานกับเครือข่ายต่อสาย ดังนั้นโหมดการทำงานดังกล่าวจึงเรียกว่า Soft Access Point (soft-AP) นอกจากนี้จำนวนสถานีสูงสุดที่สามารถเชื่อมต่อได้จะถูก จำกัด ไว้ที่ 5 เท่านั้น
โหมด AP - เป็นโหมดที่จะต้องรอให้มีอุปกรณ์มาเชื่อมต่อจึงจะสามารถรับส่งข้อมูลกันได้ ในโหมด AP นั้น ESP8266 จะสร้างเครือข่าย WiFi ใหม่และตั้งค่า SSID (ชื่อเครือข่าย) และ IP ให้กับมัน ด้วย IP นี้มันสามารถส่งผ่านหน้าเว็บไปยังอุปกรณ์ที่เชื่อมต่อทั้งหมดภายในเครือข่ายของตัวเอง
ขั้นตอนการทำงาน
1. เรียนรู้การใช้งาน ESP8266 NodeMCU เบื้องต้นตามลิงค์ด้านล่าง
2. เชื่อมต่อ LED กับ ESP8266 NodeMCU
รายการอุปกรณ์ที่ใช้ (รายละเอียดคลิกตามลิงค์สินค้า)
รายการอุปกรณ์ที่ใช้ (รายละเอียดคลิกตามลิงค์สินค้า)
1. NodeMCU V2 CP2102 Lua WIFI ESP8266 ESP-12E
2. Micro USB Cable Wire 1m for NodeMCU
3. Breadboard 8.5CM x 5.5CM 400 holes
4. หลอดไฟ LED 5mm สีเหลือง
5. รีซิสเตอร์ 220 OHM 1/4W 5%
3. โค้ดการทำงานแบบ โหมด AP
ข้อดีคือ IP นี้มันที่ส่งให้แสดงผ่านหน้าเว็บ จะเป็น IP เดิม ไม่เปลี่ยนแปลง ข้อเสียคือกำหนดจุดเชื่อมต่อในเครือข่ายไม่เกิน 5 จุด
อัพโหลดโค้ดด้านล่างนี้ไปยัง ESP8266 NodeMCU
เลือกชนิดของบอร์ด : ไปที่ Tools > Board : เลือกเป็น NodeMCU 0.9 (ESP-12 Module)
เลือกพอร์ตการใช้งาน : ไปที่ Tools > Port แล้วเลือกพอร์ตที่ปรากฏ ในตัวอย่างเลือกเป็น "COM12"
กดปุ่ม เพื่ออัพโหลด หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง
เปิดหน้าต่าง Serial Monitor โดยไปที่ Tools > Serial Monitor
มุมขวาล่าง ของ Serial Monitor เลือก 115200 baud คือ ตั้งค่าความเร็วในการรับ-ส่งข้อมูล คือ 115200
แตะปุ่ม RST ที่บอร์ด ESP8266 NodeMCU เพื่อเริ่มต้นการทำงานของ ESP8266 รอจนกระทั่งที่ Serial Monitor แสดงข้อความ HTTP server started
ใช้ สมาร์ทโฟน ไปที่การตั้งค่า -> Wi-Fi
เลือกเครือข่าย Wi-Fi เป็น NodeMCU
รหัสผ่านเครือข่าย = 12345678 -> เชื่อมต่อ
แสดงการเชื่อมต่อเครือข่าย Wi-Fi เป็น NodeMCU
เปิดเว็บบราวเซอร์ ที่ URL ป้อนไอพี : 192.168.1.1
แล้วทดสอบการทำงาน
วีดีโอผลลัพธ์ โปรเจค IoT ESP8266 NodeMCU เปิด ปิด ไฟ ผ่านเว็บ
4. โค้ดการทำงานแบบ โหมด STA
ข้อดีคือ เชื่อมต่อให้แสดงผ่านหน้าเว็บ ได้หลายๆเครื่อง เท่าที่ความสามารถของเครือข่าย ข้อเสียคือต้องตรวจสอบ IP ที่จะให้แสดงผ่านหน้าเว็บ เพราะการเชื่อมต่อแต่ละครั้งอาจจะได้ IP ไม่เหมือนกัน
*** ก่อนอัพโหลดโค้ดต้องแก้ไข ***
ssid = "เครือข่าย Wi-Fi ที่ต้องการเชื่อมต่อ"
password = "รหัสผ่านเครือข่าย"
โค้ดต้นฉบับที่ยังไม่ได้แก้ไข
ทำการแก้ไข แล้วอัพโหลดโค้ดที่แก้ไขแล้ว ไปยัง ESP8266 NodeMCU
4. โค้ดการทำงานแบบ โหมด STA
ข้อดีคือ เชื่อมต่อให้แสดงผ่านหน้าเว็บ ได้หลายๆเครื่อง เท่าที่ความสามารถของเครือข่าย ข้อเสียคือต้องตรวจสอบ IP ที่จะให้แสดงผ่านหน้าเว็บ เพราะการเชื่อมต่อแต่ละครั้งอาจจะได้ IP ไม่เหมือนกัน
*** ก่อนอัพโหลดโค้ดต้องแก้ไข ***
ssid = "เครือข่าย Wi-Fi ที่ต้องการเชื่อมต่อ"
password = "รหัสผ่านเครือข่าย"
โค้ดต้นฉบับที่ยังไม่ได้แก้ไข
ทำการแก้ไข แล้วอัพโหลดโค้ดที่แก้ไขแล้ว ไปยัง ESP8266 NodeMCU
เปิดหน้าต่าง Serial Monitor โดยไปที่ Tools > Serial Monitor
แตะปุ่ม RST ที่บอร์ด ESP8266 NodeMCU เพื่อเริ่มต้นการทำงานของ ESP8266
รอจนกระทั่งที่ Serial Monitor แสดง ชื่อเครือข่าย Wi-Fi และ IP ที่นำไปใช้งาน ในตัวอย่างนี้คือ 192.168.1.41
(ก่อนทดสอบการทำงงานควรตรวจสอบ IP ทุกครั้ง เพราะแต่ละครั้งในการเชื่อมต่ออาจได้ IP ไม่เหมือนเดิม)
ใช้โทรศัพท์มือถือ (Mobile) หรือ คอมพิวเตอร์ (PC) เชื่อมต่อ WiFi ชื่อเดียวกัน กับการทำงานในข้อที่ 4 แล้วเปิดเว็บบราวเซอร์ ที่ URL ป้อนไอพีที่ได้ ในตัวอย่างคือ : 192.168.1.41
คอมพิวเตอร์ PC เครื่องอื่นๆ ที่เชื่อมต่อเครือข่ายเดียวกันก็สามารถเรียกใช้หน้าเว็บ ได้เช่นเดียวกัน
ทดสอบการทำงาน ที่ Serial Monitor จะแสดงสถานะ การเปิด ปิด ไฟ ของเรา
ผลลัพธ์การทำงานจะเหมือนกับ วีดีโอผลลัพธ์ แบบโหมด AP เช่นเดียวกัน
credit : https://lastminuteengineers.com/creating-esp8266-web-server-arduino-ide/