본문 바로가기

아두이노

IR 센서와 조도 센서를 결합한 스마트 창문 제어

반응형

IR 센서와 조도 센서를 결합하여 스마트 창문을 제어하는 아두이노 프로젝트를 만들어보겠습니다. 이 프로젝트를 통해 환경 조건에 따라 창문을 자동으로 제어하는 시스템을 구축할 수 있습니다.

1. 이론 소개:

  • IR 센서: 적외선을 사용하여 물체의 존재를 감지합니다.
  • 조도 센서: 주변 조명 수준을 측정하여 환경의 밝기를 파악합니다.

2. 준비물:

  • Arduino 보드 (예: Arduino Uno)
  • IR 센서 모듈 (예: TCRT5000)
  • 조도 센서 모듈 (예: BH1750)
  • 서보 모터
  • 전동 기어 또는 다른 메커니즘을 사용하여 창문을 열고 닫을 수 있는 장치
  • 점퍼 와이어
  • 빵판 또는 프로토타이핑 보드

3. 비슷한 센서 모델명:

  • IR 센서 모듈: TCRT1000, TCRT5000, 등
  • 조도 센서 모듈: BH1750, TSL2561, 등

4. 추천 보드 및 간단한 설명:

  • Arduino Uno: 이 프로젝트에 적합한 시작 보드입니다.

5. 회로 구성:

  • IR 센서 모듈과 조도 센서 모듈을 아두이노에 연결합니다.
  • 서보 모터를 창문을 열고 닫는 데 사용할 수 있는 방법으로 연결합니다.
  • 서보 모터의 신호 핀을 아두이노의 디지털 핀에 연결합니다.

 

6. 코딩 내용:

 

#include <Servo.h>
#include <Wire.h>
#include <BH1750.h>

Servo servoMotor;
BH1750 lightSensor;

int irPin = 2; // IR 센서의 디지털 핀
int threshold = 800; // 창문을 열기 위한 환경 밝기 임계값

void setup() {
  servoMotor.attach(9); // 서보 모터를 디지털 핀 9에 연결
  lightSensor.begin(); // 조도 센서 초기화
  Serial.begin(9600); // 시리얼 통신 시작
}

void loop() {
  int irValue = digitalRead(irPin); // IR 센서 값 읽기
  float lightLevel = lightSensor.readLightLevel(); // 조도 센서 값 읽기

  Serial.print("IR Sensor Value: ");
  Serial.println(irValue);
  Serial.print("Light Level: ");
  Serial.println(lightLevel);

  if (lightLevel < threshold && irValue == HIGH) {
    // 환경이 어두우면서 IR 센서 감지 시 창문 열기
    servoMotor.write(0); // 서보 모터를 0도로 회전
    delay(1000); // 1초 동안 열려있게 함
    servoMotor.write(90); // 서보 모터를 90도로 회전하여 창문 닫기
  }

  delay(1000); // 1초마다 상태 확인
}

 

 

7. 코딩 내용 설명:

  • IR 센서와 조도 센서 값을 읽어옵니다.
  • 환경이 어두우면서 IR 센서가 감지되면 창문을 엽니다.
  • 시리얼 모니터를 통해 센서 값과 동작 상태를 모니터링합니다.

8. 코드 업로드 및 테스트:

  • 위의 코드를 아두이노 IDE에 복사하여 업로드한 후 동작을 확인하세요.

9. 응용 업그레이드:

  • Wi-Fi 모듈을 추가하여 스마트폰 앱을 통해 창문을 원격으로 제어할 수 있습니다.
  • 더 정교한 환경 감지 알고리즘을 구현하여 창문 제어를 최적화할 수 있습니다.

10. 전문용어 및 설명:

  • IR 센서: 적외선을 사용하여 물체의 존재를 감지하는 센서.
  • 조도 센서: 주변 밝기 수준을 측정하는 센서.
  • 서보 모터: 정해진 각도로 회전하는 모터.

11. 기타:

  • 이 프로젝트를 통해 스마트 창문을 만들 수 있으며, 환경에 따라 창문을 자동으로 제어할 수 있습니다.

 

반응형