ESP 32(M5 Stack)로 제작된 저렴한 CO2 모니터[가을부터 CO2 센서 사용 기념]
이 보도에 관하여
CO2 센서인 MH-Z19와 M5 Stack을 사용해 CO2를 저렴하게 시각화하는 것은 간단한 시도다.
CO2 센서 MH-Z19 정보
MH-Z19라는 이산화탄소 센서가 있다.이렇게 2×3cm 정도의 금색 상자 모양.
이 센서는 해외에서 2016년께부터 유통되기 시작했지만 일본에서는 알리익스프레스/eBay가 중국에서 개인으로 수입했는지, 아마존에서 조금 비싼 가격에 샀는지 두 가지 선택의 상태가 오랫동안 지속돼 미묘한 접근이 번거롭다.
하지만 며칠 전 MH-Z19C(아마도 구제품의 작은 변경판)는 일본에서도 간단해졌다.
MH-Z19 ESP32 라이브러리 정보
2016~7년 알리익스프레스에 MH-Z19를 입력했는데 그때는 뚜렷한 프로그램 라이브러리가 없어서 데이터 테이블을 쳐다보면서 다음 프로그램 라이브러리를 직접 적어 공개했다.
추월전자가 처리를 시작하다
이번에는 추월부터 사용하기 시작해 프로그램 라이브러리를 재확인했지만, 소스 코드가 너무 더러워 w, 작은 변경 버전인 MH-Z19C가 움직일 수 없는 부분도 있는데 이번에 설치 내용을 조금 수정했다.
M5 Stack 및 MH-Z19를 통한 CO2 값
드디어 본론입니다.
사용할 기계
MH-Z19라는 이산화탄소 센서가 있다.이렇게 2×3cm 정도의 금색 상자 모양.
이 센서는 해외에서 2016년께부터 유통되기 시작했지만 일본에서는 알리익스프레스/eBay가 중국에서 개인으로 수입했는지, 아마존에서 조금 비싼 가격에 샀는지 두 가지 선택의 상태가 오랫동안 지속돼 미묘한 접근이 번거롭다.
하지만 며칠 전 MH-Z19C(아마도 구제품의 작은 변경판)는 일본에서도 간단해졌다.
MH-Z19 ESP32 라이브러리 정보
2016~7년 알리익스프레스에 MH-Z19를 입력했는데 그때는 뚜렷한 프로그램 라이브러리가 없어서 데이터 테이블을 쳐다보면서 다음 프로그램 라이브러리를 직접 적어 공개했다.
추월전자가 처리를 시작하다
이번에는 추월부터 사용하기 시작해 프로그램 라이브러리를 재확인했지만, 소스 코드가 너무 더러워 w, 작은 변경 버전인 MH-Z19C가 움직일 수 없는 부분도 있는데 이번에 설치 내용을 조금 수정했다.
M5 Stack 및 MH-Z19를 통한 CO2 값
드디어 본론입니다.
사용할 기계
경로설정
M5 Stack 및 MH-Z19C 연결
아래와 같이 전선으로 연결한다.
https://github.com/nara256/mhz19_uart
이루어지다
라이브러리 가져오기
아무튼 이동을 해보도록 하겠습니다.
MHZ19_uart
→MHZ19_getco2
를 선택하면 샘플의 소스 코드가 표시됩니다./*----------------------------------------------------------
MH-Z19 CO2 sensor SAMPLE
----------------------------------------------------------*/
#include <MHZ19_uart.h>
const int rx_pin = 16; //Serial rx pin no
const int tx_pin = 17; //Serial tx pin no
MHZ19_uart mhz19;
/*----------------------------------------------------------
MH-Z19 CO2 sensor setup
----------------------------------------------------------*/
void setup()
{
Serial.begin(9600);
mhz19.begin(rx_pin, tx_pin);
mhz19.setAutoCalibration(false);
Serial.println("MH-Z19 is warming up now.");
delay(10 * 1000); //
}
/*----------------------------------------------------------
MH-Z19 CO2 sensor loop
----------------------------------------------------------*/
void loop()
{
int co2ppm = mhz19.getCO2PPM();
int temp = mhz19.getTemperature();
Serial.print("co2: ");
Serial.println(co2ppm);
Serial.print("temp: ");
Serial.println(temp);
delay(5000);
}
co2: 1234
temp: 17
나는 간단하게 이동할 수 있다.M5 Stack 모니터에 표시
직렬 모니터에만 뜨면 그거지. 이번엔 M5 Stack LCD에 한번 뜨자.
샘플의 원본 코드에 다음과 같은 내용을 추가합니다.
#include <M5Stack.h>
setup()
함수에서 LCD 초기화void setup() {
:
前略
:
M5.begin();
M5.Lcd.setBrightness(200);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(0, 0);
M5.Lcd.setTextColor(WHITE, BLACK);
M5.Lcd.setTextSize(5);
M5.Lcd.print("CO2");
loop()
함수 내 LCD에 이산화탄소 농도MHZ19_getco2.ino
void loop() {
:
前略
:
M5.Lcd.setCursor(48, 48);
M5.Lcd.setTextColor(co2ppm<1000 ? WHITE : (co2ppm>=2000 ? RED : YELLOW), BLACK);
M5.Lcd.print(String(co2ppm) + "ppm");
:
後略
:
}
이렇게 되면 LCD에 표시됩니다.https://github.com/nara256/mhz19_uart
또 일반적으로 이산화탄소 농도가 1000ppm 이하인 것은 나무랄 데가 없고, 1000ppm 이상이면 집중력이 약해지고, 2000ppm 이상이면 두통이 올 수 있기 때문에 이에 따라 글자 색깔을 바꿔봤다.
좀 더 편하게 보이기 위해서.
이번에는 생략했지만 얻은 데이터를 등으로 보내는 것이 더 편리하게 시각화될 것 같다.
Machinest에 데이터를 보내는 방법은 다음 기사를 참조하십시오.
IIJ Machinist
Spresense+LTE 확장판에 IIJ Machine ist 사용
기타 MH-Z19 기능
MH-Z19는 대기(주로 실외)에서'제로 보정', 실내(1000∼2000ppm 정도)에서'크로스 보정'등 수치 정밀도를 높일 수 있는 기능을 갖추고 있다.
자세한 내용은 확인ESP-WROOM-02/32에서 IIJ Machinist 사용과 함께 스케치 예제
MHZ19_zerocarib
와 MHZ19_spancarib
의 출처를 확인하십시오.총결산
최근의 일관 사고로 점포 내 등의 이산화탄소 농도 측정이 중시되고 있다.이런 상황에서 이산화탄소 측정기를 너무 싸게 사면 황당한 숫자만 나오는 예도 있다.조금 비싼 정규 측정 기구를 사는 방법은 확실하지만, 이번 조합도 비교적 신뢰도가 높은 측정이 되지 않을까 싶습니다.
Reference
이 문제에 관하여(ESP 32(M5 Stack)로 제작된 저렴한 CO2 모니터[가을부터 CO2 센서 사용 기념]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nara256/items/a3cecc5fbf043b2d042c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ESP 32(M5 Stack)로 제작된 저렴한 CO2 모니터[가을부터 CO2 센서 사용 기념]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nara256/items/a3cecc5fbf043b2d042c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)