Sensirion SPS30 air quality sensor


So, I noticed that Sensirion had a nice looking air quality sensor now available - the SPS30. This is similar in concept to the Plantower devices except it promises a bit more accuracy.

Like last time - see Air quality sensing - this was only an hour long project to implement the sensor’s protocol, and as before readings can be either viewed at the agent URL directly, or requested in Slack (put the agent url with /slack on the end in the slack outbound webhook URL box).

Code is here:

…think I’m going to hook this up to a graphing service next…


Oh, you can hit it directly at:

…and compare the readings with the two other sensors in the office:

DFrobot air quality sensor:
Plantower PMS5003 sensor:


Yes- Sensiron devices are accurate. May be not “so high” accuracy in terms of +/- (about 0,2-0,3 degrees etc.) but in terms “10 sensors show the same value” they are very good - very good calibration. It is important and worth to use in spite of higher price comparing to other stuff. Sensiron Temp and RH sensors are working for our needs in industrial greenhouse during 2 years now- 40 pcs analog output, 15 pcs I2C output, 5 sensors per imp. Now 10 pcs SPS30 are under installation in office building - we will see how good are CO2 stuff.
Thanks for code example! I will check and compare to existing.


Are you using their SCD30? Just saw that one, can’t believe how random these guys are with their protocols though; the SPS30 uses I2C or HDLC framed UART. The SCD30 uses I2C or MODBUS (!) over 3v3 uart.

Their original SHT11 looked like I2C but wasn’t actually compatible…


Agree about protocols - I cant agree with thir tactics to use protocol name but not to follow protocol rules and content:)
I use SHT21 for I2C digital output and SHT21S with “analog” output. SHT21S are not so good due to LP filtering (impossible to make 40 equal LP filters) and also ADC know issues in general.
Digital works fine also in connection with LTC4316 I2C address translators, from 50-400KHz.
Our SCD30 implementation currently are non-stable and it’s not clear is it a sensor problem, protocol problem or power problem. Some more development must be done.
Modbus over UART sounds more like a beginners definition there:) I have find out that “rebranding” protocol name or content , sensor type etc. are rising up like a problem…