WiFiClient.h กับ WiFiClientSecure.h ใช้ยังไง? (พร้อมตารางเปรียบเทียบ + FAQ)

WiFiClient.h กับ WiFiClientSecure.h ใช้ยังไง? 

ถ้าคุณงงว่า “จะต่อ Wi-Fi ต้อง include อะไร” และ “ทำไมเรียก https แล้วหลุด/ต่อไม่ติด”

บทความนี้สรุปให้แบบชัด ๆ พร้อมแนวทางเลือกใช้ในงานจริง (Smart Farm / IoT / แจ้งเตือน Telegram)

เรียนรู้ว่า ESP32 คืออะไร

พร้อมคำอธิบายคุณสมบัติหลักและการใช้งานที่ง่ายดาย

รวมข้อมูล ESP32 Pinout และ GPIO

แบบละเอียด ทั้งตารางพินที่ควรใช้และควรหลีกเลี่ยง  

สอนใช้งาน Arduino IDE

ตั้งแต่พื้นฐานจนถึงขั้นสูง ทั้งการติดตั้ง การเขียนโค้ด C/C++ สำหรับ ESP32 และบอร์ดตระกูล Arduino

1) สองบรรทัดนี้คืออะไร?

ในโปรเจกต์ ESP32 (Arduino IDE / PlatformIO) เรามักเจอ 2 บรรทัดนี้บ่อยมาก:

#include <WiFi.h>
#include <WiFiClientSecure.h>

WiFi.h คือ “ตัวจัดการ Wi-Fi” ของ ESP32

ใช้ต่อเน็ต, สแกน Wi-Fi, ดูสถานะ, ทำโหมด AP/STA, reconnect ฯลฯ

WiFiClientSecure.h คือ “ไคลเอนต์สำหรับ HTTPS/TLS”

ใช้ตอนจะเรียก https:// (Telegram / Firebase / API ภายนอก)

พูดง่าย ๆ: WiFi.h = “ต่อ Wi-Fi ให้ได้ก่อน” และ WiFiClientSecure.h = “ถ้าจะต่อ https ต้องใช้ตัวนี้เพิ่ม”

2) เลือกใช้แบบเร็ว

ถ้าคุณทำงานในเครือข่ายบ้าน/LAN (http) เช่น เข้า Web UI ของ ESP32 หรือคุยกับอุปกรณ์ในวงเดียวกัน → เริ่มที่ WiFi.h เชื่อมต่อเครือข่าย → WiFiClient.h สำหรับส่ง/รับข้อมูลแบบ HTTP ในวง LAN

ถ้าคุณเรียก API ข้างนอกที่เป็น https (Telegram, Google, เว็บบริการต่าง ๆ) → ต้องใช้ 

WiFiClientSecure.h

ตัวอย่างเคสที่ใช้ (ไม่ secure)

  • Web Server ภายในบ้าน (Local-first)
  • HTTP ไปยัง Raspberry Pi / Server ใน LAN
  • ESP32 ↔ ESP32 ในวงเดียวกัน

ตัวอย่างเคสที่ต้องใช้ WiFiClientSecure

  • ส่งแจ้งเตือน Telegram
  • เรียก REST API ที่เป็น https
  • Webhook ออกอินเทอร์เน็ต

3) WiFi.h ทำอะไรได้บ้าง (ฟีเจอร์หลัก)

โหมดการทำงาน

  • STA (ต่อเราเตอร์)
  • AP (ปล่อย Wi-Fi เอง)
  • STA+AP (ใช้คู่กัน)

ฟังก์ชันที่ใช้บ่อย

  • Scan Wi-Fi: WiFi.scanNetworks()
  • Connect: WiFi.begin(ssid, pass)
  • Status: WiFi.status(), RSSI
  • IP: WiFi.localIP()

ทริคงานจริง: ใช้ Wi-Fi Event เพื่อทำ reconnect แบบนิ่ง ๆ แทนการวน loop รอ status อย่างเดียว

งานฟาร์มหรือระบบควบคุม ถ้า Wi-Fi แกว่งแล้วเครื่องค้าง = จบเลย ควรมีโค้ดจัดการหลุด/กลับมาเสมอ

4) WiFiClientSecure.h เพิ่มอะไรจาก WiFi ธรรมดา?

WiFiClientSecure คือคลาส client ที่ “คุยกับเซิร์ฟเวอร์แบบเข้ารหัส (TLS)” ซึ่งเป็นแกนของ HTTPS

แนวทางง่ายสุด (แต่ไม่ปลอดภัย): setInsecure()

เหมาะกับทดลอง/เดโม แต่ไม่แนะนำกับงานจริงที่ต้องการความปลอดภัย

แนวทางที่ปลอดภัยกว่า: ใส่ CA Certificate

เครื่องจะตรวจว่าเซิร์ฟเวอร์เป็น “ตัวจริง” ลดความเสี่ยงโดนดักกลางทาง

ข้อพลาดที่เจอบ่อย: HTTPS ต่อไม่ติดเพราะ “เวลาใน ESP32 ไม่ถูก”

TLS ใช้เวลาเป็นส่วนหนึ่งในการตรวจ cert ถ้าเวลาผิดมาก ๆ มักจะ fail ได้

5) Flow การทำงานจริง (ภาพรวม)

ลำดับคิดแบบงานจริง: ต่อ Wi-Fi → เลือก client → ส่ง request → handle error → retry

1) WiFi.begin(...) ให้ต่อเน็ตได้ก่อน
2) เลือก Client:
   - HTTP ใน LAN: WiFiClient
   - HTTPS ออกเน็ต: WiFiClientSecure
3) connect(host, port)
4) ส่ง GET/POST
5) อ่าน response + timeout
6) ถ้าพัง: close + retry + backoff

แนะนำ: ใส่ timeout ทุกครั้ง

ถ้าไม่ใส่ timeout บางเคสจะ “ค้างนิ่ง” แล้วระบบอัตโนมัติพังยาว

6) ตารางเปรียบเทียบ WiFiClient vs WiFiClientSecure

ประเด็นWiFiClientWiFiClientSecure
ใช้ทำอะไรTCP Client สำหรับ HTTP/เชื่อมต่อไม่เข้ารหัสTCP Client สำหรับ HTTPS/TLS (เข้ารหัส)
URL ที่รองรับhttp://https://
Port ที่ใช้บ่อย80 (หรือพอร์ต TCP อื่น)443 (หรือพอร์ต TLS อื่น)
ความปลอดภัยต่ำ (ข้อมูลวิ่ง plaintext)สูงกว่า (เข้ารหัสระหว่างทาง)
ตรวจ Certificateไม่เกี่ยวมีโหมดตรวจ cert (CA cert) / หรือข้ามตรวจด้วย setInsecure()
เรื่อง “เวลาในบอร์ด”ไม่ค่อยเกี่ยวเกี่ยว ถ้า verify cert (เวลาเพี้ยนทำให้ cert invalid ได้)
ทรัพยากรที่ใช้ (RAM/CPU)น้อยกว่ามากกว่า (TLS handshake + buffer)
ความเร็ว/ความหน่วงเร็วกว่า/เบากว่าหน่วงกว่าเล็กน้อยตอนเริ่ม connect
เหมาะกับงานLocal-first, LAN, Web server ในบ้าน, คุยกับ Raspberry Pi ในวงเดียวกันTelegram, API ภายนอก, Cloud, Webhook ที่เป็น https
จุดพลาดที่เจอบ่อยลืมใส่ timeout / reconnectcert/เวลาไม่ถูก, handshake fail, ใช้ setInsecure() แบบไม่รู้ความเสี่ยง
แนะนำสำหรับ Smart Farmคุมระบบในวง LAN (เสถียร + ไม่พึ่งเน็ต)ใช้เฉพาะ “ออกเน็ต” เช่น แจ้งเตือน/ส่งข้อมูลขึ้นบริการ

สรุปสั้น: งานที่ “ออกเน็ต” ส่วนใหญ่หนีไม่พ้น WiFiClientSecure

7) Use case ที่เจอบ่อย (Smart Farm / DevaDIY)

Local-first (แนะนำมาก)

ควบคุมผ่านมือถือในวง Wi-Fi เดียวกัน → เร็ว เสถียร ไม่ฝากชีวิตไว้กับเน็ต

ใช้: WiFi.h + Web Server (HTTP ภายใน LAN)

แจ้งเตือน Telegram / Webhook

ออกอินเทอร์เน็ตเป็น https เกือบทั้งหมด

ใช้:

WiFiClientSecure.h
ถ้าคุณกำลังทำ “ระบบรดน้ำ/พัดลม/ไฟปลูกผัก” แนะนำให้แยก 2 โลกให้ชัด: โลกควบคุมในบ้าน (Local-first) กับโลกแจ้งเตือนออกเน็ต (Secure)

FAQ: คำถามที่พบบ่อย

1) ใช้ WiFiClientSecure ต้อง include WiFi.h ด้วยไหม?

ส่วนใหญ่ “ต้อง” เพราะคุณยังต้องใช้ WiFi.begin() และฟังก์ชันจัดการเครือข่ายจาก WiFi.h อยู่ดี (Secure เป็นแค่ client สำหรับ https)

ได้ แต่ไม่คุ้ม และเสียทรัพยากรเกินจำเป็น ถ้าเป็น http:// ใน LAN ใช้ WiFiClient จะเหมาะกว่า

setInsecure() คือสั่งให้ client “ไม่ตรวจ certificate” → ต่อได้ง่ายขึ้น แต่ความปลอดภัยตกลง เหมาะสำหรับเดโม/ทดสอบ ไม่แนะนำกับงานจริงที่มีข้อมูลสำคัญ

สาเหตุยอดฮิต: เวลาในบอร์ดผิด, cert เปลี่ยน/หมดอายุ, สัญญาณอ่อน, หรือ handshake timeout ควรเช็คเรื่องเวลาและใส่ timeout/retry เสมอ

แนะนำให้ตั้งเวลา เพราะ TLS ตรวจช่วงเวลาของ certificate ถ้าเวลาเพี้ยนมาก ๆ มีโอกาสเชื่อมต่อไม่ผ่าน

มักเกิดจาก timeout สั้นเกินไป, สัญญาณ Wi-Fi อ่อน, หรือ server ปฏิเสธ (เช่น SNI/host ไม่ตรง) ตรวจ host/port และเพิ่ม timeout ที่เหมาะสม

Telegram ใช้ https เป็นหลัก → ใช้ WiFiClientSecure (และอย่าลืมดูเรื่องเวลา/cert)

Wi-Fi STA/AP | WiFi basics

รู้จักโหมดเชื่อมต่อ Wi-Fi ทั้งแบบต่อเน็ตบ้าน (STA) และปล่อย Wi-Fi ให้มือถือเข้า (AP)

WiFi Manager

ทำระบบตั้งค่า Wi-Fi แบบมืออาชีพ: กดปุ่มเข้าโหมดตั้งค่า แล้วกรอก SSID/รหัสผ่านได้เลย

Web Server

ทำหน้าเว็บควบคุมบนมือถือได้ทันที: ปุ่มเปิด-ปิดรีเลย์ + แสดงค่าสถานะ เห็นผลจริงเร็ว

รวมการสอนใช้ WiFi บน ESP32

สอนจากพื้นฐาน การสแกนหาเครือข่าย การทำ WiFi Manager ไปจนถึงการส่งข้อมูลแบบ Real-time ผ่าน WebSocket อธิบายชัด พร้อมโค้ดตัวอย่าง ใช้งานได้จริง

โครงงาน esp32 DIY

รวมไอเดียโปรเจกต์ DIY ด้วย ESP32 ที่ทำเองได้ เช่น ฟาร์มอัตโนมัติ ควบคุมอุปกรณ์ผ่านมือถือ ตั้งเวลา เปิด/ปิด อัตโนมัติ เหมาะสำหรับ Maker และนักศึกษา

แหล่งรวมวิชาปล่อยของสำหรับคนทำโปรเจกต์

มัดรวมทุกเทคนิค ESP32 ที่ต้องใช้: จะต่อ WiFi ให้เสถียร, ไล่ขา Pinout ให้แม่น หรือมองหาไอเดียโครงงานใหม่ๆ มาที่นี่ที่เดียวจบ สไตล์ DevADiy

Shopping Cart
Scroll to Top