Introduction
The Senseair S88 is a pretty great CO₂ sensor for its price. It can be bought locally (NL) for ~22 Euro and it has a stated accuracy of ±40 ppm and ±3% of reading.
I built the sensor using a Wemos S2 Mini and this very compact case.
Wiring
Hooking up the sensor is fairly straightforward (use at your own risk):
| Wemos S2 Mini pin | Senseair S88 pin |
|---|---|
| GND | G0 |
| VBUS | G+ |
| GPIO 39 (TX) | UART_RxD |
| GPIO 37 (RX) | UART_TxD |
The case is quite a tight fit, so make sure that you measure and cut the wires to the right length.

Firmware
The S88 is compatible with the S8, so the ESPHome senseair platform works. Add the following to the ESPHome sensor configuration (this is not a full configuration, just the bits for hooking up the sensors):
uart:
id: senseair_s88_uart
tx_pin: GPIO39
rx_pin: GPIO37
baud_rate: 9600
sensor:
- platform: senseair
co2:
name: "SenseAir CO2 Value"
filters:
- skip_initial: 2
- clamp:
min_value: 400 # 423 as of 2025-09 https://gml.noaa.gov/ccgg/trends/global.html
uart_id: senseair_s88_uartMeasurements
Example measurements in Home Assistant in a bedroom + home office, CO2 office (blue) is the S88, compared to a SwitchBot Meter Pro CO2 (CO2, orange):
