본 절은 MLX90640 를 사용하기 위해 알아야 할 내용과 실습 방법에 대해 설명한다. MLX90640 특징, 동작원리, 사양, 연결 핀 배열, 출력 값, 주의사항을 알아본다. MLX90640를 연결하고, 간단한 코딩으로 쉽게 실습할 수 있다.
목차
MLX90640 및 ESP32가 탑재된 적외선 열화상 카메라
MLX90640 란?
110도 광각 MLX90640 열화상카메라모듈 원적외선 카메라이다.
MLX90640 특징
MLX90640 특징은 다음과 같다.
부품 구입하기
[MLX90640 ]는 알리익스프레스, 네이버 쇼핑몰, 아마존 등에서 센서를 구입할 수 있다
MLX90640 하드웨어 연결
다음과 같이 MLX90640를 연결할 수 있다.
MLX90640 Adafruit 라이브러리 설치하기
간단히 확인하기 위해서는 다음의 라이브러리를 설치한다.
https://github.com/adafruit/Adafruit_MLX90640
MLX90640 소프트웨어 코딩
하드웨어 연결이 완료되면, 아두이노 IDE를 이용해 아두이노 소스코드를 코딩할 수 있다.
코드는 다음과 같다.
#include <Adafruit_MLX90640.h>
Adafruit_MLX90640 mlx;
float frame[32*24]; // buffer for full frame of temperatures
// uncomment *one* of the below
//#define PRINT_TEMPERATURES
#define PRINT_ASCIIART
void setup() {
while (!Serial) delay(10);
Serial.begin(115200);
delay(100);
Serial.println("Adafruit MLX90640 Simple Test");
if (! mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {
Serial.println("MLX90640 not found!");
while (1) delay(10);
}
Serial.println("Found Adafruit MLX90640");
Serial.print("Serial number: ");
Serial.print(mlx.serialNumber[0], HEX);
Serial.print(mlx.serialNumber[1], HEX);
Serial.println(mlx.serialNumber[2], HEX);
//mlx.setMode(MLX90640_INTERLEAVED);
mlx.setMode(MLX90640_CHESS);
Serial.print("Current mode: ");
if (mlx.getMode() == MLX90640_CHESS) {
Serial.println("Chess");
} else {
Serial.println("Interleave");
}
mlx.setResolution(MLX90640_ADC_18BIT);
Serial.print("Current resolution: ");
mlx90640_resolution_t res = mlx.getResolution();
switch (res) {
case MLX90640_ADC_16BIT: Serial.println("16 bit"); break;
case MLX90640_ADC_17BIT: Serial.println("17 bit"); break;
case MLX90640_ADC_18BIT: Serial.println("18 bit"); break;
case MLX90640_ADC_19BIT: Serial.println("19 bit"); break;
}
mlx.setRefreshRate(MLX90640_2_HZ);
Serial.print("Current frame rate: ");
mlx90640_refreshrate_t rate = mlx.getRefreshRate();
switch (rate) {
case MLX90640_0_5_HZ: Serial.println("0.5 Hz"); break;
case MLX90640_1_HZ: Serial.println("1 Hz"); break;
case MLX90640_2_HZ: Serial.println("2 Hz"); break;
case MLX90640_4_HZ: Serial.println("4 Hz"); break;
case MLX90640_8_HZ: Serial.println("8 Hz"); break;
case MLX90640_16_HZ: Serial.println("16 Hz"); break;
case MLX90640_32_HZ: Serial.println("32 Hz"); break;
case MLX90640_64_HZ: Serial.println("64 Hz"); break;
}
}
void loop() {
delay(500);
if (mlx.getFrame(frame) != 0) {
Serial.println("Failed");
return;
}
Serial.println();
Serial.println();
for (uint8_t h=0; h<24; h++) {
for (uint8_t w=0; w<32; w++) {
float t = frame[h*32 + w];
#ifdef PRINT_TEMPERATURES
Serial.print(t, 1);
Serial.print(", ");
#endif
#ifdef PRINT_ASCIIART
char c = '&';
if (t < 20) c = ' ';
else if (t < 23) c = '.';
else if (t < 25) c = '-';
else if (t < 27) c = '*';
else if (t < 29) c = '+';
else if (t < 31) c = 'x';
else if (t < 33) c = '%';
else if (t < 35) c = '#';
else if (t < 37) c = 'X';
Serial.print(c);
#endif
}
Serial.println();
}
}
------------------------------------------------------
개발환경 : WINDOWS 10
아두이노 IDE : 1.8.13
------------------------------------------------------
01 연결
- 아두이노와 PC 연결
- 아두이노 IDE 실행
- 메뉴 → 툴 → 보드: 확인
- 메뉴 → 스케치 → 확인/컴파일
02 컴파일 확인
스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.
03 업로드
컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다.
04 동작 확인
다음과 같이 동작을 확인할 수 있다.
#define PRINT_TEMPERATURES 으로 설정하면 나오는 값은 다음과 같다.
마무리
MLX90640 센서 연결하고, 간단한 코딩으로 를 쉽게 실습할 수 있다.
모두의 아두이노 환경 센서 책
[모두의 아두이노 환경 센서] 책은 예스24, 인터넷 교보문고, 알라딘, 인터파크도서, 영풍문고, 반디앤루니스 , 도서11번가 등에서 구입할 수 있다. 이 책에서는 PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 미세먼지 센서, DHT22 온습도 센서, MH-Z19B 이산화탄소 센서, ZE08-CH2O 포름알데히드 센서, CCS811 총휘발성유기화합물 TVOC, GDK101 방사선(감마선) 센서, MQ-131 오존(O3) 센서, MQ-7 일산화탄소, MICS-4514 이산화질소 센서, MICS-6814 암모니아 센서, DGS-SO2 아황산가스(SO2) 센서, BME280 기압 센서, GUVA-S12SD 자외선(UV) 센서, MD0550 기류 센서, QS-FS01 풍속 센서(Wind speed) 를 사용한다.
'모두의 ESP32-ESP8288' 카테고리의 다른 글
[ESP32] I2C로 아두이노와 통신하기 (0) | 2021.12.17 |
---|---|
[ESP32] 열화상 카메라 만들기(MLX90640, ST7735S TFT LCD) (0) | 2021.12.16 |
[ESP32] ST7735S IPS (SPI 인터페이스) TFT LCD 1.8인치 사용하기 (0) | 2021.12.15 |
[ESP32] 블루투스 테스트 하기 (0) | 2021.12.15 |
[ESP32] ESP32 아두이노 IDE 에서 사용하기 (0) | 2021.12.15 |
댓글