Smart temperature sensor control


This project started off from the idea of a smart home. Here i prepared the first phase of the project by creating a simple board with a LCD, RS232 communication and a temperature sensor. This project is not final and changes may occur.


The core component in this project is the Melexis MLX90615 temperature sensor. This sensor has two operating modes through I2C and PWM both giving out a ambient temperature and a object temperature. The ambient temperature is the package’s temperature while the object temperature is obtained from measuring the infrared radiation emitted, making it a perfect sensor for non contact temperature readings. So far the temperature readings are done through I2C/TWI protocol. These temperatures are then sent via RS232 to the computer and also displayed on a 16×4 LCD.  The start/stop controls are sent from the computer via serial communication.

Upcoming updates: PWM temperature read using ICP and ADC and determining the most accurate temperature read.

PCB Design

The PCD design was done in Design Spark which is available free to download here:

DSCN5024 DSCN4997       Sensor_MLX_temp_pcb


I used a ATmega168 as a MCU due to the large available memory all though cheaper replacements could be used such as ATmega48 and ATmega88. The firmware was written in C language in AVR Studio 4.XX .

The RS232 communication is sent through Terminal.exe. This software is free and available for download here:

avr_stdio terminal


Standard pack v1.0    – contains the schematic, pcb and the hex file ready to be programmed

Extended pack v1.0  – contains the DesignSpark project and the source code


DSCN5017 DSCN5021 DSCN5023 DSCN5025 2013-07-24 08.10.30 2013-07-24 08.04.16DSCN5027 DSCN5005

 The software and PCB design of the project is free to use, subject to the GPLv3 license.

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 )

Facebook photo

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

Connecting to %s