반응형

 

 

아두이노(Arduino)를 이용한 홈 IoT (생활응용)에 적용하는 시간으로 적외선 FIR센서를 이용하여 무드등을 만들어보겠습니다. 최근 집에 머무르는 시간이 길어지면서 인테리어에 많은 관심이 생겼는데요 ^^ 저는 침대 밑이나 등받이 쪽에 불이들어오는 무드등을 꾸며보고 싶더라고요 ㅎㅎ

 

적외선 FIR 센서와 RGB LED 스트랩을 사진처럼 이렇게 분위기 있는 침대를 만들 수 있습니다. 적외선 FIR 센서 사용방법은 지난 포스팅에서 소개해 드렸으니 아래 링크 참조 부탁드립니다. 

 

 

Arduino 아두이노 적외선 FIR 센서(HC-SR501) 사용하는 방법

아두이노(Arduino)에서 자주 사용하는 센서 및 모듈을 소개하는 시간으로 오늘은 적외선 센서에 대해 알아보겠습니다. 적외선 PIR (Passive Infrared Sensor) 센서는 외부에서 발생하는 적외선을 감지하는

it-g-house.tistory.com


1. 준비물

 

1) 아두이노 우노 R3 (Arduino UNO R3)

 

아두이노 우노 R3 (Arduino UNO R3)


프로젝트가 간단해서 우노 R3 제품으로 충분한데 혹시 나노(Nano)를 보유하신 분은 나노가 더 적합한 거 같습니다.

 

▼ 아두이노 UNO R3 사러가기!! ▼

 

아두이노 우노 R3 정품 / Arduino Uno R3 이탈리아 제품 : 스토어플랜트

[스토어플랜트] 안녕하세요 스토어플랜트입니다.

smartstore.naver.com

 

 

2) HC-SR501 적외선 FIR 센서

 

온라인에서 '적외선 센서'를 검색하면 아두이노에서 자주 사용되고 쉽게 사용할 수 있는 HC-SR501 적외선 PIR 센서 모듈입니다.


아두이노 적외선 PIR 센서 (HC-SR501)

 

 

3) RGB LED 스트랩

 

주요 준비물인 LED 입니다. 저는 RGB 세 색상을 모두 낼 수 있는 LED PKG가 실장되어 있는 띠형태의 스트립(strip)을 사용할 생각입니다.

 

 

프로그램 코딩을 통해서 R(빨강), G(녹색), B(파랑)을 조절가능하고, 아두이노에서 사용하기 쉽게 5V 구동하는 LED 스트립 전등입니다.


 

2. 아두이노 배선

 

배선은 적외선 FIR센서와 LED 스트립이 둘다 5V 구동이기 때문에 아두이노 5V 에 같이 연결해 줍니다. 그리고 GND는 GND끼리, 적외선 FIR센서의 signal은 아두이노의 Digital 3pin에 LED의 Din는 4pin에 각각 연결합니다.

 

 

아두이노(Arduino) 적외선 FIR 센서를 이용한 LED 무드등 만들기

 


 

 

 

 

3. 동작 알고리즘

 

동작 알고리즘은 간단합니다. 적외선 센서가 동작을 감지하면 LED에 불이들어오고, 동작 감지가 끝나면 불이 꺼지게 또는 다른 색의 불이 들어오게 할 수 있습니다.

 

4. 아두이노 프로그램 코딩

 

#include <Adafruit_NeoPixel.h>
#define PIN            4                             
#define NUMPIXELS      18                             // 제어하고 싶은 LED 개수
 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 5; // delay for half a second
int inputPIN = 3;    
int FIRstatus = 0;    
int Readinput = 0;  
  
void setup() {  
   pinMode(inputPIN, INPUT);   
   Serial.begin(9600);    
 pixels.begin(); // This initializes the NeoPixel library.
}  
  
void loop(){  
  Readinput = digitalRead(inputPIN);    
  if(Readinput == 1 && FIRstatus == 0){
      Serial.println("Action!");    
      FIRstatus = 1;    
    for(int i=0;i<NUMPIXELS;i++){
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,50)); // Moderately bright green color.
 
    pixels.show(); // This sends the updated pixel color to the hardware.
 
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
     }  
  if(Readinput == 0 && FIRstatus == 1){  
        Serial.println("End!");    
        FIRstatus = 0;  
       for(int i=0;i<NUMPIXELS;i++){
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,0)); // Moderately bright green color.
 
    pixels.show(); // This sends the updated pixel color to the hardware.
 
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
       
       }  
    delay(1000);  
   }  
   

오늘은 아두이노(Arduino)를 이용하여 센서 무드등을 만들어 보았습니다. 지난 포스팅에서 소개드린 적외선 FIR 센서 (HC-SR501)를 사용하여 동작 감지에 따라 RGB 삼색 LED 스트립을 켜고 끄고 하여 홈IoT 인테리어 조명으로 만들었습니다.

 

센서와 LED만 있으면 되니 아마도 다들 쉽게 만들 수 있을거라고 생각합니다. ^^ 

긴 글 읽어주셔서 감사합니다~

 

 

 

 

반응형
반응형

아두이노(Arduino)를 이용한 홈 IoT (생활응용)에 적용하는 시간으로 무더운 여름 시즌에 맞춰 자동 선풍기를 만들어보겠습니다. 2020년 여름은 예년보다 특히 더 덥다고 하니 똑똑한 자동 선풍기로 조금이나마 더위를 식혀보자고요 ^^

 

 

 

기획은 진작에 해놓고.. 여름 다 지나가고... 업로드 하게 되었네요 ㅠㅠ 그래도 아직은 8월이니까;; 도움이 되었으면 합니다..


1. 준비물

 

1) 아두이노 우노 R3 (Arduino UNO R3)

 

아두이노 우노 R3 (Arduino UNO R3)


프로젝트가 간단해서 우노 R3 제품으로 충분한데 혹시 나노(Nano)를 보유하신 분은 나노가 더 적합한 거 같습니다.

 

 

 

2) HC-SR04 초음파 센서

 

아두이노 HC-SR04 초음파 센서

 

온라인에서 '초음파 센서'를 검색하면 아두이노용으로 많이 사용하는 모델인 'HC-SR04' 모듈입니다. 초음파 센서에 관한 자세한 내용은 앞선 포스팅에서 소개해 드렸으니 아래 링크 참조 부탁드리며, 이번 포스팅에서는 넘어가도록 하겠습니다.

 

Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 사용방법

앞서 포스팅에서 온습도 센서(Temperature and Humidity sensor)만 가지고 아두이노의 기본적인 동작법이나 파일 저장법, 그래프 그리기, 엑셀(Excel)과 연동하는 방법들을 알아보았습니다. 그리고 인터넷(

it-g-house.tistory.com

 

 

3) AM2305 온습도 센서 (Temperature and Humidity sensor)

 

AM2305 온습도 센서 모듈(AM2305 module)

 

DHT11와 DHT22에 비해 조금 더 비싸지만 측정오차가 가장 작고 회로를 감싸는 외부 케이스가 있어서 실외에서도 사용하기 좋아 개인적으로 AM2305 모듈을 많이 사용합니다. 이번 프로젝트는 DHT11 모듈으로도 충분하니까 AM2305 모듈이 없으신 분은 DHT11 또는 DHT22 모듈을 사용하시면 됩니다. 

 

▼ 같은 제품 구매하시려면 아래 링크!! ▼

 

AM2305 온도 습도 디지털 센서 : 스토어플랜트

[스토어플랜트] 안녕하세요 스토어플랜트입니다.

smartstore.naver.com

 

 

4) DC-DC 승압형 5V 600mA USB 모듈

 

DC-DC 습압형 5V 600mA USB 모듈

아두이노 및 외부전력의 5V 전압을 활용하여 USB 구동 전자기기들을 사용할 수 있게 연결해주는 모듈입니다.

 

 

 

5) 릴레이(Relay)

 

1채널 릴레이 (Relay) 모듈

 

아두이노에서 스위치로 자주 사용되는 릴레이 모듈로 1 채널짜리로 준비하였습니다. 초음파 센서와 온습도 센서의 측정 데이터를 기반으로 설정된 조건에 따라 전원의 스위치를 On/Off 하는 데 사용합니다. 릴레이 사용 방법에 대한 자세한 내용은 아래 링크 걸어두겠습니다 ^^

 

Arduino 아두이노 릴레이 (Relay, 스위치) 사용방법

아두이노(Arduino)는 컨트롤러(controller)인 만큼 외부기기나 센서의 전원을 on/off 하는 경우가 많이 있습니다. 보통 이런 기능은 스위치(switch)가 하죠 ^^ 전자기기에서 전기신호를 받아서 스위치 역��

it-g-house.tistory.com

 

6) 220V AC-5V DC 어댑터

 

220V AC-5V DC 어댑터

 

가정의 220V 교류(AC) 전원을 5V DC로 변환시켜 USB 선풍기로 공급을 위해 어댑터를 준비하였습니다. 릴레이(Relay)와 USB 모듈에 연결시켜 전원공급에 사용됩니다. 

 

 

 

 

 

 

 

 


 

2. 아두이노 배선

 

온습도 센서와 릴레이는 앞서 포스팅한대로 아두이노와 연결하면 됩니다. 릴레이의 VCC와 GND는 아두이노의 5V와 GND pin에 연결하고, IN 단자는 아두이노의 디지털 3번 핀에 연결하였습니다. 온습도 센서의 VCC와 GND는 아두이노의 3.3V와 GND pin에 연결하고, data 선은 디지털 2번 핀에 연결하였습니다. 릴레이 COM 포트에 어댑터의 '+' 선을 연결하고 NO 포트와 USB 모듈의 '+' 부분과 연결합니다. 어댑터의 '-' 선은 USB 모듈의 '-'와 연결하고 USB 선풍기를 USB 모듈에 연결하면 모든 준비가 완료됩니다.

 

 


 

3. 동작 알고리즘

 

우선 실내 온도를 계속 모니터링 하면서 실내 온도를 기준으로 너무 덥지 않으면 선풍기가 작동하지 않게 설정 온도 이상일 때만 선풍기가 동작하도록 프로그램을 코딩합니다. 그리고 초음파 센서를 이용하여 사람이 가까이 오면 릴레이에 신호를 주어 어댑터를 통해 들어오는 전원이 USB 모듈에서 선풍기로 전달될 수 있게 스위치 ON 상태가 되도록 프로그램을 코딩합니다. 다시 사람이 멀어지거나 실내온도가 설정 온도 이하가 되면 선풍기는 릴레이가 스위치 OFF가 되어 선풍기가 자동으로 꺼지게 설계합니다.

 

 


 

4. 아두이노 프로그램 코딩

 

#include<dht.h> 
dht DHT; 
#define DHT21_PIN 2 
float hum; //Stores humidity value 
float temp; //Stores temperature value

int Relay = 3;
int echo = 8; 
int trig = 12; 


void setup() {
  Serial.begin(9600); 
  pinMode(trig, OUTPUT); 
  pinMode(echo, INPUT); 
  pinMode(Relay, OUTPUT);
  }

void loop() {
  DHT.read21(DHT21_PIN); 
  hum = DHT.humidity; 
  temp = DHT.temperature;
  
  float cycletime; 
  float distance; 
  digitalWrite(trig, HIGH); 
  delay(10); 
  
  digitalWrite(trig, LOW); 
  cycletime = pulseIn(echo, HIGH); 
  distance = ((340 * cycletime) / 10000) / 2; 
  Serial.print("Distance:"); 
  Serial.print(distance); 
  Serial.println("cm"); 

  Serial.print("Humidity: "); 
  Serial.print(hum); 
  Serial.print(" %, Temp: "); 
  Serial.print(temp); 
  Serial.println(" Celsius");

  if(distance < 100 and temp > 25){ 
    digitalWrite (Relay, LOW); 
  } 
  else{ 
    digitalWrite (Relay, HIGH); 
  } 
  delay(1000);

}

 

프로그램은 앞서 포스팅한 온습도 센서, 릴레이(Relay) 모듈, 초음파 센서(HC-SR04)의 프로그램을 합치면 됩니다.

 

여기서 초음파 센서를 다룰때는 LED를 점멸하기 위해 'Power' 변수를 Pin 13으로 설정한 부분을 조건에 맞게 릴레이를 on/off 하기 위해 'Relay' 변수로 Pin 3번으로 변경합니다.

 

그리고 IF 조건문에서 원하는 distance 거리와 temp 온도 설정을 하면 됩니다. 저는 100 이하 25도 이상으로 설정하였습니다.

 

그리고 업로드 해주시면 완료~! 예시 동영상처럼 원하는 온도조건에서 사람이 가까이 있으면 선풍기가 켜집니다~ 와우!

 

 

 

 

 

 

 


여기까지 아두이노(Arduino)를 이용한 홈IoT (사물인터넷) 응용으로 스마트 자동 선풍기를 만들어 보았습니다.

 

역시나 이런 간단한 알고리즘을 더하고 더해서 좀 더 스마트하고 Fancy 한 기능을 가진 제품들이 탄생합니다. 더 나아가서 와이파이를 연결하여 원격제어 및 생성되는 데이터를 축적하여 빅데이터가 만들어지고, 빅데이터를 분석하여 학습시키면 인공지능이 탄생하는 겁니다.  

 

세상이 급변하는 것처럼 보이지만 차근차근 하나씩 따라해봐도 늦지 않습니다. 다들 화이팅!!

 

 

오늘도 긴 글 읽어주셔서 감사합니다. 궁금한 점이나 추가적인 조언 있으면 언제든지 댓글로 남겨주세요~

 

 

 

반응형

+ Recent posts