Ištirtos 2 paprastos „Arduino“ temperatūros matuoklio grandinės

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame straipsnyje sukursime keletą paprastų „Arduino“ temperatūros matuoklių grandinių, kurios taip pat gali būti naudojamos kaip šviesos diodas kambario termometro grandinė .

Grandinė skirta rodyti rodmenis taškuotais / juostiniais šviesos diodais. Šis projektas gali būti įgyvendinamas tose srityse, kur aplinkos temperatūra vaidina svarbų vaidmenį, arba jis gali būti pastatytas kaip dar vienas įdomus jūsų namų projektas.



1) DTH11 naudojimas kaip temperatūros jutiklis

Pirmojo temperatūros matuoklio projekto širdis ir smegenys yra atitinkamai DTH11 jutiklis ir „Arduino“. Iš jutiklio išgausime tik temperatūros duomenis.

„Arduino“ padarys išvadą apie duomenis ir atnaujins rodomą temperatūrą kas kelias sekundes.



Mes priimsime 12 rezoliucijų temperatūros jutiklis , kitaip tariant, imsimės temperatūros diapazono, kuriame aplinkos temperatūra paprastai skiriasi.

Jei norite pridėti daugiau skiriamosios gebos / šviesos diodų, jums reikės „arduino“ mega, kad galėtumėte pasinaudoti viso jutiklio temperatūros spektru su modifikuota programa.

DTH11 kaip temperatūros jutiklis

Aukščiau pateiktas iliustruotas maketas gali būti pritaikytas, kad geriausiai ieškotumėte savo sąrankos.

Vartotojui tereikia įvesti minimalų kambario temperatūros diapazoną. Tai gali būti apytikslė vertė, kurią vėliau galima pakeisti, kai bus baigta visa aparatūros sąranka.

Jei temperatūros diapazonas neviršija vartotojo įvestos ribinės vertės, šviesos diodas nešvies, o jei temperatūra viršija maksimalų diapazoną (mažiausias + 11), visi šviesos diodai šviečia.

Jei kyla kokių nors jutiklių ryšio problemų, visi šviesos diodai mirksi kas sekundę.

Dizainas:

„Arduino“ LED temperatūros matuoklio grandinės laidai yra labai paprasti, LED serija, sujungta su GPIO kaiščiais, svyruoja nuo 2 iki 13 su srovės ribotuvais, o DHT11 jutiklis yra prijungtas prie analoginių įvesties / išvesties kaiščių, kurie yra užprogramuoti suteikti jutikliui maitinimą. taip pat skaityti duomenis.

LED kambario termometro grandinė

Taigi jūsų LED termometro grandinės sąranka baigta ir paruošta kodui įkelti. Visada rekomenduojama išbandyti grandinę ant duonos lentos prieš ją paverčiant nuolatine.

Patarimas: skirtingiems temperatūros diapazonams nurodyti naudokite skirtingų spalvų LED. Žemesniam temperatūros diapazonui galite naudoti mėlynus šviesos diodus, vidutinės temperatūros diapazonui - žalius arba geltonus, o aukštesnius - raudonus. Tai bus patrauklesnė.

Autoriaus prototipas:

veikiantis LED kambario termometro grandinės prototipas

PASTABA: Ši programa suderinama tik su DHT11 jutikliu.

Prieš tęsdami, būtinai atsisiųskite bibliotekos failą iš šios nuorodos:

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Programos kodas:

//-------Program developed by R.Girish------//
#include
int a=2
int b=3
int c=4
int d=5
int e=6
int f=7
int g=8
int h=9
int i=10
int j=11
int k=12
int l=13
int p=A0
int data=A1
int n=A2
int ack
dht DHT
int temp=25 // set temperature range.
void setup()
{
Serial.begin(9600) // may be removed after testing.
pinMode(a,OUTPUT)
pinMode(b,OUTPUT)
pinMode(c,OUTPUT)
pinMode(d,OUTPUT)
pinMode(e,OUTPUT)
pinMode(f,OUTPUT)
pinMode(g,OUTPUT)
pinMode(h,OUTPUT)
pinMode(i,OUTPUT)
pinMode(j,OUTPUT)
pinMode(k,OUTPUT)
pinMode(l,OUTPUT)
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
digitalWrite(p,HIGH)
digitalWrite(n,LOW)
}
void loop()
{
// may be removed after testing.
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print(' ')
//till here
ack=0
int chk = DHT.read11(data)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if (ack==0)
{
if(DHT.temperature>=temp)digitalWrite(a,HIGH)
if(DHT.temperature>=temp+1)digitalWrite(b,HIGH)
if(DHT.temperature>=temp+2)digitalWrite(c,HIGH)
if(DHT.temperature>=temp+3)digitalWrite(d,HIGH)
if(DHT.temperature>=temp+4)digitalWrite(e,HIGH)
if(DHT.temperature>=temp+5)digitalWrite(f,HIGH)
if(DHT.temperature>=temp+6)digitalWrite(g,HIGH)
if(DHT.temperature>=temp+7)digitalWrite(h,HIGH)
if(DHT.temperature>=temp+8)digitalWrite(i,HIGH)
if(DHT.temperature>=temp+9)digitalWrite(j,HIGH)
if(DHT.temperature>=temp+10)digitalWrite(k,HIGH)
if(DHT.temperature>=temp+11)digitalWrite(l,HIGH)
delay(2000)
goto refresh
}
if (ack==1)
{
// This may be removed after testing.
Serial.print('NO DATA')
Serial.print(' ')
// till here
delay(500)
digitalWrite(a,1)
digitalWrite(b,1)
digitalWrite(c,1)
digitalWrite(d,1)
digitalWrite(e,1)
digitalWrite(f,1)
digitalWrite(g,1)
digitalWrite(h,1)
digitalWrite(i,1)
digitalWrite(j,1)
digitalWrite(k,1)
digitalWrite(l,1)
refresh:
delay(500)
digitalWrite(a,0)
digitalWrite(b,0)
digitalWrite(c,0)
digitalWrite(d,0)
digitalWrite(e,0)
digitalWrite(f,0)
digitalWrite(g,0)
digitalWrite(h,0)
digitalWrite(i,0)
digitalWrite(j,0)
digitalWrite(k,0)
digitalWrite(l,0)
}
}
//-------Program developed by R.Girish------//

1 PASTABA:

Programoje:

int temp = 25 // nustatytas temperatūros diapazonas.
Pakeiskite „25“ į minimalią aplinkos temperatūrą, su kuria susidūrėte anksčiau, kitais termometrais arba numatykite apytikslę vertę.
2 PASTABA: patikrinkite serijinio monitoriaus temperatūros rodmenis ir šviesos diodų sąranką.

2) „Arduino“ temperatūros matuoklis naudojant DS18B20

Šioje antroje konstrukcijoje mes išmokome dar vieną paprastą, tačiau itin tikslų „Arduino“ temperatūros jutiklį su indikatoriaus grandine, naudojant pažangų skaitmeninio LCD ekrano skaitymo modulį.

skaitmeninio LCD ekrano skaitymo modulis.

Iš tikrųjų šioje konfigūracijoje nėra nieko per daug paaiškinama, nes viskas yra modulio pagrindu ir tiesiog reikia prijungti arba prijungti vienas kitą per siūlomus vyriškus moterų lizdus ir jungtis.

Reikalinga aparatinė įranga

Norint sukonstruoti šią tikslią „Arduino“ LCD temperatūros matuoklio grandinę, reikalingos keturios pagrindinės medžiagos, kurias galima tirti taip:

1) „Arduino UNO“ valdyba

2) A Suderinamas LCD modulis

3) Analoginis temperatūros jutiklio lustas, pavyzdžiui, DS18B20 arba mūsų pačių LM35 IC .

DS18B20 skaitmeninio termometro specifikacijos

DS18B20 skaitmeninis termometras užtikrina 9–12 bitų Celsijaus temperatūros specifikacijas ir turi aliarmo funkciją su nepastoviais vartotojo programuojamais aukštesniais ir žemesniais įjungimo elementais. DS18B20 palaiko ryšį per vieną laido magistralę, kuriai pagal aprašą reikia vienos duomenų linijos (ir žemės), kad būtų galima prisijungti prie pagrindinio mikroprocesoriaus.

Tai apima darbo temperatūros diapazoną nuo -55 ° C iki + 125 ° C, kuris yra tikslus iki ± 0,5 ° C asortimente nuo -10 ° C iki + 85 ° C.

Be to, DS18B20 leidžia įgyti energiją tiesiai iš duomenų linijos („parazitų galia“), pašalinant būtinybę
rel = ' nofollow „išorinis maitinimo šaltinis.

Kiekvienas „DS18B20“ turi išskirtinį 64 bitų serijos kodą, leidžiantį keliems „DS18B20“ dirbti vienoje „Wire“ magistralėje. Todėl patogus ir nesudėtingas tik vienas mikroprocesorius valdyti apkrovas, susijusias su DS18B20, paleistais plačiai paplitusioje vietoje.

Programos, kurios gali lengvai pasinaudoti šiuo atributu, apima ŠVOK ekologines konfigūracijas, temperatūros stebėjimo prietaisus įstaigose, aparatus ar įrankius, procesų priežiūros ir reguliavimo sistemas.

Išsami Pinout informacija

DS18B20 skaitmeninio termometro specifikacijos

4) 9 V, 1 amperio kintamosios srovės adapterio blokas

Dabar tereikia paspausti jungtis tarpusavyje, šiek tiek nustatyti per LCD mygtukus ir jūsų žinioje yra pilnavertis, tikslus skaitmeninis LCD temperatūros matuoklis.

Galite išmatuoti kambario temperatūrą naudodami šį įrenginį arba tinkamai pritvirtinti jutiklį bet kokiu šilumą skleidžiančiu įtaisu, kurį reikia stebėti, pvz., Automobilių varikliu, kiaušinių inkubatoriaus kamera, geizeriu arba tiesiog patikrinti šilumos išsiskyrimą iš galios stiprintuvų.

Kaip prijungti „Arduino“ temperatūros matuoklį

Toliau pateiktame paveikslėlyje parodyta jungtis, kurioje „Arduino“ plokštė yra apačioje, kai LCD ekranas yra prijungtas virš jo, o temperatūros jutiklis pritvirtintas prie LCD plokštės.

Bet prieš įdiegdami aukščiau pateiktą sąranką, turėsite užprogramuoti „Arduino“ lentą naudodami šį kodo pavyzdį.

Mandagumas : dfrobot.com/wiki/index.php?title=LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009




Pora: Dviejų pakaitinių apkrovų įjungimas / išjungimas naudojant IC 555 Kitas: SPDT relės jungiklio grandinė naudojant „Triac“