ESP32 บันทึกค่า SSID และ Password WiFi ด้วย Preferences แบบปลอดภัย
ไม่ต้องแก้โค้ดใหม่ทุกครั้ง แค่บันทึก SSID ครั้งเดียว ESP32 ก็จำได้ตลอดไป
🔧 ปัญหาของการเขียนค่า SSID ลงในโค้ด
สำหรับมือใหม่ที่เคยเขียนโปรเจกต์ ESP32 เชื่อมต่อ WiFi มาก่อน อาจเริ่มจากการกำหนด SSID และ Password ไว้ตรง ๆ แบบนี้:
const char* ssid = "MyWiFi"; const char* password = "12345678";
แต่ปัญหาคือ…
ถ้าเปลี่ยน WiFi ต้องแฟลชใหม่ทุกครั้ง
แชร์โค้ดให้คนอื่นไม่ได้ (เพราะมีรหัสอยู่ในโค้ด)
เสี่ยงเรื่องความปลอดภัย
วิธีที่ดีกว่า: ใช้ Preferences เพื่อเก็บข้อมูลในหน่วยความจำถาวร (Flash) ของ ESP32
💾 Preferences คืออะไร?
Preferences คือ Library ที่ใช้เก็บข้อมูลแบบถาวร (non-volatile) ในรูปแบบ Key-Value เช่น ssid → "MyWiFi" ได้อย่างปลอดภัย ใช้ง่าย และไม่ต้องจัดการโครงสร้างไฟล์เองเหมือน SPIFFS
📘 อ่านเพิ่มเติม: คู่มือ Preferences บน ESP32 เก็บค่าต่าง ๆ ได้ถาวร
วิธีเก็บ SSID และ Password ด้วย Preferences
1. เริ่มต้นใช้งาน Preferences
#include <Preferences.h> Preferences preferences;
2. เปิดการใช้งาน Preferences และเขียนข้อมูล
preferences.begin("wifi", false); // namespace: wifi
preferences.putString("ssid", "MyWiFi");
preferences.putString("password", "12345678");
preferences.end();
3. อ่านค่า SSID และ Password กลับมาใช้
preferences.begin("wifi", true); // true = read-only
String ssid = preferences.getString("ssid", "");
String password = preferences.getString("password", "");
preferences.end();
🎯 ตัวอย่างการใช้งานจริง
ใช้ร่วมกับ WiFi.begin แบบนี้ได้เลย
WiFi.begin(ssid.c_str(), password.c_str());
หากต้องการให้ผู้ใช้กรอกผ่านหน้าเว็บ แนะนำให้ใช้คู่กับ ESPAsyncWebServer + WiFiManager
📄 บทความแนะนำ: สร้างหน้าเว็บ WiFi Manager ด้วย ESPAsyncWebServer
🧠 สรุป
| หัวข้อ | วิธีดั้งเดิม | ใช้ Preferences |
|---|---|---|
| เปลี่ยน WiFi | ต้องแก้โค้ด | ไม่ต้องแก้ |
| ความปลอดภัย | ต่ำ | สูงขึ้น |
| ความยืดหยุ่น | ต่ำ | สูง |
🧩 เหมาะกับใคร?
Maker มือใหม่ที่อยากทำระบบ Smart Farm
นักศึกษาที่ต้องการส่งโปรเจกต์ที่ใช้งานได้จริง
ช่างไฟหรือช่างอิเล็กทรอนิกส์ที่ต้องการระบบ WiFi เปลี่ยนได้เอง
🔚 บทส่งท้าย
ESP32 + Preferences = โซลูชันที่ยืดหยุ่น ปลอดภัย และไม่ต้องแก้โค้ดบ่อย
ใช้ได้กับทุกโครงงาน IoT ที่มีการเปลี่ยน WiFi หรือส่งให้คนอื่นใช้งานต่อ






