ArduinoUNO 및 CO2 센서 모듈 MH-Z19C로 CO2 측정
9284 단어 전자 공작ArduinoUnoArduinoMH-Z19
목적
이제 코로나에서 유행하는 CO2 측정기
비영리, 교육, 연구목적
설명
771_8bit의 프로그램을 비영리 목적으로 ArduinoUNO에 이식
어디까지나 참조
변경점
하드 시리얼에서 소프트웨어 시리얼
A6 -> 6
A7 -> 7
참고
아키즈키에서 살 수있는 CO2 센서 사용 (MH-Z19C)
//caa45040が追加 始まり
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); // RX, TX
//caa45040が追加 終わり
uint16_t uartco2;
unsigned long pwmco2;
bool reset = false;
byte ReadCO2[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
byte SelfCalOn[9] = {0xFF, 0x01, 0x79, 0xA0, 0x00, 0x00, 0x00, 0x00, 0xE6};
byte SelfCalOff[9] = {0xFF, 0x01, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86};
byte retval[9];
void setup() {
pinMode(7 /*変更*/, INPUT);
pinMode(6 /*変更*/, OUTPUT);
Serial.begin(9600);
Serial.print("400ppm");
Serial.print(",");
Serial.print("UART");
Serial.print(",");
Serial.println("PWM");
delay(2000);
mySerial.begin(9600);
mySerial.write(SelfCalOn,sizeof SelfCalOn);
}
void loop() {
//PWMでデータ取得
pwmco2=pulseIn(7 /*変更*/,HIGH,2000000);
//UARTでデータ取得
mySerial.write(ReadCO2,sizeof ReadCO2);
mySerial.readBytes((char *)retval, sizeof retval);
uartco2 = retval[2]*256 + retval[3];
//PCに送信
Serial.print(2*(202000-2000)/1000);
Serial.print(",");
Serial.print(uartco2);
Serial.print(",");
Serial.println(5*(pwmco2-1200)/1000);
delay(100);
//起動20分後手動キャリブレーション
if(millis()>1200000 && !reset){
digitalWrite(6 /*変更*/,LOW);
delay(8000);
digitalWrite(6 /*変更*/,HIGH);
reset=true;
}
}
Reference
이 문제에 관하여(ArduinoUNO 및 CO2 센서 모듈 MH-Z19C로 CO2 측정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/caa45040/items/fd9a2a8e71f6e73b6a47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)