ESP32 + LoRa: ทำสมาร์ตมิเตอร์วัดพลังงานไฟฟ้า พร้อมดูผ่านเว็บได้เอง

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) ให้มิดชิด
  • หากไม่มั่นใจ แนะนำให้ขอความช่วยเหลือจากผู้เชี่ยวชาญด้านไฟฟ้าครับ
Smart Energy Meter Project
คลิกเพื่อดูรูปภาพผลงานเพิ่มเติม (View More)
Meter View 1
Meter View 2
Meter View 3
Meter View 4

รายการอุปกรณ์ (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
Hardware Supplies
คลิกเพื่อดูรูปอุปกรณ์ชิ้นอื่นๆ (View More)
Supply 1
Supply 2
Supply 3
Supply 4
Supply 5
Supply 6
Supply 7
Supply 8
Supply 9

Step 1: ระบบทำงานอย่างไร?

โปรเจกต์นี้แบ่งฮาร์ดแวร์ออกเป็น 2 ฝั่ง คือ ฝั่งส่ง (Transmitter) และ ฝั่งรับ (Receiver)

  • ฝั่งส่ง (ติดตู้ไฟ): บอร์ด ESP32 อ่านค่าไฟฟ้าจากเซ็นเซอร์ PZEM004T แสดงผลบนจอ TFT แล้วส่งข้อมูลไร้สายไปหาฝั่งรับด้วยคลื่นวิทยุ LoRa
  • ฝั่งรับ (อยู่ในบ้าน): บอร์ด ESP32 อีกตัวจะรอรับสัญญาณ LoRa โชว์สถานะที่จอ OLED และทำหน้าที่เป็น Web Server (Dashboard) ให้เราเข้ามือถือไปดูค่าไฟและกดสวิตช์ปิด/เปิด Relay จากระยะไกลได้!
Architecture Diagram

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)
Transmitter Wiring Diagram
Transmitter Wiring Photo
Receiver Wiring Diagram
Receiver Wiring Photo

Step 5: บัดกรีลงแผ่นวงจร Perfboard

เมื่อเทสต์การต่อสายผ่านบอร์ดทดลอง (Breadboard) เรียบร้อยแล้ว ให้ค่อยๆ ย้ายอุปกรณ์มาบัดกรีลงบนแผ่นวงจรเจาะรู (Perfboard) แนะนำให้เริ่มบัดกรีจากชิ้นส่วนเล็กๆ อย่างพวก Header pin และปุ่มกดก่อน แล้วค่อยตามด้วยบอร์ด ESP32 บัดกรีเสร็จอย่าลืมใช้มัลติมิเตอร์เช็คความต่อเนื่อง (Continuity Test) เพื่อกันไฟช็อตด้วยนะ

Soldering

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 แบบไหลลื่นตลอดคืน เป็นอันเสร็จสมบูรณ์!

Web Dashboard Admin
คลิกเพื่อดูรูปหน้าตา Dashboard และการทดสอบจริง (View More)
Dashboard Mobile
Dashboard Status
Live Readings
Field Test 1

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา

อ้างอิงและเรียบเรียงโดย: Globalbyteshop Blog

แหล่งที่มาหลัก:
- โปรเจกต์โดย Rau7han: DIY IoT Smart Energy Meter With ESP32, LoRa - Web Monitoring (Instructables)
- ไฟล์ PDF

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี