Official Approved Reseller of Raspberry Pi

Arduino คุม Heat Pump: ควบคุมอุณหภูมิบ้านอย่างชาญฉลาด

ระบบควบคุมฮีตปั๊มป์น้ำด้วย Arduino และ Generic Inverter - Global Byte Shop
Global Byte Shop | บทความเทคนิค
Arduino Heatpump Inverter DIY

ระบบควบคุมฮีตปั๊มป์น้ำด้วย Arduino และ Generic Inverter

คู่มือสร้างระบบควบคุม Air to Water Heatpump ด้วย Arduino และ Generic Inverter พร้อมการเขียนโปรแกรม การต่อวงจร และการปรับแต่งระบบให้ทำงานอย่างมีประสิทธิภาพ

🌡️🤖⚡

ระบบควบคุม Air to Water Heatpump

Arduino + Generic Inverter + Temperature Control

🎯 สิ่งที่คุณจะได้เรียนรู้

  • การสร้างระบบควบคุมฮีตปั๊มป์อัตโนมัติ
  • การเขียนโปรแกรม Arduino สำหรับควบคุม VFD
  • การต่อวงจรและระบบความปลอดภัย
  • การปรับแต่งเพื่อประหยัดพลังงาน 30-40%

ภาพรวมของโปรเจค

ระบบ Air to Water Heatpump Control นี้เป็นโปรเจคที่ผสมผสานเทคโนโลยี Arduino กับ Variable Frequency Drive (VFD) เพื่อสร้างระบบควบคุมฮีตปั๊มป์ที่มีประสิทธิภาพสูง สามารถประหยัดพลังงานได้อย่างมีนัยสำคัญ

จุดเด่นของระบบนี้คือการใช้ Variable Speed Control ที่ช่วยให้คอมเพรสเซอร์ทำงานด้วยความเร็วที่เหมาะสมกับความต้องการ แทนการเปิด-ปิดแบบเดิม ซึ่งช่วยลดการสึกหรอและประหยัดไฟฟ้าได้มาก

📊

System Architecture Diagram

Temperature Sensors → Arduino → VFD → Motor → Heat Exchange

อุปกรณ์ที่ต้องใช้

🤖 Arduino และ Electronics

  • Arduino Mega 2560 - 890฿ (ควบคุมหลักของระบบ)
  • DS18B20 Temperature Sensors (4 ตัว) - 120฿/ตัว (วัดอุณหภูมิน้ำเข้า-ออก, อากาศ)
  • Relay Module 8 Channel - 350฿ (ควบคุมอุปกรณ์ไฟฟ้า)
  • LCD Display 20x4 I2C - 280฿ (แสดงสถานะระบบ)
  • Rotary Encoder - 150฿ (ปรับค่าต่างๆ)

⚡ Inverter และ Motor

  • VFD Inverter 3-Phase - 4,500-8,000฿ (ควบคุมความเร็วคอมเพรสเซอร์)
  • 3-Phase AC Motor - 3,000-6,000฿ (คอมเพรสเซอร์ฮีตปั๊มป์)
  • Contactor และ Overload Relay - 800฿ (ป้องกันมอเตอร์)
  • Current Transformer (CT) - 450฿ (วัดกระแสไฟฟ้า)

🌡️ Heatpump Components

Heat Exchanger และ Water Circulation System

Heat Exchanger และระบบหมุนเวียนน้ำ

Water Tank และ Piping System

Water Tank และระบบท่อ

  • Evaporator Coil - 2,500-4,000฿ (ดูดความร้อนจากอากาศ)
  • Condenser/Heat Exchanger - 3,000-5,000฿ (ถ่ายความร้อนให้น้ำ)
  • Expansion Valve - 800-1,200฿ (ควบคุมการไหลของสารทำความเย็น)
  • Refrigerant R410A - 1,500฿ (สารทำความเย็น)

⚠️ คำเตือนด้านความปลอดภัย

การติดตั้งระบบฮีตปั๊มป์ต้องมีความรู้ด้านไฟฟ้าและระบบทำความเย็น ควรปรึกษาช่างผู้เชี่ยวชาญก่อนติดตั้งจริง การต่อวงจรไฟฟ้าแรงสูงต้องให้ช่างไฟฟ้าที่มีใบอนุญาตเป็นผู้ดำเนินการ

การเขียนโปรแกรม Arduino

โปรแกรมหลักของระบบประกอบด้วยส่วนสำคัญ 4 ส่วน คือ การอ่านอุณหภูมิ, การควบคุม PID, การสื่อสารกับ VFD, และระบบป้องกัน

โครงสร้างโปรแกรมหลัก

Arduino IDE และ Code Structure

Arduino IDE และโครงสร้างโค้ด

LCD Display และ Status Monitor

LCD Display และการแสดงสถานะ

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#include <ModbusMaster.h>

// Pin Definitions
#define ONE_WIRE_BUS 2
#define RELAY_COMPRESSOR 3
#define RELAY_WATER_PUMP 4
#define RELAY_FAN 5
#define ANALOG_CURRENT A0

// Temperature Sensors
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress tempSensor1, tempSensor2, tempSensor3, tempSensor4;

// LCD Display
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Modbus for VFD Communication
ModbusMaster node;

// System Variables
float waterTempIn = 0;
float waterTempOut = 0;
float airTemp = 0;
float condenserTemp = 0;
float targetTemp = 45.0;
float currentFreq = 30.0;
bool systemRunning = false;

void setup() {
  Serial.begin(9600);
  
  // Initialize Temperature Sensors
  sensors.begin();
  sensors.getAddress(tempSensor1, 0);
  sensors.getAddress(tempSensor2, 1);
  sensors.getAddress(tempSensor3, 2);
  sensors.getAddress(tempSensor4, 3);
  
  // Initialize LCD
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Heatpump Controller");
  
  // Initialize Relays
  pinMode(RELAY_COMPRESSOR, OUTPUT);
  pinMode(RELAY_WATER_PUMP, OUTPUT);
  pinMode(RELAY_FAN, OUTPUT);
  
  // Initialize Modbus
  node.begin(1, Serial1);
}

void loop() {
  readTemperatures();
  updateDisplay();
  controlSystem();
  delay(1000);
}

ระบบควบคุม PID

ระบบใช้การควบคุม PID (Proportional-Integral-Derivative) เพื่อปรับความเร็วของคอมเพรสเซอร์ให้เหมาะสมกับความต้องการ

void controlSystem() {
  // Safety checks
  if (condenserTemp > 80 || waterTempOut < 5) {
    emergencyStop();
    return;
  }
  
  // PID Control Logic
  float tempError = targetTemp - waterTempOut;
  static float lastError = 0;
  static float integral = 0;
  
  float kp = 2.0;  // Proportional gain
  float ki = 0.1;  // Integral gain
  float kd = 0.5;  // Derivative gain
  
  integral += tempError;
  float derivative = tempError - lastError;
  
  float output = kp * tempError + ki * integral + kd * derivative;
  
  // Convert to frequency (30-60 Hz)
  currentFreq = constrain(30 + output, 30, 60);
  
  // Start/Stop Logic
  if (tempError > 2.0 && !systemRunning) {
    startSystem();
  } else if (tempError < -1.0 && systemRunning) {
    stopSystem();
  }
  
  // Update VFD frequency
  if (systemRunning) {
    setVFDFrequency(currentFreq);
  }
  
  lastError = tempError;
}

การสื่อสารกับ VFD Inverter

การควบคุม VFD ผ่าน Modbus RTU ช่วยให้สามารถปรับความเร็วมอเตอร์ได้แม่นยำและตรวจสอบสถานะการทำงานแบบ Real-time

Thermal Camera Monitoring

การตรวจสอบอุณหภูมิด้วย Thermal Camera

Temperature Sensors และ Monitoring System

Temperature Sensors และระบบตรวจสอบ

void setVFDFrequency(float frequency) {
  // Convert frequency to register value
  uint16_t freqValue = (uint16_t)(frequency * 100);
  
  // Write to VFD frequency register
  uint8_t result = node.writeSingleRegister(0x2001, freqValue);
  
  if (result == node.ku8MBSuccess) {
    Serial.print("VFD Frequency set to: ");
    Serial.print(frequency);
    Serial.println(" Hz");
  } else {
    Serial.println("VFD Communication Error!");
  }
}

void readVFDStatus() {
  // Read VFD status registers
  uint8_t result = node.readHoldingRegisters(0x3001, 6);
  
  if (result == node.ku8MBSuccess) {
    uint16_t outputFreq = node.getResponseBuffer(0);
    uint16_t outputCurrent = node.getResponseBuffer(1);
    uint16_t outputVoltage = node.getResponseBuffer(2);
    
    Serial.print("Output Freq: ");
    Serial.print(outputFreq / 100.0);
    Serial.println(" Hz");
  }
}

การต่อวงจรและ Wiring

Electrical Panel และ Wiring Diagram

Electrical Panel และ Wiring Diagram

Control Circuit (24V DC)

  • Arduino Mega 2560: VCC → 5V Power Supply, GND → Common Ground
  • Temperature Sensors: Red → 5V, Black → GND, Yellow → Pin 2 (with 4.7kΩ pullup)
  • Relay Module: VCC → 5V, IN1-IN8 → Arduino Pins 3-10
  • LCD Display: VCC → 5V, GND → GND, SDA → Pin 20, SCL → Pin 21

Power Circuit (380V AC)

  • VFD Inverter: R, S, T → 3-Phase Input, U, V, W → Motor Output
  • Motor Protection: Contactor → Main Power Switch, Overload Relay → Motor Protection
  • Safety Systems: Emergency Stop, Phase Monitor, Earth Leakage Protection

การปรับแต่งระบบ

PID Tuning

  • Proportional (Kp): เริ่มต้นที่ 2.0 ปรับตามการตอบสนอง
  • Integral (Ki): เริ่มต้นที่ 0.1 เพิ่มถ้ามี Steady State Error
  • Derivative (Kd): เริ่มต้นที่ 0.5 ลดถ้าระบบสั่นไหว

VFD Parameters

  • Minimum Frequency: 30 Hz (ป้องกันมอเตอร์ทำงานช้าเกินไป)
  • Maximum Frequency: 60 Hz (ตามสเปคมอเตอร์)
  • Acceleration Time: 10-15 วินาที (ลดกระแสเริ่มต้น)
  • Deceleration Time: 15-20 วินาที (ป้องกัน Water Hammer)

✅ ผลลัพธ์ที่คาดหวัง

  • ควบคุมอุณหภูมิได้แม่นยำ ±1°C
  • ประหยัดไฟฟ้า 30-40% เมื่อเทียบกับระบบเดิม
  • ลดการสึกหรอของอุปกรณ์
  • COP (Coefficient of Performance): 3.2-4.5
  • เวลาตอบสนอง: < 5 นาที

การ Monitoring และ Troubleshooting

การตรวจสอบระบบอย่างสม่ำเสมอเป็นสิ่งสำคัญเพื่อให้ระบบทำงานได้อย่างมีประสิทธิภาพ

  • ตรวจสอบอุณหภูมิ: ไม่ควรเกิน 80°C ที่คอนเดนเซอร์
  • ตรวจสอบกระแส: ไม่ควรเกิน 80% ของ Rated Current
  • ตรวจสอบความดัน: ระบบน้ำต้องมีความดันเพียงพอ
  • ตรวจสอบการรั่ว: สารทำความเย็นและน้ำ
  • บันทึกข้อมูล: เก็บ Log เพื่อวิเคราะห์ประสิทธิภาพ
Performance Graph และ Data Analysis

Performance Graph และการวิเคราะห์ข้อมูล

System Parameters และ Settings

System Parameters และการตั้งค่า

Voltage Monitoring และ Power Analysis

Voltage Monitoring และการวิเคราะห์พลังงาน

สรุป

ระบบควบคุมฮีตปั๊มป์น้ำด้วย Arduino และ Generic Inverter นี้เป็นโซลูชันที่มีประสิทธิภาพสำหรับการประหยัดพลังงานและเพิ่มความแม่นยำในการควบคุมอุณหภูมิ

การใช้ Variable Speed Control ร่วมกับระบบควบคุม PID ช่วยให้ระบบสามารถปรับตัวตามสภาพแวดล้อมได้อย่างอัตโนมัติ ส่งผลให้ประหยัดพลังงานได้อย่างมีนัยสำคัญ

Real Installation - Complete Heatpump System

การติดตั้งจริง - ระบบ Heatpump ที่สมบูรณ์

Final System Performance และ Results

ผลลัพธ์สุดท้าย - ประสิทธิภาพของระบบ

🛒 สั่งซื้ออุปกรณ์

อุปกรณ์ทั้งหมดในบทความนี้สามารถสั่งซื้อได้ที่ Global Byte Shop

แท็ก


ฝากความคิดเห็น

ฝากความคิดเห็น

Blog posts

  • เทคนิคการเขียนโปรแกรม C ที่ทุกคนควรรู้ จาก Nic Barker

    , โดย Global Byte Shope เทคนิคการเขียนโปรแกรม C ที่ทุกคนควรรู้ จาก Nic Barker

  • ESP32 ฟังเสียงได้แบบมืออาชีพ! ถอดรหัส S/PDIF ได้เหมือนเครื่องเสียง Hi-Fi

    , โดย Global Byte Shope ESP32 ฟังเสียงได้แบบมืออาชีพ! ถอดรหัส S/PDIF ได้เหมือนเครื่องเสียง Hi-Fi

  • สร้าง BURN-E ด้วย Arduino 🔥🤖

    , โดย Global Byte Shope สร้าง BURN-E ด้วย Arduino 🔥🤖

  • Arduino UNO R4 ปลุกเกมคลาสสิก Simon Says ให้กลับมาอีกครั้ง!

    , โดย Global Byte Shope Arduino UNO R4 ปลุกเกมคลาสสิก Simon Says ให้กลับมาอีกครั้ง!

© 2025 บริษัท โกลบอลโทรนิค อินเตอร์เทรด จํากัด, ขับเคลื่อนโดย Shopify

    • PayPal

    เข้าสู่ระบบ

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

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