디지털시대의 디지털라이프

Intel Edison Arduino Kit과 IoT Starter Kit을 이용한 사물인터넷 구현하기


Laser Sensor 모듈과 Photoresistor 모듈을 이용한 침입감지센서 꾸며보기


Intel Edison Arduino Kit과 각종 센서 모듈을 이용하여 IoT(사물인터넷)를 구현하는 방법에 대해서 동영상으로 알아보도록 하겠습니다. 


이번 시간에는 총 4가지의 센서와 모듈을 이용하여 조금은 복잡하지만 재미있는 구성을 해보겠습니다. 

Laser에서 쏘아주는 빛을 조도센서가 받고, 빛의 밝기가 변경이 되거나 끊어지면, 경고음과 3Color LED가 3가지 불빛이 깜빡거리며, 이러한 구성을

Edison에서 동작하는 Arduino sketch를 분석하고 실제 동작하는 것을 동영상으로 확인해 보시겠습니다. 


여러분은 스파이가 등장하는 영화에서 Laser 센서가 나오는 부분을 기억하십니까? 대표적인 영화가 미션 임파서블 같은 영화죠. 이런 류의 영화를 보면 도둑이나 스파이들이 엄청난 보안감시 속에 있는 물건을 훔치기 위해 타이즈 옷을 입고 마치 요가동작을 하는 듯 허리와 몸을 비틀어 가며 레이저 불빛을 피하는 장면을 한번쯤은 보셨을 것입니다.


 도대체 어떤 원리로 동작하기에 레이저 불빛에 신체의 일부가 닿으면 경고음이 발생하고 경찰이 출동하는지 궁금해하지 않으셨나요? 좀더 호기심이 많으신 분들은, 레이저 불빛 만으로 어떻게 침입을 감지하는지에 대해서 많은 궁금증이 있을 것이라 생각됩니다. 


 저는 이제부터, 레이저 센서의 원리를 눈으로 확인하는 실험을 해 보겠습니다. 

저와 함께 ‘Physical Computing’의 세계로 오신 것을 환영합니다. 

저는 이 실험을 위한 Platform으로 인텔사의 Edison보드를 사용하였습니다. 

Edison을 이용한 coding방법은, http://www.iotedu.co.kr 사이트에 가시면 누구든지 쉽게 익히실 수 있습니다. 저는 우선 XXXXX Sensor Kit에서 Laser 센서와 Photoresistor Sensor 를 선택했습니다. 


이 센서들의 원리는 레이저에서 나오는 빛이 발광하면 조도센서에 도달하는 레이저 빛의 밝기에 따라 Buzzer와 LED가 깜빡 거리게 만드는 원리입니다.

따라서 program도 그에 맞춰 coding을 해야만 경고음과 LED가 제대로 동작할 수 있는 것입니다.



이번 시간에는 침입감지센서 라는 이름이 거창하긴 하지만 시간이 조금 더 오래 걸릴 뿐 어렵지 않은 구성이며 스케치 코드값도 어렵지 않습니다. 

준비물은 다음과 같이 준비하시면 됩니다. 





Intel® Edison Arduino Kit  ---- 1ea

BreadBoard   ----  1ea

3 Color LED   ---- 1ea

Photoresistor Module  ----  1ea

Laser Sensor Module  ---- 1ea

Jumper Cable  ---- 15ea

10K ohm Resistor  ---- 1ea

Active Buzzer    ----  1ea


늘 준비하던 것 처럼 Intel® Edison Arduino Kit 이 있어야 겠구요 


오늘의 핵심 부품은 Laser sensor Module과 Photoresistor 모듈입니다.

Laser Sensor 모듈이라고 하면… 뭔가 특별한 것을 생각하실 수도 있는데요, 

PPT 할때 쓰는 레이저 포인터라고 생각하시면 됩니다. 예전에는 금액도 비싸고 구하기도 어려웠지만, 요즘은 초등학교 문방구에서 구입할 수 있는 그런 레이져 포인터 입니다. 

하지만 에디슨에서 호환되는 모듈방식으로 구조는 다르다고 생각하시면 됩니다. 또하나는 Photoresistor라고 하는데요, 이것은 조도 센서 입니다. 

빛을 받는 양을 아날로그 값으로 변환하여 에디슨으로 전달하는 역할을 하는 것이죠 


3Color LED와 Active Buzzer에서 경고음이 울리도록 하는 구성이므로 필수적으로 꼭 필요한 것이죠.  


Breadboard는 지금까지와는 다르게 좀더 큰 브레드보드를 사용하는 것이 좋습니다.

4개의 센서와 15개의 점퍼 케이블이 연결되기 때문에 너무 작은 브레드보드로 테스트해보기에는 부족함이 있어 보입니다. 

 


그리고 마지막으로 인텔 에디슨과 센서를 연결하고  브레드보드와 연결시켜주는…

Jumper Cable 과 LED에 사용되는 저항이 필요합니다. 


아래 배선도를 참고하시어 직접 꾸며 보실 수있습니다.^^













Intel® Edison Arduino Kit 이 있어야 겠구요 


오늘의 핵심 부품은 Laser sensor Module과 Photoresistor 모듈입니다.

Laser Sensor 모듈이라고 하면… 뭔가 특별한 것을 생각하실 수도 있는데요, 

PPT 할때 쓰는 레이저 포인터라고 생각하시면 됩니다. 예전에는 금액도 비싸고 구하기도 어려웠지만, 요즘은 초등학교 문방구에서 구입할 수 있는 그런 레이져 포인터 입니다. 

하지만 에디슨에서 호환되는 모듈방식으로 구조는 다르다고 생각하시면 됩니다. 또하나는 Photoresistor라고 하는데요, 이것은 조도 센서 입니다. 

빛을 받는 양을 아날로그 값으로 변환하여 에디슨으로 전달하는 역할을 하는 것이죠 


3Color LED와 Active Buzzer에서 경고음이 울리도록 하는 구성이므로 필수적으로 꼭 필요한 것이죠.  


Breadboard는 지금까지와는 다르게 좀더 큰 브레드보드를 사용하는 것이 좋습니다.

4개의 센서와 15개의 점퍼 케이블이 연결되기 때문에 너무 작은 브레드보드로 테스트해보기에는 부족함이 있어 보입니다. 

 


그리고 마지막으로 인텔 에디슨과 센서를 연결하고  브레드보드와 연결시켜주는…

Jumper Cable 과 LED에 사용되는 저항이 필요합니다. 



Intel Edison Arduino Kit과 Breadboard 그리고 4종류의 센서를 연결하는 배선도입니다.


Laser 센서 모듈은 브레드 보드의 GND와 모듈의 Groud 를 연결해줍니다.

VCC는 Laser 모듈의 손상을 방지하기 위해 브레드 보드에 VCC 라인과 10k옴 저항을 연결하고 저항 반대편에서 점프한 라인을 VCC에 연결해 줍니다.

Signal신호는 에디슨 보드의 13번 핀에 연결하여 Laser를 동작시킵니다. 


조도센서도 역시 브레드 보드의 GND에서 Ground를 연결해 줍니다.

VCC는 브레드 보드의 VCC라인과 바로 연결해 줍니다.

Signal 신호는 에디슨 보드의 아날로그 A0에 연결하여 줍니다. 조도센서에서 받는 신호의 아날로그 값을 에디슨 보드로 보내줘야 하기 때문입니다.   


이렇게 하면 에디슨 보드와 센서 브레드 보드의 모든 연결이 완료되었습니다. 

배선도가 복잡하고 어려워 보이지만 하나하나 잘 확인해 보면 원리는 간단합니다. 






Laser Sensor 모듈과 Photoresistor 모듈을 이용한 침입감지센서의 입출력 핀 정의를 알아보겠습니다. 



길이가 길어서 그렇지 단순한 구조입니다. 금방 이해가 가실겁니다.

이 내용을 보시고 참고하시고~ 잘 안되시면 제 핸드폰 번호로 연락주세요~ 

저도 사실 잘 모릅니다. 아는데까지 알려드릴께요~^^ 



int lasersignal = 13; // Laser 센서에 보내주는 신호를 13번 핀으로 정합니다. 

int Blue = 9; // 3 컬러 LED의 파랑색 LED의 신호를 9번 핀으로 정합니다.

int green = 8; // 3 컬러 LED의 녹색 LED의 신호를 8번 핀으로 정합니다.

int red = 7; // 3 컬러 LED의 빨강색 LED의 신호를 7번 핀으로 정합니다.

int photoresi = A0; // 조도센서(Photoresistor)의 값을 A0 핀으로 입력받는 설정을 합니다.

int regivalue = 0 ; // regvalue라는 변수를 만들고 기본 값을 0으로 설정합니다. 

int pinSpeaker= 2;     // Buzzer의 신호를 출력하는 핀을 2번 핀으로 정합니다.


void setup() {

  Serial.begin(9600); // 시리얼모니터를 9600으로 통신속도로 설정합니다.

  pinMode(lasersignal, OUTPUT); // lasersignal (13번핀)을 출력으로 설정합니다.

  pinMode(Blue, OUTPUT); // 3 컬러 LED의 Blue(9번핀)을 출력으로 설정합니다.

  pinMode(green, OUTPUT); // 3 컬러 LED의 green(8번핀)을 출력으로 설정합니다.

  pinMode(red, OUTPUT); // 3 컬러 LED의 red(7번핀)을 출력으로 설정합니다.

  pinMode(photoresi,INPUT); // photoresi A0핀의 값을 입력으로 설정합니다.

  pinMode(pinSpeaker, OUTPUT); // pinSpeaker(2번핀)을 출력으로 설정합니다.

  }



반복구문 핵심 구간입니다. 


void loop() {

  regivalue = analogRead(photoresi);   // photoresi의 값을 아날로그 신호로 입력받아 “regivalue”라는 변수로 할당합니다.

   digitalWrite(lasersignal, HIGH); // lasersignal에 신호를 HIGH신호를 주어 레이저 센서를 동작시킵니다.

  Serial.println(regivalue);       // 시리얼프린터에 regivalue값을 출력해 줍니다. 

       

 if (regivalue < 100) { // 만약 regivalue가 100보다 작으면, ( 조도센서에 빛이 많이 들어왔을 때를 말합니다.)

    digitalWrite(Blue, LOW);       // Blue (9번핀)에 신호를 끕니다.

    digitalWrite(green, LOW);       // green (8번핀)에 신호를 끕니다.

    digitalWrite(red, LOW); // red (7번핀)에 신호를 끕니다.

    digitalWrite(pinSpeaker, LOW); // Buzzer에 신호를 끕니다. 

    delay(100);    

    }



조도센서의 값이 높아진다는 뜻은 어둡다는 뜻이므로 레이저의 빛이 조도센서로 들어가지 못했다는 뜻이됩니다. 

그러므로 누군가가 레이저센서로 부터 나오는 빛이 조도센서로 들어가지 못하도록 했다는 뜻이 되므로 

누군가 지나갔거나 고의로 빛을 차단했다는 뜻이 됩니다. 


if (regivalue > 100)   {   //  regivalue가 100보다 크면…. 조도센서에 빛이 없으면…

    digitalWrite(pinSpeaker, HIGH);   // pinspeaker에 신호를 주어 buzzer를 동작시킵니다.

// LED가 1회 반복됨 (LED는 총 3회 반복합니다. 이유는 한번만 LED와 부저가 동작하면 너무 빨리 끝나기 때문에 알람의 의미가 없기 때문입니다. 

    digitalWrite(Blue, HIGH);       // 파랑색 LED를 켭니다.

    delay(50);

    digitalWrite(Blue, LOW); // 파랑색 LED를 끕니다.

    digitalWrite(green, HIGH); // 녹색 LED를 켭니다.

    delay(50);

    digitalWrite(green, LOW); // 녹색 LED를 끕니다.

    digitalWrite(red, HIGH); // 빨강색 LED를 켭니다.

    delay(50);

    digitalWrite(red, LOW); // 빨강색 LED를 끕니다. 



위와같이 파랑,녹색,빨강 색상의 LED가 한번 반복되는 코드를 3번 연속으로 할 수 있도록 코드를 3번 넣어주면 LED와 Buzzer가 길게 동작하게 됩니다. 


*******************************************************************************************************


이상으로 Laser Sensor 모듈과 Photoresistor 모듈을 이용한 침입감지센서 구성을 마치겠습니다.