본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 MLX90614 비접촉 온도센서를 사용해서 실내온도 측정해 보기

by 오마이엔지니어 2020. 7. 16.
반응형

Arduino Uno 로 MLX90614 비접촉 온도센서를 사용해서 실내온도를 측정해 보고
출력값을 I2C 1602 캐릭터 LCD나 0.91인치 I2C OLED에 출력해 보는 프로젝트입니다

<MLX90614 비접촉 온도센서 이미지>

Melexis사의 MLX90614 비접촉 온도센서가 장착되어 있으며
근거리 물체에서 방출되는 적외선을 통해 온도를 측정합니다
Arduino (아두이노등) 과 같은 마이크로 컨트롤 보드와 연결해 I2C 통신 방식으로 동작합니다
센서는 -40도 에서 125도 까지 사용이 가능하며, -70도 에서 380도 온도까지 물체 측정이 가능합니다
오차범위 0.5°C 분해능 0.02°C 로 교육용 또는 테스트용으로 사용하기 적합니다

 

<MLX90614 비접촉 온도센서 상세사양>


사용된 부품

Arduino Uno R3 (Italy)
MLX90614 비접촉 온도센서
I2C 1602 캐릭터 LCD
0.91인치 I2C OLED (SSD1306)
미니브래드보드

점퍼케이블(숫놈-암놈)
점퍼케이블(숫놈-숫놈)

구성 배선도-실내 온도 시리얼 모니터로 확인해 보기

구성 배선도-실내 온도 I2C 1602 캐릭터 LCD에 출력해 보기

구성 배선도-실내 온도 0.91인치 I2C OLED에 출력해 보기


사용된 예제소스

MLX90614_I2C 1602 LCD.txt
0.00MB
MLX90614_0.91 OLED.txt
0.00MB

사용된 라이브러리
Adafruit_BusIO-master
Adafruit_SSD1306
Adafruit-GFX-Library
Adafruit-MLX90614-Library-master
fmalpartida-New-LiquidCrystal

위 5가지 라이브러리를 사용합니다 (용량이 커서 아래 구글 드라이브 링크에서 다운로드 하세요)
drive.google.com/file/d/1cN7BjwsnX9KIVHrQV49txZ0bT2pm60um

주의사항

위 5가지 라이브러리가 반드시 설치되어 있어야 합니다
Adafruit 의 기존 다른 라이브러리가 설치되어 있다면 라이브러리 충돌로 컴파일 에러가 날수 있습니다
(컴파일 에러 메세지를 잘 확인해서 중복되는 라이브러리를 삭제해 주세요)
예) Adafruit PCD8544 등과 중복될수 있음
기존 Adafruit SSD1306 과 Adafruit GFX 라이브러리가 설치되어 있다면 삭제하고 위 구글 드라이브 링크에

첨부 된 라이브러리를 다운로드해서 설치하고 테스트 하세요


첫번째 실내온도 시리얼 모니터로 확인해 보기는

Adafruit-MLX90614-Library-master 라이브러리를 설치하고 파일-->예제-->Adafruit-MLX90614-Library-master-->examples-->mlxtest 순으로 테스트 하면 됩니다

두번째 실내온도 I2C 1602 캐릭터 LCD에 출력해 보기는
fmalpartida-New-LiquidCrystal 라이브러리를 설치한 다음 위 첨부 된
MLX90614_12C 1602 LCD 예제를 열어서 아두이노 IDE에 복사해서 붙여넣고 업로드 후 테스트 하면 됩니다

세번째 실내온도 0.91인치 I2C OLED에 출력해 보기는
Adafruit_BusIO-master, Adafruit_SSD1306, Adafruit-GFX-Library, Adafruit-MLX90614-Library-master
이렇게 4가지 라이브러리를 설치한 다음 위 첨부 된

MLX90614_0.91 OLED 예제를 열어서 아두이노 IDE에 복사해서 붙여넣고 업로드 후 테스트 하면 됩니다

테스트시 SCL-A5 , SDA-A4 배선에 주의 하도록 합니다

I2C 1602 캐릭터 LCD 사용시 전류(A)가 부족하면 화면이 출력이 안될 수 있으므로
충분한 전류가 공급되는 데스크탑이나 노트북으로 전원을 공급해 줍니다
MLX90614_12C 1602 LCD 예제에서 기본 I2C 주소 0X27 로 세팅되어 있는데

#define I2C_ADDR 0x27 //I2C adress, you should use the code to scan the adress first (0x27) here
간혹 0X3F 로 된 제품도 있으니 I2C 스캐너 예제를 사용해서
자신이 사용중인 I2C 1602 캐릭터 LCD의 I2C 주소를 정확히 확인후 테스트 합니다
I2C 주소 확인 (I2C 스캐너 예제 링크)

0.91인치 I2C OLED 사용시 해상도가 128X32로 세팅 되어야 하므로
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
꼭 위 첨부된 구글 드라이브 링크에서 라이브러리를 다운 받아서 설치해서 테스트 하도록 합니다
MLX90614_0.91 OLED 예제 코드에서는 확인이 안되지만 Adafruit_I2CDevice.h 라이브러리를 사용하므로
Adafruit_BusIO-master 라이브러리가 필수적으로 필요합니다
(이 라이브러리가 없을시 여지없이 컴파일 에러를 확인하게 되실겁니다)


I2C 1602 캐릭터 LCD를 사용하는 예제는 섭씨 (C) 로 출력되고
0.91인치 I2C OLED를 사용하는 예제는 화씨 (F) 로 출력됩니다


프로젝트 동영상 - 실내 온도 시리얼 모니터로 확인해 보기


프로젝트 동영상 - 실내 온도 I2C 1602 캐릭터 LCD에 출력해 보기


프로젝트 동영상 - 실내 온도 0.91인치 I2C OLED에 출력해 보기

반응형

댓글