Project tutorial
An Adequate Thermometer

An Adequate Thermometer © CC BY-NC-SA

An adequate tool to keep in your First aid kit.

  • 3,636 views
  • 1 comment
  • 9 respects

Components and supplies

Apps and online services

Ide web
Arduino IDE
LCD assistant

About this project

One fine night you realize that you are getting a fever. Questions like should I see a doctor at this time of night or should I wait till morning, Is my fever that bad or mild one? start bouncing in your head. You check your first aid kit for a thermo-meter, unfortunately you never bought one. This happened with me few days back. After getting back on feet, instead of purchasing a medical thermometer, I thought of making an adequate thermometer. You can make one for yourself using this guide, Let's get started.

(Note- Having a medical thermometer in your first aid kit is highly appreciated, but making one that is adequate enough is a joy in itself)

Step 1: Things we will Need (part 1)

Here is the list of electronics component and boards, we will need for this adequate thermometer.

  • Arduino pro mini 3.3V ( This is to keep form factor small, 5V version will also do but schematic that I am attaching is for 3.3V board)
  • FTDI FT232RL USB to TTL module. (For programming arduino pro mini)
  • 128x64 graphic OLED display
  • LM35 temperature sensor
  • CR2032 button cell and holder (two in count , each)
  • Jumper connector (It acts as switch, One in count)

Step 2: Things we will Need (part 2)

Here is the list of prototyping material needed.

  • Solder Iron and wire ( to put electrical components and board together)
  • Female berg strip (used while assembling)
  • General purpose PCB (acts as host of our circuit)
  • small bunch of single core wires (to connect few things)
  • heat shrink tubes (to insulate adjacent wire connections)
  • Multi-meter (for debugging)
  • Styrofoam (to insulate the bottom form place beneath)
  • electrical tape

Step 3: Preparing Sensor

Thermometer should have good accessibility, so we need to project our sensor, a bit outside our circuit board. For that we need to solder three, 3 cm wires to resp-ective terminals of LM35 temperature sensor. In attached image

  • RED wire is connected to Vcc pin of LM35.
  • YELLOW wire is connected to Output pin of LM35.
  • BLACK wire is connected to Ground pin of LM35.

After making these connections, use heat shrink as shown in attached image to isolate these connections form each other.

Now, We are ready with our sensor but before looking at our full circuit, let us first test our programming setup. As Arduino pro mini does not have onboard USB to TTL converter, we need to connect external USB to TTL converter such as FTDI FT232RL.

Step 4: Programming Arduino Pro Mini (3.3V) using FTDI FT232RL

I am attaching fritzing schematic image for connection between Arduino pro mini and FTDI FT232RL. Make sure to change jumper to 3.3V location on FT232RL before making these connections. After that use suitable USB cable and try burning blink code.

Now, that we are done with programming setup let us look at complete circuit setup.

Step 5: Schematic for Final Assembly

I am attaching fritzing schematic for final assembly of the circuit on general purpose PCB using tools mentioned in step 2. Here are some details about the fritzing schemat-ic and assembly.

  • Two round objects in image are button cell with their holders.
  • You can even insert a switch as shown in attached image.
  • OLED connections are a bit messy, to get rid of confusion look at the note at right bottom of attached fritzing schematic.
  • Use female berg strip, wires to create a compact assembly.

In case of any doubt leave a comment or refer the video at time location 4m47sec.

Jump to 4m47sec

In next step we will look at the arduino code needed for this device.

Step 6: Code

I have attached code for this thermometer, it is quite simple. Before you try to compile it you need to perform following functions.

  • Install u8glib library ( https://github.com/olikraus/u8glib), for using OLED on arduino.
  • Attached code displays symbol of thermometer on right side of OLED. In case you want to display any other symbol you can do it using 'LCD assistant' software,here is the link to download the same- http://en.radzio.dxp.pl/bitmap_converter/
  • After generating necessary data for displaying your symbol, replace 'therm_bitmap' variable data with your data.
  • Make sure that while uploading code, connection from button cell is open.
  • Finally compile and upload.

In case of any doubt in code, refer to attached video at 6m 59sec.

Jump to 6m59sec

Step 7: Finish

After uploading code on assembled circuit, it should look something like attached image. In case of any emergency concerning temperature, this tool will come handy.

Beside, while making this you get to learn a lot. Finally seeing your keens using your device is a thing of ultimate joy.

Thanks for your time.

Code

CodeArduino
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8);  
String str ;

const uint8_t therm_bitmap[] = {
0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x00, 0x01, 0xE0, 0x01,
0xE0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x00, 0x01,
0x80, 0x00, 0x60, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00,
0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF,
0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01,
0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, 0x00,
0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF,
0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01,
0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00,
0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF,
0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00,
0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00,
0x00, 0x1F, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xFF,
0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF,
0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x1F, 0xFF, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x02, 0x02, 0x02, 0x01, 0x04, 0x02, 0x02, 0x03, 0x00, 0x03,
0x00, 0x00, 
};

const int LM35Pin = A0;
unsigned long sensorData;
float tempData;

void draw(void)
{
  u8g.drawBitmap( 76,5,6,50,therm_bitmap); 
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(0,15,"Temp: ");
  u8g.setPrintPos(22,40);
  u8g.print(tempData);
  u8g.drawStr(65,40,"c");
}

void setup(void){
  analogReference(INTERNAL);
  Serial.begin(9600);
}

void loop(void) {
  sensorData = analogRead(LM35Pin);
  tempData = (float)sensorData/(9.31);
  Serial.println(sensorData);
  Serial.print((float)tempData,2);
  Serial.println();
  // picture loop
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  
  // rebuild the picture after some delay
  delay(1000);
}

Schematics

Programming Arduino pro mini with FTDI FT232RL
Programming
schematic for final assembly
Completeckt
Schematic To indicate where you can insert switch
Completecktttt

Comments

Similar projects you might like

Arduino Based IR Thermometer with TFT Display and TMP006

Project tutorial by antiElectron

  • 2,363 views
  • 0 comments
  • 9 respects

DIY Art Deco Analog Thermometer

Project tutorial by Nick Koumaris

  • 5,724 views
  • 1 comment
  • 23 respects

Arduino/Genuino 101 BLE Thermometer With TMP102 and Blynk

Project tutorial by Konstantin Dimitrov

  • 7,876 views
  • 1 comment
  • 26 respects

One Pixel Thermometer

Project tutorial by Ian Cumming

  • 1,519 views
  • 1 comment
  • 7 respects

Making LCD Thermometer With Arduino And LM35/36

Project tutorial by Konstantin Dimitrov

  • 66,603 views
  • 17 comments
  • 63 respects

DIY: A 5 Minutes Contactless OLED Thermometer With Arduino

Project tutorial by Konstantin Dimitrov

  • 7,213 views
  • 0 comments
  • 18 respects
Add projectSign up / Login