DIY สร้าง Smart Energy Meter ด้วย ESP32 & LoRa พร้อม Web Dashboard
เคยสงสัยไหมครับว่าเครื่องใช้ไฟฟ้าในบ้านกินไฟไปเท่าไหร่แล้ว? หรือถ้าคุณมีฟาร์ม หอพัก หรือโรงเรือนที่อยู่ไกลๆ แล้วอยากมอนิเตอร์การใช้ไฟฟ้าแบบเรียลไทม์โดยไม่ต้องพึ่งพา Wi-Fi จะทำยังไงดี?
โปรเจกต์นี้เราจะมาสร้าง IoT Smart Energy Meter แบบส่งสัญญาณระยะไกลด้วยเทคโนโลยี LoRa ควบคู่กับบอร์ด ESP32 กันครับ! ระบบนี้สามารถวัดได้ทั้ง แรงดัน (Voltage), กระแสไฟ (Current), กำลังไฟฟ้า (Power) และพลังงาน (Energy) แถมยังสั่งเปิด/ปิดเครื่องใช้ไฟฟ้าผ่าน Web Dashboard ได้อีกด้วย!
⚠️ ความปลอดภัยต้องมาก่อน (Safety First!)
- โปรเจกต์นี้ต้องต่อสายกับ "ไฟบ้าน (Mains Electricity)" โปรดสับคัตเอาต์ตัดไฟก่อนต่อวงจรทุกครั้ง
- ห้ามสัมผัสสายไฟที่เปลือยเปล่าเด็ดขาดในขณะที่ระบบกำลังจ่ายไฟอยู่
- ควรใส่แผงวงจรในกล่องพลาสติก (Enclosure) ให้มิดชิด
- หากไม่มั่นใจ แนะนำให้ขอความช่วยเหลือจากผู้เชี่ยวชาญด้านไฟฟ้าครับ
คลิกเพื่อดูรูปภาพผลงานเพิ่มเติม (View More)
รายการอุปกรณ์ (Supplies)
- บอร์ด ESP32 Development Board ×2 (สำหรับตัวส่งและตัวรับ)
- โมดูล LoRa SX1278 ×2
- โมดูลเซ็นเซอร์วัดไฟ PZEM004T v3.0 ×1
- หน้าจอ ST7735 TFT Display ×1 และ SSD1306 OLED Display ×1
- โมดูล Relay ×1 และ Push Button ×1
- อะแดปเตอร์จ่ายไฟ 5V, สาย Jumper, และแผ่นวงจร Perfboard
คลิกเพื่อดูรูปอุปกรณ์ชิ้นอื่นๆ (View More)
Step 1: ระบบทำงานอย่างไร?
โปรเจกต์นี้แบ่งฮาร์ดแวร์ออกเป็น 2 ฝั่ง คือ ฝั่งส่ง (Transmitter) และ ฝั่งรับ (Receiver)
-
ฝั่งส่ง (ติดตู้ไฟ): บอร์ด ESP32 อ่านค่าไฟฟ้าจากเซ็นเซอร์ PZEM004T แสดงผลบนจอ TFT แล้วส่งข้อมูลไร้สายไปหาฝั่งรับด้วยคลื่นวิทยุ LoRa
-
ฝั่งรับ (อยู่ในบ้าน): บอร์ด ESP32 อีกตัวจะรอรับสัญญาณ LoRa โชว์สถานะที่จอ OLED และทำหน้าที่เป็น Web Server (Dashboard) ให้เราเข้ามือถือไปดูค่าไฟและกดสวิตช์ปิด/เปิด Relay จากระยะไกลได้!
Step 2 - 4: การต่อวงจร (Wiring & Assembly)
ฝั่ง Transmitter:
-
PZEM004T: TX -> GPIO16 / RX -> GPIO17
-
LoRa: NSS -> 15, RST -> 14, DIO0 -> 26, MOSI -> 23, MISO -> 19, SCK -> 18
-
จอ TFT: CS -> 5, DC -> 21, RST -> 22
-
Relay & Button: Button -> 4 / Relay -> 2
ฝั่ง Receiver:
-
LoRa: NSS -> 15, RST -> 14, DIO0 -> 13, MOSI -> 10, MISO -> 11, SCK -> 12
-
จอ OLED: SDA -> 17 / SCL -> 18
(ย้ำอีกครั้ง: ห้ามจ่ายไฟเด็ดขาดในขณะที่กำลังต่อสายไฟหรือบัดกรีวงจรนะครับ)
คลิกเพื่อดูแผนผังการต่อสาย (Wiring Diagrams) (View More)
Step 5: บัดกรีลงแผ่นวงจร Perfboard
เมื่อเทสต์การต่อสายผ่านบอร์ดทดลอง (Breadboard) เรียบร้อยแล้ว ให้ค่อยๆ ย้ายอุปกรณ์มาบัดกรีลงบนแผ่นวงจรเจาะรู (Perfboard) แนะนำให้เริ่มบัดกรีจากชิ้นส่วนเล็กๆ อย่างพวก Header pin และปุ่มกดก่อน แล้วค่อยตามด้วยบอร์ด ESP32 บัดกรีเสร็จอย่าลืมใช้มัลติมิเตอร์เช็คความต่อเนื่อง (Continuity Test) เพื่อกันไฟช็อตด้วยนะ
Step 6 - 8: โค้ดดิ้งและติดตั้งไลบรารี
เราจะใช้ Arduino IDE ในการเขียนโค้ดลง ESP32 โดยบอร์ดฝั่งส่งจะทำหน้าที่ดึงเวลาจากเซิร์ฟเวอร์ NTP มาทำ Timestamp สำหรับการคิดบิลค่าไฟ และทำการรวมข้อมูลส่งผ่านคลื่นวิทยุทุกๆ สองสามวินาที ส่วนบอร์ดฝั่งรับจะรอรับข้อมูล สร้างหน้าเว็บ Dashboard สำหรับดูค่าแบบกราฟ และรับคำสั่งกดปุ่มหน้าเว็บกลับไปเปิด/ปิด Relay
เตรียมความพร้อมใน Arduino IDE:
- วางลิงก์
https://dl.espressif.com/dl/package_esp32_index.json ใน Preferences เพื่อดึงบอร์ด ESP32 มาติดตั้ง
- ติดตั้งไลบรารี: LoRa, Adafruit GFX, Adafruit SSD1306, Adafruit ST7735, และ PZEM004Tv30
คลิกเพื่อคัดลอกรายชื่อไลบรารี และ ดาวน์โหลดไฟล์โค้ด (View More)
// ค้นหาและติดตั้งไลบรารีเหล่านี้ใน Arduino IDE > Library Manager
1. LoRa
2. Adafruit GFX
3. Adafruit SSD1306
4. Adafruit ST7735
5. PZEM004Tv30
Step 9: พิมพ์เคส 3D ป้องกันไฟดูด
เพื่อความปลอดภัยสูงสุดและเพิ่มความดูดีเป็นมืออาชีพ ให้ดาวน์โหลดไฟล์ STL ไปพิมพ์ด้วยเครื่อง 3D Printer (ใช้พลาสติก PLA, Infill 20-40% ไม่ต้องใช้ Support) ประกอบแผงวงจรทั้งหมดลงไป ยึดให้แน่นด้วยกาวร้อน ขันน็อตเสาอากาศ SMA ออกมาด้านนอกกล่องเพื่อรับสัญญาณให้ได้ไกลที่สุด
Step 10 - 12: การทดสอบหน้าเว็บและทดสอบใช้งานจริง
เมื่อจ่ายไฟ หน้าจอฝั่งรับจะโชว์ IP Address ให้นำเลขนั้นไปพิมพ์ในเว็บบราวเซอร์บนมือถือหรือคอมที่ต่อ Wi-Fi เดียวกัน จะเจอหน้า Login ซึ่งแบ่งออกเป็น 2 ระดับ:
-
Admin (แอดมิน):
admin / admin123 สามารถดูบิลค่าไฟรายเดือน เปลี่ยนตั้งค่าราคาต่อหน่วยไฟ และกดควบคุมเปิด/ปิดสวิตช์ Relay ได้
-
User (ผู้ใช้ทั่วไป):
user1 / pass123 ดูค่าไฟและกราฟได้อย่างเดียว สั่งปิดสวิตช์ไม่ได้
ในการทดสอบใช้งานจริง (Field Testing) ผู้เขียนใช้โมดูลแปลงไฟ HLK-PM01 เพื่อแปลงไฟบ้านมาเลี้ยงบอร์ด ESP32 และทดลองต่อกับหลอดไฟ LED 10W พบว่าระบบทำงานได้เสถียรมาก อัปเดตข้อมูลกราฟผ่าน LoRa แบบไหลลื่นตลอดคืน เป็นอันเสร็จสมบูรณ์!
คลิกเพื่อดูรูปหน้าตา Dashboard และการทดสอบจริง (View More)
สนใจสร้างระบบ Smart Home & IoT เป็นของตัวเองไหม?
คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา