Both sides previous revisionPrevious revisionNext revision | Previous revision |
et:examples:sensor:humidity [2015/03/03 10:02] – raivo.sell | et:examples:sensor:humidity [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
---|
~~PB~~ | <pagebreak> |
====== Kombineeritud niiskus-temperatuuriandur ====== | ====== Kombineeritud niiskus-temperatuuriandur ====== |
//Vajalikud teadmised: | //Vajalikud teadmised: |
===== Teooria ===== | ===== Teooria ===== |
[{{ :et:examples:sensor:am2302_pinout.jpg?180|DHT11}}] | [{{ :et:examples:sensor:am2302_pinout.jpg?180|DHT11}}] |
Temperatuuri ja niiskuse mõõtmiseks on olemas väga lai valik andureid, millest osa on ka kombineeritud andurid, mis väljastavad nii temperatuuri, kui ka niiskuse. Hinna poolest väga soodsad andurid on DHTxx seeria andurid, mille täpsus pole küll väga suur, kuid täiesti piisav tavakasutajale. Temperatuuriandureid toodetakse erineval tehnoloogial, millest termistoridest oli juttu ka eelmises peatükis. Lisaks termistor tüüpi temperatuurianduritele on olemas veel termopaarid, kiirguse kaudu temperatuuri mõõtvad andurid, metalltakistuse kaudu temperatuuri mõõtvad andurid, jne. Sõltumata anduri füüsikaliset mõõteprintsiibist on mitmetele anduritele ühte korpusesse koostatud ka juhtelektroonika, mis väljastab anduri lugemi digitaalse signaalina. Nagu eelpool mainitud on olemas kombineeritud andurid, mis lisaks temperatuurile mõõdavad veel mingit muud keskkonna parameetrit, millest kõige tüüpilisem on suhtelise niiskuse mõõtmine. | Temperatuuri ja niiskuse mõõtmiseks on olemas väga lai valik andureid, millest osa on ka kombineeritud andurid, mis väljastavad nii temperatuuri, kui ka niiskuse. Hinna poolest väga soodsad andurid on DHTxx seeria andurid, mille täpsus pole küll väga suur, kuid täiesti piisav tavakasutajale. Temperatuuriandureid toodetakse erineval tehnoloogial, millest termistoridest oli juttu ka eelmises peatükis. Lisaks termistor tüüpi temperatuurianduritele on olemas veel termopaarid, kiirguse kaudu temperatuuri mõõtvad andurid, metalltakistuse kaudu temperatuuri mõõtvad andurid, jne. Sõltumata anduri füüsikalisest mõõteprintsiibist on mitmetele anduritele ühte korpusesse koostatud ka juhtelektroonika, mis väljastab anduri lugemi digitaalse signaalina. Nagu eelpool mainitud on olemas kombineeritud andurid, mis lisaks temperatuurile mõõdavad veel mingit muud keskkonna parameetrit, millest kõige tüüpilisem on suhtelise niiskuse mõõtmine. |
| |
Niiskus on sisuliselt vee osakaal õhus. Niiskuse erinev väärtus mõjutab seadmete tööd, korrosiooni ja elusorganismide talitlusvõimet ning elukeskkonda olulisel määral ja seetõttu on robottehnilistes seadmete oluline mõõta suhtelise niiskuse osakaalu õhus, et vastavalt sellele mingeid protsesse juhtida. Levinud niiskusanduri kasutusvaldkond on targa maja või targa kasvuhoone rakendused, kus vastavalt õhuniiskuse tasemele lülitatakse sisse konditsioneere, ventilaatoreid või niisutussüsteeme. Niiskusandurid toimivad jämedalt võttes kahel printsiibil, kus mõõtesuuruse elektriline teisendus toimub vastavalt mahtuvuse või takistuse kaudu. Mõlemal juhul teisendatakse õhu suhteline niiskus elektriliseks signaaliks, mis on sõltuvalt andurist, kas lihtne analoogsignaal (mingi pingevahemik) või mõne andmevahtusprotokolli digitaalsignaal. Levinud digitaalsignaali tüübid niiskuse ja temperatuuri anduritel on nn 1-juhtme (inglise keeles //1-wire//) signaal, kus andmevahetus toimub 1 füüsilise viigu kaudu. 1-juhtme andmevahetusprotokolli töötas välja Dallas Semiconductor lihtsamate seadmete ja anduritega suhtlemiseks. Lisaks mõlemasuunalisele andmevahetusele on võimalik ka seadme toide sama juhtme külge ühendada. Liides võimaldab ühele siinile ühendada üle 75 seadme, moodustades mikrokohtvõrke (inglise keeles //MicroLan//). MicroLan võrgus on üks juhtseade, mis juhib võrgus liiklust ja tagab, et siinil olevad seadmed ei üritaks korraga rääkida. | Niiskus on sisuliselt vee osakaal õhus. Niiskuse erinev väärtus mõjutab seadmete tööd, korrosiooni ja elusorganismide talitlusvõimet ning elukeskkonda olulisel määral ja seetõttu on robottehnilistes seadmete oluline mõõta suhtelise niiskuse osakaalu õhus, et vastavalt sellele mingeid protsesse juhtida. Levinud niiskusanduri kasutusvaldkond on targa maja või targa kasvuhoone rakendused, kus vastavalt õhuniiskuse tasemele lülitatakse sisse konditsioneere, ventilaatoreid või niisutussüsteeme. Niiskusandurid toimivad jämedalt võttes kahel printsiibil, kus mõõtesuuruse elektriline teisendus toimub vastavalt mahtuvuse või takistuse kaudu. Mõlemal juhul teisendatakse õhu suhteline niiskus elektriliseks signaaliks, mis on sõltuvalt andurist, kas lihtne analoogsignaal (mingi pingevahemik) või mõne andmevahetusprotokolli digitaalsignaal. Levinud digitaalsignaali tüübid niiskuse ja temperatuuri anduritel on nn 1-juhtme (inglise keeles //1-wire//) signaal, kus andmevahetus toimub 1 füüsilise viigu kaudu. 1-juhtme andmevahetusprotokolli töötas välja Dallas Semiconductor lihtsamate seadmete ja anduritega suhtlemiseks. Lisaks mõlemasuunalisele andmevahetusele on võimalik ka seadme toide sama juhtme külge ühendada. Liides võimaldab ühele siinile ühendada üle 75 seadme, moodustades mikrokohtvõrke (inglise keeles //MicroLan//). MicroLan võrgus on üks juhtseade, mis juhib võrgus liiklust ja tagab, et siinil olevad seadmed ei üritaks korraga rääkida. |
| |
[{{ :et:examples:sensor:1-wire_yhendus.png?380|1-juhtme tüüpi andurite võrguühendused}}] | [{{ :et:examples:sensor:1-wire_yhendus.png?380|1-juhtme tüüpi andurite võrguühendused}}] |
1-juhtme ühendus on peamiselt kasutusel erinevate andurite ja mäludega suhtlemiseks. Saavutatav maksimaalne kiirus jääb 16,3 kbit/s piirimaile. Juhtseade alustab suhtlust taaskäivituse (inglise keeles //reset//) pulsiga, mis tõmbab siini maha vähemalt 480 µs. Peale seda järgneb 8 bitine korraldus, mida kuulavad kõik seadmed. Seade, millele see adresseeritud on, vastab. Andmeid saadetakse ja võetakse vastu 8 bitilistes gruppides, kus igal seadmel on unikaalne 64 bitine seerianumber. | 1-juhtme ühendus on peamiselt kasutusel erinevate andurite ja mäludega suhtlemiseks. Saavutatav maksimaalne kiirus jääb 16,3 kbit/s piirimaile. Juhtseade alustab suhtlust taaskäivituse (inglise keeles //reset//) pulsiga, mis tõmbab siini maha vähemalt 480 µs. Peale seda järgneb 8 bitine korraldus, mida kuulavad kõik seadmed. Seade, millele see adresseeritud on, vastab. Andmeid saadetakse ja võetakse vastu 8 bitilistes gruppides, kus igal seadmel on unikaalne 64 bitine seerianumber. |
| |
Bittide edastamine toimub pulsi pikkuse järgi. "1" saatmiseks tekitatakse pulss pikkusega 1 - 15 µs ja "0" saatmiseks 60 µs. | Bittide edastamine toimub pulsi pikkuse järgi. "1" saatmiseks tekitatakse pulss pikkusega 1 - 15 µs ja "0" saatmiseks 60 µs. |
| |
DS18S20 temperatuurianduri saab ühendada tavalisse digitaalviiku, kus ühele siinile võib ühendada mitu andurit. Samuti tuleb valida anduri toiteviis, mis võib olla eraldi toiteviik või kasutatakse sama viiku, kuhu on ühendatud andmesidekanal. Andmesidekanaliga kokkuühendatud ühendusviisi kutsutakse parasiittoiteks ja sellisel juhul on kasutuses ainult kaks juhet. | DS18S20 temperatuurianduri saab ühendada tavalisse digitaalviiku, kus ühele siinile võib ühendada mitu andurit. Samuti tuleb valida anduri toiteviis, mis võib olla eraldi toiteviik või kasutatakse sama viiku, kuhu on ühendatud andmesidekanal. Andmesidekanaliga kokkuühendatud ühendusviisi kutsutakse parasiittoiteks ja sellisel juhul on kasutuses ainult kaks juhet. |
| |
Robootika Kodulaboris on standardse 1-juhtme andmeside liidese kasutamiseks loodud eraldi teek //onewire.h//, mis sisaldab 1-juhtme siini juhtkäskusid. Andurispetsiifiline teek on //ds18x20.h//. DHTxx seeria andurite funktsionaalsus on integreeritud ülisesse andurite teeki //sensors.h//. | Robootika Kodulaboris on standardse 1-juhtme andmeside liidese kasutamiseks loodud eraldi teek //onewire.h//, mis sisaldab 1-juhtme siini juhtkäskusid. Andurispetsiifiline teek on //ds18x20.h//. DHTxx seeria andurite funktsionaalsus on integreeritud üldisesse andurite teeki //sensors.h//. |
| |
Lisaks standard 1-juhtme protokollile on sarnastel omadustel põhinevad, kuid veidi erinevat toimeloogikat kasutatavad 1-juhtme siini andmevahetusprotokollid. Ühte sellist rakendatakse ka odavate kombineeritud niiskuse temperatuuriandurite DHTxx seeria juures. DHTxx andmesidepakett jaguneb järgmiselt: | Lisaks standard 1-juhtme protokollile on sarnastel omadustel põhinevad, kuid veidi erinevat toimeloogikat kasutatavad 1-juhtme siini andmevahetusprotokollid. Ühte sellist rakendatakse ka odavate kombineeritud niiskuse temperatuuriandurite DHTxx seeria juures. DHTxx andmesidepakett jaguneb järgmiselt: |
* Startbitt | * Start bitt |
* niiskuse kõrgem bait | * niiskuse kõrgem bait |
* niiskuse madalam bait | * niiskuse madalam bait |
lcd_gfx_goto_char_xy(3, 0); | lcd_gfx_goto_char_xy(3, 0); |
lcd_gfx_write_string("DHTxx andur"); | lcd_gfx_write_string("DHTxx andur"); |
| |
// DHTxx anduri näidu lugemine ja kuvamine LCD-l | // DHTxx anduri näidu lugemine ja kuvamine LCD-l |
// DHT_update esimene parameeter on anduri tüüp (DHT11 või DHT22) | // DHT_update esimene parameeter on anduri tüüp (DHT11 või DHT22) |
lcd_gfx_write_string(text); | lcd_gfx_write_string(text); |
| |
// Temperatuuri graafiku joonistamine | // Temperatuuri graafiku joonistamine (toimib vaid kodulabor III generatsioonil) |
lcd_gfx_drawPixel(i++,100-(dht_temp/10)); | lcd_gfx_drawPixel(i++,100-(dht_temp/10)); |
sw_delay_ms(500); | sw_delay_ms(500); |