Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed communication via UART (ESP32) #52

Open
edomazzone opened this issue Jan 15, 2023 · 3 comments
Open

Failed communication via UART (ESP32) #52

edomazzone opened this issue Jan 15, 2023 · 3 comments

Comments

@edomazzone
Copy link

Hi everyone,
I'm using ESP32 with MHZ19B co2 sensor. I've changed the BasicUsage sketch to use HardwareSerial 2. After wiring everything the result was:
co2: 0
temperature: -17
error

@WifWaf
Copy link
Owner

WifWaf commented Jan 21, 2023

Hey, are you still having this issue?

I think what's happening here is that the CO2 is 0 because the sensor needs calibrating.

The temperature value is also wrong due to the library as the sensor firmware is often revised, making it awkward to keep compatibility as I only have a few sensors to work with.

Have you tried calibrating the sensor?

@edomazzone
Copy link
Author

Hey, I managed to have data after doing calibration with one sensor that works correctly. Another one, that is from the same order, has results like:
CO2: 5000 ppm
T: 21 °C

The temperature is correct, but the CO2 is fixed at the maximum measure possible even if I've ventilated the room. And changing the top level to 2000 ppm the data are flat at the maximum level even after calibration.
It's possible that I need to make a solder junction in the PCB of the sensor?
I share the data from the correct sensor that after 5 minutes start to send the correct data.
2_CO2

@WifWaf
Copy link
Owner

WifWaf commented Feb 20, 2023

The library temperature function doesn't always work as it depends on the version of the sensor (the firmware has been changed many times). If you run the RetrieveDeviceInfo, I imagine you'll see different versions.

In the case of the CO2 value being stuck at 5000ppm on the second sensor, I'm not sure, calibrating should fix the issue. It's possible the range and/or span were not set correctly by the manufacturer, but I wouldn't suggest calling the functions unless it's a last resort (see the calibration plus example).

If you can't return the sensor, then you could try setting the span by blowing it into a bag or something and placing both sensors inside. You could then try and get the CO2 reading on the working sensor to be close to the span/range you want (e.g. 2000 or 5000) and then call the zeroSpan(value) and setRange(value) on the sensor which is stuck at 5000ppm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants