산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

부품 및 소모품

아두이노 우노 (Arduino UNO) 1개
절전형 램프 (에너지 세이빙 램프) 1개
5V DC 어댑터 1개
점퍼 와이어 (일반) 1세트
릴레이 모듈 (일반) 1개
UTSOURCE 전자 부품 1세트

필요한 도구 및 기계

십자 드라이버 (릴레이 모듈 단자대용) -

앱 및 온라인 서비스

마이크로소프트 비주얼 스튜디오 2015 링크
아두이노 IDE 링크

프로젝트 개요

스마트 홈 조명

초음파 센서와 아두이노, 릴레이를 이용해 집 조명(또는 모든 기기)을 스마트하게 제어하는 방법을 배웁니다.

목표: 방을 나가면 절전형 전구가 꺼지고, 들어오면 켜지도록 자동화. 구현이 매우 쉽고 시간도 적게 걸립니다.

본 튜토리얼은 기초적인 아두이노 지식을 전제로 합니다. 아두이노 경험이 있다면 바로 진행 가능.

주의: 이 프로젝트는 AC 고전압 전원을 사용합니다. 16세 미만이거나 경험이 부족하다면 AC 부분은 반드시 경험자와 함께 작업하세요.

하지만 DC 저전압 기기로도 동일한 개념을 검증할 수 있습니다. 위험한 부분에서 명확히 경고하겠습니다.

부품 상세

  1. 아두이노 우노
  2. 멀티미터
  3. 점퍼 와이어
  4. 브레드보드
  5. 릴레이 모듈
  6. 초음파 센서 (HC-SR04) 및 아두이노용 NewPing 라이브러리 (여기서 'NewPing' 검색, 외부 라이브러리 처음 설치면 이 링크 참조)
  7. DC 파워 소스 (선택 사항)
  8. 십자 드라이버 (릴레이 모듈 단자대용)
  9. 절전형 전구 + 소켓 + 벽면 플러그 (구형 라디오 전원 케이블에서 플러그 재활용)
  10. 글루건 또는 절연 테이프 (전선 끝단 처리용)
  11. 비주얼 스튜디오 (아두이노 코드 작성용, 설정 방법, 무료) 또는 아두이노 IDE
아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

초음파 센서 준비

먼저 초음파 센서-아두이노 연결 (아래 이미지 참조). 추후 테스트 방법 설명.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

릴레이 모듈: 2채널 중 1채널 사용. VCC → 5V, IN1 → 아두이노 핀 8 (임의 변경 가능).

중요: 액티브 로우/하이 확인. 내 모듈은 액티브 로우(LOW 신호에 릴레이 ON). 확인법: VCC/GND 연결 후 IN 핀을 5V에 연결 → 아무 반응 없으면 액티브 로우, GND 연결 시 작동하면 확인 완료. 차이점 설명 참조.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

램프 연결 (⚠ 고전압 주의)

램프 한 선은 벽면 플러그 직결, 다른 선은 중간에 절단해 한쪽은 릴레이 NO1 (Normally Open), 다른 쪽은 COM1에 연결 후 플러그로.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어
아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

최종 회로도 (램프 단순화):

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어
아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

코드 동작:

초음파 센서 값 읽기 및 노이즈 제거

라이브러리 예제로 거리 읽기 테스트. sonar.ping_cm() 또는 sonar.ping_inch()로 cm/inch 단위 거리 획득. 핀 설정과 최대 측정 거리 지정.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

문제: 초음파 센서가 간헐적으로 잘못된 거리(노이즈) 반환 → 조명 의도치 않은 깜빡임 유발.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

해결: 여러 번 읽어 평균 내거나 중앙값 필터(median filter) 사용. 여러 읽기값 정렬 후 중간값 선택으로 노이즈 제거. NewPing 라이브러리에 sonar.ping_median(읽기횟수) 함수 내장 (최대 512회). 반환값은 에코 시간(μs)이므로 sonar.convert_cm() 또는 sonar.convert_in()으로 변환.

또 다른 함정: 센서 앞 장애물 없으면 0 반환. 이를 MAX_DISTANCE로 치환해 불필요한 토글 방지. 최종 읽기 함수:

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

통과 감지 로직

초음파 센서가 문 너비의 절반 정도인 임계 거리(critical_distance_cms) 미만 읽으면 사람 통과로 판단. 단, 사람 정지 시에는 반응하지 않고 통과 완료(거리 > 임계값) 시에만 상태 토글.

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

축하합니다! 완료입니다. 비주얼 스튜디오 프로젝트 전체 첨부 (라이브러리 소폭 수정: 가변 길이 배열 → 동적 할당, 문서화 추가).

전자 부품 구매: utsource.net

유용했다면 프로젝트 존중 부탁드립니다. 다른 프로젝트: 아두이노 컬러 믹서, 1Sheeld RC카, 비주얼 스튜디오로 아두이노 개발하기.

코드

스마트 하우스 라이트 (아두이노)
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
#define RELAY_LINE1_PIN 8

#include "NewPing.h"
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

unsigned int critical_distance_cms = 50;
bool state = 0;

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_LINE1_PIN, OUTPUT);
  digitalWrite(RELAY_LINE1_PIN, HIGH); // 초기 OFF (액티브 로우)
}

void loop() {
  delay(50);
  unsigned int distance = readDistance();
  Serial.print("Ultrasonic: ");
  Serial.print(distance);
  Serial.println("cm");

  if (distance < critical_distance_cms) {
    while (distance < critical_distance_cms) {
      distance = readDistance();
      delay(5);
    }
    state = !state;
    if (state) {
      Serial.println("Door Open!");
      digitalWrite(RELAY_LINE1_PIN, LOW); // ON
    } else {
      Serial.println("Door Closed!");
      digitalWrite(RELAY_LINE1_PIN, HIGH); // OFF
    }
  }
}

unsigned int readDistance() {
  unsigned int distance = sonar.convert_cm(sonar.ping_median(7));
  if (distance == 0) distance = MAX_DISTANCE;
  return distance;
}
초음파 테스트 코드 (아두이노)
// Example NewPing library sketch
#include <NewPing.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(115200);
}

void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}
스마트 하우스 라이트 (비주얼 스튜디오 프로젝트)

GitHub 저장소 (수정된 라이브러리 포함)

회로도

아두이노 우노와 릴레이로 만드는 스마트 AC 조명 - 자동 제어

제조공정

  1. 아두이노 나노 33 BLE 센스에서 Edge Impulse로 구현하는 TinyML 언어 감지기
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  4. 아두이노 DHT11 이더넷 실드 온습도 데이터 로거
  5. 아두이노 자동 식물 급수 시스템 – 떠날 때도 안심하는 스마트 가드닝
  6. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  7. 에너지 하베스팅 내장 스마트 자동 끈 신발 제작기
  8. 아두이노 소나 & 프로세싱으로 실시간 거리 측정 및 시각화
  9. 아두이노로 만드는 빛과 소리의 생일 축하 DIY 프로젝트
  10. 볼트 IoT와 아두이노 우노로 구현하는 무선 LED 밝기 제어 (PWM 6채널)