Arduino + temperatūra + drėgmė: 4 žingsniai

Arduino + temperatūra + drėgmė: 4 žingsniai

Turinys:

Anonim

Paprastas temperatūros jutiklis, naudojant vieną LM35 tikslumo temperatūros jutiklį, drėgmės jutiklį ir Arduino, kad galėtumėte prisijungti prie būsimų projektų. Grandinė siunčia serijinę informaciją apie temperatūrą ir drėgmę, kad galėtumėte naudotis kompiuteryje. Aš paėmiau duomenis iš komposto. Projektas yra susijęs su esamu gaminio kasdieniu sąvartynu, kuriuo kiekvienas gali namuose paversti virtuvės atliekas į kompostą. Daugiau informacijos apie gaminį rasite http://www.dailydump.org/content/. „Digicompost“ rodo pokyčius (temp, drėgmės pokyčius) viduje sąvartyne

Prekės:

1 žingsnis: Medžiagos

- Arduino (galite naudoti kitą mikrokontrolerį, bet tada reikės pakeisti kodą).

- LM35 tikslumo centimetras Temperatūros jutiklis, galite gauti iš bet kurios elektroninės parduotuvės. Čia yra DUOMENŲ LAPAS.

- Bandomoji Lenta.

- Drėgmės jutiklis.

- Laidai.

2 žingsnis: Arduino + temperatūros nustatymas

„Arduino“ yra atviro kodo elektronikos prototipų kūrimo platforma, pagrįsta lanksčia, lengvai naudojama aparatine ir programine įranga. Jis skirtas menininkams, dizaineriams, mėgėjams ir visiems, norintiems kurti interaktyvius objektus ar aplinką. Norėdami gauti daugiau informacijos, prisijunkite (http://www.arduino.cc)

Temperatūros jutiklio prijungimas:

LM35 turi tris kojas ir atrodo kaip tranzistorius. Du išorinės kojos yra

+ 5v ir žemė, o vidurinė kojelė kuria mėginio įtampą.

Analoginis į skaitmeninį keitiklį (ADC) konvertuoja analogines reikšmes į skaitmeninį suderinimą

pagal formulę ADC vertė = mėginys * 1024 / etaloninė įtampa (+ 5v). Taigi su +5 voltais

nuoroda, skaitmeninis apytikslis = įvesties įtampa * 205. (pvz., 2.5v * 205 = 512.5)

LM35 yra precizinis tiesinis temperatūros jutiklis, tiekiantis 10 mv Celsijaus laipsnį.

Tai reiškia 15 laipsnių Celsijaus laipsnį, tai sudarytų 150V arba 150 milivolų skaitymą.

Įvedę šią vertę į mūsų ADC konversiją (.15v * 205 = 30.75), mes galime gauti glaudų

Celsijų temperatūros apytikslis, dalijant skaitmeninį įėjimų skaičių 2.

Jei LM35 būtų tiekiama kitokia atskaitos įtampa (9v arba 12v), mes turėtume

naudoti kitą konversijos metodą. Dėl šios grandinės gerai padalijamas 2.

3 žingsnis: Drėgmės jutiklio prijungimas

Ant drėgmės jutiklio yra du smeigtukai, vienas - ant žemės ir kitiems, kurie eina ant 3 kišenės į arduino. Naudojau vietinį jutiklį drėgmės / drėgmės tyrimui, tačiau galima naudoti SHT15, turinčią tiek temperatūrą, tiek drėgmę.

4 veiksmas: kodo nustatymas !!!

Prijunkite savo arduino prie kompiuterio, atidarykite programą, pasirinkite tinkamą prievadą ir modelį Nr. prieš pradėdami bet kokį kodavimą. Atlikę viską, užsirašykite kodą, kaip parodyta toliau:

int pin = 5; // analoginis kaištis

int putPin = 3; // drėgmė

int tempc = 0, tempf = 0; // temperatūros kintamieji

int mėginiai 8; // kintamieji, kad būtų užtikrintas geresnis tikslumas

int maxi = -100, mini = 100; pradžios maks. / min

int i;

float humi = 0;

float prehum = 0;

float humconst = 0;

float truehum = 0;

float pretruehum = 0;

ilgas pretruehumconst = 0;

ilgas valb = 0;

negaliojantis nustatymas ()

{

Serial.begin (9600); // pradėti serijinį ryšį

}

tuščia kilpa ()

{

už (i = 0; i <= 7; i ++) {

mėginiai i = (5,0 * analoginisRead (pin) * 100.0) / 1024,0;

tempc = tempc + mėginiai i;

vėlavimas (1000);

}

tempc = tempc / 8,0;

tempf = (tempc * 9) / 5 + 32;

valb = analoginisRead (putPin); drėgmės skaičiavimas

prehum = (valb / 5);

humconst = (0.16 / 0.0062);

humi = prehum - humconst;

pretruehumconst = 0,00216 * tempc;

pretruehum = 1,0546-pretruehumconst;

truehum = humi / pretruehum;

vėlavimas (1000);

Serial.print (tempc, DEC);

Serial.print („Celsijaus“);

Serial.print („Drėgmė:“);

Serial.print ((ilgas) truehumas);

Serial.println ("%");

tempc = 0;

vėlavimas (1000); // vėlavimas prieš kilpą

}

Po to, kai viskas bus padaryta, spustelėkite įkėlimo mygtuką, kuris užtruks šiek tiek laiko, kol bus įkeltas, o kai įkėlimas bus atliktas, įsitikinkite, kad spustelėsite serijos komunikaciją, kad gautumėte rodmenis iš jutiklio !!!