Tested on:BeagleBone black
Prerequisites:Raspberry Pi with Raspbian Jessie and internet connection (see steps 1-7 in the Introduction)
Hardware:SCD30 with pins and jumper cables
0

Reading the CO2 sensor SCD30 over I2C with Smbus

The sensor SCD30 by Sensirion is a precision sensor for measuring CO2 concentration, temperature and humidity and can be read by a Raspberry Pi or BeagleBone. Sensor access is based on the I2C protocol.

Assembly
Since this was a remote project for a client, i need to refer to the data sheet for assembly.

Script
Activate I2C with raspi-config and install the script with

Execute it by entering

Code explained
I2C communication is based on hexadecimal control commands. The command 0x0300 enables reading the data; in case of the sensor SCD30, 18 bytes are required.

Finally, the data needs to be decoded from Big Endian into floating point numbers:

Hints
Since i do not own this sensor, i can’t give support for this tutorial.
Special thanks to Roberto for allowing to share this code!

Full script
Click on Full Script to show all of the code.

Links
Datenblatt SCD30: https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/0_Datasheets/CO2/Sensirion_CO2_Sensors_SCD30_Datasheet.pdf
data sheet SCD30: https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/0_Datasheets/CO2/Sensirion_CO2_Sensors_SCD30_Datasheet.pdf

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

Comment

Time limit is exhausted. Please reload CAPTCHA.