[mblock] 프로그램을 활용한 조도 센서 값에 따른 릴레이 제어

[mblock] 프로그램을 활용한 조도 센서 값에 따른 릴레이 제어

mblock 프로그램을 활용한 조도 센서 값에 따른 릴레이 제어


■ 센서와 릴레이에 대한 구성

1. BH1750조도 센서 구성

1_BH1750

BH1750는 내부에 16bit AD 컨버터가 내장 되어 있는 조도센서로써 별다른 복잡한 계산이 필요 없이 디지털로 변환된 조도 Lux값이 I2C 통신으로 출력 됩니다. 동작전압은 5V이고 조도 범위는 0~ 65535 lx 입니다.

 

 

2. 릴레이 구성

2_릴레이구조

비트모스 센서노드에 사용된 릴레이는 HJR-3FF-S-Z-5VDC 릴레이 입니다. 릴레이는 내부의 전자석을 이용하여 위의 다어어 그램에서와 같이 2번과 5번에 전원을 연결 하지 않으면 1번과 4번 접점이 연결 되어 있다가 2번과 5번에 전원을 연결 시 전자석이 작동 되어 1번과 3번 접점 연결로 변화 됩니다.

 


■ 하드웨어 연결

1. 아두이노와 비트모스 쉴드와 연결

3_아두이노 결합

위의 그림과 같이 아두이노와 비트모스 쉴드에 헤더 핀과 핀 헤더를 맞춰서 결합합니다.

 

2. 비트모스 쉴드와 BH1750 조도 센서 연결

4_조도연결

BH1750의 SDA에 노란색 선을 연결하여 비트모스 쉴드의 A4에 연결하고 센서의 SCL에 파란색 선을 연결하여 쉴드의 A5에 연결합니다. 센서에 VCC는 빨간색 선으로, GND는 검정색 선으로 연결하여 쉴드의 VCC와 GND에 연결합니다.

 

3. AC 220V 제어를 위한 RELAY 배선

5_bitmossShield_2

이번에는 실제 220V를 연결하여 조도 값에 따라 선풍기가 동작 될 수 있게 할 것입니다.

 

■ mblock 프로그램으로 조도에 따른 릴레이 제어 프로그램 작성

비트모스 아두이노 쉴드에 부착한 조도 센서로 조도 값에 따라 릴레이를 제어 할 것입니다.

6_보드설정 7_시리얼설정

먼저 아두이노 종류와 포트번호에 맞추어 “보드” 메뉴에서 보드를 선택하고, “연결” 메뉴에서 “시리얼 포트” 메뉴를 열어 현재 아두이노가 연결되어 있는 시리얼포트 번호를 클릭합니다.

 

8_편집 아두이노모드

“편집” 탭에서 “아두이노 모드”로 클릭하여 “아두이노 모드”에서 프로그림을 시작 합니다.

 

9_테스트프로그램

“스크립트” 창에서 “로보트”를 클릭한 뒤 Arduino 라이브러리에서 “아두이노 프로그램” 블록을 드래그 하여 제일 상단에 붙이고 Bitmoss 라이브러리 창에서 “초기화 및 아이디 설정” 블록을 드래그 하여 바로 아래에 붙입니다. 그리고 Arduino 라이브러리 “타이머 초기화” 블록을 붙입니다.

 

10_무한반복_만약

 

“스크립트” 창에서 “제어”를 클릭하여 “무한 반복하기”와 “만약 ? 라면 아니면“ 블록을 붙여 넣고 첫번째 “만약 ? 라면 아니면“ 블록의 “아니면” 블록에 “만약 ? 라면 아니면“ 블록을 붙여 넣습니다.

 

11_연산1 12_타이머

 

“스크립트” 창에서 “연산”를 클릭하여 비교연산자 블록인 “□ < □” 블록을 “만약 ? 라면” 블록 사이 붙여 넣습니다. “로보트” 창에서 “타이머” 블록을 붙여 넣고 지연을 원하는 시간을 설정해 줍니다. 1은 1초를 의미합니다.

 

13_연산2

14_조도 값 비교

 

“스크립트” 창에서 “연산”를 클릭하여 비교연산자 블록인 “□ > □” 블록을 “만약 ? 라면” 블록 사이 붙여 넣고 “스크립트” 창에서 “로보트”를 클릭하여 조도센서(BH1750) 값 읽기를 비교 연산자 “□ > □” 블록에 우측에 붙여 주시고 좌측에 릴레이 동작 기준이 되는 조도 값을 설정해 줍니다.

 

15_릴레이제어

 

“스크립트” 창에서 다시 “로보트”를 클릭하여 “만약 ? 라면” 블록 아래에 ”릴레이 제어” 블록을 붙여 넣어 K1 릴레이 켜짐으로 설정하고 “아니면” 블록 아래에는 “릴레이 제어” 블록을 꺼짐으로 설정 합니다.

 

16_실시간 조도 확인

 

실시간 조도 값 확인을 위해 “스크립트” 창에서 다시 “로보트”를 클릭하여 “시리얼텍스트쓰기”블록 2개를 “만약 ? 라면” 블록 위에 불여 넣고 1번째 블록에는 “Illuminance :” 라고 기입하고 2번째 블록에는 “조도센서 값(BH1750) 읽기”블록을 붙여 넣습니다. 그리고 시간 지연 후 시간 초기화를 위해 “타이머 초기화” 블록을 붙여 줍니다.
“아두이노에 업로드”를 클릭하여 “업로드 완료”가 뜨면 프로그램이 완료 됩니다.

 

16_실시간 조도 확인

 

업로드가 완료가 되면 우측 제일 하단에 send encode mode와 recv encode mode를 Char로 변경하면 바로 위의 창을 통해서 실시간으로 조도 값을 확인할 수 있습니다.

 

20180313_145107


실시간 조도 센서 값이 츨력 되면서 조도 값에 따라 전구가 켜지고 꺼지면 정상적으로 프로그램이 완료 되었습니다.

 

■ 마치며

이번에 mblock 프로그램을 활용한 조도 값에 따른 Relay 제어에 대해 알아 보았습니다. 다음은 mblock 프로그램을 활용한 조도, 조도 센서 값 클라우드와 연동에 대해 알아 보겠습니다. 오픈소스로 제공되는 타이니파머는 하드웨어에 대한 전문적인 지식 없이도 누구나 쉽게 활용할 수 있습니다. 저렴한 비용으로 센서와 컨트롤러 구성만 달리하면 각자의 환경에 맞게 설치할 수 있다는 장점이 있습니다. 많은 관심 부탁 드립니다.

0 Comments

Leave a reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>