문제
책상 위 가전 두 대의 전력과 요금을 재야 했던 기기
고객은 책상 위 가전이 전기를 얼마나 쓰는지 알고 싶어 했습니다. 전기요금은 한 달 뒤 고지서로만 확인할 수 있었습니다.
책상 위에는 전기포트, 스탠드, 모니터처럼 늘 꽂혀 있는 가전이 많습니다. 어느 가전이 전기를 많이 쓰는지 따로 잴 방법이 없었습니다. 쓰지 않는 가전을 끄려면 플러그를 직접 뽑아야 했습니다.
기기는 220V 가전 두 대를 꽂아 쓰는 콘센트 형태여야 했습니다. 채널마다 전류를 재서 전력과 요금으로 바꿔 보여 줘야 했습니다. 버튼으로 채널마다 전원을 끊을 수도 있어야 했습니다.
그래서 측정과 제어, 화면 표시를 한 기기에 담은 시제품을 만들기로 했습니다.
해결
채널마다 전류를 재는 전원부와 화면·버튼을 맡는 논리부
기기는 전원부와 논리부 두 보드로 나뉩니다. 전원부에서 잰 전류를 논리부의 MCU가 받아 전력과 요금으로 바꿉니다.
- 전류 측정: 채널마다 ACS712 전류 센서 칩으로 전류를 잽니다. 잰 전류에 220V를 곱해 전력을 계산합니다.
- 요금과 화면: 계산한 전력에 사용자가 고른 누진 구간의 단가를 곱해 전기요금을 구합니다. 채널마다 전력, 요금, 전원 상태를 LCD 화면에 보여 줍니다.
- 2채널 제어: 두 콘센트를 릴레이로 따로 켜고 끕니다. 버튼을 누르면 바로 전원 상태가 바뀝니다.
- 보드 분리: 릴레이와 ACS712가 있는 AC 전원부와 LCD·MCU가 있는 논리부를 다른 보드로 나눴습니다.
- 메모리 관리: 메모리는 동적 할당 없이 미리 잡아 둔 영역에서 나눠 씁니다.
- 하우징: 화면 창이 뚫린 뚜껑과 상자형 본체를 3D로 모델링하고 3D 프린터로 출력했습니다.


고전압 전원부를 논리부와 다른 보드로
220V가 흐르는 릴레이·전류 센서 구간과 MCU·LCD 구간을 한 보드에 두지 않았습니다. 릴레이가 붙고 떨어질 때 생기는 잡음이 MCU와 측정값에 섞이지 않게 하려는 것입니다. 220V 구간을 한 보드에 모으면 절연 거리를 챙기기도 쉽습니다. 두 보드는 전류 신호선과 릴레이 제어선으로만 잇습니다.
OS 없이 한 루프로 도는 C 펌웨어
펌웨어를 RTOS 없이 C로 짰습니다. 채널과 화면 요소는 구조체를 객체처럼 써서 나눠 다뤘습니다. 기기가 하는 일은 전류 읽기, 계산, 화면 갱신, 버튼 처리로 단순해 한 루프로 충분했습니다. OS를 올리지 않으면 작은 MCU의 메모리를 기능에 더 쓸 수 있습니다.
요금은 사용자가 고른 누진 구간의 단가로
주택용 전기요금은 한 달 사용량 구간마다 단가가 올라갑니다. 이 기기는 한 달 누적 사용량을 재지 않아 구간을 스스로 정하지 못합니다. 그래서 화면 설계 단계에서 누진 구간 여섯 개를 두고 사용자가 고르게 했습니다.
결과
두 콘센트의 전력과 요금을 한 화면에서 보고 끄는 흐름
이 기기로는 책상 위 가전 두 대가 쓰는 전력과 요금을 화면에서 바로 봅니다. 쓰지 않는 가전은 플러그를 뽑지 않고 버튼으로 끕니다.
누적 측정과 데이터 송신은 아직 들어가지 않았습니다. 하우징도 3D 프린팅 시제품 수준입니다.