Android / iOS


Environmental Sensors

Posted: August 4, 2019


I got some i2c sensor breakout boards from SparkFun along with one of their serial based LCD boards. I've typically avoiding i2c in the past due to the not fun I had with the DAC Sound Player project I worked on with an ATtiny2313 connected to an i2c EEPROM.

This project diplays: the temperature from a TMP117 chip, the humidity (which actually could also do the temperature) from an Si7021 chip, and air quality (CO2 and TVOC levels) with an SGP30 chip:

The sensors are all read from an MSP430G2553.

Related Projects

Thermometers: Thermometers, Clock Thermometer, Bluetooth Thermometer, MSP430 DCO, E-Ink Thermometer


A video of the circuit.


This project was filled with.. speed bumps. I started out with a BME680 breakout board and tried to talk to communicate with it using the USCI module of the MSP430G2553 in i2c mode. I could not get this working. Searching on the net it seems like a lot of other people were having the same trouble I was. I got i2c working on an MSP430G2231 in a seperate project using the USI module pretty easily, but this was just not working. I ditched the USCI module and did this with just a software i2c implemention. Took probably 30 min to get that working.

Next, the temperature readings I was getting out of the BME680 seemed too inaccurate, plus the documentation was horrible. HORRIBLE. So I switched to using the TMP117 and Si7021 boards. I got some nice temperature readings out of the Si7021 actually that were really close to the TMP117, but I already had the TMP117 so I kept both on the board.

The readings are pretty interesting on the SGP30. Seems like it never goes below 400ppm on CO2 and typically stays at 0 for the TVOC reading, but if I breath on it, or worse hold my breath and exhale on it, the readings go way up. If I sit near it and breath sometimes they go up a little bit too.

Source code

Copyright 1997-2020 - Michael Kohn