Mga kategorya: Mga circuit ng Microcontroller
Bilang ng mga tanawin: 9996
Mga puna sa artikulo: 0
Pagsukat ng temperatura at halumigmig sa Arduino - isang seleksyon ng mga pamamaraan
Upang lumikha ng isang istasyon ng panahon sa bahay o thermometer, kailangan mong malaman kung paano ipares ang board ng Arduino at isang aparato para sa pagsukat ng temperatura at halumigmig. Ang pagsukat ng temperatura ay maaaring makitungo sa paggamit ng isang thermistor o isang digital sensor na DS18B20, ngunit para sa pagsukat ng kahalumigmigan gumamit ng mas kumplikadong mga aparato - sensor ng DHT11 o DHT22. Sa artikulong ito, ipapakita namin sa iyo kung paano masukat ang temperatura at halumigmig gamit ang Arduino at mga sensor na ito.

Pagsukat ng Thermistor
Ang pinakamadaling paraan upang matukoy ang temperatura ay ang paggamit thermistor. Ito ay isang uri ng risistor na ang pagtutol ay nakasalalay sa ambient temperatura. Mayroong mga thermistors na may positibo at negatibong koepisyent ng temperatura - PTC (tinatawag ding posistors) at NTC-thermistors, ayon sa pagkakabanggit.
Sa graph sa ibaba makikita mo ang pag-asa sa temperatura ng paglaban. Ang linya ng madulas ay nagpapakita ng pag-asa sa isang negatibong thermistor ng TCS (NTC), at ang solidong linya para sa isang positibong TCS thermistor (PTC).

Ano ang nakikita natin dito? Ang unang bagay na nakakakuha ng iyong mata ay ang iskedyul para sa thermistor ng PTC ay nasira at magiging mahirap o imposibleng masukat ang isang bilang ng mga halaga ng temperatura, ngunit ang iskedyul para sa thermistor ng NTC ay higit pa o hindi gaanong uniporme, bagaman malinaw ito na hindi magkakasunod. Ano ang ibig sabihin nito? Ang paggamit ng isang thermistor ng NTC ay mas madaling masukat ang temperatura, sapagkat mas madaling malaman ang pag-andar kung saan nagbabago ang mga halaga nito.
Upang mai-convert ang temperatura sa paglaban, maaari mong manu-manong kunin ang mga halaga, ngunit ito ay mahirap gawin sa bahay at kailangan mo ng isang thermometer upang matukoy ang totoong mga halaga ng temperatura ng daluyan. Sa mga datasheet ng ilang mga sangkap, ang tulad ng isang talahanayan ay ibinigay, halimbawa, para sa isang serye ng mga thermistor ng NTC mula sa Vishay.

Pagkatapos ay maaari mong ayusin ang pagsasalin sa pamamagitan ng mga sanga gamit ang function kung ... kung hindi man o switchcase. Gayunpaman, kung walang mga naturang talahanayan sa mga datasheet, kailangan mong kalkulahin ang pag-andar kung saan nagbabago ang pagtutol sa temperatura.
Upang mailalarawan ang pagbabagong ito, umiiral ang equation ng Steinhart-Hart.

kung saan ang A, B at C ay ang mga thermistor constants na tinutukoy sa pamamagitan ng pagsukat ng tatlong temperatura na may pagkakaiba-iba ng hindi bababa sa 10 degree Celsius. Kasabay nito, ipinapahiwatig ng iba't ibang mga mapagkukunan na para sa isang pangkaraniwang 10 kΩ NTC thermistor sila ay pantay-pantay sa:


B - beta koepisyent, kinakalkula batay sa pagsukat ng paglaban para sa dalawang magkakaibang temperatura. Ipinapahiwatig ito alinman sa datasheet (tulad ng nakalarawan sa ibaba), o kinakalkula nang nakapag-iisa.

Sa kasong ito, ang B ay ipinahiwatig sa anyo:

Nangangahulugan ito na ang koepisyent ay kinakalkula batay sa data na nakuha kapag sinusukat ang paglaban sa mga temperatura ng 25 at 100 degrees Celsius, at ito ang pinakakaraniwang pagpipilian. Pagkatapos ay kinakalkula ito ng formula:
B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)
Ang isang karaniwang diagram ng koneksyon ng isang thermistor sa isang microcontroller ay ipinapakita sa ibaba.

Narito ang R1 ay isang palaging risistor, ang thermistor ay konektado sa pinagmulan ng kuryente, at ang data ay nakuha mula sa kalagitnaan sa pagitan nila, ang diagram ay nagpapahiwatig na ang signal ay ibinibigay sa pin A0 - ito analog input na Arduino.

Upang makalkula ang paglaban ng isang thermistor, maaari mong gamitin ang sumusunod na pormula:
R ng thermistor = R1⋅ ((Vcc / Voutput) −1)
Upang isalin sa isang wika na naiintindihan para sa arduino, kailangan mong tandaan na ang arduino ay may isang 10-bit ADC, kaya ang maximum na digital na halaga ng input signal (boltahe 5V) ay magiging 1023. Pagkatapos, may kondisyon:
-
Dmax = 1023;
-
D ang aktwal na halaga ng signal.
Pagkatapos:
R ng thermistor = R1⋅ ((Dmax / D) −1)
Ngayon ginagamit namin ito upang makalkula ang paglaban at pagkatapos ay kalkulahin ang temperatura ng thermistor gamit ang beta equation sa isang programming language para sa Arduino. Ang sketch ay magiging ganito:

DS18B20
Kahit na mas sikat para sa pagsukat ng temperatura na may.Natagpuan ni Arduino ang isang digital sensor DS18B20. Nakikipag-usap ito sa microcontroller sa pamamagitan ng interface ng 1-wire, maaari mong ikonekta ang ilang mga sensor (hanggang sa 127) sa isang kawad, at upang ma-access ang mga ito kakailanganin mong malaman ang ID ng bawat isa sa mga sensor.
Tandaan: dapat mong malaman ang ID kahit na 1 sensor lang ang ginagamit mo.

Ang diagram ng koneksyon ng sensor ng ds18b20 kay Arduino ay ganito ang hitsura:


Mayroon ding mode ng kapangyarihan ng parasitiko - ang diagram ng koneksyon nito ay ganito (kailangan mo ng dalawang wires sa halip na tatlo):

Sa mode na ito, ang tamang operasyon ay hindi ginagarantiyahan kapag sinusukat ang temperatura sa itaas ng 100 degree Celsius.
Ang sensor ng temperatura ng DS18B20 digital temperatura ay binubuo ng isang buong hanay ng mga node, tulad ng anumang iba pang mga SIMS. Maaari mong panoorin ang panloob na aparato sa ibaba:

Upang magtrabaho kasama nito, kailangan mong i-download ang Onewire library para sa Arduino, at para sa sensor mismo ay inirerekomenda na gamitin ang library ng DallasTemperature.

Ang halimbawang ito ng code ay nagpapakita ng mga pangunahing kaalaman sa pagtatrabaho sa 1 sensor ng temperatura, ang resulta sa degree na Celsius ay output sa pamamagitan ng serial port pagkatapos ng bawat pagbasa.
DHT11 at DHT22 - halumigmig at sensor ng temperatura

Ang mga sensor na ito ay popular at madalas na ginagamit upang masukat ang halumigmig at temperatura ng paligid Sa talahanayan sa ibaba ay ipinahiwatig namin ang kanilang pangunahing pagkakaiba.

Ang diagram ng koneksyon ay medyo simple:
-
1 konklusyon - nutrisyon;
-
2 konklusyon - data;
-
3 konklusyon - hindi ginagamit;
-
4 konklusyon - ang pangkalahatang kawad.
Kung mayroon kang isang sensor sa anyo ng isang module, magkakaroon ito ng tatlong mga output, ngunit hindi mo kailangan ng isang risistor - ito ay naibenta na sa board.

Para sa trabaho, kailangan namin ang aklatan ng dht.h, wala ito sa karaniwang hanay, kaya kailangang ma-download at mai-install sa folder ng mga aklatan sa folder na may arduino IDE. Sinusuportahan nito ang lahat ng mga sensor sa pamilyang ito:
-
DHT 11;
-
DHT 21 (AM2301);
-
DHT 22 (AM2302, AM2321).
Halimbawa ng paggamit ng library:

Konklusyon
Ngayon, ang paglikha ng iyong sariling istasyon para sa pagsukat ng temperatura at halumigmig ay napaka-simpleng salamat sa platform ng Arduino. Ang gastos ng naturang mga proyekto ay 3-4 daang rubles. Para sa buhay ng baterya, at hindi output sa isang computer, maaaring magamit pagpapakita ng character (inilarawan namin ang mga ito sa isang kamakailang artikulo), pagkatapos ay maaari kang bumuo ng isang portable na aparato para magamit kapwa sa bahay at sa kotse. Isulat sa mga komento kung ano pa ang nais mong malaman tungkol sa simpleng mga gawang bahay sa arduino!
Tingnan din sa paksang ito:Mga tanyag na sensor para sa Arduino - koneksyon, diagram, sketch
Tingnan din sa electro-tl.tomathouse.com
: