heiswayi nrird Just another Software Engineer who loves coffee ...

Indoor Temperature Monitor

Indoor Temperature Monitor is basically a simple Arduino based project for monitoring and logging indoor temperature of my house. Since I have old, unused Arduino Uno board, so I bought 1-wire digital temperature sensor (DS18B20) and make use of my Arduino board for this simple project.

Arduino board setup with DS18B20

DS18B20 with Arduino Uno

Here’s the Arduino sketch, compiled with Arduino software v1.6.13

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2 /* Connect to Pin 2 */

/* Set up a oneWire instance to communicate with any OneWire device*/
OneWire ourWire(ONE_WIRE_BUS);

/* Tell Dallas Temperature Library to use oneWire Library */
DallasTemperature sensors(&ourWire);

void setup() /* SETUP: RUNS ONCE */
{

delay(1000);
Serial.begin(9600);
//Serial.println("Temperature Sensor: DS18B20");
delay(1000);

/* Start up the DallasTemperature library */
sensors.begin();

}


void loop() /* LOOP: RUNS CONSTANTLY */
{

//Serial.println();
//Serial.print("Requesting temperature...");
sensors.requestTemperatures(); // Send the command to get temperatures
//Serial.println("DONE");

//Serial.print("Device 1 (index 0) = ");
//Serial.print(sensors.getTempCByIndex(0));
Serial.println(sensors.getTempCByIndex(0));
//Serial.println(" Degrees C");
delay(1000);

}

Indoor Temperature Monitor application

Indoor Temperature Monitor is a simple WPF application built in .NET C#. This application uses OxyPlot for the graph plotting and reads temperature value sent by Arduino board using serial port connection. The background color of current temperature will automatically change based on certain temperature range. The temperature reading will be logged into a CSV file for a certain time interval.

Indoor Temperature Monitor

Source Code and Downloads

The latest source code can be found on GitHub repository, or you may download the latest compiled binary version from the release page.