0% found this document useful (0 votes)
4 views6 pages

Single Chip Temperature Data Logger

The document describes the construction of a compact single-chip temperature data logger using the PIC12F683 microcontroller and DS1820 temperature sensor. It features a temperature range of 0 to +125°C, stores up to 254 measurements, and allows user-defined sampling intervals of 1 second, 1 minute, or 10 minutes. The device includes user input buttons for starting, stopping, sending data to a PC, and resetting the memory, along with a LED indicator for user feedback.

Uploaded by

JAIR FERNANDES
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

Single Chip Temperature Data Logger

The document describes the construction of a compact single-chip temperature data logger using the PIC12F683 microcontroller and DS1820 temperature sensor. It features a temperature range of 0 to +125°C, stores up to 254 measurements, and allows user-defined sampling intervals of 1 second, 1 minute, or 10 minutes. The device includes user input buttons for starting, stopping, sending data to a PC, and resetting the memory, along with a LED indicator for user feedback.

Uploaded by

JAIR FERNANDES
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Single Chip Temperature Data Logger

Rajendra Bhatt
Williamsburg, VA
rajbex [@] yahoo.com

Introduction
A data logger is a device that records measurements over time. The measurements
could be any physical variable like temperature, pressure, voltage, humidity, etc.
This project describes how to build a mini logger that records surrounding
temperature values. It has following features:
• Uses just one 8‐pin chip, so very compact size circuit.
• Temperature range: 0 to +125°C.
• Can store up to 254 measurements.
• Sampling interval options: 1 sec, 1 min, 10 min
• Reset feature to clear all previous measurements.
• Serial transfer of recorded measurements to a PC
• Three tactile switches for user inputs and a LED indicator.

Description

The beauty of this project is that it uses just a single chip for logging. It is
PIC12F683, an 8‐pin microcontroller from Microchip. PIC12F683 has six general‐
purpose I/O (GP0‐GP5, GP3 is input only) pins, and 2K x 14 Flash program memory
with 256 bytes of internal EEPROM.
Temperature will be measured with a DS1820 temperature sensor. DS1820 is a one‐
wire digital temperature sensor from Dallas Semiconductor (now MAXIM). The
operating temperature range of the device is –55°C to +125°C with an accuracy of
±0.5°C over the range of –10°C to +85°C. The temperature sensor output is 9‐bit
Celsius temperature measurement, and so the temperature resolution corresponds
to the least significant bit, and which is 0.5°C. But in this project we will use only the
most significant eight bits. Therefore, the temperature resolution will be 1°C. The
measured temperatures will be recorded into the internal EEPROM memory of
PIC12F683.
The first location of the internal EEPROM will store the sampling interval of data
logger. Sampling interval defines the time gap between two successive
measurements. This project will have 3 options for sampling time: 1 sec, 1 min, and
10 min. These are user selectable. The second location of EEPROM will store the
number of measurements recorded so far. And the remaining 254 EEPROM
locations will store 8‐bit temperatures. So, using 10 min sampling interval, 254
bytes of EEPROM will provide data logging for 42 hours. The recorded
measurements can be sent to PC at any time through a serial link at 9600 baud.
User Inputs
There will be three tact switches for user inputs, namely Start, Stop, and Send/Reset.
The three switches will be able to accept the following 4 user requests.

1. Start: When ‘Start’ button is pressed, data logging starts.


2. Stop: Once the ‘Stop’ button is pressed, data recording will stop.
3. Send: Transfer data to PC through serial port.
4. Reset: Holding the ‘Send’ button for 2 sec or more clears the internal
EEPROM memory.

Sampling Time Selection


The sampling interval can be selected as 1 sec, 1min, or 10 min using the same three
switches. Suppose if we need 1 min sampling time, first turn OFF the power, then
hold the ‘Stop’ button, turn the power ON, and wait till the LED glows. Once the LED
glows, release the button, and the sampling interval will be set to 1 min. The new set
sampling time will be updated to EEPROM location 0 so that in case of power failure,
the previous sampling time will be restored. Similarly, use ‘Start’ and ‘Send’ buttons
for 1 sec, and 10 min sampling intervals respectively.

LED Indicator

Every time the user presses input buttons, LED glows for a moment to indicate that
the input is accepted. It also blinks thrice every time EEPROM Write operation takes
place. It also blinks at the beginning when the power is turned ‘ON’. It also glows
when the EEPROM memory is full.
Circuit Diagram
The complete circuit diagram for this project is shown below.

The six I/O pins of PIC12F683 are assigned as follows:


1. GP0 (Pin 7, I/P): This pin will be used to read the temperature value from DS1820
sensor.
2. GP1 (Pin 6, O/P): This will be used for serial data transfer to a PC.

3. GP2 (Pin 5, O/P): LED output pin.


4. GP3 (Pin 4, I/P): Send (tactile switch)
5. GP4 (Pin 3, I/P): Stop (tactile switch)

6. GP5 (Pin 2, I/P): Start (tactile switch)


A simple transistor based level shifting will be used to convert the TTL voltage from
PIC12F683 to appropriate RS232 level for serial data transfer to PC. The required
negative voltage is derived from PC RS232 port pin 3 (Tx), which remains idle as no
data transfer occurs from PC to PIC. I soldered all the components on a general‐
purpose prototyping board. Besides, my finished product runs on 3‐AAA batteries
with a diode in series for reverse polarity protection. I also have a power switch on
the board. The PIC uses internal oscillator at 4MHz, and MCLR is disabled.
List of Components
• PIC12F683 microcontroller
• DS1820 temperature sensor
• BC557 NPN transistor
• Resistors: 10K (4), 4.7K (2), 470 Ohm (1)
• Capacitor: 10uF, 50V (1)
• LED (1)
• Tact switches (3)
Software
The firmware is written in C and compiled with mikroC compiler from
MikroElektronika. I used the free version of it because our HEX output is going to be
less than 2K. The download link for mikroC is
http://www.mikroe.com/eng/downloads/get/29/mikroc_pro_pic_2010_v380_setu
p.zip
The 3 user input switches work on interrupt­on­change mode. That means any time
the user presses any button, an interrupt is generated except at times when the
microcontroller is reading temperature values from DS1820 (which is
instantaneous) and when it is transferring data to a PC through serial port. The
interrupts are disabled at those instants. The data transfer takes place at 9600 baud
rate. You can write your own software to receive data on PC side, but I have used the
Hyperterminal application for this purpose. My Hyperterminal settings are
bps : 9600, Data Bits: 8, Parity : None, Stop Bits : 1, Flow Control : Hardware
Configuration: Internal clock @ 4 MHz, MCLR Disabled, WDT OFF

Pictures:
This is how my finished product looks like.

Transferring data to PC
Hyperterminal receiving window

You might also like