Arduino LCD-termometer / temperaturkontroll med TMP36GZ Temp sensor lagt 2 chanel relay, lagt till RTC ds1307, lagt till en case.based på WWC Guide. (12 / 36 steg)

Steg 12: Ladda upp denna skiss för att lägga till rtc till projekt. att fortsätta.



visar den aktuella temperatur
< ~25°c/77° F kallt 2 chanel relä slår båda kanalerna på.
> ~ 30° c / 86° F hot 2 chanel relay stänga båda kanalerna.
Visar i realtid.

/*
September 22 2013 lagt till RTC
September 13 2013 lagt 2 chanel relay
September 12 2013
Oktober 25 2012
Baserade bort av ett projekt av DJ Mentzik omfattar http://www.arduino.cc/en/Tutorial/SwitchCase
Utökad och uppdaterad av WWC, citin
Styrkande handlingar finns på wwwc

Citin

Användning och modife som behövs.

Visar ström, 8 SEK medelvärde, Max och Min temperatur, 2 chanel reläutgång
på / av genom att nå min/max sensor rådata och varnar kall/varm/ok.

För att koppla din LCD-skärm till din Arduino, ansluta följande stift:
LCD-stift 6 till digital stift 12
LCD-stift 4 till digital stift 11
LCD-Pin 11 till digital stift 5
LCD-Pin 12 till digital stift 4
LCD-Pin 13 till digital stift 3
LCD-Pin 14 till digital stift 2
LCD-PIN 15 till +
LCD-stift 16 till GNd

*/
Dessa konstanter inte kommer att ändra:
CONST int sensorMin = 160; sensor minimum needet att få minsta temprature, upptäckte genom experiment
CONST int sensorMax = 215. sensor maximal, 41, 9celsius = 248 \Data upptäckte genom experiment

#include < LiquidCrystal.h >
#include < Time.h >
#include < Wire.h >
#include < DS1307RTC.h > / / grundläggande DS1307 bibliotek som returnerar tid som en tid
#include < LiquidCrystal.h >
inkludera LCD förare biblioteket

deklarera variabler
flyta tempC = 0; Variabel för att hålla Celcius temp (flytande decimalpunkter precision)
flyta tempf = 0; variabel för att hålla Fareghneit temp
int tempPin = 0; Om att den analoga ingången vara 0 (A0) av Arduino ombord.
float prover [8]. Matrisen att hålla 8 prover för genomsnittlig temp beräkning
float maxi = 0, mini = 100; Max/Min temperatur variabler med ursprungliga värden. LM35 i enkel installation bara mäter Temp över 0.
int i;

LiquidCrystal lcd (12, 11, 5, 4, 3, 2); initiera bibliotek med numrerar av gränssnittet stiften

void setup()
{

Serial.BEGIN(9600); Öppnar serieport, anger datahastigheten till 9600 bps
setSyncProvider(RTC.get); funktionen för att få tiden från RTC
IF(timeStatus()! = tidInställning)
Serial.println ("kan inte synkronisera med RTC");
annat
Serial.println ("RTC har angett systemtiden");
LCD.BEGIN (16, 2); Ange den LCD antal kolumner och rader:

lcd.setCursor (2, 0); Ställa in LCD markörens position (kolumn, rad)
LCD.Print("Bartagamen"); Skriva ut text till LCD
lcd.setCursor (3, 1); Ställa in LCD markörens position (kolumn, rad)
LCD.Print("thermometer"); Skriva ut text till LCD
Delay(500); vänta 500ms / / fördröjning för att läsa text
LCD.Clear(); tydlig LCD-display / / rensa displayen
lcd.setCursor (2, 0); Ställa in LCD markörens position (kolumn, rad)
LCD.Print ("LCD visas"); Skriva ut text till LCD
lcd.setCursor (1, 1); Ställa in LCD markörens position (kolumn, rad)
LCD.Print ("Averaged Temp"); Skriva ut text till LCD
Delay(2000); Dröjsmål att läsa text
LCD.Clear(); Clear LCD

}

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

void digitalClockDisplay()
{

Serial.println(""); Tom rad för mellanrum i följetong monitor
Serial.println ("du tittar på ett projekt som byggdes av WWC, Citin"); Skriva ut text till Serial monitor
Serial.Print ("Feal fritt att använda och modife som behövs.");
Serial.println(""); Tom rad för mellanrum i följetong monitor
Serial.Print ("TMP36GZ rådata:"); Skriva ut text till Serial monitor
Serial.println(analogRead(tempPin)); Visar på serial monitor som ingick i urvalet värdet före konvertering till verkliga temperatur läsning

Start av beräkningarna för loop.
för (jag = 0; jag < = 7; i ++) {/ / blir 8 prover av temperatur
prover [i] = (4,4 * analogRead(tempPin) * 26) / 1024.0; omvandling matematik av tmp26gz måste dubbelkontrollera.
5V är utbudet volt av tmp26gz. Ändra appropriatelly att ha korrekt mätning. Mitt fall är 4.4Volts.
Om ström från USB Använd värdet 4.4v till 4.6v. Om strömmen 7v < till Arduino och använd sedan 4.9v till 5.1v
Spänningen är avgörande för noggranna avläsningar
Serial.println(samples[i]); Skriva ut prover [i] till sertiual bildskärm

(LCD Obs: linje 1 är den andra raden, sedan räknar börjar med 0):
lcd.setCursor (0, 0); Ställa in LCD markörens position (kolumn 0, raden 0)
LCD.Print ("aktuell Temp är:"); Skriva ut text till LCD
lcd.setCursor (1, 1); Ställa in LCD markörens position (kolumn 1, rad 1)
LCD.Print ("Celsius"); Skriva ut text till LCD
lcd.setCursor (12, 1); Ställa in LCD markörens position (kolumn 12, rad 1)
LCD.Print(samples[i]); Temp-aktuella utskriften till LCD
tempC = tempC + prover [i]; göra tillägg för medeltemperatur
Delay(4000); vänta 800ms
Läs sensorn:
int sensorReading = analogRead(A0); får sensorn RÅDATA Ställ in läge för aktuell
karta sensor spänna till en rad fyra alternativ:
int utbud = karta (sensorReading, sensorMin, sensorMax, 0, 3); sensor output don t förändring.

göra något annorlunda beroende på den
intervallvärde:
Växla (range) {
fall 0: / / kalt / / Visa kalla och switch båda vidarebefordra chanels på att värme check relay tillstånd.
analogWrite(8,HIGH);
analogWrite(10,HIGH);
Serial.println("Dark");
lcd.setCursor (1, 1); Ställa in LCD markörens position (kolumn 0, linje 1)
LCD.Print("Cold"); Skriva ut text till LCD
lcd.setCursor (1, 1);
Delay(800); vänta så kan du se meddelandet
bryta;
fall 1: / / ok, inget att göra både relä chanels är OFF
Serial.println("Dim");
analogWrite(8,LOW);
analogWrite(10,LOW);
lcd.setCursor (1, 1);
LCD.Print("Rise"); Skriva ut text till LCD
lcd.setCursor (1, 1);
Delay(800); vänta så kan du se meddelandet
bryta;
fall 2: / / din hand är några inches från sensor / / ok, inget att göra både relä chanels är senaste stat
Serial.println("medium");
lcd.setCursor (1, 1);
LCD.Print("OK"); Skriva ut text till LCD
lcd.setCursor (1, 1);
Delay(800); vänta så kan du se meddelandet
bryta;
fall 3: / / din hand är långt ifrån sensorn
Serial.println("Bright"); för att heta relä alla chanels off stop uppvärmning.
digitalWrite 8, låg. för att heta relä alla chanels off stop uppvärmning. Kontrollera relay
digitalWrite (10, låg). för att heta relä alla chanels off stop uppvärmning. Kontrollera relay
lcd.setCursor (1, 1);
LCD.Print("hot"); Skriva ut text till LCD
lcd.setCursor (1, 1);
Delay(800); vänta så kan du se meddelandet
bryta;

{}} / / END av FOR-loop

Serial.println(""); Tom rad för mellanrum i följetong monitor
Serial.println(""); Tom rad för mellanrum i följetong monitor
tempC = tempC/8.0; beräknad averare för 8 samples i Celcius

tempf = (tempC * 9) / 5 + 32; konverterar till fahrenheit

IF(tempC > Maxi) {maxi = tempC;} / / set max temperatur
IF(tempC < mini) {mini = tempC;} / / set min temperatur

Skicka resultaten till Serial Monitor
Serial.println ("ny mätning:");
Serial.Print ("genomsnittliga temperaturen i Celsius"); Skriva ut text till Serial monitor
Serial.println (tempC), //send data till datorn / / skicka data till datorn
Serial.Print ("genomsnittliga temperaturen på Fareneit"); Skriva ut text till Serial monitor
Serial.println (tempf), //send data till datorn / / skicka data till datorn
Serial.Print ("MAX temperaturen i Celsius är"); Skriva ut text till Serial monitor
Serial.println (maxi); //send data till datorn / / skicka data till datorn
Serial.Print ("MIN temperatur i Celsius är"); Skriva ut text till Serial monitor
Serial.println (mini), //send data till datorn / / skicka data till datorn

Skicka resultaten till LCD.
lcd.setCursor (0, 1); Ställa in LCD markörens position (kolumn 0, linje 1)
LCD.Print ("Fahrenheit"); Skriva ut text till LCD
lcd.setCursor (12, 1); Ställa in LCD markörens position (kolumn 12, linje 1)
LCD.Print(tempf); Skicka data till LCD-skärmen

Delay(1000); Vänta sekunder om du vill visa Fahrenheit temp och sekunder att visa resultat till LCD skärmen innan de börjar loopen igen = 6 sekunder.
LCD.Clear(); tydlig Display
tempC = 0; Satt tempC till 0 så beräkningar kan göras igen

Serial.Print(Hour()); skriva ut text till seriell (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); Ställa in LCD markörens position (kolumn, rad)
LCD.Print(Hour()); skriva ut text till LCd
LCD.Print(":");
LCD.Print (minute());
LCD.Print("");
LCD.Print(Second());
LCD.Print("");
LCD.Print("Uhr");
lcd.setCursor (3, 1); Ställa in LCD markörens position (kolumn, rad)
LCD.Print(Day());
LCD.Print(".");
LCD.Print(Month());
LCD.Print(".");
LCD.Print(Year());
Delay(6000); dröjsmål att läsa text

}

void printDigits (int siffror) {
verktyget funktion för digital klocka: utskrifter före kolon och ledande 0
Serial.Print(":");
IF(digits < 10)
Serial.Print('0');
Serial.Print(digits);

}

Se Steg
Relaterade Ämnen

Arduino LCD-termometer

Hej stötarna är Gaige TheEngineer här att ge dig en grundläggande arduino projekt: The Arduino LCD-termometerDetta är något en 12 åring kan göra ganska lätt. Så Vänligen njuta och kolla min Youtube-kanal (även om det finns inget där ännu! Det blir fi...

Arduino LCD-termometer med Temp Sensor LM35

: uppdatering av stift 13: Tack vare cybersbför fångsten.Den schematiska Fritzing visar med hjälp av stift 12 och 13. Detta inte korrekt. Bör använda stiften som anges i koden, stift 11 och 12.Detta är som titeln antyder, en Arduino powered LCD överv...

Flera fermenteren temperaturkontroll med Arduino

Temperaturkontroll anses ofta vara en av de topp fem stegen mot brygga bättre öl. (http://beerandwinejournal.com/10-better-1/) Det finns många metoder för att hålla jäsande vört vid optimala temperaturer från inslagning en damejeanne i en filt att hå...

Historien klockan: Arduino LCD w / cap sensorer

Detta är ännu en annan Arduino LCD klocka, men med en twist; Denna klocka kan vet vissa helgdagar och födelsedagar, och göra beräkningar i farten av hur gammal någon är och sedan Visa information på LCD-skärmen. Jag blev inspirerad att göra denna klo...

Arduino Digital termometer (med DS18B20)

HejIdag kommer jag visa dig hur du gör din egen digitala termometer med arduino uno och DS18B20 temperaturgivare.Termometern kan mäta temperaturer från-55 ° C till +125 ° C (-67 ° F till +257 ° F). Den har till knappar, en till vända på/bort skärmen...

Thermoscope - 16 x 2 LCD termometer med S/M/H diagram

Jag har börjat spela med en temperaturgivare och jag har märkt sin svarstiden till ändringar (e.g. anger ett luftkonditionerat rum) var minuter, och det var svårt att säga "är vi framme snart?".Detta gjorde mig lägga en räckvidd-liknande histori...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

Arduino Real Time klocka med Alarm och miljö-sensorer

Arduino klocka, med batteribackup (realtidsklocka), tid, datum, Alarm, temperatur, fuktighet, tryck, LCD utgång, knappsats ingång, viloläge, LED LCD-belysning (4 X) vit med dimmer kontrollSteg 1: ReservdelslistaArduino Real Time klocka med Alarm och...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

ARDUINO FINGERAVTRYCK Avsökare med 16 X 2 LCD

Detta instructable är baserade och inspirerat av Arduino LCD-handledning och fingeravtryck avsökare från Adafruit (http://www.adafruit.com/product/751). Jag har lagt till 16 x 2 LCD i fingeravtrycket för att kunna se status för processen att fingerpr...

Arduino Nano med DHT11, RTC DS1307 och LCD 16 x 2

Hej. Detta är min första Instructable, så jag hoppas det är OK.Detta är mitt Arduino Nano projekt med LCD med I2C board, RTC DS1307 och DHT11 sensor.För detta projekt jag använde Arduino Nano, RTC DS1307 klockan styrelsen, DHT11 givarkort, 16 x 2 LCD...

Hookup en LCD till en Arduino i 6 sekunder med 3, inte 6 stift

att lägga till en LCD-display till Arduino projekt kan lägga till verkligt värde men kostnaden för att göra så kan vara betydande. Inte en ekonomisk kostnad - du kan plocka upp 16 (tecken) x 2 (rader) LCD för så lite som £3.50. Kostnaden är pin räkna...

Komma igång med avstånd sensorer och Arduino

Detta är en start guide för att använda avstånd sensorer med Arduino och viss bearbetning. Vi har använt dessa sensorer:SKARP GP2Y0A21YK0FEnhet för avstånd Sensor mätningBestår av en integrerad kombination av PSD (position känslig detektor), IRED (in...

LCD termometer - Arduino

Låt oss veta hur du skapar en termometer som visar temperaturen på en LCD!Steg 1: Hårdvara behövs -En Arduino Uno-En skärbräda-Hoppare ledningar-En 10K potentiometer-En temperaturgivare- Och naturligtvis en LCD (Vätskekristall uppvisning)Du behöver i...

Arduino LCD markens fukt sensor

Vad vi ska göra är en Arduino fukt sensor med YL-69 sensor som fungerar baserat på ett motstånd mellan två "bladen". Det kommer att ge oss värden mellan 450-1023 så vi behöver mappa den till få det procentuellt värdet, men vi väl få till detta s...

SD kort Datalogging med DHT22 Temp luftfuktighet Sensor

Detta är en tutorial som förklarar hur man gör loggning med DHT22 temperatur luftfuktighet Sensor från vår kund Steve Spence.Detta är ett lite knepigt, som sensorn utgångar flöten, och vi skicka strängar till SD-kortet, jag har satt ihop en flottör t...

ATTiny45/85 LCD Visa kontroll med ett skiftregister, programmerat i Arduino

kör Arduino på en ATTiny45 av 85 chip är en enorm kostnad-sparare för mini-projekt. Dock kan du inte ansluta en HD44780 kompatibel LCD-display som du kräver 6 utgångar, men du har bara 5. Problemet kan lösas genom att använda ett skiftregister till k...

Lätt LCD-skärm med Arduino

i detta instructable lär du dig hur man gör en LCD display med en arduino.Sak du kommer behovet-:1. 10 k potentiometer2. manlig huvud wired3. hoppare ledningar4. skärbräda5. Arduino(I used UNO r3)6. anslutningskabel för arduinoSteg 1: Först löda give...

DIY TV LCD skärm med Arduino och Smart fjärrkontroll

I nästa följande steg, du gör en DIY "TV" med koden för en smart fjärrkontroll, och faktiskt spela videor och även eventuellt ansluta smart fjärrkontrollen till faktiska moderkortet.Material:Folie/spegelSolid och inte sladdrigt stabilisatoren li...