WiFi ถือเป็นหัวใจสำคัญและเป็นจุดเด่นของ ESP32 เลยก็ว่าได้ ด้วยการรวมส่วนของ WiFi มาในชิปพร้อมกับไมโครคอนโทรลเลอร์ทำให้สามารถประหยัดพื้นที่โดยรวมของระบบได้ รวมทั้งทำให้สามารถจัดการเรื่องของพลังงานได้ง่ายมากยิ่งขึ้น นอกจากนี้การใช้งาน WiFi ใน ESP32 ยังง่ายกว่าชิป WiFi ตัวอื่นมาก โดยมีคุณสมบัติพิเศษคือสามารถเลือกโหมดการใช้งาน WiFi ได้ 3 โหมด คือ โหมด AP (Access Point) โหมด STA (Station) และโหมด AP+STA ซึ่งทั้ง 3 โหมดจะมีการใช้งานที่แตกต่างกันเล็กน้อย การเลือกโหมดใช้งานจะเลือกตามลักษณะงานที่นำไปใช้เป็นหลัก
AP ย่อมาจาก Access Point เป็นโหมดที่จะใช้ ESP32 เป็นตัวปล่อยสัญญาณ WiFi ออกไป เพื่อให้อุปกรณ์ต่าง ๆ มาเชื่อมต่อด้วย ทั้งนี้ ESP32 จะรองรับอุปกรณ์ที่มาเชื่อมต่อด้วยเพียง 1 ตัวเท่านั้น เหมาะสำหรับงานที่ไม่ต้องการใช้งานอินเตอร์เน็ตหรือติดต่อกับอุปกรณ์อื่นในวงแลน นอกจากนี้โหมดนี้ยังเหมาะกับการนำไปควบคุมอุปกรณ์ต่าง ๆ ผ่าน WiFi อีกด้วย ซึ่งงานควบคุมที่สามารถย้ายที่ได้ และไม่ต้องใช้งานผ่านอินเตอร์เน็ตจะเหมาะกับการใช้งาน ESP32 ในโหมด AP มาก
STA ย่อมาจาก Station เป็นโหมดที่จะใช้ ESP32 ไปเชื่อมต่อกับอุปกรณ์ปล่อยสัญญาณอื่น ๆ เช่น เร้าเตอร์ โทรศัพท์มือถือที่เปิดฮอตสปอต การใช้งานในโหมดนี้นิยมใช้กับงานที่ต้องการเชื่อมต่ออินเตอร์เน็ต หรือมีการสื่อสารกับอุปกรณ์หลาย ๆ ในวงแลน ในงานด้าน IoT Smart Home และ Smart Farm มักใช้งานในโหมดนี้เพื่อส่งข้อมูลจากเซ็นเซอร์ขึ้นไปบนระบบคลาวด์และใช้โหมดนี้เพื่อเชื่อมต่อกับระบบคลาวด์รับคำสั่งมีสั่งอุปกรณ์ต่าง ๆ ให้ทำงานผ่านอินเตอร์เน็ต
เป็นโหมดที่จะให้โมดูล WiFi ภายใน ESP32 ทำงานทั้ง 2 โหมด นั่นคือ AP และ STA ร่วมกัน ข้อดีของการใช้โหมดนี้คืออุปกรณ์ภายนอกสามารถเชื่อมต่อเข้ามาที่ ESP32 ได้ และ ESP32 สามารถไปเชื่อมต่อกับอุปกรณ์ภายนอกได้ ในโหมดนี้มักใช้กับงานที่ต้องการใช้งานอินเตอร์เน็ตและมีการเคลื่อนย้ายบ่อย ๆ หรือสามารถเปลี่ยนสถานที่ใช้งานได้ โดยในโหมด AP จะทำให้อุปกรณ์ต่าง ๆ สามารถเข้ามาตั้งค่าการเชื่อมต่อ WiFi กับเร้าเตอร์หรืออุปกรณ์อื่นๆ ได้ ในโหมด STA ก็จะนำค่าที่ตั้งไว้มาใช้เชื่อมต่อกับเร้าเตอร์ หรืออุปกรณ์อื่น ๆ ที่ได้ตั้งค่าไว้
ในการจัดการ WiFi จะมีฟังก์ชั่นต่าง ๆ ที่สามารถเรียกใช้เพื่อกำหนดค่าต่าง ๆ ของ WiFi ได้ โดยหลังการกำหนดค่าไปครั้งแรกแล้วจะมีการจดจำค่านั้นไว้ หากไม่มีการเปลี่ยนแปลงโดยใช้ฟังก์ชั่นตั้งค่าใหม่ ตัว ESP32 จะยึดการตั้งค่านั้นไว้ทุกครั้ง
ใช้ฟังก์ชั่น WiFi.mode() ในการตั้งโหมด มีรูปแบบการใช้งานดังนี้
void WiFi.mode(wifi_mode_t mode);
มีค่าพารามิเตอร์ตัวเดียว ดังนี้
และไม่มีค่าตอบกลับ
ฟังก์ชั่นที่เกี่ยวข้องมีอยู่หลายตัวด้วยกัน ดังนี้
กำหนดค่า WiFi ในโหมด AP – ใช้ฟังก์ชั่น WiFi.softAP() มีรูปแบบใช้งานดังนี้
void WiFi.softAP(const char* ssid, const char* passphrase = NULL, int channel = 1, int ssid_hidden = 0);
มีรายละเอียดของพารามิเตอร์ดังนี้
และไม่มีค่าตอบกลับ ค่าพารามิเตอร์ที่มีค่าเริ่มต้นอยู่แล้วสามารถไม่กำหนดค่าได้
กำหนดค่า IP ในโหมด AP – ในโหมด AP จะสามารถกำหนดค่าทาง IP ได้โดยใช้ฟังก์ชั่นต่อไปนี้
void WiFi.softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet);
มีรายละเอียดของค่าพารามิเตอร์ดังนี้
และไม่มีค่าตอบกลับ หากไม่มีการเรียกใช้ฟังก์ชั่นนี้เพื่อกำหนดค่า ค่าเริ่มต้นของ ESP32 จะมีหมายเลข IP เป็น 192.168.4.1
เรียกดู IP ในโหมด AP – สามารถใช้ฟังก์ชั่น WiFi.softAPIP() เพื่อเรียกดูได้ ซึ่งมีรูปแบบการใช้งานดังนี้
IPAddress WiFi.softAPIP();
ไม่มีค่าพารามิเตอร์ แต่มีการส่งกลับข้อมูลในรูปแบบ IPAddress
การใช้งาน WiFi ในโหมด STA จะมีฟังก์ชั่นต่าง ๆ ที่เกี่ยวข้องกับการเชื่อมต่ออยู่หลายตัว เพื่อความเข้าใจที่ตรงกันจึงขอเรียกอุปกรณ์ที่จะไปเชื่อมต่อด้วย เช่น เร้าเตอร์ มือถือ ว่า Access Point
เชื่อมต่อกับ Access Point – ใช้ฟังก์ชั่น WiFi.begin() ซึ่งมีรูปแบบการใช้งานดังนี้
void WiFi.begin(char *ssid, char *passphrase = NULL);
มีรายละเอียดของพารามิเตอร์แต่ละตัวดังนี้
และไม่มีการส่งค่ากลับ
ตรวจสอบสถานะการเชื่อมต่อกับ Access Point – สามารถใช้งานได้หลายฟังก์ชั่น ซึ่งการตรวจสอบสถานะปัจจุบันนิยมใช้ฟังก์ชั่น WiFi.status() ซึ่งมีรูปแบบการใช้งานดังนี้
wl_status_t WiFi.status();
ไม่มีค่าพารามิเตอร์ มีค่าที่ตอบกลับมาได้ดังนี้
นอกจากนี้ยังนิยมใช้งานฟังก์ชั่น WiFi.isConnected() ด้วย ซึ่งมีรูปแบบการใช้งานดังนี้
bool WiFi.isConnected();
ไม่มีพารามิเตอร์ และมีข้อมูลที่ตอบกลับเป็นชนิด bool หากกำลังเชื่อมต่อกับ Access Point จะให้ค่าเป็นจริง (True) และหากเป็นสถานะอื่น ๆ จะให้ค่าเป็นเท็จ (False)
รอเชื่อมต่อกับ Access Point สำเร็จ – ในหลากตัวอย่างมักใช้ฟังก์ชั่น WiFi.status() วนตรวจสอบสถานะจนกว่าจะเชื่อมต่อสำเร็จ แต่ในบางโค้ดตัวอย่างก็มีการเลือกใช้ฟังก์ชั่นรอเชื่อมต่อโดยเฉพาะ นั่นคือ WiFi.waitForConnectResult() มีรูปแบบการใช้งานดังนี้
wl_status_t WiFi.waitForConnectResult();
ไม่มีค่าพารามิเตอร์ และจะตอบกลับผลการรอเชื่อมต่อออกมา ซึ่งค่าที่เป็นไปได้เหมือนกับค่าที่ได้ในฟังก์ชั่น WiFi.status() ทั้งนี้ฟังก์ชั่น WiFi.waitForConnectResult() จะรอเชื่อมต่อกับ Access Point เพียง 10 วินาทีเท่านั้น หากเกิน 10 วินาทีจะยกเลิกการรอแล้วการทำงานจะหลุดออกจากฟังก์ชั่น
เชื่อมต่อกับ Access Point ใหม่อีกครั้ง – ใช้ฟังก์ชั่น WiFi.reconnect() ซึ่งมีรูปแบบการใช้งานดังนี้
void WiFi.reconnect();
ไม่มีค่าพารามิเตอร์ และค่าที่ตอบกลับ แต่โดยปกติแล้ว ESP32 เมื่อการเชื่อมต่อจาก Access Point หลุด มักจะมีการเชื่อมต่อใหม่ให้อัตโนมัติอยู่แล้ว
ยกเลิกเชื่อมต่อกับ Access Point – ใช้ฟังก์ชั่น WiFi.disconnect() ซึ่งมีรูปแบบการใช้งานดังนี้
void WiFi.disconnect(bool wifioff = false);
มีค่าพารามิเตอร์ 1 ตัว คือ
และไม่มีค่าที่ส่งกลับมา
เรียกดูหมายเลข IP ที่ได้จาก Access Point – ใช้ฟังก์ชั่น WiFi.localIP() ในการเรียกดู มีรายละเอียดการใช้งานดังนี้
IPAddress WiFi.localIP();
ไม่มีค่าพารามิเตอร์ และมีข้อมูลที่ตอบกลับชนิด IPAddress
สำหรับ ESP32 สามารถใช้เพื่อค้นหา WiFi รวมถึงบอกได้ว่าชื่อ WiFi หรือ Access Point นั้น ๆ มีความแรงของสัญญาณเท่าไร และสามารถบอกได้ว่ามีรหัสผ่านหรือไม่ ซึ่งฟังก์ชั่นที่ใช้มีดังนี้
ค้นหา WiFi – ใช้ฟังก์ชั่น WiFi.scanNetworks() มีรูปแบบการใช้งานดังนี้
int WiFi.scanNetworks();
ไม่มีค่าพารามิเตอร์ และหากเรียกใช้โปรแกรมจะติดอยู่ในฟังก์ชั่นนี้จนกว่าจะค้นหาเสร็จ แล้วส่งค่ากลับมาเป็นข้อมูลชนิด int ซึ่งเป็นจำนวนของชื่อ WiFi ทั้งหมดที่ค้นหาพบ
ดึงรายละเอียด WiFi ที่ค้นหาพบ – หลังจากใช้ฟังก์ชั่น WiFi.scanNetworks() ค้นหาไปแล้ว และได้จำนวน WiFi ที่ค้นหาพบมา ต่อมาคือการดึงข้อมูลเหล่านั้นออกมาใช้ ฟังก์ชั่นที่ใช้ดึงชื่อ WiFi ออกมามีรูปแบบการใช้งานดังนี้
String WiFi.SSID(int networkItem);
มีค่าพารามิเตอร์ 1 ตัว คือ
และตอบกลับมาเป็นชื่อ WiFi
ฟังก์ชั่นที่ใช้ดึงค่าความแรงของสัญญาณมีรูปแบบดังนี้
long WiFi.RSSI(int networkItem);
มีค่าพารามิเตอร์ 1 ตัว คือ
และตอบกลับมาเป็นข้อมูลความแรงของสัญญาณชนิด long
ฟังก์ชั่นที่ใช้ดึงข้อมูลว่ามีรหัสผ่านหรือไม่ มีรูปแบบการใช้งานดังนี้
wifi_auth_mode_t encryptionType(int networkItem);
มีค่าพารามิเตอร์ 1 ตัว คือ
และมีการตอบกลับมาเป็นข้อมูลชนิด wifi_auth_mode_t มีความเป็นไปได้ดังนี้
ในการทดลองนี้จะใช้โค้ดง่าย ๆ ในการทดลองเพื่อให้อุปกรณ์ต่าง ๆ ได้ลองเข้ามาเชื่อมต่อกับ ESP32 ได้ สามารถคัดลอกโปรแกรมที่ใช้ทดลองได้ที่ https://goo.gl/O0c013 เมื่ออัพโหลดโปรแกรมลงบอร์ดแล้ว เปิด Serial Monitor ขึ้นมา ปรับเป็น 115200 band จะพบหมายเลข IP ของ ESP32 ดังรูป (หากไม่พบ ให้กดปุ่ม EN บนบอร์ด NodeMCU-32S จำนวน 1 ครั้ง) ซึ่งหมายเลข IP นี้จะสำคัญมากเมื่อใช้ ESP32 ในโหมด AP แล้วต้องการใช้อุปกรณ์อื่นเข้ามาสื่อสารกับ ESP32 ผ่าน WiFi เนื่องจากการสื่อสารจะอ้างอิงถึง IP เป็นหลัก
จากนั้นทดสอบใช้โทรศัพท์มือถือสมาร์ทโฟน โน้ตบุ๊ก Tablet หรืออุปกรณ์อื่น ๆ ที่สามารถเชื่อมต่อ WiFi ได้ ทดสอบค้นหา WiFi ที่ชื่อ ESP32 AP mode แล้วทดลองกดเชื่อมต่อ ผลที่ได้คือสามารถเชื่อมต่อได้สำเร็จ
สำหรับโค้ดที่ใช้ในการทดลอง มีดังนี้
บรรทัดที่ 1 ใช้คำสั่ง #include เรียกใช้ไลบารี่ WiFi.h
บรรทัดที่ 3 กำหนดให้ WIFI_AP_NAME แทนด้วย “ESP32 AP mode” ใช้กำหนดชื่อ WiFi ของ ESP32
บรรทัดที่ 4 กำหนดให้ WIFI_AP_PASS แทนด้วย NULL ใช้กำหนดรหัสผ่าน WiFi ของ ESP32
บรรทัดที่ 6 สร้างฟังก์ชั่น setup
บรรทัดที่ 7 เริ่มใช้งาน UART ที่ความเร็ว 115200
บรรทัดที่ 9 ใช้ฟังก์ชั่น WiFi.mode() กำหนดใช้งาน WiFi ในโหมด AP
บรรทัดที่ 10 ใช้ฟังก์ชั่น WiFi.softAP() กำหนดค่า WiFi ในโหมด AP
บรรทัดที่ 12 แสดงข้อความออกไปที่ Serial Monitor
บรรทัดที่ 13 ใช้ฟังก์ชั่น WiFi.softAPIP() อ่านค่า IP ของ ESP32 ในโหมด AP แล้วนำค่าที่ได้ไปแสดงผลใน Serial Monitor
บรรทัดที่ 14 จบคำสั่งในฟังก์ชั่น setup
บรรทัดที่ 16 สร้าง และจบฟังก์ชั่น loop
หากต้องการใช้งานอินเตอร์เน็ต หรือต้องการให้อุปกรณ์หลาย ๆ ตัวสามารถเข้ามาสื่อสารได้ จำเป็นต้องใช้งานในโหมด STA เพื่อให้ Access Point เป็นอุปกรณ์ตัวกลางในการสื่อสาร
การทดลองใช้งานในโหมด STA สามารถเข้าไปคัดลอกโค้ดโปรแกรมตัวอย่างได้ที่ https://goo.gl/wLEuf2 จากนั้นแก้ไขส่วน WIFI_STA_NAME เป็นชื่อ WiFi ที่ต้องการเชื่อมต่อ และกำหนดรหัสผ่านของ WiFi ที่ WIFI_STA_PASS กรณีไม่มีรหัสผ่านให้ใส่เป็น NULL
จากนั้นสามารถอัพโหลดโปรแกรมลงบอร์ด NodeMCU-32S ได้เลย หลังจากนั้นให้เปิด Serial Monitor ขึ้นมา ปรับไปที่ 115200 band จะพบผลการเชื่อมต่อ WiFi โดยหากกำลังเชื่อมต่ออยู่จะมีจุด (.) ขึ้นมาเพิ่มเรื่อย ๆ พร้อมทั้งหลอด LED บนบอร์ด NodeMCU-32S กระพริบ เมื่อเชื่อมต่อได้แล้วจะแสดงหมายเลข IP ออกมาให้ทราบ เป็นอันจบการทดลอง
สำหรับโค้ดโปรแกรมที่ได้ทดลองไป มีดังนี้
บรรทัดที่ 1 ใช้คำสั่ง #include เรียกใช้ไลบารี่ WiFi.h
บรรทัดที่ 3 แทน WIFI_STA_NAME ด้วย “MaxHome3BB” ซึ่งในส่วนนี้จะใช้กำหนดชื่อ WiFi ที่ต้องการเชื่อมต่อด้วย
บรรทัดที่ 4 แทน WIFI_STA_NAME ด้วย ” xxxxxxxxxx” ซึ่งในส่วนนี้จะใช้กำหนดรหัสผ่าน WiFi
บรรทัดที่ 6 สร้างฟังก์ชั่น setup
บรรทัดที่ 7 เริ่มใช้งาน UART0 ที่ความเร็ว 115200
บรรทัดที่ 8 กำหนดให้ขาใน LED_BUILTIN เป็นเอาต์พุตแบบดิจิตอล
บรรทัดที่ 10 – 13 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 15 ใช้ฟังก์ชั่น WiFi.mode() กำหนดโหมดใช้งานเป็น STA
บรรทัดที่ 16 ใช้ฟังก์ชั่น WiFi.begin() เริ่มเชื่อมต่อไปที่ Access Point ที่กำหนด
บรรทัดที่ 18 ใช้คำสั่ง while() วนรอบทำคำสั่งในปีกกาหากฟังก์ชั่น WiFi.status() ไม่ส่งกลับค่ามาเป็น WL_CONNECTED
บรรทัดที่ 19 หน่วงเวลา 500 มิลิวินาที หรือครึ่งวินาที
บรรทัดที่ 20 แสดงผลจุด ไปที่ Serial Monitor
บรรทัดที่ 21 สลับสถานะของขา GPIO ตามขาที่อยู่ใน LED_BUILTIN ผลของบรรทัดนี้ทำให้หลอด LED บนบอร์ด NodeMCU-32S กระพริบตลอดเวลาที่รอเชื่อมต่อ
บรรทัดที่ 22 จบคำสั่งในปีกกาของคำสั่ง while
บรรทัดที่ 24 กำหนดให้ขาที่อยู่ใน LED_BUILTIN มีสถานะเป็น HIGH
บรรทัดที่ 25 – 28 แสดงผลไปที่ Serial Monitor
บรรทัดที่ 29 จบคำสั่งในฟังก์ชั่น setup
บรรทัดที่ 30 สร้าง และจบฟังก์ชั่น loop
ส่วนใหญ่ของโค้ดที่นำมาทดลองนี้ตัดมาจากตัวอย่างที่มีมาในโปรแกรม Arduino เนื่องจากตัวอย่างมักจะใช้โค้ดเพื่อแทนคำอธิบายทุก ๆ อย่าง ทำให้เรียนรู้การใช้งานได้ยาก การตัดโค้ดมาทำความเข้าใจทีละส่วนจึงง่ายต่อการเรียนรู้กว่ามาก อีกทั้งได้เจาะลึกรูปแบบฟังก์ชั่นต่าง ๆ เพื่อให้สามารถเข้าใจโค้ดโปรแกรมได้ง่ายขึ้น
ในการทดลองนี้จะเป็นการใช้ ESP32 เพื่อค้นหา WiFi และดูรายละเอียดต่าง ๆ ของ WiFi ที่อยู่โดยรอบ การทดลองนี้สามารถปูพื้นฐานไปสู่การเขียนโปรแกรมเชื่อมต่อ WiFi อัตโนมัติเมื่อเปลี่ยนสถานที่ได้ เช่น การนำอุปกรณ์ไปไว้ในที่ ๆ มีสัญญาณ WiFi ของทรูมูฟ ก็ให้เชื่อมต่อ WiFi ของทรูมูฟ แต่หากพื้นที่มี WiFi ของ AIS ให้ไปเชื่อมต่อของ AIS เป็นต้น
ก่อนอื่น ให้เปิดตัวอย่าง WiFiScan ขึ้นมา โดยกดไปที่ Examples > WiFi เลือก WiFiScan จากนั้นสามารถอัพโหลดลงบอร์ด NodeMCU-32S ได้เลย
เมื่ออัพโหลดโปรแกรมตัวอย่างเสร็จแล้ว ให้เปิด Serial Monitor ขึ้นมา เลือกเป็น 115200 ผลที่ได้คือในหน้า Serial Monitor จะค้นหา WiFi และแสดงรายละเอียดมาให้เรื่อย ๆ
โค้ดโปรแกรมที่ได้ทดลองไป เมื่อตัดส่วนคอมเม้นออกแล้วจะได้โค้ดดังนี้
บรรทัดที่ 1 เรียกใช้ไลบารี่ WiFi.h
บรรทัดที่ 3 สร้างฟังก์ชั่น setup
บรรทัดที่ 4 เริ่มใช้งาน UART0 ที่ความเร็ว 115200
บรรทัดที่ 6 เริ่มใช้งาน WiFi ในโหมด STA
บรรทัดที่ 7 หยุดการเชื่อมต่อกับ Access Point ใด ๆ
บรรทัดที่ 8 หน่วงเวลา 100 มิลิวินาที หรือ 0.1 วินาที
บรรทัดที่ 10 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 11 จบคำสั่งในฟังก์ชั่น loop
บรรทัดที่ 13 สร้างฟังก์ชั่น loop
บรรทัดที่ 14 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 16 เริ่มใช้ฟังก์ชั่น WiFi.scanNetworks() เพื่อสแกนหา WiFi ในพื้นที่ จากนั้นนำจำนวน WiFi ที่เจอไปเก็บไว้ในตัวแปร n
บรรทัดที่ 17 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 18 ตรวจสอบผลการสแกน หากตัวแปร n เป็น 0 ให้ทำคำสั่งในปีกกา
บรรทัดที่ 19 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 20 หากเงื่อนไขใน if ไม่เป็นจริง ให้ทำคำสั่งในปีกกา
บรรทัดที่ 21 นำค่าในตัวแปร n ไปแสดงผลใน Serial Monitor
บรรทัดที่ 22 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 23 ใช้คำสั่ง for วนรอบตามจำนวนค่าในตัวแปร n
บรรทัดที่ 24 แสดงผลการนำตัวแปร i ไปบวก 1 ไปที่ Serial Monitor
บรรทัดที่ 25 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 26 แสดงผลค่าที่ได้จากฟังก์ชั่น WiFi.SSID() ที่กำหนดให้พารามิเตอร์ลำดับเป็นค่าตามตัวแปร i
บรรทัดที่ 27 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 28 แสดงผลค่าที่ได้จากฟังก์ชั่น WiFi.RSSI() ที่กำหนดให้พารามิเตอร์ลำดับเป็นค่าตามตัวแปร i
บรรทัดที่ 29 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 30 ใช้ Ternary Operators ตรวจสอบค่าที่ได้จากฟังก์ชั่น WiFi.encryptionType() ที่กำหนดให้พารามิเตอร์ลำดับเป็นค่าตามตัวแปร i ว่าเป็น WIFI_AUTH_OPEN หรือไม่ ถ้าใช่ ส่งค่าว่าง ถ้าไม่ ส่ง * ค่าที่ส่งไปแสดงใน Serial Monitor
บรรทัดที่ 31 หน่วงเวลา 10 มิลิวินาที หรือ 0.01 วินาที
บรรทัดที่ 32 จบคำสั่งในปีกกาของคำสั่ง if
บรรทัดที่ 33 จบคำสั่งในปีกกาของคำสั่ง for
บรรทัดที่ 34 แสดงผลข้อความไปที่ Serial Monitor
บรรทัดที่ 35 หน่วงเวลา 5 วินาที
บรรทัดที่ 36 จบคำสั่งในฟังก์ชั่น loop
ในบทนี้เป็นการเรียนรู้การใช้ฟังก์ชั่นต่าง ๆ จัดการกับการเชื่อมต่อ WiFi โดย ESP32 รองรับการเชื่อมต่อ WiFi ใน 3 โหมด คือ 1. โหมด AP เป็นโหมดที่ให้อุปกรณ์อื่นเข้ามาเชื่อมต่อ 2. โหมด STA เป็นโหมดที่ไปเชื่อต่ออุปกรณ์อื่น และ 3. โหมด AP+STA เป็นการรวมความสามารถของทั้ง 2 โหมดก่อนหน้าเข้าด้วยกัน เมื่อเชื่อมต่อ WiFi ได้แล้ว ในบทต่อไปจะเป็นเรื่องของการสื่อสารผ่านโปรโตคอล TCP/IP ซึ่งจะต้องมีโค้ดส่วนเชื่อมต่อ WiFi ในบทนี้ก่อน จึงจะเริ่มการสื่อสารได้