Search This Blog

Arduino Online Thermometer Project

I have been researching a project which will help me with my understanding of electronics, networking, and programming.  I decided to build an online thermometer which could be used in applications that need temperature monitoring.  I currently work in a lab environment where I test, troubleshoot, and calibrate equipment which is installed in nuclear power plants . Each module must have a burn in time ranging from 24 hrs to 360 hrs per module under max load conditions.  I could use my online temperature sensor to monitor the efficiency of the cooling system in the burn in area. 

One of the modules that requires burn in.  Yes that's 4 DMM's and 2 power supplies!!
Other applications could be the monitoring of a server room. The Arduino allows up to 6 sensors to be installed so this would be efficient to monitor a normal sized server room. I could use a program called Pachube to monitor the temperature ranges over time and see where the servers and equipment get the warmest. This could then be tied into another program which could give an administrator a warning e-mail if the room temperature suddenly started rising.
I am going to go step by step in the build of the online thermometer. 

I first need a network cable to connect my ethernet shield to a router ( if connecting straight to a computer the cable will need to be a crossover cable). 

You will need;
Cat 5 or 6 ethernet cable
Network cable crimper/cutter
Network stripper
RJ-45 data plugs

Start by cutting desired cable length.  Use strippers to cut about 1 1/4'' from the end.

Spread out twisted pair wires.  I aligned them according to the T568B standard because it is more common in the industry.  Here's a diagram of both options and a pinout of a crossover cable.

 Allign and pull the wire out while bending the wires back and forth so they are aligned in a tight sequence. 

Make a clean horizontal cut using the cutters on my strippers.  leave about 3/4" from the cut. 

Insert the cut wires into an RJ-45 plug with white/orange wire on the left side.  Make sure that the plastic insertion tab is facing down.  Also ensure that the wires are pushed in far enough by inspecting the end.  If you can't see the wire all the way to the end then push wires in further before crimping.

Insert the RJ-45 plug into crimper and crimp the cable (make sure that you crimp down on the network cable sheathing with the connector).

Now terminate the other end and you now have an ethernet network cable!!

Here's a part list for the Arduino online temperature thermometer:

1 Arduino Duemilanove, Arduino Pro, Seeeduino, or equivalent
1 Seeed Studio Ethernet Shield or nuElectronics Ethernet Shield with prototyping shield
6 DS18B20 Dallas 1-wire temperature sensors (Note: not DS18S20)
6 4K7 1/4W resistors
Twisted-pair cable or alarm cable (minimum 3 conductors)
1 breadboard

Here's the schematic for the Arduino board (click on image to zoom in).

Figure 1.

Arduino Duemilanove PC board.
Figure 1A.

Here's the schematic for the ethernet shield (click on image to zoom in).


Seeed Ethernet Shield pc board. 

Figure 2A.
The great thing about the Seeed ethernet shield is they leave room on the board to terminate wires and components.  However the version that I got will still require a breadboard for some external components.  I don't mind thought because I love working with breadboards!!

The temperature sensors will need a +5 VDC, Ground, and Data wire connected to work.  I will need to terminate each data line accordingly from the ethernet shield:

sensor A = digital 3
sensor B = digital 4
sensor C = digital 5
sensor D = digital 6
sensor E = digital 7
sensor F = digital 8

I skipped the first few pins and started with 3 because 0 and 1 are used for the serial connection to the host.  Pin 2 is used by the Ethernet shield to communicate with the arduino as seen in Figure 1.    

I started out by soldering my +5VDC wire so I can have for the +VCC on my breadboard.  For the wire I just used some network cable without the sheathing. 

Make sure to use enough flux so no pads are lifted.

I then soldered my ground wire and then my data wires 3-8.  Make sure to clean each connection with acetone or alcohol to remove any excess flux. 

There we go, clean and simple.

Now lets terminate the +5VDC and Ground to the breadboard from the ethernet shield. 

I then added the jumpers for the +Vcc for pins 1, data lines for pins 2, and GND for pins 3 to the breadboard.

Now a continuity check with a DMM to ensure connectivity at all points.  I'm using a paperclip on my negative lead to push through the breadboard to make a proper connection.

It's now time to attach the temperature sensors to the breadboard.  I'm going to use network cable for the 3 pin terminations.  First solder the sensor to the twisted pair wires with shrink tube in place.

Use a heatgun (or you wifes Vidal Sassoon hair dryer) to shrink the shrink tubing around the 3 leads.

Finally, use the heat gun to shrink the larger shrink tube around the leads.

Here's a view of the secure temperature sensor.

Next, I need to terminate the other end of the temperature sensors to the breadboard. 

Pin 1 Vcc
Pin 2 Dat
Pin 3 GND

A 1/4 W 4.7K ohm resistor needs to be added between the +Vcc and the dat lines for a pullup voltage. 

I have now attached my assembled circuit to my laptop via USB.  I have also attached it to my router with the network cable I built ( you can connect this directly to you PC with a crossover cable).

I've downloaded the Arduino utility which I will use to compile the code and upload libraries.  The Arduino utility can be found here:

The Seeed library can be found here:

Now unzip the nuelectronics ethernet library and move it to the libraries folder in the main folder area.

I found the code needed on the internet follow the link:

I am just a beginner in C and C++ code so I'm able to follow this but no way could I have written it ( at least I'm honest!).

Cut and paste the code into a blank sketch.  Import the library headers as well as shown in the figure below.

Before compiling ensure that you have changed the IP address of the shield to be one that would work on your network.  

Compile and upload to Arduino.  

Now type in the network address that you assigned the ethernet shield and you should see the below image.

You can access the other sensors by changing the cmd number. 

There you have it, I hope you have enjoyed my first project involving the Arduino and Seeed ethernet shield!