ESP32 ต่างกันยังไง ESP32S ESP32H ESP32C ประหยัดพลังงาน 2024

ESP32 H, S หรือ C ต่างกันอย่างไร

ESP32 เป็นไมโครคอนโทรลเลอร์ยอดนิยมสำหรับงาน IoT มีหลายรุ่นให้เลือกใช้งาน แต่ละรุ่นมีความแตกต่างกันในด้านประสิทธิภาพ การกินไฟ และราคา
ESP32 Series S เน้นประสิทธิภาพการทำงานสูง เหมาะสำหรับงาน IoT ที่ต้องการประมวลผลหนัก เช่น การจดจำใบหน้า การประมวลผลเสียง
ESP32 Series C เน้นความคุ้มค่า เหมาะสำหรับงาน IoT ทั่วไป เช่น เซ็นเซอร์ อุปกรณ์ควบคุม
ESP32 Series H เน้นความประหยัดพลังงาน เหมาะสำหรับงาน IoT มีใช้งานร่วมกับ Battery

ตารางเปรียบเทียบ ESP32 รุ่น H, S และ C

คุณสมบัติESP32 HESP32 SESP32 C
การกินไฟต่ำปานกลางสูง
ประสิทธิภาพต่ำปานกลางสูง
ราคาถูกปานกลางแพง
Wi-Fi802.11 b/g/n802.11 b/g/n802.11 b/g/n/ac
Bluetooth4.24.25.0
GPIO162020
ADC222
DAC112
SPI233
I²C222
UART233
PWM444
RTC111
SDIO111
TWAI111
USB OTG111
  • 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 รุ่น HESP32 รุ่น CESP32 รุ่น S
Active mode10-100 µA20-30 mA80-200 mA
Modem sleep mode200-300 µA500-700 µA1-2 mA
Light sleep mode5-10 µA10-20 µA20-40 µA
Deep sleep mode< 1 µA< 1 µA< 1 µA

หลักการเขียนโปรแกรมมี 6 อย่าง เพื่อให้ประหยัดพลังงาน

  1. ใช้ Deep Sleep Mode: ESP32 มีโหมดการทำงานที่ชื่อว่า Deep Sleep Mode ซึ่งช่วยลดการใช้พลังงานอย่างมาก เมื่ออุปกรณ์ไม่ได้ใช้งาน โดยใช้คำสั่ง esp_deep_sleep_enable() เพื่อเปิดใช้งานโหมดนี้ และ esp_deep_sleep_start() เพื่อทำให้ ESP32 เข้าสู่โหมด Deep Sleep Mode
  2. การตั้งค่าการตรวจสอบการเชื่อมต่ออินเทอร์เน็ต: เมื่อใช้งาน ESP32 เพื่อการเชื่อมต่ออินเทอร์เน็ต ควรตั้งค่าการตรวจสอบการเชื่อมต่อเพื่อลดการใช้พลังงาน โดยใช้คำสั่ง WiFi.begin(ssid, password) เพื่อเริ่มต้นการเชื่อมต่อ และ WiFi.waitForConnectResult() เพื่อรอการเชื่อมต่อสำเร็จก่อนทำงานต่อ
  3. การใช้งานการตั้งค่าการส่งข้อมูล: หากมีการส่งข้อมูลผ่านอินเทอร์เน็ต ควรกำหนดการส่งข้อมูลให้มีระยะเวลาห่างกันเพื่อลดการใช้พลังงาน โดยใช้คำสั่ง delay() เพื่อรอเวลาที่กำหนดไว้ก่อนทำการส่งข้อมูล
  4. การปิดการทำงานของอุปกรณ์ส่งข้อมูล: หากมีการใช้งานอุปกรณ์สื่อสารระยะไกลเช่น LoRa ควรใช้คำสั่ง LoRa.sleep() เพื่อปิดการทำงานของอุปกรณ์เมื่อไม่ได้ใช้งาน
  5. การใช้งาน Low Power Mode ของเซ็นเซอร์: หากมีการใช้งานเซ็นเซอร์ เช่น เซ็นเซอร์อุณหภูมิ ควรใช้คำสั่ง sleep() เพื่อให้เซ็นเซอร์เข้าสู่โหมด Low Power Mode เมื่อไม่ได้ใช้งาน
  6. กระจายสัญญาณ WiFi แบบ Sleep mode: ในกรณีที่ใช้งานโมเดม WiFi ควรใช้คำสั่ง WiFi.setSleepMode(WIFI_MODEM_SLEEP) เพื่อเปิดใช้งานโหมดการใช้พลังงานต่ำของโมเด็ม Wi-Fi

ด้วยการประยุกต์ใช้วิธีการเหล่านี้ เราสามารถประหยัดพลังงานของ ESP32 และเพิ่มประสิทธิภาพการใช้งานอุปกรณ์ได้อย่างมีประสิทธิภาพมากขึ้น ทำให้สามารถยืดอายุการใช้งานของแบตเตอรี่หรือการทำงานอื่นๆ ได้อย่างมีประสิทธิภาพ