본문 바로가기
Arduino

[Arduino Nano/나노] MH-Z19B CO2 센서

by 놀자요를레히 2021. 1. 25.

MH-Z19B CO2 센서

 

 

MH-Z19B CO2 Sensor

 

 

NDIR 원리를 사용하여 공기 중 CO2를 감지하는 센서

(자세한 내용은 하단의 데이터시트 참고)

 

 

 

MH-Z19B datasheet.pdf
1.13MB

 

 

 

Main parameters

Model Name MH-Z19B
Detection Gas CO2
Working Voltage 4.5 ~ 5.5V DC
Average Current < 20mA (@5V power supply)
Peak Current 150mA (@5V power supply)
Interface Level 3.3V (Compatible with 5V)
Detection Range 0~2000/5000/10000ppm (optional)
Output Signal Serial Port (UART) (TTL level 3.3V)
PWM
Analog output (DAC) (default 0.4 ~ 2V)
(0~3V range could be customized)
Preheat time 3 min
Response Time T90 < 120s
Working Temperature -10 ~ 50℃
Working Humidity 0 ~ 90% RH (No condensation)
Weight 5g
Lifespan > 5 years

(MH-Z19B datasheet from Zhengzhou Winsen Electronics Technology Co., Ltd)

 

 

 

아두이노 연결

MH-Z19B Arduino Nano
GND GND
VIN 5V
TX D4
RX D5

(다른 센서들도 연결 해놓느라 남은 자리인 D4, D5에 연결)

 

GND-GND, VIN-5V, TX-D4, RX-D4

 

 

 

사용 라이브러리

MHZ19-master.zip
0.02MB

 

 

 

아두이노 코드

// littlemadoros.tistory.com/entry/MHZ19-CO2-Sensor 참고

#include <SoftwareSerial.h>
#include <MHZ19.h>

SoftwareSerial ss(4,5) // 핀 연결번호에 따라 숫자 달라짐
MHZ19 mzh(&ss)


void setup() {

  Serial.begin(9600);
  Serial.println(F("Starting...")); // F 함수는 Flash에 저장하도록

  ss.begin(9600);
  
}


void loop() {

  MHZ19_RESULT response = mhz.retrieveData();
  if (response == MHZ19_RESULT_OK) {
  	Serial.print(F("CO2 : "));
  	Serial.print(mhz.getCO2());
  	Serial.print("ppm");
  
  	Serial.print(F("\tMin CO2 : "));
 	Serial.print(mhz.getMinCO2()); // 최소 CO2값
 	Serial.print("ppm");

 	Serial.print(F("\tTemperature : "));
 	Serial.print(mhz.getTemperature());
  	Serial.print("℃");

  	Serial.print(F("\tAccuracy : "));
 	Serial.println(mhz.getAccuracy());

  	if (mhz.getCO2() > 2000) { // CO2 농도가 2000 초과일 경우
    		Serial.println("You need to get a fresh air!");
  		}
	}
	else
	{
  		Serial.print(F("Error, code : "));
  		Serial.println(response);
	}

	delay (3000); // 3초 대기

}
Error, code : 2가 뜬적이 있었는데 상단에 적어준 핀 번호와 다르게 연결해놔서 그랬었다

 

 

 

결과값

 

댓글