https://lampatronics.com/product/esp32-38pin-development-board-wifi-and-bluetooth
ภาพรวมแบบเข้าใจเร็ว
- ชิป: ESP32-WROOM-32 (ESP32-D0WD* series) ซีพียู Xtensa LX6 2 คอร์ สูงสุด 240 MHz, ประสิทธิภาพ ~600 DMIPS, มี ULP co-processor สำหรับโหมดประหยัดพลังงาน
- เครือข่ายไร้สาย: Wi-Fi 2.4 GHz 802.11 b/g/n + Bluetooth v4.2 BR/EDR/BLE (วิทยุร่วมกับ Wi-Fi) วิกิพีเดียespressif.com
- หน่วยความจำบนชิป: ROM ~448 KB, SRAM ~520 KB; แฟลชภายนอกบนโมดูลปกติ 4 MB
- ADC/DAC: ADC SAR 12-บิต สูงสุด 18 ช่อง, DAC 8-บิต 2 ช่อง (GPIO25/26) วิกิพีเดีย
- พอร์ต USB-UART: ส่วนใหญ่ใช้ CP2102
- ไฟเลี้ยง: 5 V ผ่าน Micro-USB หรือ VIN(5 V) → เรกูเลเตอร์บนบอร์ดให้ 3.3 V กับลอจิกทุกขา (ห้ามป้อน 5 V เข้าขา 3V3)
- ข้อกำหนดแหล่งจ่าย (สำคัญ): แนะนำ 3.3 V/5 V ที่มีกระแสจ่าย ≥ 500 mA เพื่อรองรับกระชากของ Wi-Fi ตามดาต้าชีต ESP32 series espressif.com
เชิงลึกที่ควรรู้ (สำหรับการออกแบบ/สอน/โปรเจ็กต์จริง)
1) พลังงานและโหมดประหยัด
- กระแสกระชากช่วงส่งสัญญาณ Wi-Fi ทำให้บอร์ดรีเซ็ตได้ถ้าแหล่งจ่ายอ่อน → ใช้แหล่งจ่าย 5 V คุณภาพดี (≥ 500 mA) และสาย USB สั้น/ดี ๆ espressif.com
- Deep-Sleep ต่ำระดับไมโครแอมป์ (อ้างถึง 5 µA ในข้อมูลสรุปทั่วไป) เหมาะกับงานแบตเตอรี่ยาว ๆ พร้อมปลุกด้วย Timer/Touch/GPIO/ADC ได้ วิกิพีเดีย
2) ข้อจำกัด ADC ที่ “มักพลาด”
- ADC2 ใช้ร่วมกับไดรเวอร์ Wi-Fi → เมื่อ Wi-Fi ทำงาน อ่าน ADC2 จะล้มเหลว/ไม่เสถียร; ให้ใช้ ADC1 (GPIO32–39) แทนในงานที่มี Wi-Fi เสมอ (เอกสาร ESP-IDF ระบุชัด) Espressif Docs+1
- เชิงคุณภาพของ ADC: เป็น SAR 12-บิต แต่มี non-linearity; ควรใช้
attenuation
ที่เหมาะสม, ทำการ calibration (esp-idf/Arduino), กรองสัญญาณ (median/avg), แยกกราวด์สัญญาณอ่อนไวจากโหลดสวิทช์
3) ขา “อ่อนไหว” ตอนบูต (Strapping/Boot)
- ขา GPIO0, GPIO2, GPIO5, MTDI(GPIO12), MTDO(GPIO15) เป็น strapping pins—ต้องคุมระดับตรรกะให้ถูกต้องช่วงเปิดเครื่อง ไม่งั้นจะเข้าดาวน์โหลดโหมด/บูตไม่ขึ้น (ดู Boot Mode Table) Espressif Docsespressif.com
- แนวปฏิบัติ:
- อย่าต่อ โหลดดึงลง/ดึงขึ้นแรง ๆ กับขาเหล่านี้ตอนเริ่มระบบ
- รีเลย์/LED/อุปกรณ์ภายนอก ควรผ่านทรานซิสเตอร์/ไดร์เวอร์ และออกแบบ Pull-up/down ให้ไม่กวนบูต
- หากแฟลชลำบาก ให้กดปุ่ม BOOT ค้างแล้วกด EN/RESET
4) I/O และกระแสขา
- กำลังขาดิจิทัลสามารถตั้ง drive strength ได้ ~5/10/20/40 mA ตามดาต้าชีต (ค่าเริ่มต้น ~20 mA) แต่ อย่า ขับโหลดกินกระแสสูงตรง ๆ—ใช้ทรานซิสเตอร์/ไดร์เวอร์จะปลอดภัยกว่า espressif.com
- ขาอินพุตเท่านั้น: GPIO34–39 (ไม่มี Pull-up/down ภายใน)
- ระดับลอจิก 3.3 V เท่านั้น → โมดูล 5 V (เช่น บางรีดสวิตช์/อัลตราโซนิก Echo) ควรแปลงระดับสัญญาณ
5) การป้อนแรงดัน & กราวด์
- เลี้ยงผ่าน USB 5 V, VIN(5 V) หรือ 3V3(3.3 V Regulated) ได้
- ห้าม ป้อน 5 V เข้าขา 3V3 เด็ดขาด
- งานมอเตอร์/เซอร์โว/รีเลย์ → แยกแหล่งจ่าย (ground join) และใส่ไดโอดกันกลับ/คาปาซิเตอร์กรอง
6) ซอฟต์แวร์/เฟรมเวิร์กที่รองรับ
- ESP-IDF (แนะนำสำหรับงานจริง), Arduino (เริ่มง่าย), MicroPython, RTOS ต่าง ๆ
- ตั้งค่า Partition Scheme/OTA, Brown-out (บางงานอาจปิดเพื่อหลีกเลี่ยงรีเซ็ตจากแหล่งจ่ายอ่อน)
- ไดรเวอร์ CP2102 (Windows/macOS/Linux) — ถ้าเจอพอร์ตไม่ขึ้น/คอมไพล์แฟลชไม่ได้ ให้ตรวจสาย/ไดรเวอร์/ปิด Serial Monitor/อุปกรณ์อื่นที่จับพอร์ตอยู่
ข้อควรคำนึง/ควรระวัง (สรุปแบบเช็กลิสต์)
- ใช้ ADC1 เมื่อต้องอ่านอนาล็อกพร้อม Wi-Fi (หลีกเลี่ยง ADC2) Espressif Docs
- ออกแบบโหลดที่ขา GPIO0/2/5/12/15 ให้ไม่ดึงสภาวะบูตผิด (โดยเฉพาะรีเลย์/LED/อุปกรณ์ที่มี Pull เอง) Espressif Docs
- เลือกแหล่งจ่าย ≥ 500 mA และสาย/พอร์ต USB ที่ดี เพื่อลดปัญหารีเซ็ตเวลาส่ง Wi-Fi espressif.com
- แปลงระดับสัญญาณเมื่อคุยกับอุปกรณ์ 5 V
- แยกไฟโหลดเหนี่ยวนำ (มอเตอร์/รีเลย์/โซลินอยด์) และ รวมกราวด์เดียวกัน
- ขา GPIO34–39 เป็นอินพุตเท่านั้น และบางขาไม่มี Pull-up/down ภายใน
- ทำ ADC calibration + filtering เพื่อคุณภาพข้อมูล
- ใช้ ทรานซิสเตอร์/ไดร์เวอร์ เมื่อขับโหลดกินกระแส
- ปรับ attenuation ADC ให้ตรงช่วงแรงดันสัญญาณจริง
ตารางเปรียบเทียบตระกูล ESP32 ยอดนิยม (เลือกให้ตรงงาน)
รุ่น/ชิป | CPU/คอร์ | Wi-Fi | Bluetooth | 802.15.4 | USB (ออนบอร์ด SoC) | จุดเด่น/หมายเหตุ |
---|---|---|---|---|---|---|
ESP32 (คลาสสิก, WROOM-32) | Xtensa LX6 Dual-Core @240 MHz | 2.4 GHz b/g/n | v4.2 BR/EDR + BLE | – | – (ต้องพึ่ง USB-UART เช่น CP2102) | ADC 18ch + DAC 2ch; ฮิตสุด; DevKit 30/38-Pin; เหมาะกับงานทั่วไป/IoT ครบเครื่อง วิกิพีเดีย |
ESP32-WROVER | LX6 Dual-Core | 2.4 GHz b/g/n | v4.2 | – | – | เหมือน ESP32 แต่ มี PSRAM เหมาะงานกล้อง/จอ/บัฟเฟอร์ใหญ่ |
ESP32-S2 | Xtensa LX7 Single-Core | 2.4 GHz b/g/n | ไม่มี BT | – | USB OTG | GPIO เยอะ, เน้นอุปกรณ์ USB/ความปลอดภัย, เหมาะกับ HID/USB Device ง่าย ๆ วิกิพีเดีย |
ESP32-S3 | Xtensa LX7 Dual-Core | 2.4 GHz b/g/n | BLE 5 | – | USB OTG | เพิ่มชุดคำสั่งช่วยงาน ML, ต่อ PSRAM ง่าย, สายงาน Vision/AI edge น่าใช้ วิกิพีเดีย |
ESP32-C3 | RISC-V Single-Core @160 MHz | 2.4 GHz b/g/n | BLE 5 (LE) | – | USB Device | ประหยัดพลังงาน, ขาเข้ากัน ESP8266 บางรุ่น, ราคาคุ้ม วิกิพีเดีย |
ESP32-C6 | RISC-V Hi-perf + LP core | Wi-Fi 6 (2.4 GHz) | BLE 5.3 | มี (Thread/Zigbee) | USB Device | สำหรับ IoT สมัยใหม่ (Wi-Fi 6 + Thread/Zigbee) ในตัวเดียว วิกิพีเดีย |
ESP32-H2 | RISC-V Single-Core | – | BLE 5.3 | มี | USB Device | ไม่มี Wi-Fi เหมาะโครงข่าย Thread/Zigbee + BLE วิกิพีเดีย |
หมายเหตุ: รายละเอียด boot/strapping และสเปกจ่ายไฟ/ไดรฟ์ขาอ้างอิงจากเอกสารดาต้าชีต ESP32 series ของ Espressif ซึ่งระบุโหมดบูตที่คุมโดย GPIO0/GPIO2, สายออภุต/ไดร์ฟสเตร็งธ์ และคำแนะนำแหล่งจ่ายไฟ (≥ 500 mA) สำหรับความเสถียรของระบบ, พร้อมตาราง/ไทมิงสัญญาณของ strapping pins (ดูอ้างอิง) espressif.com
“สูตรเลือกใช้” ให้ตรงงาน
- สอน/โปรเจ็กต์ทั่วไป (Web/MQTT/เซนเซอร์/รีเลย์): เริ่มที่ ESP32 38-Pin (WROOM-32)
- งานกล้อง/จอ/หน่วยความจำใหญ่: เลือก WROVER (มี PSRAM) หรือ S3 + PSRAM
- ต้อง USB โดยตรง/อุปกรณ์ HID: S2/S3 (USB OTG ในตัว)
- โครงข่ายสมัยใหม่/ประหยัดพลังงาน: C3 (RISC-V + USB Device)
- ต้อง Wi-Fi 6 + Thread/Zigbee: C6; เฉพาะ Thread/Zigbee + BLE ไม่ใช้ Wi-Fi → H2
บอร์ด ESP32 DevKit V1 (38-Pin) คือ “ม้าศึกสารพัดประโยชน์” สำหรับห้องแล็บและงานภาคสนาม: Wi-Fi+BLE ครบ, GPIO เยอะ, เรียน/สอน/ต้นแบบไว แต่ให้ระวัง ADC2+Wi-Fi, ขา strapping ตอนบูต, และ แหล่งจ่าย ≥ 500 mA จะทำให้งานเสถียรตั้งแต่วันแรกที่ต่อวงจร Espressif Docs+1espressif.com
ไดรเวอร์ของชิป USB-to-UART ที่อยู่บนบอร์ด ครับ (ไม่ใช่ไดรเวอร์ของ ESP32 เอง)
บอร์ด ESP32 DevKit V1 (38-pin) ส่วนมากใช้ Silicon Labs CP2102 — แนะนำให้ติดตั้ง CP210x VCP driver จากผู้ผลิตโดยตรง เพื่อให้พอร์ตอนุกรม (COM/tty) โผล่ขึ้นมาเสถียรบนทุกระบบปฏิบัติการ silabs.com
จะรู้ได้ไงว่าควรลงตัวไหน?
ดูที่ “ชิปเล็กๆ ใกล้พอร์ต USB” หรือเช็คใน Device Manager (Windows) → Properties → Details → Hardware IDs
- CP210x (Silicon Labs) → VID:PID 10C4:EA60 → ใช้ CP210x VCP driver. Device Huntsilabs.com
- CH340/CH341 หรือ CH9102 (WCH) → VID:PID 1A86:7523 (CH340) หรือ 1A86:55D4 (CH9102) → ใช้ไดรเวอร์ WCH CH34x/CH9102. Device Huntdrivermax.comwch-ic.com
- FTDI (FT232R ฯลฯ) → ใช้ FTDI VCP driver. FTDI
ติดตั้งอย่างไรดี (แยกตามระบบ)
ระบบ | สิ่งที่แนะนำทำ |
---|---|
Windows 10/11 | ติดตั้ง CP210x VCP (หรือไดรเวอร์ตามชิปที่ตรวจพบ) แล้วเสียบใหม่ จะเห็น “Silicon Labs CP210x USB to UART Bridge (COMx)” ใน Device Manager. silabs.com |
macOS (Big Sur/Monterey/Ventura/Sonoma/Sequoia) | ติดตั้ง CP210x VCP แล้วไปที่ Privacy & Security เพื่อ Allow system extension จากผู้พัฒนา จากนั้นรีสตาร์ตถ้าระบบแจ้งเตือน (นี่เป็นข้อกำหนดความปลอดภัยของ macOS รุ่นใหม่) → พอร์ตจะขึ้นเป็น /dev/cu.SLAB_USBtoUART . silabs.comการสนับสนุนของ Apple |
Linux | ปกติ มีไดรเวอร์ในเคอร์เนลอยู่แล้ว (cp210x/ch34x) ไม่ต้องติดตั้ง—เสียบแล้วจะได้ /dev/ttyUSB* หรือ /dev/ttyACM* . silabs.com |
เช็ค/แก้ปัญหาพื้นฐาน
- เปลี่ยน สาย USB ที่เป็นสาย “ส่งข้อมูล” (หลายครั้งเจอสายชาร์จอย่างเดียว)
- ปิด Serial Monitor/โปรแกรมที่จับพอร์ตไว้ (“COM port busy” จะหาย)
- ถ้าไม่เห็นพอร์ต: ติดตั้งไดรเวอร์ให้ตรงชิป, ถอดเสียบใหม่, ลองพอร์ต/สายอื่น
- Windows: ดู Device Manager → Ports (COM & LPT) ชื่อพอร์ตจะบอกชัดว่า CP210x / CH340 / FTDI
- macOS: ติดตั้งแล้วไป Privacy & Security → Allow (ถ้าระบบเตือนเรื่อง System Extension) ก่อนถึงจะใช้งานได้ การสนับสนุนของ Apple
ลิงก์ทางการ (โหลดไดรเวอร์)
- CP210x VCP (Silicon Labs): หน้าดาวน์โหลดทางการ (มี Windows/macOS/Linux) silabs.com
- CH340/CH341/CH9102 (WCH): ไดรเวอร์ Windows/macOS ทางการจาก WCH wch-ic.com+1
- FTDI VCP: หน้าดาวน์โหลดทางการ (Windows/macOS) FTDI