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