Hi everyone,
I am trying to implement CM1106SL-NS low power CO2 sensor with esp32 devkit v2.0 board. Plan is to use that sensor in single measurement mode so I can hook it up on battery later and use it to warning via email if co2 value gets over certain threshold.
First step I am having trouble with is hooking up the sensor with esp32 devkit v2 and just reading data from it.
The sensor datasheet is in the attachment.
As for the hardware setup, I connected VBB and VDDIO pins to 3.3V of esp32, Gnd to Gnd, RX of sensor to TX2 of esp32, TX of sensor to RX2 of esp32, RDY from sensor to gpio22 of esp32 and EN of sensor to gpio23 of esp32.
This is my code for attempting to read the data:
int enPin = 23;
int rdyPin = 22;
float result;
byte byteRead[9];
byte byteSend[] = {0x11,0x01, 0x01, 0xED};
void setup() {
Serial2.begin(9600);
Serial.begin(115200);
pinMode(enPin, OUTPUT);
pinMode(rdyPin, INPUT);
Serial.println("Setup.");
}
void loop() {
Serial.println("Loop.");
digitalWrite(enPin, HIGH);
delay(50);
while(digitalRead(rdyPin) == HIGH) {
delay(50);
Serial.println("Sensor warmup.");
}
Serial2.write(byteSend, sizeof(byteSend));
Serial.println("Send read cmd.");
Serial2.readBytes(byteRead,9);
Serial.println("Read byte.");
Serial.print(byteRead[0]);
Serial.print(" ");
Serial.print(byteRead[1]);
Serial.print(" ");
Serial.print(byteRead[2]);
Serial.print(" ");
Serial.print(byteRead[3]);
Serial.print(" ");
Serial.print(byteRead[4]);
Serial.print(" ");
Serial.print(byteRead[5]);
Serial.print(" ");
Serial.print(byteRead[6]);
Serial.print(" ");
Serial.print(byteRead[7]);
Serial.println("");
digitalWrite(enPin, LOW);
Serial.println("End of read.");
delay(5000);
}
This is output on serial monitor:
10:32:13.798 -> Setup.
10:32:13.798 -> Loop.
10:32:13.918 -> Sensor warmup.
10:32:13.958 -> Sensor warmup.
10:32:13.998 -> Sensor warmup.
10:32:14.038 -> Sensor warmup.
10:32:14.118 -> Sensor warmup.
10:32:14.158 -> Sensor warmup.
10:32:14.198 -> Sensor warmup.
10:32:14.233 -> Sensor warmup.
10:32:14.313 -> Sensor warmup.
10:32:14.353 -> Sensor warmup.
10:32:14.439 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Sensor warmup.
10:32:14.518 -> Sensor warmup.
10:32:14.558 -> Sensor warmup.
10:32:14.598 -> Sensor warmup.
10:32:14.638 -> Sensor warmup.
10:32:14.718 -> Sensor warmup.
10:32:14.758 -> Sensor warmup.
10:32:14.798 -> Sensor warmup.
10:32:14.838 -> Sensor warmup.
10:32:14.918 -> Sensor warmup.
10:32:14.958 -> Sensor warmup.
10:32:14.999 -> Sensor warmup.
10:32:15.039 -> Sensor warmup.
10:32:15.118 -> Sensor warmup.
10:32:15.159 -> Sensor warmup.
10:32:15.199 -> Sensor warmup.
10:32:15.239 -> Sensor warmup.
10:32:15.319 -> Sensor warmup.
10:32:15.359 -> Sensor warmup.
10:32:15.399 -> Sensor warmup.
10:32:15.449 -> Sensor warmup.
10:32:15.489 -> Sensor warmup.
10:32:15.569 -> Sensor warmup.
10:32:15.609 -> Sensor warmup.
10:32:15.649 -> Sensor warmup.
10:32:15.689 -> Sensor warmup.
10:32:15.769 -> Sensor warmup.
10:32:15.809 -> Sensor warmup.
10:32:15.849 -> Sensor warmup.
10:32:15.889 -> Sensor warmup.
10:32:15.969 -> Sensor warmup.
10:32:16.009 -> Sensor warmup.
10:32:16.049 -> Sensor warmup.
10:32:16.089 -> Sensor warmup.
10:32:16.168 -> Sensor warmup.
10:32:16.209 -> Sensor warmup.
10:32:16.249 -> Sensor warmup.
10:32:16.289 -> Sensor warmup.
10:32:16.368 -> Sensor warmup.
10:32:16.411 -> Sensor warmup.
10:32:16.449 -> Sensor warmup.
10:32:16.489 -> Sensor warmup.
10:32:16.569 -> Sensor warmup.
10:32:16.608 -> Sensor warmup.
10:32:16.649 -> Sensor warmup.
10:32:16.689 -> Sensor warmup.
10:32:16.768 -> Sensor warmup.
10:32:16.808 -> Sensor warmup.
10:32:16.849 -> Sensor warmup.
10:32:16.888 -> Sensor warmup.
10:32:16.969 -> Sensor warmup.
10:32:17.008 -> Sensor warmup.
10:32:17.048 -> Sensor warmup.
10:32:17.089 -> Sensor warmup.
10:32:17.178 -> Sensor warmup.
10:32:17.218 -> Sensor warmup.
10:32:17.258 -> Sensor warmup.
10:32:17.298 -> Sensor warmup.
10:32:17.338 -> Sensor warmup.
10:32:17.416 -> Sensor warmup.
10:32:17.468 -> Sensor warmup.
10:32:17.508 -> Sensor warmup.
10:32:17.549 -> Sensor warmup.
10:32:17.588 -> Sensor warmup.
10:32:17.668 -> Sensor warmup.
10:32:17.668 -> Send read cmd.
10:32:18.668 -> Read byte.
10:32:18.668 -> 0 0 0 0 0 0 0 0
10:32:18.668 -> End of read.
10:32:23.663 -> Loop.
10:32:23.738 -> Sensor warmup.
10:32:23.819 -> Sensor warmup.
10:32:23.859 -> Sensor warmup.
10:32:23.898 -> Sensor warmup.
10:32:23.938 -> Sensor warmup.
10:32:24.019 -> Sensor warmup.
10:32:24.058 -> Sensor warmup.
10:32:24.093 -> Sensor warmup.
10:32:24.134 -> Sensor warmup.
10:32:24.208 -> Sensor warmup.
10:32:24.247 -> Sensor warmup.
10:32:24.288 -> Sensor warmup.
10:32:24.369 -> Sensor warmup.
10:32:24.405 -> Sensor warmup.
10:32:24.458 -> Sensor warmup.
10:32:24.498 -> Sensor warmup.
10:32:24.538 -> Sensor warmup.
10:32:24.618 -> Sensor warmup.
10:32:24.658 -> Sensor warmup.
10:32:24.699 -> Sensor warmup.
10:32:24.738 -> Sensor warmup.
10:32:24.814 -> Sensor warmup.
10:32:24.858 -> Sensor warmup.
10:32:24.898 -> Sensor warmup.
10:32:24.939 -> Sensor warmup.
10:32:25.018 -> Sensor warmup.
10:32:25.058 -> Sensor warmup.
10:32:25.098 -> Sensor warmup.
10:32:25.138 -> Sensor warmup.
10:32:25.218 -> Sensor warmup.
10:32:25.258 -> Sensor warmup.
10:32:25.298 -> Sensor warmup.
10:32:25.338 -> Sensor warmup.
10:32:25.424 -> Sensor warmup.
10:32:25.478 -> Sensor warmup.
10:32:25.518 -> Sensor warmup.
10:32:25.558 -> Sensor warmup.
10:32:25.598 -> Sensor warmup.
10:32:25.633 -> Sensor warmup.
10:32:25.719 -> Sensor warmup.
10:32:25.758 -> Sensor warmup.
10:32:25.798 -> Sensor warmup.
10:32:25.838 -> Sensor warmup.
10:32:25.918 -> Sensor warmup.
10:32:25.958 -> Sensor warmup.
10:32:25.998 -> Sensor warmup.
10:32:26.038 -> Sensor warmup.
10:32:26.119 -> Sensor warmup.
10:32:26.158 -> Sensor warmup.
10:32:26.198 -> Sensor warmup.
10:32:26.238 -> Sensor warmup.
10:32:26.318 -> Sensor warmup.
10:32:26.358 -> Sensor warmup.
10:32:26.398 -> Sensor warmup.
10:32:26.442 -> Sensor warmup.
10:32:26.489 -> Sensor warmup.
10:32:26.569 -> Sensor warmup.
10:32:26.609 -> Sensor warmup.
10:32:26.648 -> Sensor warmup.
10:32:26.688 -> Sensor warmup.
10:32:26.768 -> Sensor warmup.
10:32:26.808 -> Sensor warmup.
10:32:26.848 -> Sensor warmup.
10:32:26.888 -> Sensor warmup.
10:32:26.968 -> Sensor warmup.
10:32:27.008 -> Sensor warmup.
10:32:27.048 -> Sensor warmup.
10:32:27.088 -> Sensor warmup.
10:32:27.168 -> Sensor warmup.
10:32:27.208 -> Sensor warmup.
10:32:27.248 -> Sensor warmup.
10:32:27.288 -> Sensor warmup.
10:32:27.368 -> Sensor warmup.
10:32:27.408 -> Sensor warmup.
10:32:27.448 -> Sensor warmup.
10:32:27.488 -> Sensor warmup.
10:32:27.488 -> Send read cmd.
10:32:28.498 -> Read byte.
10:32:28.498 -> 0 0 0 0 0 0 0 0
10:32:28.498 -> End of read.
10:32:33.498 -> Loop.```