python/Lecture
[arduino] CM1106 NDIR CO2 Sensor I2C 연결 및 모니터링
jinozpersona
2023. 11. 21. 15:43
Arduino UNO R3 : CM1106 연결도
Arduino (master) CM1106 Sensor(slave)
# Arduino Uno R3 I2C SDA / SCL
SDA(Serial Data)
SCL(Serial Clock)
Arduino(Master)에서 기준클럭(SCL)을 생성하고, 이 클럭에 맞춰 데이터(SDA)를 전송
# CM1106 Adaptor I2C SDA / SCL
CM1106 SDA to Arduino SDA
CM1106 SCL to Arduino SCL
3.3V, GND
[Arduino IDE 사용] / [Visual Studio Code사용]
Arduino IDE or VS code 초기 셋팅 및 설정 참고
https://jinozblog.tistory.com/207
[arduino] LM35 / TMP36 Sensor 연결도 : arduino IDE or VScode 설정 및 모니터링
Arduino UNO R3 : LM35 Sensor 연결도(TMP36 동일) 및 전달함수식 LM35 Analog Output이므로 A0 ~ A5에 연결 : 필자는 A0에 연결 range : 온도 / 출력(전송)전압, -55ºC ~ 150ºC : -550mV ~ 1500mV LM35 Transfer Function Arduino AO resol
jinozblog.tistory.com
[Library 설치]
[Arduino Code]
#include <cm1106_i2c.h>
CM1106_I2C cm1106_i2c;
void setup() {
cm1106_i2c.begin();
Serial.begin(9600);
delay(1000);
cm1106_i2c.read_serial_number();
delay(1000);
cm1106_i2c.check_sw_version();
delay(1000);
}
void loop() {
uint8_t ret = cm1106_i2c.measure_result();
if (ret == 0) {
Serial.print("Co2 : ");
Serial.println(cm1106_i2c.co2);
Serial.println("Status >>");
switch (cm1106_i2c.status) {
case CM1106_I2C_STATUS_PREHEATING: {
Serial.println("Preheating");
break;
}
case CM1106_I2C_STATUS_NORMAL_OPERATION: {
Serial.println("Normal operation");
break;
}
case CM1106_I2C_STATUS_OPERATING_TROUBLE: {
Serial.println("Operating trouble");
break;
}
case CM1106_I2C_STATUS_OUT_OF_FS: {
Serial.println("Out of FS");
break;
}
case CM1106_I2C_STATUS_NON_CALIBRATED: {
Serial.println("Non calibrated");
break;
}
}
}
delay(1000);
}
Arduino Serial Monitor
반응형