SmartTimer V1
SmartTimer V1 Firmware — หน้า Spec & Pin Map สำหรับ Maker
หน้านี้สรุป สเปคฮาร์ดแวร์ขั้นต่ำ, ผังขา GPIO, ข้อกำหนดไฟ/รีเลย์, วิธีแฟลช Firmware + Web UI และ เช็กลิสต์ทดสอบ เพื่อให้พี่ช่างทำบอร์ดของตัวเองและลงเฟิร์มแวร์ของเราได้แบบไม่ต้องเดา
Local-first (ไม่ต้องพึ่ง Cloud)
Web UI ผ่าน Browser
Manual / Timer / Pulse
Config ไม่หายเมื่อไฟดับ
Download เฟิร์มแวร์ Smart Timer (สำหรับแฟลชครั้งแรก)
ติดตั้งเฟิร์มแวร์ SmartTimer สำหรับผู้ติดตั้งเอง เพื่อให้การเริ่มต้นใช้งานเป็นไปอย่างปลอดภัยและเสถียร แนะนำให้แฟลช Firmware ก่อนหนึ่งครั้ง (สำหรับบอร์ดที่ยังไม่เคยลงเฟิร์มแวร์) แล้วจึงดำเนินการอัปเดตเป็น Firmware เวอร์ชันล่าสุด ตามขั้นตอนที่ระบุ
ภาพรวม Firmware
SmartTimer V1 เป็นเฟิร์มแวร์สำหรับควบคุมรีเลย์แบบ Local-first ใช้งานผ่าน Web UI ในเครือข่ายเดียวกัน (ไม่ต้องพึ่งอินเทอร์เน็ต)
สิ่งที่ทำได้
- ควบคุมรีเลย์ได้สูงสุด 4 ช่อง (ปรับได้ตามรุ่นเฟิร์มแวร์)
- 3 โหมด: Manual, Timer (ตั้งเวลา), Pulse (ทำงานเป็นรอบ)
- Web UI Responsive ใช้ได้ทั้งมือถือ/คอม
- เก็บค่าคอนฟิกใน NVS (ไฟดับแล้วค่าไม่หาย)
- OTA อัปเดต Firmware/Web UI
ขอบเขต (Scope)
- ทำงานในวงแลน: AP/STA
- ไม่จำเป็นต้องมี Cloud
- รองรับ RTC (ถ้าในบอร์ดมี DS3231)
หมายเหตุ: หากบอร์ดที่ใช้ “ไม่ตรงสเปค/ผังขา” ตามหน้านี้ อาจทำให้บูตไม่ขึ้น หรือรีเลย์ทำงานผิดช่องได้
สเปคฮาร์ดแวร์ขั้นต่ำ (Hardware Requirements)
| รายการ | ขั้นต่ำที่ต้องมี | แนะนำ |
|---|---|---|
| MCU | ESP32 (WROOM-32 / 32E) | |
| Flash | อย่างน้อย 4MB (ขึ้นกับ OTA/WebUI) | |
| RTC | DS3231 (I2C) | |
| Relay Outputs | อย่างน้อย 1–4 ช่อง ตามรุ่น | |
| ปุ่ม Service | มี 1 ปุ่มสำหรับ Reset/Factory | ใช้ GPIO0 |
| Buzzer | Passive Buzzer | ใช้ GPIO27 |
| ไฟเลี้ยง | 5V/3.3V เสถียร | 5V 2A+ (เผื่อรีเลย์/ภาคแปลงไฟ) |
ผังขา GPIO (Pin Map)
แก้ไขตารางด้านล่างให้ตรงกับบอร์ดจริงของคุณ (สำคัญที่สุด: GPIO และ Active LOW/HIGH)
1) Relay Outputs
| Signal | GPIO | Active | หมายเหตุ |
|---|---|---|---|
| RELAY1 | GPIO32 | HIGH | – |
| RELAY2 | GPIO33 | HIGH | – |
| RELAY3 | GPIO25 | HIGH | – |
| RELAY4 | GPIO26 | HIGH | – |
2) RTC (I2C) — DS3231 (ถ้ามี)
| Signal | GPIO | ค่า/หมายเหตุ |
|---|---|---|
| SDA | GPIO21 | – |
| SCL | GPIO22 | Address DS3231: 0x68 |
3) Service Button / Status LED (แนะนำ)
| Signal | GPIO | พฤติกรรม | หมายเหตุ |
|---|---|---|---|
| SERVICE_BTN | GPIO0 | กดค้าง 10–30 วินาที = System Reset / Factory Reset | Strapping Pins ที่มีผลต่อการบูต |
| Passive Buzzer | GPIO27 | เสียงแจ้งเตือน |
ไฟเลี้ยง & ภาคกำลัง (Power & Load Notes)
ไฟเลี้ยงที่แนะนำ
- อินพุต: 220VAC → SMPS 5V (แนะนำ 1A+)
- ESP32: 3.3V เสถียร (LDO คุณภาพดี)
- แนะนำใส่ TVS/ฟิวส์/ป้องกันไฟกระชากตามความเหมาะสม
Tip: ถ้ารีเลย์กินกระแสเยอะ ให้แยก 5V (relay) กับ 3.3V (logic) ดี ๆ ลดโอกาสรีสตาร์ทเวลาสับโหลด
โหลดเหนี่ยวนำ (ปั๊ม/มอเตอร์/โซลินอยด์)
- ถ้าเป็นมอเตอร์ AC แนะนำใช้ แมกเนติกคอนแทคเตอร์ แทนการตัดตรงที่รีเลย์
- แนะนำใส่ RC Snubber / MOV ตามรูปแบบโหลด
- ถ้าเป็น DC Motor ให้ใส่ไดโอด/วงจรป้องกันย้อนกลับที่ฝั่งโหลด
หมายเหตุ: หากบอร์ดที่ใช้ “ไม่ตรงสเปค/ผังขา” ตามหน้านี้ อาจทำให้บูตไม่ขึ้น หรือรีเลย์ทำงานผิดช่องได้
วิธีแฟลช (Flashing Guide)
A) Flash ด้วย ESP32 FLASH DOWNLOAD TOOL
ตั้งค่าไฟล์และ Offset (สำคัญมาก)
| ✅ | File | Offset |
|---|---|---|
| ☑️ | SmarTimerV1.ino.bootloader.bin | 0x1000 |
| ☑️ | SmarTimerV1.ino.partitions.bin | 0x8000 |
| ☑️ | boot_app0.bin | 0xE000 |
| ☑️ | SmarTimerV1_0_0.ino.bin | 0x10000 |
| ☑️ | web_ui_v1_0_0.bin | 0x350000 |
สำคัญ: ค่า 0x10000 และ 0x350000 ปรับตาม partition จริงของรุ่นเฟิร์มแวร์นี้
