Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 수산리 곰솔
- 장수물
- 포구
- LM1117
- 내도동
- AM2302
- weather station
- wind speed
- DHT22
- 구시물
- 하귀리 해신당
- DC5V
- 동자석
- sht10
- 암맥군
- 제주문화유산답사회
- 작은항해자
- 라즈베리파이
- 온습도센서
- 온습도 센서
- LM2567
- 가막샘
- 철사방
- wind direction
- rain fall
- 마이못
- lm7805
- 제주철학사랑방
- 초종용
- 돌코냉이
Archives
- Today
- Total
작은항해자의 항해
MH-Z16 적외선 CO2 Sensor 본문
MH-Z16 적외선 CO2 Sensor
적외선 CO2 센서로 높은 민감도와 높은 분해능을 가지고 있다.
NDIR(Non-Dispersive Infrared)을 이용하여 공기중의 CO2를 검출한다.
온도센서가 내장되어 있어 온도 보정을 하며, UART로 센서 데이터를 출력한다.
공기 품질모니터링, 농업, 가축 사육장 등에서 사용이 가능.
Specifications
- Measuring the range of 0-2000 parts per million (PPM)
- Resolution of 1 PPM 0-2000 parts per million (PPM)
- Accuracy of 200 PPM
- A Warm - up time 3 minutes
- Response Time < 90s
- Operating temperature 0 to 50℃
- Operating Humidity 0% ~ 90% RH
- Storage temperature - 20-60℃
- Operating Voltage4.5 V to 6 V DC
- The Current maximum Current of less than 100 ma, the average Current of less than 50 ma
- Output mode UART
Pin Line
처음 가동시 센서의 예열 시간은 약 180초이다.
Reference¶
- 350~450ppm: General outdoor environment
- 350~1000ppm:The air is fresh and breathing smooth
- 1000~2000ppm:The air was stagnant and feel asleep
- 5000ppm:Permissible exposure limit for an 8h work day
DataSheet EN : MH-Z16_CO2_datasheet_EN.pdf
참조 : http://wiki.seeedstudio.com/Grove-CO2_Sensor/
SourceCode
/* This test code is write for Arduino AVR Series(UNO, Leonardo, Mega) If you want to use with LinkIt ONE, please connect the module to D0/1 and modify: // #include <SoftwareSerial.h> // SoftwareSerial s_serial(2, 3); // TX, RX #define sensor Serial1 */ #include <SoftwareSerial.h> SoftwareSerial s_serial(2, 3); // TX, RX #define sensor s_serial const unsigned char cmd_get_sensor[] = { 0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 }; unsigned char dataRevice[9]; int temperature; int CO2PPM; void setup() { sensor.begin(9600); Serial.begin(115200); Serial.println("get a 'g', begin to read from sensor!"); Serial.println("********************************************************"); Serial.println(); } void loop() { if(dataRecieve()) { Serial.print("Temperature: "); Serial.print(temperature); Serial.print(" CO2: "); Serial.print(CO2PPM); Serial.println(""); } delay(1000); } bool dataRecieve(void) { byte data[9]; int i = 0; //transmit command data for(i=0; i<sizeof(cmd_get_sensor); i++) { sensor.write(cmd_get_sensor[i]); } delay(10); //begin reveiceing data if(sensor.available()) { while(sensor.available()) { for(int i=0;i<9; i++) { data[i] = sensor.read(); } } } for(int j=0; j<9; j++) { Serial.print(data[j]); Serial.print(" "); } Serial.println(""); if((i != 9) || (1 + (0xFF ^ (byte)(data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7]))) != data[8]) { return false; } CO2PPM = (int)data[2] * 256 + (int)data[3]; temperature = (int)data[4] - 40; return true; } |
실행화면
센서보정시 Code
// Grove - Co2 Sensor calibration #include <SoftwareSerial.h> SoftwareSerial sensor(A5, A4); // TX, RX const unsigned char cmd_calibrate[] = { 0xff, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2 }; void setup() { sensor.begin(9600); Serial.begin(115200); Serial.println("begin to calibrate"); for(int i=0; i<sizeof(cmd_calibrate); i++) { sensor.write(cmd_calibrate[i]); } Serial.println("calibrate done"); } void loop() { // nothing to do |
'IT 이야기 > IOT 센서' 카테고리의 다른 글
MH-Z14A CO2 Sensor (0) | 2019.01.21 |
---|---|
MH-Z19 CO2 Sensor (4) | 2019.01.21 |
Hall Sensor(홀 센서) (0) | 2019.01.16 |
NDVI 카메라 (0) | 2019.01.15 |
SHT10 토양 온습도 센서 (0) | 2019.01.14 |