CO2 Sensor info
MH-Z19C
https://dm1cr.de/co2-sensor-comparison-scd30-mh-z19b-bme680-vz89te-sgp30
MH-Z19B $20-30 on ebay (better than z14)
Difference between 19b and c https://shop.winsen-sensor.com/blogs/news/what-is-the-difference-between-mh-z19b-and-mh-z19c#:~:text=MH%2DZ19C%20has%20one%20window,MH%2DZ19B%20is%205%20seconds.
Genernally, MH-Z19C has better consistency and performance than MH-Z19B, and can directly replace MH-Z19B. They share same size and price.
https://forum.mysensors.org/topic/6528/mh-z19-co2-sensor/4
https://github.com/tobiasschuerg/MH-Z-CO2-Sensors
http://www.doctormonk.com/2018/03/review-and-test-of-mh-z14a-ndir-co2.html
$30 or less on ebay for MH-Z14A
I2C interface
For reference, shielded 22 AWG twisted pair cables have capacitance in the range of 100-240 pF/m. So the maximum bus length of an I2C link is about 1 meter at 100 Kbaud, or 10 meters at 10 Kbaud. Unshielded cable typically has much less capacitance, but should only be used within an otherwise shielded enclosure.
8. Commands the sensor to return a single eCO2/VOC measurement.
if (! sgp.IAQmeasure()) {
Serial.println("Measurement failed");
return;
}
Serial.print("TVOC ");
Serial.print(sgp.TVOC);
Serial.print(" ppb\t");
Serial.print("eCO2 ");
Serial.print(sgp.eCO2);
Serial.println(" ppm");<br>
9. Display the value on the LCD.
char buf[8];
dtostrf(t, 4, 0, buf);
tft.drawRightString(buf, 0 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);
dtostrf(h, 4, 0, buf);
tft.drawRightString(buf, 1 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);
dtostrf(TVOC, 4, 0, buf);
tft.drawRightString(buf, 2 * 90 + 60 - 5, 167 - 27 + 155 - 18, 2);<br>