Last modified 12 months
Let's see how to assemble the Easy CO2 meter with a SCD30 Senseair S8 LP.
This is going to be a very short article, only with the important differences from mounting with the MH-Z19B or MH-Z19C sensor. We will go "Straight to the point«.
If you haven't seen the article «DIY: Homemade CO2 monitor with Wifi against coronavirus«, You should see it now since this build is based on it. Most of the build is the same and here we will only deal with the differences.
Why should you use the Senseair S8 sensor?
I think the right question would be, why mount the CO2 Easy meter with another sensor?
There are several important reasons we can think of to use this sensor, instead of the MH-Z19B or MH-Z19C.
- The Senseair S8 NDIR Sensor is a Best Quality, from a swedish company
- Provides more accurate measurements
- Has longer lifespan
- At the moment no fakes
- Gives less problems with power supplies
Similar in assembly
The making of the monitor with this sensor is practically identical. The sensor is very similar, it has almost the same physical form and the connections are the same.
For the assembly part, you can follow the tutorial «DIY: Homemade CO2 monitor with Wifi against coronavirus«. The connections are exactly the same.
As in other cases, I recommend that if your NodeMCU board has a VU pin (not all have it), connect the positive of the Senseair S8 LP (VCC) to that pin, instead of Vin.
The differences in the building of the meter are focused on the firmware, since the communication with this sensor is different, although the configuration, in general, is basically the same as with the MH-Z19B or MH-Z19C sensors.
Configure ESP Easy for the Senseair S8
The biggest difference is that we have to choose the correct device in the "Devices" menu.
Next, the ESPEasy web page will appear in which we will do the sensor configuration.
We simply have to enter the information as shown below:
Where to buy the Senseair S8 sensor?
Here is the link where I bought it: Senseair S8 LP. It was delivered to me very fast (one week):
Costs about 24 Euros here: Senseair S8 LP
It is a store with many positive feedback and shipping is by AliExpress Standard Shipping, so you should have it at home in less than two weeks.
Be careful because there are other versions of the Senseair S8 sensor that are not valid for the purpose we want (there are similar ones, for example, for the automotive sector).
Senseair S8 LP CO2 Sensor Calibration
The Senseair S8 LP has a very good Automatic Baseline Correction (ABC) system so, under normal conditions, you won't have to do manual calibration and you will be able to disengage from it.
The ABC algorithm permanently monitors the minimum CO2 reading for a preset period and slowly corrects any drift in the long term compared to the 400 ppm (or 0.004%vol) CO2 concentration expected in fresh air.
The maximum adjustment allowed by the ABC algorithm of the Senseair S8 is 30-50 ppm for each ABC period.
The factory set ABC period is 8 days.
Due to a bug in the Senseair S8 sensor itself, avoid problems and mismatch a sensor, ESPEasy does not allow to start sensor calibration by software (I explain below how to calibrate it using an ESPEasy ruler).
If you want manually calibrate the sensor you must do the following:
You have to connect the bCAL_in pin to GND for a minimum of 4 seconds and a maximum of 8 seconds and you will start a manual calibration.
Before starting the manual calibration, the sensor should be at around 400 ppm for a few minutes (I suggest a minimum of 15 minutes) for the sensor to stabilize. This is: you will have to leave the sensor working outside, in fresh air, for at least 15 minutes before starting calibration.
The procedure is very easy:
- Leave the sensor working outdoors for, at least, 15 minutes
- Connect the bCAL_in pin to GND during more than 4 seconds and less than 8 seconds
- Keep the sensor outside for about 5 minutes to complete its calibration and stabilize.
- It is done. The sensor will assume the current concentration as 400 ppm
It is important that don't leave the bCAL_in pin attached to GND for more than 8 seconds, as if the 13 seconds are exceeded the sensor starts a different calibration mode, which is not the one you are interested in (it is a calibration mode with a concentration of 0 ppm of CO2, for which you would have to immerse the sensor in nitrogen, for example).
In my experience, if the sensor receives air from outside from time to time, manual calibration is completely unnecessary.
However, if the sensor is placed in a place rarely ventilated with outside airI recommend that you manually calibrate it in fresh air from time to time.
Calibration of the Senseair S8 CO2 sensor with an ESPEasy ruler
Having to manually jumper the bCal_in pin to GND every time you want to calibrate it can be inconvenient, so here's how to do the calibration using an ESPEasy ruler conveniently and without having to access the meter directly.
What we are going to do is to tell ESPEasy to control the bCal_in pin and to set the PIN to GND for 5 seconds when we want to calibrate by means of a command.
To do this we will need to do two things:
- Connect the bCal_in pin of the Senseair S8 to an ESP8266 pin.
- Include a rule that connects bCal_in to GND for 5 seconds
The first step is to connect bCal_in to an ESP8266 pin using a small cable. I have used pin D5 (GPIO14).
In the "Rules" tab of ESPEasy we will have to include the following:
On CalibrateS8 do GPIO,14,0 TimerSet,1,5 EndOn On rules#timer=1 do GPIO,14,2 endon On System#Boot do GPIO,14,2 // Sets GPIO14 (calibration PIN) to high impedance EndOn
The first block "On CalibrateS8" to "EndOnThe timer is set to "low", sets the GPIO14 pin (D5) to logic low (ties it to GND) and sets timer number 1 to run five seconds later.
The second block "On rules#timer=1 do" to "EndOn"This is executed when timer number 1 reaches zero (at five seconds) and sets the GPIO14 pin (D5) to high impedance logic level (as if it were "loose" again, disconnecting it from GND).
The third block "On System#Boot do" to "EndOn"It is automatically executed every time ESPEasy is started (when we turn it on or reboot it) and makes sure that the GPIO14 pin (D5) is left at the high impedance logic level (as if it were "loose") every time the meter starts up.
That's it. Now all we have to do when we want to calibrate our Senseair S8 is to enter the following line in our browser (replacing 192.168.1.77 by the IP of your CO2 meter):
You will see the browser load an "OK" page and the sensor will be calibrated.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?