Arduino based temperature sensing

For this project, I used an Arduino Uno board and  MCP9808 heat sensor from adafruit. In the firmware I used Adafruit_MCP9808 library provided with the sensor and Arduino wire library for I2C  communication. With this setup I was able to get the temperature reading from the sensor through serial monitor without a trouble.


Next part is to visualize the temperature reading meaningfully. I decided to try out a very simple mechanism to provide a visual expression about the current temperature. Here my goal wasn’t to visualise the exact temperature value, but to provide a sense of in which range the temperature is. Derived from the previous work “Unlocking the Expressivity of Point Lights” by Harrison et al, I decided to use a single LED to create a temperature visual expression.

I modulate the temperature reading to a square single as follows and send it to the LED. In my experiment I used 110F as the upper limit.

pulse width = (110- temp_reading) * 10


So, the LED will blink faster as the temperature increases and slower as the temperature decreases.  

After few experiments with different temperatures (on top of my coffee cup, inside a ice cup and in normal room temperature) I learned this method is capable of expressing temperature levels, but human eye is not capable of identify the change of the blink rate when it increases gradually.

So in next steps I will need to try few other blinking patterns as Harrison suggested going beyond directly modulating to the pulse width in order to provide a rich visual expression of temperature using this simple method.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s