수작업으로 제작한 완전 자동 스마트 커피 메이커입니다. 블루투스로 스마트폰에서 제어하거나, 물을 붓는 것만으로 자동 추출이 시작됩니다. ST7920 LCD에 실시간 온도 그래프가 표시되며, 추출 과정을 분석해 '물 없음', '2인분', '6인분', '히터 오류' 등을 자동 판별합니다. 테스트 모드를 통해 외부 온도계로도 활용 가능합니다.
완성된 스마트 커피 메이커 - LCD에 온도 그래프 표시
주요 기능
1. 자동 시작 (Autostart)
대기 모드에서 주기적으로 온도를 측정하다가, 차가운 물이 부어져 온도가 급격히 떨어지면 자동으로 추출을 시작합니다. 'auto' 명령으로 활성화/비활성화 가능하며 EEPROM에 저장됩니다.
2. 추출 중 1회 분석 (60초 후)
시작 60초 후 초기 온도와 현재 온도 차이를 분석해 다음을 판별합니다:
물 없음: 온도 과상승
2인분: 적은 물량으로 온도 상승 폭 큼
6인분: 많은 물량으로 온도 상승 폭 작음
히터 코일 오류: 온도 변화 미미
물 양에 따른 온도 상승 곡선 차이
3. 단위 전환 (℃/℉)
'c' 또는 'f' 명령으로 언제든 전환 가능. 그래프에 흔적 없이 기존 저장값도 자동 변환. EEPROM 저장.
4. 동적 화면 요소
그래프가 화면을 채우면 왼쪽으로 스크롤. 온도 표시, 트렌드 화살표 등 UI 요소가 그래프와 겹치지 않게 동적으로 위치 변경.
5. 테스트 모드
외부 온도 센서 연결 시 범용 온도계로 사용. -20℃~+128℃ 범위, 측정 간격 1초~11.57일(1~999999초) 설정 가능.
온도 측정: OneWire + DallasTemperature 라이브러리로 DS18B20 읽기
그래프: 128픽셀 폭 버퍼에 온도 매핑해 수직선으로 그리기
상태 머신: 비트 플래그 배열(binFlags)로 대기/추출/오류/테스트 모드 관리
EEPROM: 자동시작 여부, 온도 단위 저장
블루투스: SoftwareSerial로 HC-05 통신, 프레임 기반 프로토콜(BVSP) 구현
명령 파싱: Auto, Reboot, Start, Stop, Test, C/F, 측정간격 숫자 등 처리
회로도
아두이노 나노, HC-05, DS18B20, ST7920 LCD, 릴레이, CD4017BE, 버튼, 부저, LED 바 연결도 제공. (이미지 참조)
제작 후기
그래프 구현, 자동 분석 알고리즘, 동적 UI, 블루투스 프로토콜까지 직접 설계하며 많은 것을 배웠습니다. 특히 온도 상승 곡선만으로 물 양을 역추적하는 아이디어가 재미있었습니다. 아두이노 나노의 제한된 메모리 안에서 그래프 버퍼, 문자열, 플래시 문자열 우회 기법 등을 최적화하는 과정도 좋은 경험이었습니다.