산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

스마트 홈을 위한 고급 멀티존 난방 제어 시스템

부품 및 소모품

아두이노 우노 (Arduino UNO, 5존 초과 시 메가 권장) × 1
Keyes 8채널 5V 릴레이 보드 × 1
Honeywell MT8-230-NC 소형 열전 액추에이터 (230V AC) × 1

프로젝트 소개

거실 단일 온도조절기로는 주방이 너무 덥거나 춥습니다. 상용 멀티존 컨트롤러(EvoHome 등)는 고가라, 아두이노 우노로 그 지능을 구현했습니다. 제 문제를 완벽히 해결했습니다.

주요 특징

제어 대상

존별 개별 난방

펌프 제어 로직

바닥 난방 없는 방(라디에이터) 옵션 제어

참고 사항

코드

ProjectCV.ino (메인 스케치)

/* Floor Unit heating controller for multiple Rooms/Zones v1.0
 * Copyright: GPL-3.0 by Eric Kreuwels, 2017
 * Credits: Peter Kreuwels for use-case definitions
 * 테스트 전 실사용 검증 필수, 작성자 책임지지 않음 */

#include <avr/wdt.h> // Watchdog

// #define FAST_MODE // 테스트용: 루프 50배 속도, 실펌프 연결 시 주의!
#define VALVE_TIME 3000L        // 밸브 개폐 5분 (안전 마진)
#ifdef FAST_MODE
#define PUMP_MAINTENANCE_TIME 108000L  // 4분마다 유지보수 런 (테스트)
#else
#define PUMP_MAINTENANCE_TIME 1300000L // 36시간마다 유지보수 런 (실사용)
#endif
#define PUMP_ACTIVATION_TIME 5000L     // 펌프 가동 8분 (테스트 10초)
#define COOLDOWN_TIME 18000L           // 난방 후 30분 순환 (테스트 40초)

#include "./Devices.h"

struct Zone {
  String name;
  Valve valve;
  Thermostat thermostat;
};

////////////////////////////////////////////////////
// 설정 블록 - 핀 매핑 자유 변경 가능 (아두이노 우노 기준)
#define HEATER_PIN      4  // 중앙 난방기 서모스탯 입력 릴레이
#define FU_PUMP_PIN     5  // 바닥 난방 펌프 릴레이
#define LIVING_VALVE    7  // 존 1 밸브
#define KITCHEN_VALVE   6  // 존 2 밸브
#define DINING_VALVE    3  // 존 3 밸브
#define LIVING_THERMO   8  // 존 1 서모스탯
#define KITCHEN_THERMO  9  // 존 2 서모스탯
#define DINING_THERMO   11 // 존 3 서모스탯
#define NO_ZONE_THERMO  10 // 바닥 난방 없는 방 서모스탯 (옵션)
#define HEATING_LED     12 // 난방 중 켜짐, 쿨다운 시 깜빡임
#define INDICATION_LED  13 // 보드 동작 표시 (제거 시 IO 핀 확보 가능)

#define NR_ZONES 3
Zone Zones[NR_ZONES] = {
  {"Living Room", Valve(LIVING_VALVE, "Living Valve"), Thermostat(LIVING_THERMO, "Living Thermostat")},
  {"Kitchen Area", Valve(KITCHEN_VALVE, "Kitchen Valve"), Thermostat(KITCHEN_THERMO, "Kitchen Thermostat")},
  {"Dining Room", Valve(DINING_VALVE, "Dining Valve"), Thermostat(DINING_THERMO, "Dining Thermostat")}
};
// 설정 블록 끝
////////////////////////////////////////////////////

LED iLED(INDICATION_LED, "Indicator LED");
LED hLED(HEATING_LED, "Heating LED");
Manipulator CV(HEATER_PIN, "CV Heater");
Pump FUPump(FU_PUMP_PIN, "Floor Unit Pump");
Thermostat ZonelessThermo(NO_ZONE_THERMO, "Zoneless Thermostat");

void printConfiguration() {
  Serial.println("------ Board Configuration: ---------");
  iLED.Print(); hLED.Print(); CV.Print(); FUPump.Print(); ZonelessThermo.Print();
  for(int i=0; i0) cooldownCount--; return checkCoolDownNeeded(); }
  bool checkCoolDownNeeded() { return cooldownCount>0; }
  void Print() {
    switch(_State) { case idle: Serial.print("idle"); break; case on: Serial.print("on"); break; case cooldown: Serial.print("cooldown"); break; }
  }
};

State CVState;

void setup() {
  Serial.begin(115200);
  printTimeStamp(); Serial.print(": ");
#ifdef FAST_MODE
  Serial.println("CV Zone Controller started in TestMode!\n - Board time runs ca 50 times faster\n - Pump maintenance cycle runs ever 4 minutes instead once per 36 hours");
#else
  Serial.println("CV Zone Controller started. Time stamps (dd:hh:mm:ss)");
#endif
  Serial.println(" - Time stamps format (dd:hh:mm:ss)");
  printConfiguration();
  wdt_enable(WDTO_1S); // 워치독 1초
}

void loop() {
#ifdef FAST_MODE
  delay(2); // 테스트용 50배 속도
#else
  delay(100); // 정상: 초당 약 10루프
#endif
  iLED.Alternate(); // 생존 표시
  FUPump.Update();
  for(int i=0; i

Devices.h (디바이스 헬퍼 클래스)

// IODevice, Thermostat, Manipulator, Valve, Pump, LED 클래스 정의
// 루프에서 Update() 호출로 밸브/펌프 전환 시간 관리
// 워치독, 디바운싱, 상태 전환 로직 내장

전체 코드는 원문에서 다운로드 가능합니다.

회로도

펌프, 밸브, 서모스탯, LED 상세 배선도

스마트 홈을 위한 고급 멀티존 난방 제어 시스템

여러 컨트롤러 캐스케이드 연결 예시 (층별 컨트롤러)

스마트 홈을 위한 고급 멀티존 난방 제어 시스템

시리얼 모니터 실제 로그 예시 (밸브 개방 후 5분 뒤 펌프 시작 등 지연 확인 가능)

로그 예시 다운로드

제조공정

  1. PWM 전력 컨트롤러: 펄스 폭 변조 램프 드라이버 제작
  2. 태양열 난방 시스템: 패시브에서 액티브까지 지속 가능한 가정 난방 솔루션
  3. 라즈베리 파이로 중앙 난방 보일러 모니터링하기 – 하드웨어, 소프트웨어, 설정 가이드
  4. 플로어 스크러버 최적 성능 유지보수 필수 가이드
  5. 웹 제어 DMX 조명 시스템 - 아두이노 마스터 컨트롤러
  6. 자동 게이밍 어시스턴트: 게이머를 위한 스마트 작업 자동화 장치
  7. DIY 아두이노 USB 게임 컨트롤러 - 나만의 고성능 게임패드 만들기
  8. Unopad: 아두이노 우노로 만드는 에이블턴 라이브용 MIDI 컨트롤러
  9. 아두이노 기반 진공 형광 디스플레이(VFD) 컨트롤러 키트
  10. 중앙난방과 아두이노 연동: OpenTherm 실드로 스마트 제어 구현