지속적인 체온 모니터링은 코로나19 환자를 감지하는 방법 중 하나입니다. 시중에는 다양한 종류의 체온계가 있지만, 일반 체온계는 환자의 체온을 측정하는 과정에서 바이러스를 전파할 위험이 있습니다. 이런 특수한 상황에서는 비접촉 체온계, 일명 '체온총'이 필요합니다. 이 장치의 최대 제조국은 중국이며 가격이 비쌉니다. 게다가 팬데믹 상황으로 생산도 어렵습니다.
일부 일반적인 부품만으로 비접촉 체온계를 직접 만들 수 있습니다.
작동 원리
이 비접촉 체온계의 핵심 부품은 MLX90614 비접촉 온도 센서입니다. 이 센서의 작동 원리는 다음 단락에서 설명합니다. 센서의 출력은 Arduino Nano에 연결되며, 아두이노는 시리얼 모니터 안드로이드 앱을 통해 스마트폰에 온도를 표시합니다. 별도의 외부 전원 팩이 필요 없습니다. 아두이노와 센서가 스마트폰에서 전원을 공급받기 때문입니다.
MLX90614 적외선 온도 센서
MLX90614는 비접촉 온도 측정을 위한 적외선 온도 센서입니다. 마이크로컨트롤러와 통신하기 위한 I2C 인터페이스를 갖추고 있으며, 여기서는 Arduino Nano를 마이크로컨트롤러로 사용합니다. 이 센서는 물체에 닿지 않고 온도를 측정할 수 있으며, 넓은 온도 범위에서 0.5°C의 정확도를 제공합니다.
Arduino IDE를 닫았다가 다시 엽니다. 그런 다음 헤더 파일 Adafruit_MLX90614.h를 추가하여 MLX90614 센서와 더 나은 통신을 하고, I2C 통신을 위한 Wire.h도 추가합니다. mlx 변수를 정의하여 MLX90614 센서를 호출하고, Adafruit_MLX90614() 함수를 이 변수에 할당합니다.
시리얼 통신을 9600 보드레이트로 시작하고, mlx.begin() 키워드로 센서를 초기화합니다.
void setup() {
Serial.begin(9600);
mlx.begin();
}
Setup 부분이 완료되었습니다. 이제 Loop 부분을 코딩합니다.
먼저 "Temperature"라는 단어를 출력하고 센서가 감지한 온도를 출력합니다. 여기서는 섭씨 온도이므로 mlx.readObjectTempC() 함수를 호출하고 "Celsius" 단위를 출력합니다. 다음 줄에는 다시 "Temperature"를 출력하고 화씨 온도를 출력합니다. 이를 위해 mlx.readObjectTempF() 함수를 사용하고 "Fahrenheit" 단위를 출력합니다. 마지막으로 새 줄을 출력하고 다음 측정을 위해 500ms 대기합니다.
코딩이 완료되었습니다. 전체 코드는 이 문서의 코드 섹션에 있습니다. 코드를 Arduino Nano에 업로드하세요.
하드웨어 연결
Arduino Nano
MLX90614
A4
SDA
A5
SCL
3.3V
Vcc
GND
GND
위 데이터나 회로도를 참고하여 회로를 배선하세요. 이제 아두이노 나노와 센서를 인클로저에 넣습니다. 센서가 온도를 읽을 수 있도록 인클로저에 구멍을 뚫고, USB 케이블을 아두이노 보드에 연결할 구멍도 만드세요. USB를 아두이노에 연결하고 다른 쪽을 스마트폰에 연결한 후, 시리얼 모니터 앱을 설치하고 보드레이트를 9600으로 설정하세요.