궁극의 DIY 케거레이터 제작기 - 라즈베리파이·아두이노 IoT 맥주 디스펜서
프로젝트 목표
가정용 케거레이터(맥주 디스펜서)를 IoT 기술로 스마트하게 업그레이드합니다. 단순히 맥주를 차갑게 보관하는 것을 넘어, 정밀한 온도 제어, 탄산 압력 모니터링, 케그 잔량 실시간 추적, CO₂ 탱크 잔량 관리를 통합한 종합 관리 시스템을 구축했습니다.
시스템 아키텍처
메인 컨트롤러: 라즈베리파이 2 (Windows 10 IoT Core)
시스템의 두뇌 역할로 웹 서버, REST API, Azure Event Hub 연동, 전체 디바이스 오케스트레이션을 담당합니다. 웹 대시보드(https://slsys.homeip.net:9501)로 원격 모니터링/설정 가능.
분산 센서 노드: 아두이노 프로 미니 3.3V/8MHz × 7대
각 센서 그룹별로 독립된 아두이노를 배치하여 I²C 버스로 라즈베리파이와 통신합니다. 단일 마스터-멀티 슬레이브 구조로 안정성 확보.
- 로드셀 앰프(HX711) + 포스트 스케일 × 5대: 케그 4개 + CO₂ 탱크 1개 무게 측정
- 온도 센서(DHT11×2, DHT22×3) 노드: 냉동고 바닥, 상단, 탭 타워 2개, 외부 온도 5포인트 측정
- 압력 센서(ABPMANN030PG2A3, I²C): 탄산 공급 라인 압력 실시간 모니터링
액추에이터 제어
- 컴프레서 릴레이: 라즈베리파이 GPIO → 릴레이 → 컴프레서 전원 차단/투입으로 온도 제어
- 5V 6A SMPS: 라즈베리파이, 아두이노 노드들, 주소 지정 가능 LED 스트립 통합 전원
핵심 기능 상세
1. 지능형 온도 제어
5개 온도 센서 데이터를 종합하여 컴프레서 온/오프 제어. 설정 온도 범위 내 유지, 결빙 방지 로직 포함. PID 제어 대신 히스테리시스 기반 온/오프 제어로 컴프레서 수명 보호.
2. 케그 잔량 실시간 계산
로드셀로 케그 총중량 측정 → 용기 무게(공병 무게) 차감 → 내용물 무게 산출 → 설정된 잔당 용량(예: 12oz)으로 환산하여 잔여 잔 수 표시. 풀 케그 무게 저장 기능으로 자동 캘리브레이션 지원.
3. CO₂ 탱크 관리 및 누출 감지
전용 로드셀로 탱크 무게 추적. 설정 임계값 이하 시 알림. Stream Analytics 연동으로 점진적 무게 감소(누출) 패턴 자동 탐지 예정.
4. 클라우드 연동 및 알림 시스템
Azure Event Hub로 실시간 텔레메트리 전송 → Stream Analytics로 룰 기반 알림 처리(과온/과냉, CO₂ 부족, 누출 의심). 향후 모바일 푸시 알림 확장 예정.
소프트웨어 구조 (C#, Windows 10 IoT)
주요 클래스
// Keg 클래스 - 케그 상태 관리
public class Keg : DeviceBase {
public Scale Scale { get; } // 연결된 로드셀
public double ContentsWeight { get; } // 내용물 무게
public int PercentFull { get; } // 잔량 %
public int QtyRemaining { get; } // 잔여 잔 수
public void Refresh() { /* 주기적 업데이트 */ }
public void Save()/Load() { /* 로컬 설정 영속화 */ }
}
// Scale 클래스 - HX711 I²C 통신 래퍼
public class Scale : DeviceBase {
public async Task Init(string i2cDeviceId, TimeSpan interval);
public void Refresh() { /* 원시값 읽기 → 캘리브레이션 적용 → 무게 환산 */ }
public void StoreOffset() { /* 영점 보정 */ }
public void Calibrate() { /* 알려진 무게로 캘리브레이션 */ }
}
// Kegerator 클래스 - 전체 시스템 통합 싱글톤
public class Kegerator : INotifyPropertyChanged {
public Temperatures Temperatures { get; }
public Controller TemperatureController { get; }
public PressureSensor PressureSensor { get; }
public CO2Tank CO2Tank { get; }
public Keg Keg1~4 { get; }
public async Task Init() { /* 모든 디바이스 초기화 + 타이머 시작 */ }
public void Refresh() { /* 전체 디바이스 폴링 */ }
}
제작 과정 하이라이트
- 10.6 cu.ft 체스트 프리저를 베이스 캐비닛으로 활용
- 스테인리스 듀얼 드래프트 타워 + 타워 쿨러로 거품 최소화
- 로드셀을 포스트 스케일에서 분리해 케그 받침대에 내장
- 전화 배선 보드(Leviton 47603)로 I²C 버스 배선 정리
- MDF 목재로 외부 마감, 레이저 커터로 정밀 가공
확장 계획
- 탄산 압력 자동 제어 (전자식 레귤레이터 연동)
- 머신러닝 기반 음용 패턴 분석 및 재고 예측
- 음성 어시스턴트 연동 (Cortana/Alexa)
- 다중 케거레이터 통합 관리 대시보드
참고 사항
본 프로젝트는 주류 소비를 권장하지 않으며, 음료 종류는 사용자 자유입니다. 전체 소스 코드는 GitHub 공개 예정이며, 조기 접근이나 기여 희망 시 작성자에게 문의 바랍니다.