마이크로비트 OLED 온습도계 만들어보기

유기 발광 다이오드(Organic Light-Emitting Diode, OLED)는 아두이노, 라즈베리파이 같은 일반적인 오픈소스 하드웨어에서 활용하기 힘든 편이다. 하지만 마이크로비트는 자체 블록코딩 기능과 몇 번의 마우스 클릭만으로도 손쉽게 OLED를 활용할 수 있다.

오늘은 OLED 모듈과 ‘DHT11’이라는 모듈을 사용해 온습도를 표시하는 디지털 온습도계를 만들 것이다. DHT11은 온습도 센서 중 가장 보편적으로 쓰이는 센서다. 그럼 지금부터 마이크로비트에서 DHT11을 활용해 온습도계를 제작하는 방법에 대해 알아보도록 하자.

[그림1] 마이크로비트 OLED 모듈
[그림2] DHT11 온습도 측정 센서

먼저 마이크로비트에 센서 엣지 쉴드를 장착하면 이후 회로 연결은 매우 쉽게 따라 할 수 있다.

[그림3]

센서엣지 쉴드의 1번 핀에 그림과 같이 색깔에 맞춰 DHT11 센서를 연결한다[그림4].

[그림4] ADkey 모듈 장착

OLED 디지털 온습도계 프로그래밍

코딩을 위해 마이크로비트 온라인 코딩 페이지(https://www.microbit.org/code)에 접속한다. 이곳에서 ‘코드 만들기’를 누르고 새 프로젝트를 클릭해 코딩을 시작하자. 먼저 OLED와 온습도센서를 사용하기 위한 확장 블록을 다운로드받아야 한다. ‘고급’ – ‘확장’에서 ‘tinkerkit’으로 검색 후 [그림5]과 같은 카드를 클릭해 새로운 블록을 추가한다.

[그림5] 추가해야 할 블록

이번에는 ‘dht11’을 검색 후 [그림6]과 같은 카드를 클릭한다.

[그림6] DHT11 확장 블록

프로그램 구성하기

다암으로 OLED의 해상도를 정의한다. ‘OLED’ - ‘initialize OLED with width 128 height 64’ 블록을 이용해 OLED를 표시한다[그림7].

[그림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].

[그림8]

그리고 ‘OLED’-’show (without newline) string “ “‘ 블록을 추가해준다. 출력할 단어는 ‘Humidity’다. 다음으로 ‘OLED’-’show number “0”‘에서 0대신에 ‘DHT11/DHT22’-’Read humidity’블록을 넣고 그 아래 블록도 동일하게 구성한 뒤, humidity대신 ‘temperature’를 넣어준다[그림9].

[그림9]

그리고 ‘기본’-’일시중지 “ “ms’블록에 변화하는 수치를 보기 편하도록 2000을 넣어준다. 마지막으로 표시되어 있던 이전 값을 지워주고 새로운 값을 표시하기 위해’OLED’-’clear OLED display’블록을 추가한다[그림10].

[그림10]

마치며

이번 블록코딩은 DHT11 온습도 센서와 OLED 모듈을 통해 디지털 온습도계를 만드는 프로그램이었다. 함께 사용한 OLED 모듈은 마이크로비트에서 글씨 표시가 어려운 내용을 잘 표기할 수 있게 도와주는 디스플레이 모듈이다. 저번에 OLED 단독으로 숫자 표기 실습을 했던 것처럼, 이번에도 역시 마이크로비트를 통해 아두이노보다 손쉽게 OLED 모듈을 통한 센서 측정값 출력이 가능함을 확인할 수 있었다.

 

글 | 전자 엔지니어 전문몰 IC뱅큐
홈페이지 | https://www.icbanq.com
블로그 | cafe.naver.com/icbanq

- 이 글은 테크월드가 발행하는 월간 <EMBEDDED> 2020년 1월호에 게재된 기사입니다.

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지
이 기사와 관련된 기사