마이크로비트 OLED 온습도계 만들어보기
유기 발광 다이오드(Organic Light-Emitting Diode, OLED)는 아두이노, 라즈베리파이 같은 일반적인 오픈소스 하드웨어에서 활용하기 힘든 편이다. 하지만 마이크로비트는 자체 블록코딩 기능과 몇 번의 마우스 클릭만으로도 손쉽게 OLED를 활용할 수 있다.
오늘은 OLED 모듈과 ‘DHT11’이라는 모듈을 사용해 온습도를 표시하는 디지털 온습도계를 만들 것이다. DHT11은 온습도 센서 중 가장 보편적으로 쓰이는 센서다. 그럼 지금부터 마이크로비트에서 DHT11을 활용해 온습도계를 제작하는 방법에 대해 알아보도록 하자.
먼저 마이크로비트에 센서 엣지 쉴드를 장착하면 이후 회로 연결은 매우 쉽게 따라 할 수 있다.
센서엣지 쉴드의 1번 핀에 그림과 같이 색깔에 맞춰 DHT11 센서를 연결한다[그림4].
OLED 디지털 온습도계 프로그래밍
코딩을 위해 마이크로비트 온라인 코딩 페이지(https://www.microbit.org/code)에 접속한다. 이곳에서 ‘코드 만들기’를 누르고 새 프로젝트를 클릭해 코딩을 시작하자. 먼저 OLED와 온습도센서를 사용하기 위한 확장 블록을 다운로드받아야 한다. ‘고급’ – ‘확장’에서 ‘tinkerkit’으로 검색 후 [그림5]과 같은 카드를 클릭해 새로운 블록을 추가한다.
이번에는 ‘dht11’을 검색 후 [그림6]과 같은 카드를 클릭한다.
프로그램 구성하기
다암으로 OLED의 해상도를 정의한다. ‘OLED’ - ‘initialize OLED with width 128 height 64’ 블록을 이용해 OLED를 표시한다[그림7].
이후 ‘기본’-’무한반복 실행’ 블록을 꺼낸 후 ‘DHT11/DHT22’에서 가장 큰 블록을 꺼내 ‘무한반복 실행’ 블록에 넣는다. ‘Query’에 DHT11 온습도센서를 사용했으니 DHT11로 설정하고, ‘Data pin’ 0번 핀에 온습도센서를 연결했으므로 P0로 설정한다. ‘Pin pull up’은 참(true)으로, ‘Serial output’은 시리얼 연결을 하지 않았으므로 거짓(false)으로 설정한다. 그리고 ‘Wait 2 sec after query’ 수치를 보기 편하게끔 2초마다 받도록 참(true)으로 설정한다[그림8].
그리고 ‘OLED’-’show (without newline) string “ “‘ 블록을 추가해준다. 출력할 단어는 ‘Humidity’다. 다음으로 ‘OLED’-’show number “0”‘에서 0대신에 ‘DHT11/DHT22’-’Read humidity’블록을 넣고 그 아래 블록도 동일하게 구성한 뒤, humidity대신 ‘temperature’를 넣어준다[그림9].
그리고 ‘기본’-’일시중지 “ “ms’블록에 변화하는 수치를 보기 편하도록 2000을 넣어준다. 마지막으로 표시되어 있던 이전 값을 지워주고 새로운 값을 표시하기 위해’OLED’-’clear OLED display’블록을 추가한다[그림10].
마치며
이번 블록코딩은 DHT11 온습도 센서와 OLED 모듈을 통해 디지털 온습도계를 만드는 프로그램이었다. 함께 사용한 OLED 모듈은 마이크로비트에서 글씨 표시가 어려운 내용을 잘 표기할 수 있게 도와주는 디스플레이 모듈이다. 저번에 OLED 단독으로 숫자 표기 실습을 했던 것처럼, 이번에도 역시 마이크로비트를 통해 아두이노보다 손쉽게 OLED 모듈을 통한 센서 측정값 출력이 가능함을 확인할 수 있었다.
글 | 전자 엔지니어 전문몰 IC뱅큐
홈페이지 | https://www.icbanq.com
블로그 | cafe.naver.com/icbanq
- 이 글은 테크월드가 발행하는 월간 <EMBEDDED> 2020년 1월호에 게재된 기사입니다.