스마트 플러그: 120V 아두이노 기반 스마트 콘센트 (RTC 내장)
부품 및 소모품
| 브레드보드 (또는 만능 기판) |
|
1 |
| 아두이노 우노 |
|
1 |
| USB A-B 케이블 |
|
1 |
| 점퍼 와이어 |
|
1 |
| Maxim DS3231M RTC (±5ppm, I2C) |
고정밀 실시간 시계 |
1 |
| 1채널 릴레이 모듈 (제너릭) |
플라이백 다이오드, 트랜지스터 내장 타입 권장 |
1 |
| 벽면 콘센트용 전원 코드 (3핀, 접지 포함) |
|
1 |
| LED 전구 (테스트용 저전력 부하) |
|
1 |
앱 및 도구
- 아두이노 IDE
- DS3231 라이브러리: https://www.rinkydinkelectronics.com/library.php?id=73
프로젝트 소개
120V 기기(주로 저전력 램프)용 스마트 콘센트입니다. 1채널 릴레이로 콘센트 전원 제어. DS3231 RTC로 현재 시각 확인 후, 설정된 켜기/끄기 시간(24시간제)에 자동 온/오프. 콘센트 자체는 벽면 소켓에 플러그로 연결되는 형태.
⚠️ 중요 안전 수칙 (반드시 준수)
- 접지된 3핀 코드 사용, 핫(검정)선만 릴레이로 차단: 핫선 → 릴레이 공통 단자 → 릴레이 NO 단자 → 콘센트 브라스 나사. 중성선(백색) → 실버 나사, 접지선(녹색) → 그린 나사 직결.
- 릴레이 모듈 사용 (베어 릴레이 직접 사용 금지): 플라이백 다이오드, 구동 트랜지스터, 전류 제한 저항 내장 모듈(Elegoo/Keyes SR1y 타입) 사용. 릴레이 정격 10A이므로 부하 제한 또는 퓨즈 추가. 옵토커플러 내장 모듈 권장(아두이노 추가 절연).
- 고전압/저전압 회로 물리적 분리: 릴레이 모듈을 플라스틱 케이스 내 고전압 배선과 떨어진 위치에 장착. 납땜 면이 케이스 쪽을 향하게 해 충격/진동 시 저전압 배선이 고전압부와 접촉하지 않게 함.
내부 배선 예시
제공된 사진 참조: 릴레이 모듈 근접 사진, 전체 내부 배선 배치도.
소스 코드
#include
int Relay = 4;
DS3231 rtc(SDA, SCL);
Time t;
const int OnHour = 7;
const int OnMin = 15;
const int OffHour = 7;
const int OffMin = 20;
void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay, OUTPUT);
digitalWrite(Relay, LOW);
// rtc.setTime(21,10,00); // 최초 시간 설정 시 주석 해제
// rtc.setDate(26,6,2018);
}
void loop() {
t = rtc.getTime();
Serial.print(t.hour); Serial.print(" hour(s), ");
Serial.print(t.min); Serial.print(" minute(s)");
Serial.println();
delay(1000);
if (t.hour == OnHour && t.min == OnMin) {
digitalWrite(Relay, HIGH);
Serial.println("LIGHT ON");
} else if (t.hour == OffHour && t.min == OffMin) {
digitalWrite(Relay, LOW);
Serial.println("LIGHT OFF");
}
}
커스텀 파트 및 인클로저
콘센트와 릴레이, 아두이노를 수납할 3D 프린팅/가공 박스 설계 이미지 제공.
회로도
배선도 사진 제공: 아두이노 - RTC(I2C) - 릴레이 - 콘센트 연결.