ESP32 H, S หรือ C ต่างกันอย่างไร
ESP32 เป็นไมโครคอนโทรลเลอร์ยอดนิยมสำหรับงาน IoT มีหลายรุ่นให้เลือกใช้งาน แต่ละรุ่นมีความแตกต่างกันในด้านประสิทธิภาพ การกินไฟ และราคา
ESP32 Series S เน้นประสิทธิภาพการทำงานสูง เหมาะสำหรับงาน IoT ที่ต้องการประมวลผลหนัก เช่น การจดจำใบหน้า การประมวลผลเสียง
ESP32 Series C เน้นความคุ้มค่า เหมาะสำหรับงาน IoT ทั่วไป เช่น เซ็นเซอร์ อุปกรณ์ควบคุม
ESP32 Series H เน้นความประหยัดพลังงาน เหมาะสำหรับงาน IoT มีใช้งานร่วมกับ Battery
ตารางเปรียบเทียบ ESP32 รุ่น H, S และ C
คุณสมบัติ | ESP32 H | ESP32 S | ESP32 C |
---|---|---|---|
การกินไฟ | ต่ำ | ปานกลาง | สูง |
ประสิทธิภาพ | ต่ำ | ปานกลาง | สูง |
ราคา | ถูก | ปานกลาง | แพง |
Wi-Fi | 802.11 b/g/n | 802.11 b/g/n | 802.11 b/g/n/ac |
Bluetooth | 4.2 | 4.2 | 5.0 |
GPIO | 16 | 20 | 20 |
ADC | 2 | 2 | 2 |
DAC | 1 | 1 | 2 |
SPI | 2 | 3 | 3 |
I²C | 2 | 2 | 2 |
UART | 2 | 3 | 3 |
PWM | 4 | 4 | 4 |
RTC | 1 | 1 | 1 |
SDIO | 1 | 1 | 1 |
TWAI | 1 | 1 | 1 |
USB OTG | 1 | 1 | 1 |
- ESP32 รุ่น H: เหมาะสำหรับงาน IoT ที่ต้องการประหยัดพลังงาน เช่น เซ็นเซอร์อุณหภูมิ ความชื้น แสง
- ESP32 รุ่น S: เหมาะสำหรับงาน IoT ทั่วไป เช่น รีโมทคอนโทรล ไฟอัจฉริยะ
- ESP32 รุ่น C: เหมาะสำหรับงาน IoT ที่ต้องการประสิทธิภาพสูง เช่น กล้องวงจรปิด สตรีมมิ่งวิดีโอ
ตัวอย่างโปรแกรมเขียนบน ESP32 แบบประหยัดพลังงาน
#include <esp_system.h>
#include <WiFi.h>
#include <Bluetooth.h>
void setup() {
// ตั้งค่า CPU ความถี่ 80 MHz
esp_set_cpu_freq(ESP_CPU_FREQ_80MHZ);
// ปิด Wi-Fi
WiFi.mode(WIFI_OFF);
// ปิด Bluetooth
Bluetooth.off();
// … โค้ดอื่นๆ …
}
void loop() {
// … โค้ดอื่นๆ …
// เข้าสู่ Deep sleep mode 10 วินาที
esp_deep_sleep(10000000);
}
เทคนิคเขียนโปรแกรม ESP32 ให้ประหยัดพลังงาน:
- เลือกรุ่น ESP32 ที่เหมาะสมกับงาน
- ตั้งค่า CPU ความถี่ต่ำ
- ปิด Wi-Fi/Bluetooth เมื่อไม่ใช้งาน
- ใช้งาน GPIO น้อยที่สุด
- เลือกใช้อุปกรณ์ต่อพ่วงที่มีประสิทธิภาพสูง
- ศึกษาวิธีการใช้งาน Deep sleep mode
ตารางเปรียบเทียบการกินไฟโดยประมาณ
โหมดการทำงาน | ESP32 รุ่น H | ESP32 รุ่น C | ESP32 รุ่น S |
Active mode | 10-100 µA | 20-30 mA | 80-200 mA |
Modem sleep mode | 200-300 µA | 500-700 µA | 1-2 mA |
Light sleep mode | 5-10 µA | 10-20 µA | 20-40 µA |
Deep sleep mode | < 1 µA | < 1 µA | < 1 µA |
หลักการเขียนโปรแกรมมี 6 อย่าง เพื่อให้ประหยัดพลังงาน
- ใช้ Deep Sleep Mode: ESP32 มีโหมดการทำงานที่ชื่อว่า Deep Sleep Mode ซึ่งช่วยลดการใช้พลังงานอย่างมาก เมื่ออุปกรณ์ไม่ได้ใช้งาน โดยใช้คำสั่ง
esp_deep_sleep_enable()
เพื่อเปิดใช้งานโหมดนี้ และesp_deep_sleep_start()
เพื่อทำให้ ESP32 เข้าสู่โหมด Deep Sleep Mode - การตั้งค่าการตรวจสอบการเชื่อมต่ออินเทอร์เน็ต: เมื่อใช้งาน ESP32 เพื่อการเชื่อมต่ออินเทอร์เน็ต ควรตั้งค่าการตรวจสอบการเชื่อมต่อเพื่อลดการใช้พลังงาน โดยใช้คำสั่ง
WiFi.begin(ssid, password)
เพื่อเริ่มต้นการเชื่อมต่อ และWiFi.waitForConnectResult()
เพื่อรอการเชื่อมต่อสำเร็จก่อนทำงานต่อ - การใช้งานการตั้งค่าการส่งข้อมูล: หากมีการส่งข้อมูลผ่านอินเทอร์เน็ต ควรกำหนดการส่งข้อมูลให้มีระยะเวลาห่างกันเพื่อลดการใช้พลังงาน โดยใช้คำสั่ง
delay()
เพื่อรอเวลาที่กำหนดไว้ก่อนทำการส่งข้อมูล - การปิดการทำงานของอุปกรณ์ส่งข้อมูล: หากมีการใช้งานอุปกรณ์สื่อสารระยะไกลเช่น LoRa ควรใช้คำสั่ง
LoRa.sleep()
เพื่อปิดการทำงานของอุปกรณ์เมื่อไม่ได้ใช้งาน - การใช้งาน Low Power Mode ของเซ็นเซอร์: หากมีการใช้งานเซ็นเซอร์ เช่น เซ็นเซอร์อุณหภูมิ ควรใช้คำสั่ง
sleep()
เพื่อให้เซ็นเซอร์เข้าสู่โหมด Low Power Mode เมื่อไม่ได้ใช้งาน - กระจายสัญญาณ WiFi แบบ Sleep mode: ในกรณีที่ใช้งานโมเดม WiFi ควรใช้คำสั่ง
WiFi.setSleepMode(WIFI_MODEM_SLEEP)
เพื่อเปิดใช้งานโหมดการใช้พลังงานต่ำของโมเด็ม Wi-Fi
ด้วยการประยุกต์ใช้วิธีการเหล่านี้ เราสามารถประหยัดพลังงานของ ESP32 และเพิ่มประสิทธิภาพการใช้งานอุปกรณ์ได้อย่างมีประสิทธิภาพมากขึ้น ทำให้สามารถยืดอายุการใช้งานของแบตเตอรี่หรือการทำงานอื่นๆ ได้อย่างมีประสิทธิภาพ