mblock 프로그램을 활용한 조도 센서 값에 따른 릴레이 제어
■ 센서와 릴레이에 대한 구성
1. BH1750조도 센서 구성
BH1750는 내부에 16bit AD 컨버터가 내장 되어 있는 조도센서로써 별다른 복잡한 계산이 필요 없이 디지털로 변환된 조도 Lux값이 I2C 통신으로 출력 됩니다. 동작전압은 5V이고 조도 범위는 0~ 65535 lx 입니다.
2. 릴레이 구성
비트모스 센서노드에 사용된 릴레이는 HJR-3FF-S-Z-5VDC 릴레이 입니다. 릴레이는 내부의 전자석을 이용하여 위의 다어어 그램에서와 같이 2번과 5번에 전원을 연결 하지 않으면 1번과 4번 접점이 연결 되어 있다가 2번과 5번에 전원을 연결 시 전자석이 작동 되어 1번과 3번 접점 연결로 변화 됩니다.
■ 하드웨어 연결
1. 아두이노와 비트모스 쉴드와 연결
위의 그림과 같이 아두이노와 비트모스 쉴드에 헤더 핀과 핀 헤더를 맞춰서 결합합니다.
2. 비트모스 쉴드와 BH1750 조도 센서 연결
BH1750의 SDA에 노란색 선을 연결하여 비트모스 쉴드의 A4에 연결하고 센서의 SCL에 파란색 선을 연결하여 쉴드의 A5에 연결합니다. 센서에 VCC는 빨간색 선으로, GND는 검정색 선으로 연결하여 쉴드의 VCC와 GND에 연결합니다.
3. AC 220V 제어를 위한 RELAY 배선
이번에는 실제 220V를 연결하여 조도 값에 따라 선풍기가 동작 될 수 있게 할 것입니다.
■ mblock 프로그램으로 조도에 따른 릴레이 제어 프로그램 작성
비트모스 아두이노 쉴드에 부착한 조도 센서로 조도 값에 따라 릴레이를 제어 할 것입니다.
먼저 아두이노 종류와 포트번호에 맞추어 “보드” 메뉴에서 보드를 선택하고, “연결” 메뉴에서 “시리얼 포트” 메뉴를 열어 현재 아두이노가 연결되어 있는 시리얼포트 번호를 클릭합니다.
“편집” 탭에서 “아두이노 모드”로 클릭하여 “아두이노 모드”에서 프로그림을 시작 합니다.
“스크립트” 창에서 “로보트”를 클릭한 뒤 Arduino 라이브러리에서 “아두이노 프로그램” 블록을 드래그 하여 제일 상단에 붙이고 Bitmoss 라이브러리 창에서 “초기화 및 아이디 설정” 블록을 드래그 하여 바로 아래에 붙입니다. 그리고 Arduino 라이브러리 “타이머 초기화” 블록을 붙입니다.
“스크립트” 창에서 “제어”를 클릭하여 “무한 반복하기”와 “만약 ? 라면 아니면“ 블록을 붙여 넣고 첫번째 “만약 ? 라면 아니면“ 블록의 “아니면” 블록에 “만약 ? 라면 아니면“ 블록을 붙여 넣습니다.
“스크립트” 창에서 “연산”를 클릭하여 비교연산자 블록인 “□ < □” 블록을 “만약 ? 라면” 블록 사이 붙여 넣습니다. “로보트” 창에서 “타이머” 블록을 붙여 넣고 지연을 원하는 시간을 설정해 줍니다. 1은 1초를 의미합니다.
“스크립트” 창에서 “연산”를 클릭하여 비교연산자 블록인 “□ > □” 블록을 “만약 ? 라면” 블록 사이 붙여 넣고 “스크립트” 창에서 “로보트”를 클릭하여 조도센서(BH1750) 값 읽기를 비교 연산자 “□ > □” 블록에 우측에 붙여 주시고 좌측에 릴레이 동작 기준이 되는 조도 값을 설정해 줍니다.
“스크립트” 창에서 다시 “로보트”를 클릭하여 “만약 ? 라면” 블록 아래에 ”릴레이 제어” 블록을 붙여 넣어 K1 릴레이 켜짐으로 설정하고 “아니면” 블록 아래에는 “릴레이 제어” 블록을 꺼짐으로 설정 합니다.
실시간 조도 값 확인을 위해 “스크립트” 창에서 다시 “로보트”를 클릭하여 “시리얼텍스트쓰기”블록 2개를 “만약 ? 라면” 블록 위에 불여 넣고 1번째 블록에는 “Illuminance :” 라고 기입하고 2번째 블록에는 “조도센서 값(BH1750) 읽기”블록을 붙여 넣습니다. 그리고 시간 지연 후 시간 초기화를 위해 “타이머 초기화” 블록을 붙여 줍니다.
“아두이노에 업로드”를 클릭하여 “업로드 완료”가 뜨면 프로그램이 완료 됩니다.
업로드가 완료가 되면 우측 제일 하단에 send encode mode와 recv encode mode를 Char로 변경하면 바로 위의 창을 통해서 실시간으로 조도 값을 확인할 수 있습니다.
실시간 조도 센서 값이 츨력 되면서 조도 값에 따라 전구가 켜지고 꺼지면 정상적으로 프로그램이 완료 되었습니다.
■ 마치며
이번에 mblock 프로그램을 활용한 조도 값에 따른 Relay 제어에 대해 알아 보았습니다. 다음은 mblock 프로그램을 활용한 조도, 조도 센서 값 클라우드와 연동에 대해 알아 보겠습니다. 오픈소스로 제공되는 타이니파머는 하드웨어에 대한 전문적인 지식 없이도 누구나 쉽게 활용할 수 있습니다. 저렴한 비용으로 센서와 컨트롤러 구성만 달리하면 각자의 환경에 맞게 설치할 수 있다는 장점이 있습니다. 많은 관심 부탁 드립니다.