ESP8266 เป็นบอร์ด WiFi ที่สามารถทำงานได้ 3 โหมด คือ โหมด AP โหมด STA และโหมด AP & STA ในแต่ละโหมดมีความแตกต่างกันดังนี้
ในการใช้งานควบคุมอุปกรณ์ต่าง ๆ ที่อยู่ในระยะใกล้ และต้องย้ายสถานที่ใช้งานที่บ่อย เช่น นำไปใช้งานควบคุมหุ่นนต์ ควรจะใช้งานในโหมด AP
โปรโตคอลที่ใช้รับ-ส่งข้อมูล
การรับส่งข้อมูลผ่านอินเตอร์เน็ต เช่น การเข้าเว็บไซต์ การใช้บริการเกมส์ออนไลน์ จะใช้โปรโตคอลพื้นฐานอยู่ 2 ตัว คือ TCP และ UDP โดยทั้ง 2 โปรโตคอลมีความแตกต่างกันดังนี้
ขอบคุณรูปภาพจาก www.ni.com
ในบทความนี้จะเลือกใช้โปรโตคอล TCP เพราะความถูกต้องของข้อมูลสำคัญมากกว่าความเร็วในงาน IoT และงานควบคุมอุปกรณ์ต่างๆ
คำสั่งที่ควรรู้
WiFiServer::WiFiServer(port);
เป็นคำสั่งเปิดออปเจ็คใหม่เพื่อเริ่มใช้งาน TCP Server ตรงค่าพารามิเตอร์ port สามารถตั้งได้เองโดยต้องเป็นตัวเลขเท่านั้น แนะนำ 10 - 9999 ไม่ควรใช้พอร์ต 80 443 21 22
void WiFiServer::begin(void);
เป็นคำสั่งที่ต้องอยู่ใน void setup() ใช้สำหรับสั่งให้ TCP Server เริ่มการทำงาน
WiFiClient WiFiServer::available(void);
เป็นคำสั่งที่จะมีการให้ค่าของออปเจ๊ค WiFiClient ออกมา เพื่อตรวจสอบว่าขณะนี้มีคนเชื่อมต่อเข้ามาหรือไม่
ิbool WiFiClient::connected(void);
ใช้ตรวจสอบว่าขณะนี้ยังเชื่อมต่ออยู่หรือไม่
int WiFiClient::available(void);
ใช้ตรวจสอบว่ามีการส่งข้อมูลเข้ามาแล้วหรือไม่ โดยจะให้ค่ากลับเป็นขนาดข้อมูลที่ถูกเก็บไว้ในบัพเฟอร์
char WiFiClient::read(void);
เป็นคำสั่งอ่านข้อมูลออกมาจากบัพเฟอร์ทีละไบต์
ตัวอย่างโปรแกรมใช้งาน
โค้ดโปรแกรมด้านล่างนี้จะมีการเก็บข้อมูลไว้ที่ตัวแปร line โดยข้อมูลที่ส่งมาเมื่อจบแล้วจะต้องมีการขึ้นบรรทัดใหม่โดยใช้ \r\n จากนั้นจะมีการปิดการเชื่อมต่ออัตโนมัติ
การทดสอบรับ - ส่งข้อมูล
เชื่อมต่อ WiFi เข้าไปที่ตัว ESP8266 ให้เรียบร้อย (ชื่อ WiFi จะชื่อ ESP_xxxx)
ดาว์นโหลดโปรแกรม hercules ได้ที่ hercules_3-2-8.exe เปิดโปรแกรมขึ้นมา แล้วกดไปที่เมนู TCP Client กรอก Module IP เป็น 192.168.4.1 จากนั้นกรอก Port เป็น 88 เสร็จแล้วกด Connect
กรณีเชื่อมต่อสำเร็จจะขึ้น Connected ดังรูป
เปิด Serial Monitor ขึ้นมา
ในช่อง Send ลองพิมพ์ TEST<LF><CR> แล้วกด Send จะพบว่าสามารถส่งข้อมูลไปหา ESP8266 ได้แล้ว และมีการตัดการเชื่อมต่ออัตโนมัติ
ทดลองควบคุมหลอด LED
นำโค้ดด้านล่างนี้อัพโหลดเข้าบอร์ด ESP8266
เชื่อมต่อเข้าไปที่ ESP8266 แล้วใช้โปรแกรม hercules ทดลองส่ง LEDON<LF><CR> และ LEDOFF<LF><CR> จะพบว่าสามารถควบคุมหลอด LED ได้แล้ว
ส่งท้าย
บทความนี้เป็นเพียงตัวอย่างเล็ก ๆ ในขณะที่ ESP8266 มีความสามารถเยอะมากกว่านี้ครับ หวังว่าบทความนี้จะช่วยให้ท่านสามารถเรียนรู้และนำไปประยุกต์ใช้งานได้ครับ
ขอบคุณที่ติดตามอ่านมาถึงส่วนนี้ครับ