Introduction: Arduino LCD Thermometer / Temperature Control With TMP36GZ Temp Sensor Added 2 Chanel Relay, Added RTC Ds1307 , Added a Case.based on WWC Guide .

HY my first guid based on the guide from WWC https://www.instructables.com/id/Arduino-LCD-Thermometer-with-LM35-Temp-Sensor/step2/codeTime/ .
October 3 2013 added CASE (step 13)
September 23 2013 added  RTC ( realtimeclock ) Ds1307 (step 11)
September 13 2013 added 2 chanel relay to switch on off the heating bulb.(step 8)


1 Arduino Uno
1 USB conector wire
1 Lcd 16x2
1 Breadboard
1 Potentiometer
1 Wires
1 Temperature Sensor ( i have TMP 36GZ)
1 device to transfer the sketch to the Arduino.
__________________
1 2 chanel relay SRD-05VDC-SL-C only for step 8
________________________________________
1 RTC DS1307                                                 step 11
1 time / DS1307RTC  libraries http://playground.arduino.cc/Code/time
_______________________________________________________
Step 13 THE Frankenstein CASE.     CREDITS to my DAD for helping and lend out his toolbox and time.
red plastic transparent plastic, "time" a big toolbox. ,  screws  ,duct tape,




Step 1:

1. Cut some wires, solder them to the Lcd

Step 2:

2. Put the wires to the breadboard.

Step 3:

3. solder the wires. try to cut them to the same lenght.

Step 4:

4. conect the wires

LCD to Arduino
1 GND
2 +
3 center of potentiometer
4 pin 12 Arduino.
5 GND
6 Pin 11 Arduino
11 Pin 5 Arduino
12 Pin 4 Arduino
13 Pin 3 Arduino
14 Pin 2 Arduino
15 +
16 Gnd

Step 5:

5. conect the TMP 36Gz sensor
 the label is the front side

1 midle to 0 Arduino analog in
2 left to +
3 right to Gnd

Caution don't conect it wrong its geting  realy hot.
risk of injury.

Step 6:

upload the scetch  the BOLT letters are the changes from me.

/*
September 12 2013
October 25 2012
Based off of a project by DJ Mentzik.
Enhanced and modified by WWC and citin.
Supporting documents can be found at https://www.instructables.com/member/WWC/
Use and modife as needed.

Displays Current, 8 sec Average, Max and Min Temperature.

To wire your LCD screen to your Arduino, connect the following pins:
LCD Pin 6 to digital pin 12
LCD Pin 4 to digital pin 11
LCD Pin 11 to digital pin 5
LCD Pin 12 to digital pin 4
LCD Pin 13 to digital pin 3
LCD Pin 14 to digital pin 2
LCD PIN 15 to  POS
LCD PIN 16 to GND



*/

#include <LiquidCrystal.h>                                       // include the LCD driver library

                                                                 //declare variables
float tempC = 0;                                                 // Variable for holding Celcius temp (floating for decimal points precision)
float tempf = 0;                                                 // variable for holding Fareghneit temp
int tempPin = 0;                                                 // Declaring the Analog input to be 0 (A0) of Arduino board.
float samples[8];                                                // Array to hold 8 samples for Average temp calculation
float maxi = 0,mini = 100;                                       // Max/Min temperature variables with initial values. LM35 in simple setup only measures Temp above 0.
int i;


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                          // initialize the library with the numbers of the interface pins

void setup()
{
Serial.begin(9600);                                             // Opens serial port, sets data rate to 9600 bps

lcd.begin(16, 2);                                               // Set up the LCD's number of columns and rows:

lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("Waynes World");                                      // Print text to LCD
lcd.setCursor(3, 1);                                            // Set LCD cursor position (column,row) 
lcd.print("Thermometer");                                       // Print text to LCD
delay(5000); // wait 500ms                                      // Delay to read text
lcd.clear(); // clear LCD display                               // Clear the display
lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("LCD Displayed");                                     // Print text to LCD
lcd.setCursor(1, 1);                                            // Set LCD cursor position (column, row) 
lcd.print(" Averaged Temp ");                                   // Print text to LCD                                                                                                                                                                                                                                                                                                                                                                                                                       
delay(5000);                                                    // Delay to read text
lcd.clear();                                                    // Clear LCD


}

void loop()
{
Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("You are looking at a project built by WWC.");  // Print text to Serial monitor
Serial.print("Feal free to use and modife as needed.");
Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.print("LM35 Raw data: ");                               // Print text to Serial monitor 
Serial.println(analogRead(tempPin));                           // Displays on serial monitor the sampled value before conversion to real Temperature reading

                                                               // Start of calculations FOR loop.
for(i = 0;i<=7;i++){                                           // gets 8 samples of temperature
samples[i] = ( 4.4 * analogRead(tempPin) * 26) / 1024.0;    // conversion math of tmp36GZ sample to readable temperature and stores result to samples array. 




Serial.println(samples[i]);                                    // Print samples [i] to sertiual monitor                                            

                                                               // ( LCD note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);                                           // Set LCD cursor position (column 0, row 0)
lcd.print("Current Temp is: ");                                // Print text to LCD
lcd.setCursor(1, 1);                                           // Set LCD cursor position (column 1, row 1)
lcd.print("  Celcius   ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, row 1)
lcd.print(samples[i]);                                         // print current Temp sample to LCD
tempC = tempC + samples[i];                                    // do the addition for average temperature
delay(800);                                                    // wait 800ms

}                                                              // END of FOR loop

Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("");                                            // Blank line for spacing in the serial monitor
tempC = tempC/8.0;                                             // calculated the averare of 8 samples in Celcius

tempf = (tempC * 9)/ 5 + 32;                                   // converts to fahrenheit

if(tempC > maxi) {maxi = tempC;}                               // set max temperature
if(tempC < mini) {mini = tempC;}                               // set min temperature

                                                               // Send Results to Serial Monitor
Serial.println("New measurement:");
Serial.print(" Average Temperature in Celcius is " );          // Print text to Serial monitor
Serial.println(tempC);//send the data to the computer          // Send the data to the computer
Serial.print(" Average Temperature in Farenait is " );         // Print text to Serial monitor
Serial.println(tempf);//send the data to the computer          // Send the data to the computer
Serial.print(" MAX Temperature in Celcius is " );              // Print text to Serial monitor
Serial.println(maxi);//send the data to the computer           // Send the data to the computer
Serial.print(" MIN Temperature in Celcius is " );              // Print text to Serial monitor
Serial.println(mini);//send the data to the computer           // Send the data to the computer

                                                               // Send results to LCD.
lcd.setCursor(0, 1);                                           // Set LCD cursor position (column 0, line 1)
lcd.print(" Fahrenheit ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, line 1)
lcd.print(tempf);                                              // Send the data to the LCD

delay(6000);                                                   // Wait 3 seconds to display the Fahrenheit temp and 3 seconds to display results to LCD screen befor starting the loop again = 6 seconds.
tempC = 0;                                                     // Set tempC to 0 so calculations can be done again
}

Step 7:

Thats all first but i will try to controll the Bartagamen Terarium , so i have to add some relais and a rtc..perhaps an ethernetshield withe ssd slot and later a TSL2561 light sensor  for the uvb /uva ray's.

byby

Step 8:

i get the 2 chanel relay SRD-05vDC-SL-C10A 250VAC /125VAC 10 A
 to switch on / off the (Heating)bulps.

conect the relay to the arduino

Relay / Arduino
1 conect GND to GND .
2 VCC to +5v.
3 IN1 to pin 10.
4 in2 to pin 8.

Step 9:

ignore the relay picture, on fritzing,  its wrong.
conect the relay to the arduino

Relay / Arduino
1 conect GND to GND .
2 VCC to +5v.
3 IN1 to pin 10.
4 in2 to pin 8

Step 10:

<~25°c/77° F cold 2 chanel relay switch both chanels on.
>~30°c /86° F hot 2 chanel relay switch both chanels off.
new sketch september 13 2013 addet the relay


/*
September 13 2013
September 12 2013
October 25 2012
Based off of a project by DJ Mentzik includes http://www.arduino.cc/en/Tutorial/SwitchCase
Enhanced and modified by WWC,citin
Supporting documents can be found at wwwc https://www.instructables.com/member/WWC/

citin
https://www.instructables.com/id/Arduino-LCD-Thermometer-with-TMP36GZ-Temp-Sensor-b/
Use and modife as needed.

Displays Current, 8 sec Average, Max and Min Temperature, 2 chanel relay switch
on / OFF by reaching min/max sensor raw data and warns cold/hot/ok.

To wire your LCD screen to your Arduino, connect the following pins:
LCD Pin 6 to digital pin 12
LCD Pin 4 to digital pin 11
LCD Pin 11 to digital pin 5
LCD Pin 12 to digital pin 4
LCD Pin 13 to digital pin 3
LCD Pin 14 to digital pin 2
LCD PIN 15 to +
LCD PIN 16 to GNd


*/
// these constants won't change:
const int sensorMin = 160;      // sensor minimum needet to get minimum temprature, discovered through experiment
const int sensorMax = 230;    // sensor maximum , 41,9celsius = 248 rawdata discovered through experiment

#include <LiquidCrystal.h>                                       // include the LCD driver library

                                                                 //declare variables
float tempC = 0;                                                 // Variable for holding Celcius temp (floating for decimal points precision)
float tempf = 0;                                                 // variable for holding Fareghneit temp
int tempPin = 0;                                                 // Declaring the Analog input to be 0 (A0) of Arduino board.
float samples[8];                                                // Array to hold 8 samples for Average temp calculation
float maxi = 0,mini = 100;                                       // Max/Min temperature variables with initial values. LM35 in simple setup only measures Temp above 0.
int i;


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                          // initialize the library with the numbers of the interface pins

void setup()
{

Serial.begin(9600);                                             // Opens serial port, sets data rate to 9600 bps

lcd.begin(16, 2);                                               // Set up the LCD's number of columns and rows:

lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("Bartagamen");                                      // Print text to LCD
lcd.setCursor(3, 1);                                            // Set LCD cursor position (column,row) 
lcd.print("Thermometer");                                       // Print text to LCD
delay(1000); // wait 500ms                                      // Delay to read text
lcd.clear(); // clear LCD display                               // Clear the display
lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("LCD Displayed");                                     // Print text to LCD
lcd.setCursor(1, 1);                                            // Set LCD cursor position (column, row) 
lcd.print(" Averaged Temp ");                                   // Print text to LCD                                                                                                                                                                                                                                                                                                                                                                                                                       
delay(5000);                                                    // Delay to read text
lcd.clear();                                                    // Clear LCD


}

void loop()
{
Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("You are looking at a project built by WWC,Citin");  // Print text to Serial monitor
Serial.print("Feal free to use and modife as needed.");
Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.print("TMP36GZ Raw data: ");                               // Print text to Serial monitor 
Serial.println(analogRead(tempPin));                           // Displays on serial monitor the sampled value before conversion to real Temperature reading

                                                               // Start of calculations FOR loop.
for(i = 0;i<=7;i++){                                           // gets 8 samples of temperature
samples[i] = ( 4.7 * analogRead(tempPin) * 27) / 1024.0;    // conversion math of tmp26gz have to cross check already checked
                                                               // 5v is the supply volts of tmp26gz. Change appropriatelly to have correct measurement. My case is 4.4Volts.
                                                               // If powered from USB then use value 4.4v to 4.6v. If power is 7v< to the Arduino then use 4.9v to 5.1v                                                                
                                                               // The voltage is critical for accurate readings
Serial.println(samples[i]);                                    // Print samples [i] to sertiual monitor                                            

                                                               // ( LCD note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);                                           // Set LCD cursor position (column 0, row 0)
lcd.print("Current Temp is: ");                                // Print text to LCD
lcd.setCursor(1, 1);                                           // Set LCD cursor position (column 1, row 1)
lcd.print("    Celcius   ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, row 1)
lcd.print(samples[i]);                                         // print current Temp sample to LCD
tempC = tempC + samples[i];                                    // do the addition for average temperature
delay(4000);                                                    // wait 800ms
// read the sensor:
  int sensorReading = analogRead(A0);                           // get the Sensor RAW DATA to set curent mode
  // map the sensor range to a range of four options:
  int range = map(sensorReading, sensorMin, sensorMax, 0, 3);   // sensor output don t change.

// do something different depending on the
  // range value:
  switch (range) {
  case 0:    // kalt                                             // display COLD and switch both relay chanels  on to heat check relay state.
    analogWrite(8,HIGH);
    analogWrite(10,HIGH);   
  Serial.println("dark");
  lcd.setCursor(1, 1);                                           // Set LCD cursor position (column 0, line 1)
lcd.print("Cold");                                               // Print text to LCD
lcd.setCursor(1, 1);
delay(800);                                                     // wait so you can see the message
    break;
  case 1:                                                       // ok,nothing to do both relay chanels are OFF
    Serial.println("dim");
    analogWrite(8,LOW);
    analogWrite(10,LOW);
    lcd.setCursor(1, 1);
    lcd.print("rise");                                        // Print text to LCD
    lcd.setCursor(1, 1);
delay(800);                                                   // wait so you can see the message
    break;
  case 2:    // your hand is a few inches from the sensor     // ok,nothing to do both relay chanels are in last stat
    Serial.println("medium");
    lcd.setCursor(1, 1);
    lcd.print("OK");                                         // Print text to LCD
    lcd.setCursor(1, 1);
    delay(800);                                              // wait so you can see the message
    break;
  case 3:      // your hand is nowhere near the sensor
    Serial.println("bright");                                 // to hot all relay chanels off stop heating.
    digitalWrite(8, LOW);                                     // to hot all relay chanels off stop heating. check relay state
    digitalWrite(10, LOW);                                    // to hot all relay chanels off stop heating. check relay state
    lcd.setCursor(1, 1);
    lcd.print("HOT");                                       // Print text to LCD
    lcd.setCursor(1, 1);
   delay(800);                                               // wait so you can see the message
    break;

  }}                                                              // END of FOR loop

Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("");                                            // Blank line for spacing in the serial monitor
tempC = tempC/8.0;                                             // calculated the averare of 8 samples in Celcius

tempf = (tempC * 9)/ 5 + 32;                                   // converts to fahrenheit

if(tempC > maxi) {maxi = tempC;}                               // set max temperature
if(tempC < mini) {mini = tempC;}                               // set min temperature

                                                               // Send Results to Serial Monitor
Serial.println("New measurement:");
Serial.print(" Average Temperature in Celcius is " );          // Print text to Serial monitor
Serial.println(tempC);//send the data to the computer          // Send the data to the computer
Serial.print(" Average Temperature in Farenheit is " );         // Print text to Serial monitor
Serial.println(tempf);//send the data to the computer          // Send the data to the computer
Serial.print(" MAX Temperature in Celcius is " );              // Print text to Serial monitor
Serial.println(maxi);//send the data to the computer           // Send the data to the computer
Serial.print(" MIN Temperature in Celcius is " );              // Print text to Serial monitor
Serial.println(mini);//send the data to the computer           // Send the data to the computer

                                                               // Send results to LCD.
lcd.setCursor(0, 1);                                           // Set LCD cursor position (column 0, line 1)
lcd.print(" Fahrenheit ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, line 1)
lcd.print(tempf);                                              // Send the data to the LCD

delay(6000);                                                   // Wait 3 seconds to display the Fahrenheit temp and 3 seconds to display results to LCD screen befor starting the loop again = 6 seconds.
tempC = 0;                                                     // Set tempC to 0 so calculations can be done again
}

Step 11:

Conect the RTC ds1307 to Arduino.

conect  SDA  to Arduino A4.
conect  SCL  to Arduino A5.
conect vcc to  +5v
conect gnd to gnd.

Step 12: Upload This Sketch to Add the Rtc to the Projekt. to Be Continued.

shows the current temperatur
<~25°c/77° F cold 2 chanel relay switch both chanels on.
>~30°c /86° F hot 2 chanel relay switch both chanels off.
 Shows the real Time.


/*
september 22 2013 added RTC
September 13 2013 added 2 chanel relay
September 12 2013
October 25 2012
Based off of a project by DJ Mentzik includes http://www.arduino.cc/en/Tutorial/SwitchCase
Enhanced and modified by WWC,citin
Supporting documents can be found at wwwc https://www.instructables.com/member/WWC/

citin
https://www.instructables.com/id/Arduino-LCD-Thermometer-with-TMP36GZ-Temp-Sensor-b/
Use and modife as needed.

Displays Current, 8 sec Average, Max and Min Temperature, 2 chanel relay switch
on / OFF by reaching min/max sensor raw data and warns cold/hot/ok.

To wire your LCD screen to your Arduino, connect the following pins:
LCD Pin 6 to digital pin 12
LCD Pin 4 to digital pin 11
LCD Pin 11 to digital pin 5
LCD Pin 12 to digital pin 4
LCD Pin 13 to digital pin 3
LCD Pin 14 to digital pin 2
LCD PIN 15 to +
LCD PIN 16 to GNd


*/
// these constants won't change:
const int sensorMin = 160;      // sensor minimum needet to get minimum temprature, discovered through experiment
const int sensorMax = 215;    // sensor maximum , 41,9celsius = 248 rawdata discovered through experiment

#include <LiquidCrystal.h>
#include <Time.h> 
#include <Wire.h> 
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t
#include <LiquidCrystal.h>
// include the LCD driver library

                                                                 //declare variables
float tempC = 0;                                                 // Variable for holding Celcius temp (floating for decimal points precision)
float tempf = 0;                                                 // variable for holding Fareghneit temp
int tempPin = 0;                                                 // Declaring the Analog input to be 0 (A0) of Arduino board.
float samples[8];                                                // Array to hold 8 samples for Average temp calculation
float maxi = 0,mini = 100;                                       // Max/Min temperature variables with initial values. LM35 in simple setup only measures Temp above 0.
int i;


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);                          // initialize the library with the numbers of the interface pins

void setup()
{

Serial.begin(9600);                                             // Opens serial port, sets data rate to 9600 bps
setSyncProvider(RTC.get);   // the function to get the time from the RTC
  if(timeStatus()!= timeSet)
     Serial.println("Unable to sync with the RTC");
  else
     Serial.println("RTC has set the system time");
lcd.begin(16, 2);                                               // Set up the LCD's number of columns and rows:

lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("Bartagamen");                                      // Print text to LCD
lcd.setCursor(3, 1);                                            // Set LCD cursor position (column,row) 
lcd.print("Thermometer");                                       // Print text to LCD
delay(500); // wait 500ms                                      // Delay to read text
lcd.clear(); // clear LCD display                               // Clear the display
lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print("LCD Displayed");                                     // Print text to LCD
lcd.setCursor(1, 1);                                            // Set LCD cursor position (column, row) 
lcd.print(" Averaged Temp ");                                   // Print text to LCD                                                                                                                                                                                                                                                                                                                                                                                                                       
delay(2000);                                                    // Delay to read text
lcd.clear();                                                    // Clear LCD


}

void loop()
{
   digitalClockDisplay(); 
   delay(1000);
}

void digitalClockDisplay()
{

Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("You are looking at a project built by WWC,Citin");  // Print text to Serial monitor
Serial.print("Feal free to use and modife as needed.");
Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.print("TMP36GZ Raw data: ");                               // Print text to Serial monitor 
Serial.println(analogRead(tempPin));                           // Displays on serial monitor the sampled value before conversion to real Temperature reading

                                                               // Start of calculations FOR loop.
for(i = 0;i<=7;i++){                                           // gets 8 samples of temperature
samples[i] = ( 4.4 * analogRead(tempPin) * 26) / 1024.0;    // conversion math of tmp26gz have to cross check .
                                                               // 5v is the supply volts of tmp26gz. Change appropriatelly to have correct measurement. My case is 4.4Volts.
                                                               // If powered from USB then use value 4.4v to 4.6v. If power is 7v< to the Arduino then use 4.9v to 5.1v                                                                
                                                               // The voltage is critical for accurate readings
Serial.println(samples[i]);                                    // Print samples [i] to sertiual monitor                                            

                                                               // ( LCD note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);                                           // Set LCD cursor position (column 0, row 0)
lcd.print("Current Temp is: ");                                // Print text to LCD
lcd.setCursor(1, 1);                                           // Set LCD cursor position (column 1, row 1)
lcd.print("    Celsius   ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, row 1)
lcd.print(samples[i]);                                         // print current Temp sample to LCD
tempC = tempC + samples[i];                                    // do the addition for average temperature
delay(4000);                                                    // wait 800ms
// read the sensor:
  int sensorReading = analogRead(A0);                           // get the Sensor RAW DATA to set curent mode
  // map the sensor range to a range of four options:
  int range = map(sensorReading, sensorMin, sensorMax, 0, 3);   // sensor output don t change.

// do something different depending on the
  // range value:
  switch (range) {
  case 0:    // kalt                                             // display COLD and switch both relay chanels  on to heat check relay state.
    analogWrite(8,HIGH);
    analogWrite(10,HIGH);   
  Serial.println("dark");
  lcd.setCursor(1, 1);                                           // Set LCD cursor position (column 0, line 1)
lcd.print("Cold");                                               // Print text to LCD
lcd.setCursor(1, 1);
delay(800);                                                     // wait so you can see the message
    break;
  case 1:                                                       // ok,nothing to do both relay chanels are OFF
    Serial.println("dim");
    analogWrite(8,LOW);
    analogWrite(10,LOW);
    lcd.setCursor(1, 1);
    lcd.print("rise");                                        // Print text to LCD
    lcd.setCursor(1, 1);
delay(800);                                                   // wait so you can see the message
    break;
  case 2:    // your hand is a few inches from the sensor     // ok,nothing to do both relay chanels are in last stat
    Serial.println("medium");
    lcd.setCursor(1, 1);
    lcd.print("OK");                                         // Print text to LCD
    lcd.setCursor(1, 1);
    delay(800);                                              // wait so you can see the message
    break;
  case 3:      // your hand is nowhere near the sensor
    Serial.println("bright");                                 // to hot all relay chanels off stop heating.
    digitalWrite(8, LOW);                                     // to hot all relay chanels off stop heating. check relay state
    digitalWrite(10, LOW);                                    // to hot all relay chanels off stop heating. check relay state
    lcd.setCursor(1, 1);
    lcd.print("HOT");                                       // Print text to LCD
    lcd.setCursor(1, 1);
   delay(800);                                               // wait so you can see the message
    break;

  }}                                                              // END of FOR loop

Serial.println("");                                            // Blank line for spacing in the serial monitor
Serial.println("");                                            // Blank line for spacing in the serial monitor
tempC = tempC/8.0;                                             // calculated the averare of 8 samples in Celcius

tempf = (tempC * 9)/ 5 + 32;                                   // converts to fahrenheit

if(tempC > maxi) {maxi = tempC;}                               // set max temperature
if(tempC < mini) {mini = tempC;}                               // set min temperature

                                                               // Send Results to Serial Monitor
Serial.println("New measurement:");
Serial.print(" Average Temperature in Celsius is " );          // Print text to Serial monitor
Serial.println(tempC);//send the data to the computer          // Send the data to the computer
Serial.print(" Average Temperature in Fareneit is " );         // Print text to Serial monitor
Serial.println(tempf);//send the data to the computer          // Send the data to the computer
Serial.print(" MAX Temperature in Celsius is " );              // Print text to Serial monitor
Serial.println(maxi);//send the data to the computer           // Send the data to the computer
Serial.print(" MIN Temperature in Celsius is " );              // Print text to Serial monitor
Serial.println(mini);//send the data to the computer           // Send the data to the computer

                                                               // Send results to LCD.
lcd.setCursor(0, 1);                                           // Set LCD cursor position (column 0, line 1)
lcd.print(" Fahrenheit ");                                     // Print text to LCD
lcd.setCursor(12, 1);                                          // Set LCD cursor position (column 12, line 1)
lcd.print(tempf);                                              // Send the data to the LCD

delay(1000);            // Wait  seconds to display the Fahrenheit temp and seconds to display results to LCD screen befor starting the loop again = 6 seconds.
lcd.clear();            //clear Display
tempC = 0;                                                     // Set tempC to 0 so calculations can be done again

  Serial.print(hour());                                         // print text to Serial (PC)
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();

lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print(hour());                                               // print text to LCd
lcd.print(":");
lcd.print (minute());
lcd.print(" ");
lcd.print(second());
lcd.print(" ");
lcd.print("Uhr");
lcd.setCursor(3, 1);                                           // Set LCD cursor position (column,row) 
lcd.print(day());
lcd.print(".");
lcd.print(month());
lcd.print(".");
lcd.print(year());
delay(6000);                                                   // delay to read text



}

void printDigits(int digits){
                // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);


}

Step 13: The Frankenstein Case

ok where do i put this stuff (wires sensor more wires ...)
look what we do.

Step 14: You Need Time ..

some platic out of your building supplies store.. some aluminium, some old ide wire from prehistoric pc. bolts and nuts.. saw, duct tabe tool box.

Step 15: The Aluminium Parts

cut them to  8x12,5 cm with your miter saw.

Step 16: Ready for the Next Step ?

the result shoud look like this.

Step 17: Check It

every thing fit together ?

Step 18: Duct Tape It

duct tape it for stability.

Step 19: Cut the Transparent Platic 1x 12,5x12,5 Cm for Stability

i think i need it for sabilitiy (bottom).

Step 20: Top and Bottom

cut 2 x 12,5x12,5 cm of the red plastic for the top and the bottom.( one for each).

Step 21: Check Out Where You Have to Drill the Holes.

use your brain to check the diameters.

Step 22: Drill 6,5- 7 Mm Holes in "half/fifity Fifty" of the Transparent Plate

drill only the half way of the plate . to fitt the nuts in, for stability . look at the picture. drill the 3 mm holes ad the places you checked and marked in step 21.

Step 23: Put It Togehter

the transparent,the redplastic, the ductaped aluminium.

Step 24: Try to Fit It Together

screw the 3 mm x 16mm screw in the holes. they don fit to all holes caution !! leave them. risk of shortcut.

Step 25: The Screws Didn't Fit ?

do some therible things to the screws so they look like this (on the picture)

Step 26: Some Shrink Tubing

shrink tubing .

Step 27: Should Look Like

the moded srew at the relay and at the arduino right from the usb port  (added shrinkfoile  to the srew to prevent short cut.)

Step 28: Prevent Shortcut

shrinkfoiled nut.

Step 29: Cross Check the Needed Dimension for Your Side's

do it you save time...

Step 30: Cut the Side's

 mark  and fix it to cut the red plastik. with  your favorite knife to  12,5 cm xx cm  .

Step 31: The Top Lcd Hole

mark and cut the hole in the top for the lcd.

Step 32: Drill the Holes for the Sensor and Heating Bulbwire in One of the Side

Step 33: Drill and Cut the Holes for the Usb and Power Jack

don´ t forget the aluminum angel in your calculation.

Step 34: Cut the Needet Aluminium Angles

 and dril a hole on eatch side .

Step 35: Screw It Together

i think i missed the picture where i add the aluminium angel at the edges.... but you can´ t missfit them i think. cause of no more space. look at pic 33/36 for example

Step 36: Old Ide Wire

i added an old ide wire to conect the lcd.

Microcontroller Contest

Second Prize in the
Microcontroller Contest