- Tarvittava materiaali
- Piirikaavio
- Rele:
- Lämpötilan laskeminen termistorilla:
- Arduino-koodi
- Lämpötilaohjatun kotiautomaatiojärjestelmän toiminta:
Oletetaan, että istut huoneessa ja tunnet kylmää ja haluat, että lämmitin käynnistetään automaattisesti ja sammutetaan jonkin ajan kuluttua huoneen lämpötilan noustessa, tämä projekti auttaa sinua hallitsemaan kodinkoneitasi automaattisesti lämpötilan mukaan. Täällä ohjaamme AC-kodinkoneita Arduinon kanssa lämpötilan perusteella. Tässä olemme käyttäneet termistoria lämpötilan lukemiseen. Olemme jo liittäneet termistorin Arduinoon ja näyttäneet lämpötilan LCD-näytöllä.
Tässä opetusohjelmassa liitämme vaihtovirtalaitteen, jossa on rele, ja teemme lämpöohjatun kotiautomaatiojärjestelmän Arduinolla. Se näyttää myös lämpötilan ja laitteen tilan piiriin liitetyssä 16 * 2 LCD-näytössä.
Tarvittava materiaali
- Arduino UNO
- Rele (5v)
- 16 * 2 LCD-näyttö
- Hehkulamppu (CFL)
- NTC-termistori 10k
- Johtojen liittäminen
- Vastukset (1k ja 10k ohmia)
- Potentiometri (10k)
Piirikaavio
Tämä lämpötilapohjainen kotiautomaatiojärjestelmä koostuu useista komponenteista, kuten Arduino-kortti, LCD-näyttö, rele ja termistori. Toiminta riippuu pääasiassa releestä ja termistorista, kun lämpötilan nousu rele kytketään päälle ja jos lämpötila laskee alle asetetun arvon, rele kytketään pois päältä. Releeseen kytketty kodinkone käynnistyy ja sammuu vastaavasti. Tässä olemme käyttäneet CFL-lamppua AC-laitteena. Ohjelmoitu Arduino-kortti suorittaa koko liipaisuprosessin ja lämpötila-arvon asettamisen. Se antaa meille myös tietoja lämpötilan muutoksesta puolen sekunnin välein ja laitteen tilasta LCD-näytöllä.
Rele:
Rele on sähkömagneettinen kytkin, jota ohjataan pienellä virralla ja jota käytetään kytkemään päälle ja pois päältä suhteellisen paljon suurempi virta. Tarkoittaa, että pienellä virralla voidaan kytkeä rele päälle, mikä antaa paljon suuremman virran virrata. Rele on hyvä esimerkki vaihtovirtalaitteiden ohjaamisesta käyttämällä paljon pienempää tasavirtaa. Yleisesti käytetty rele on Single Pole Double Throw (SPDT) Relay, sillä on viisi terminaalia kuten alla:
Kun kelaan ei ole kytketty jännitettä, COM (yhteinen) kytketään NC: ään (normaalisti suljettu kosketin). Kun kelaan on kohdistettu jonkin verran jännitettä, syntyvä sähkömagneettinen kenttä, joka houkuttelee ankkuria (jouseen kytketty vipu), ja COM ja NO (normaalisti avoin kosketin) kytkeytyvät, mikä sallii suuremman virran. Releitä on saatavana useina luokituksina, tässä käytimme 5 V: n käyttöjännitereleä, joka sallii 7A-250VAC-virran virrata.
Rele konfiguroidaan käyttämällä pientä ohjainpiiriä, joka koostuu transistorista, diodista ja vastuksesta. Transistoria käytetään virran vahvistamiseen niin, että täysi virta (tasavirtalähteestä - 9v paristo) voi virrata kelan läpi energiaksi. Vastusta käytetään aikaansaamaan esijännitys transistorille. Ja diodia käytetään estämään käänteinen virtaus, kun transistori kytketään pois päältä. Jokainen induktorikäämi tuottaa yhtäläisen ja vastakkaisen EMF: n, kun se sammutetaan äkillisesti, mikä voi vahingoittaa komponentteja pysyvästi, joten diodia on käytettävä estämään vastavirta. Relemoduuli on helposti saatavilla markkinoilla kaikkine ohjainpiiri pöydällä tai se voidaan luoda käyttämällä edellä komponentteja. Tässä olemme käyttäneet 5 V: n relemoduulia
Lämpötilan laskeminen termistorilla:
Jännitteenjakajan piiristä tiedämme, että:
V lähtö = (V sisään * Rt) / (R + Rt)
Joten Rt: n arvo on:
Rt = R (Vin / Vout) - 1
Tässä Rt on termistorin vastus (Rt) ja R on 10 k ohmin vastus.
Tätä yhtälöä käytetään termistorin vastuksen laskemiseen lähtöjännitteen Vo mitatusta arvosta. Voimme saada jännitteen Vout arvon ADC-arvosta Arduinon nastalla A0, kuten alla olevassa Arduino-koodissa on esitetty.
Lämpötilan laskeminen termistorin vastuksesta
Matemaattisesti termistorin vastus voidaan laskea vain Stein-Hart-yhtälön avulla.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Missä A, B ja C ovat vakioita, Rt on termistorin vastus ja ln on log.
Projektissa käytetyn termistorin vakioarvo on A = 1,009249522 × 10-3, B = 2,378405444 × 10-4, C = 2,019202697 × 10-7. Nämä vakioarvot saadaan laskimelta tässä syöttämällä termistorin kolme vastusarvoa kolmessa eri lämpötilassa. Voit joko saada nämä vakioarvot suoraan termistorin datalehdestä tai voit saada kolme vastusarvoa eri lämpötiloissa ja saada vakiot-arvot annetulla laskimella.
Joten lämpötilan laskemiseen tarvitsemme vain termistorin vastuksen arvon. Saatuaan Rt: n arvon edellä annetusta laskelmasta laita arvot Stein-hart-yhtälöön ja saamme lämpötilan arvon Kelvin-yksikössä. Koska lähtöjännitteessä tapahtuu pieni muutos, lämpötila muuttuu.
Arduino-koodi
Tämän Lämpötilaohjatun kodinkoneen täydellinen Arduino-koodi on tämän artikkelin lopussa. Tässä olemme selittäneet muutamia osia siitä.
Matemaattisen operaation suorittamiseen käytetään otsikkotiedostoa "#include
#sisältää
Setup Relay (lähdöksi) ja LCD aikaan alkaa meidän täytyy kirjoittaa koodia mitätön setup osa
Void setup () {lcd.begin (16,2); lcd.clear (); pinMode (RELE, OUTPUT); }
Lämpötilan laskemiseksi Stein-Hart-yhtälöllä termistorin sähkövastusta käyttäen suoritetaan yksinkertainen matemaattinen yhtälö koodina, kuten yllä olevassa laskelmassa on selitetty:
uimuri a = 1,009249522e-03, b = 2,378405444e-04, c = 2,019202697e-07; kelluva T, logRt, Tf, Tc; kelluva termistori (int Vo) {logRt = log (10000,0 * ((1024,0 / Vo-1))); T = (1,0 / (a + b * logRt + c * logRt * logRt * logRt)); // Saamme lämpötila-arvon Kelvineinä tästä Stein-Hart-yhtälöstä Tc = T - 273,15; // Muunna Kelvin celsiusasteeksi Tf = (Tc * 1,8) + 32,0; // Muunna Kelvin Fahrenheit-paluuksi T; }
Seuraavassa koodissa toimintotermistori lukee arvoa Arduinon analogisesta nastasta ja tulostaa lämpötila-arvon suorittamalla matemaattisen operaation
lcd.print ((Termistori (analoginenLue (0))));
Ja tämä arvo otetaan Thermistor- toiminnolla ja sitten laskenta alkaa tulostaa
kelluva termistori (int Vo)
Meidän on kirjoitettava koodi valon kytkemisen päälle ja pois lämpötilan mukaan, kun asetamme lämpötila-arvon, kuten jos lämpötilan nousu on yli 28 celsiusastetta, valot syttyvät, jos vähemmän valoja pysyy pois päältä. Joten aina, kun lämpötila nousee yli 28 asteen, meidän on tehtävä RELAY-tappi (PIN 8) korkeaksi, jotta relemoduuli saadaan päälle. Ja kun lämpötila laskee alle 28 asteen, meidän on tehtävä RELAY-tappi matalaksi kytkemään releyksikkö pois päältä.
jos (Tc> 28) digitalWrite (RELE, KORKEA), lcd.setCursor (0,1), lcd.print ("Valotila: PÄÄLLÄ"), delay (500); muuten jos (Tc <28) digitalWrite (RELE, LOW), lcd.setCursor (0,1), lcd.print ("Valotila: POIS"), delay (500);
Lämpötilaohjatun kotiautomaatiojärjestelmän toiminta:
Antaaksesi tarvikkeen Arduinolle, voit virrata sen USB: n kautta kannettavaan tietokoneeseen tai liittää 12 V: n sovittimen. LCD-näyttö on liitetty Arduinon kanssa lämpötilan arvojen näyttämiseen, termistori ja rele on kytketty piirikaavion mukaisesti. Analogista nastaa (A0) käytetään termistorin tapin jännitteen tarkistamiseen joka hetki, ja Stein-Hart-yhtälön avulla suoritetun laskennan jälkeen Arduino-koodin avulla pystymme saamaan lämpötilan ja näyttämään sen nestekidenäytöllä Celsius- ja Fahrenheit-asteikolla.
Kun lämpötila nousee yli 28 celsiusastetta, Arduino kytkee relemoduulin päälle kytkemällä nastan 8 KORKEAAN (johon rele-moduuli on kytketty), kun lämpötila laskee alle 28 asteen, Arduino kytkee relemoduulin pois päältä asettamalla nastan LOW. CFL-lamppu kytkeytyy päälle ja pois myös relemoduulin mukaan.
Tämä järjestelmä voi olla erittäin hyödyllinen Lämpötilaohjattu tuuletin ja Automaattinen vaihtovirtalämpötilan säädin -hankkeessa.
Tarkista myös monentyyppiset kodiautomaatioprojektimme erilaisilla tekniikoilla ja mikro-ohjaimilla, kuten: