지능형 온도조절 루틴이 가스 보일러를 제어하며, 시스템은 릴레이를 통해 주방 조명과 욕실 환풍기를 전환합니다. 이 모든 것은 버튼과 안드로이드 기기 또는 컴퓨터를 통해 블루투스로 제어할 수 있습니다. 섭씨와 화씨 버전 모두 제공됩니다. 모든 부품은 수작업으로 제작되었습니다.
아두이노 나노(또는 상위) 보드 기반으로 개발되었으며, Dallas DS18B20 온도 센서, HC-05/06 블루투스 어댑터, I2C 128×64 바이컬러 OLED 디스플레이를 사용합니다. u8glib가 다양한 타입을 지원하므로 다른 LCD/OLED 디스플레이도 선택 가능합니다.
난방 작동 모드
일회성 난방 (15분) 타이머 모드 - 봄/가을 저녁에 유용
온도조절 모드 (우선순위 높음) - EEPROM 메모리에 저장된 설정 목표 온도 유지
보일러 수명 보호 알고리즘
잦은 단시간 스위칭은 가스 보일러 수명을 단축시킵니다. 이를 방지하기 위해 프로그램은 보정값을 사용합니다. 이 값은 과열 및 냉각 복원 정도를 정의합니다. 설정 온도가 낮을수록 더 큰 보정값이 필요한데, 벽이 차가워서 새로 데워진 공기의 열을 더 잘 흡수하기 때문입니다.
열린 창문 감지
프로그램은 창문이 열려 있는지 감지합니다. 1분 내에 온도가 최소 -0.2°C(-0.36°F) 이상 떨어지면 난방을 중지하거나 시작하지 않고, 환풍기를 켜서 공기 순환을 돕습니다. 환경의 열용량으로 인해 온도가 최소 +0.12°C(+0.216°F) 상승하면 시스템은 정상 모드로 복귀하고 '창문 알림' 이벤트를 해제합니다.
오류 감지
측정 온도가 0°C(32°F) 미만이거나 40°C(104°F) 초과하면 오작동 또는 기타 문제(오류, 창문 파손, 화재 등)로 판단하여 모든 장치를 차단합니다.
블루투스 통신
안드로이드 GUI 앱에는 8개의 버튼이 있으며, 대소문자를 보내서 장치를 켜고 끕니다. 'A'는 타이머 난방 켜기, 'a'는 끄기, 'B'/'b'는 환풍기, 'C'/'c'는 조명 제어입니다.
이 프로젝트의 또 다른 강점은 블루투스 시리얼 터미널을 통한 직관적인 제어입니다. 안드로이드 앱뿐만 아니라 일반 PC에서도 가능합니다. 아두이노 IDE의 시리얼 모니터로도 시스템과 채팅하듯 제어할 수 있습니다.
컨트롤러는 매분 자동으로 온도 보고를 전송하며, 장치 켜짐/꺼짐, 온도조절 루틴 활성화 등 모든 이벤트에 대한 즉각적인 보고도 보냅니다.
제어 코드
제어 코드를 수신하고 확인 메시지를 전송합니다. 명령 구조는 'XY' 형태의 두 자리 숫자 기반입니다. 여기서:
'X'는 장치 코드, 'Y'는 연산 코드
30, 31, 32: 조명 끄기/켜기/상태 반전
40, 41, 42: 환풍기 끄기/켜기/상태 반전
50, 51, 52: 일회성 난방 프로그램 끄기/켜기/상태 반전
10-24: 온도조절 기능의 목표 온도 값으로 허용
'r' - 제어 장치 작동 상태 보고
'w' - "창문 알림" 이벤트 수동 해제 (자동 해제 대기 원치 않을 때)
'A, a... H, h' - GUI 앱이 보낸 문자와 동일하게 허용
화씨 버전
모든 보정 변수, 기준값, 비율 값을 화씨로 변환하여 시스템의 계산 및 작동 특성을 유지했습니다.
// 섭씨 버전 v1.1
// 아두이노 나노(또는 상위) 보드, DS18B20 온도 센서, HC-05 블루투스 어댑터,
// I2C 128X64 바이컬러 OLED 디스플레이 기반 지능형 아두이노 스마트홈 온도조절기 솔루션.
// 시스템은 버튼과 안드로이드 스마트폰으로 블루투스를 통해 제어 가능.
// HEATER 가스 보일러, 욕실 AIRING 환풍기, 주방 LIGHTING을 릴레이로 제어.
// 난방 두 가지 모드: 1: 일회성 난방(15분) 타이머 모드, 2: 온도조절 모드(우선순위 높음).
// 설정 목표 온도 EEPROM에 저장. 하드웨어 오류 및 창문 열림 감지 시 난방 중지/미작동.
// Gyula Osi 설계 및 프로그래밍. All rights reserved.
// ... (전체 코드는 원문 참조)
온도조절기 v11 - 화씨 버전
// 화씨 버전 v1.1
// 섭씨 버전과 동일하나 목표 온도 값(50-76)과 장치 코드(1, 2, 3)만 변경.
// ... (전체 코드는 원문 참조)