- Nepieciešams materiāls
- Ķēdes shēma
- Relejs:
- Temperatūras aprēķināšana, izmantojot termistoru:
- Arduino kods
- Temperatūras kontrolētas mājas automatizācijas sistēmas darbība:
Pieņemsim, ka jūs sēžat telpā un jūtaties auksts un vēlaties, lai jūsu sildītājs tiktu automātiski ieslēgts un pēc kāda laika izslēgts, kad tiek paaugstināta istabas temperatūra, tad šis projekts palīdzēs jums automātiski kontrolēt jūsu sadzīves tehniku atbilstoši temperatūrai. Šeit mēs kontrolējam mājas maiņstrāvas ierīces ar Arduino, pamatojoties uz temperatūru. Šeit mēs izmantojām termistoru, lai nolasītu temperatūru. Mēs jau esam savienojuši termistoru ar Arduino un parādījuši temperatūru LCD ekrānā.
Šajā apmācībā mēs pievienosim maiņstrāvas ierīci ar Relay un izveidosim mājas automatizācijas sistēmu ar temperatūru, izmantojot Arduino. Tas parāda arī temperatūru un ierīces statusu 16 * 2 LCD displejā, kas savienots ar ķēdi.
Nepieciešams materiāls
- Arduino UNO
- Relejs (5v)
- 16 * 2 LCD displejs
- Spuldze (CFL)
- NTC termistors 10k
- Savienojošie vadi
- Rezistori (1k un 10k omi)
- Potenciometrs (10k)
Ķēdes shēma
Šī uz temperatūru balstītā mājas automatizācijas sistēma sastāv no dažādiem komponentiem, piemēram, Arduino plāksnes, LCD displeja, releja un termistora. Darbs galvenokārt ir atkarīgs no releja un termistora, jo paaugstinātā temperatūrā relejs tiks ieslēgts un, ja temperatūra pazemināsies zem iepriekš iestatītās vērtības, relejs tiks izslēgts. Attiecīgi ieslēdzas un izslēdzas arī ar releju savienotā sadzīves tehnika. Šeit mēs izmantojām CFL spuldzi kā maiņstrāvas ierīci. Visu iedarbināšanas procesu un temperatūras vērtības iestatīšanu veic ieprogrammētā Arduino plāksne. Tas arī sniedz mums informāciju par temperatūras izmaiņām katrā pus sekundē un ierīces statusu LCD ekrānā.
Relejs:
Relejs ir elektromagnētisks slēdzis, kuru kontrolē maza strāva un ko izmanto, lai ieslēgtu un izslēgtu relatīvi daudz lielāku strāvu. Izmantojot nelielu strāvu, mēs varam ieslēgt releju, kas ļauj plūst daudz lielākai strāvai. Relejs ir labs maiņstrāvas (maiņstrāvas) ierīču vadības piemērs, izmantojot daudz mazāku līdzstrāvu. Parasti lietotais relejs ir viena pola dubultmetiena (SPDT) relejs, tam ir pieci termināļi, kā norādīts zemāk:
Ja spolei nav pievienots spriegums, COM (kopīgs) ir savienots ar NC (parasti slēgts kontakts). Kad spolei tiek pielikts zināms spriegums, rodas elektromagnētiskais lauks, kas piesaista armatūru (sviru, kas savienota ar atsperi), un COM un NO (parasti atvērts kontakts), kas savieno lielāku strāvu. Releji ir pieejami daudzos vērtējumos, šeit mēs izmantojām 5V darba sprieguma releju, kas ļauj plūst 7A-250VAC strāvai.
Relejs tiek konfigurēts, izmantojot nelielu vadītāja shēmu, kas sastāv no tranzistora, diode un rezistora. Tranzistoru izmanto strāvas pastiprināšanai, lai pilnā strāva (no līdzstrāvas avota - 9v akumulators) varētu plūst caur spoli, lai to pilnībā aktivizētu. Rezistoru izmanto, lai nodrošinātu tranzistora novirzi. Un diode tiek izmantots, lai novērstu reversās strāvas plūsmu, kad tranzistors ir izslēgts. Katra induktora spole pēkšņi izslēdzot rada vienādu un pretēju EML, tas var neatgriezeniski sabojāt komponentus, tāpēc pretējās strāvas novēršanai jāizmanto diode. Relay modulis ir viegli pieejami tirgū ar visām tās Driver ķēdē uz kuģa vai arī varat to izveidot, izmantojot iepriekš komponentiem. Šeit mēs izmantojām 5V releja moduli
Temperatūras aprēķināšana, izmantojot termistoru:
No sprieguma dalītāja ķēdes mēs zinām, ka:
V izeja ((V iekšā * Rt) / (R + Rt)
Tātad Rt vērtība būs:
Rt = R (Vin / Vout) - 1
Šeit Rt būs termistora pretestība (Rt) un R būs 10 k omu rezistors.
Šo vienādojumu izmanto, lai aprēķinātu termistora pretestību no izejas sprieguma Vo izmērītās vērtības. Mēs varam iegūt sprieguma Vout vērtību no ADC vērtības pie Arduino tapas A0, kā parādīts zemāk norādītajā Arduino kodā.
Temperatūras aprēķināšana pēc termistora pretestības
Matemātiski termistora pretestību var aprēķināt tikai ar Šteina-Hārta vienādojuma palīdzību.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Kur A, B un C ir konstantes, Rt ir termistora pretestība un ln apzīmē log.
Projektā izmantotā termistora nemainīgā vērtība ir A = 1,009249522 × 10 −3, B = 2,378405444 × 10 −4, C = 2,019202697 × 10 −7. Šīs pastāvīgās vērtības var iegūt no kalkulatora šeit, ievadot trīs termistora pretestības vērtības trīs dažādās temperatūrās. Jūs varat iegūt šīs nemainīgās vērtības tieši no termistora datu lapas vai arī iegūt trīs pretestības vērtības dažādās temperatūrās un iegūt konstantes vērtības, izmantojot norādīto kalkulatoru.
Tātad, lai aprēķinātu temperatūru, mums ir nepieciešama tikai termistora pretestības vērtība. Pēc Rt vērtības iegūšanas no iepriekš sniegtā aprēķina ievietojiet vērtības Šteina-Hārta vienādojumā, un mēs iegūsim temperatūras vērtību Kelvina vienībā. Tā kā izejas spriegumā ir nelielas izmaiņas, tas izraisa temperatūras izmaiņas.
Arduino kods
Pilnīgs šīs temperatūras kontrolētās sadzīves tehnikas Arduino kods ir norādīts šī raksta beigās. Šeit mēs esam izskaidrojuši dažas tā daļas.
Matemātisko darbību veikšanai mēs izmantojam Header failu “#include
# iekļaut
Lai iestatītu releju (kā izvadi) un LCD sākuma brīdī, mums ir jāieraksta kods tukšās iestatīšanas daļā
Atcelt iestatīšanu () {lcd.begin (16,2); lcd.clear (); pinMode (RELE, OUTPUT); }
Lai aprēķinātu temperatūru ar Steina-Hārta vienādojumu, izmantojot termistora elektrisko pretestību, mēs veicam dažus vienkāršus matemātiskos vienādojumus kodā, kā paskaidrots iepriekš aprēķinā:
pludiņš a = 1,009249522e-03, b = 2,378405444e-04, c = 2,019202697e-07; pludiņš T, logRt, Tf, Tc; pludiņš Termistors (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1,0 / (a + b * logRt + c * logRt * logRt * logRt)); // Temperatūras vērtību Kelvinos iegūstam no šī Šteina-Hārtas vienādojuma Tc = T - 273,15; // Konvertēt Kelvinu uz Celsija Tf = (Tc * 1,8) + 32,0; // konvertēt Kelvinu uz Fārenheita atgriešanos T; }
Zemāk esošajā kodā funkcijas termistors nolasa vērtību no Arduino analogās tapas un izdrukā temperatūras vērtību, veicot matemātisko darbību
lcd.print ((Termistors (analogRead (0))));
Šo vērtību ņem funkcija Termistors, un pēc tam tiek sākts aprēķins
pludiņš Termistors (int Vo)
Mums ir jāuzraksta gaismas ieslēgšanas un izslēgšanas stāvokļa kods atbilstoši temperatūrai, kad mēs iestatām temperatūras vērtību, piemēram, ja temperatūra paaugstinās vairāk nekā par 28 grādiem pēc Celsija, gaismas iedegsies, ja mazāk gaismas paliek izslēgtas. Tāpēc ikreiz, kad temperatūra pārsniedz 28 grādus, RELAY tapa (PIN 8) ir jāpadara augsta, lai releja modulis būtu ieslēgts. Un, kad temperatūra nokrītas zem 28 grādiem, mums RELAY tapa ir jāpadara zema, lai izslēgtu releja moduli.
if (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Gaismas statuss: ON"), aizkave (500); cits, ja (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Gaismas statuss: OFF"), aizkave (500);
Temperatūras kontrolētas mājas automatizācijas sistēmas darbība:
Lai nodrošinātu piegādi Arduino, varat to darbināt, izmantojot USB, pie klēpjdatora vai pievienojot 12v adapteri. LCD ir saskarne ar Arduino, lai parādītu temperatūras vērtības, termistors un relejs ir savienoti saskaņā ar ķēdes shēmu. Analogais tapa (A0) tiek izmantots, lai katru brīdi pārbaudītu termistora tapas spriegumu, un pēc aprēķina, izmantojot Stein-Hart vienādojumu caur Arduino kodu, mēs varam iegūt temperatūru un parādīt to LCD ekrānā pēc Celsija un Fārenheita.
Kad temperatūra paaugstinās vairāk nekā par 28 grādiem pēc Celsija, Arduino ieslēdz releja moduli, padarot Pin 8 HIGH (kur ir pievienots releja modulis), kad temperatūra nokrītas zem 28 grādiem, Arduino izslēdz releja moduli, padarot Pin LOW. CFL spuldze arī ieslēgsies un izslēgsies atbilstoši releja modulim.
Šī sistēma var būt ļoti noderīga ar temperatūru regulējama ventilatora un automātiskas maiņstrāvas temperatūras regulētāja projektā.
Pārbaudiet arī mūsu daudzos mājas automatizācijas projektu veidus, izmantojot dažādas tehnoloģijas un mikrokontrollerus, piemēram: