DHT22 Lämpötila- ja kosteusanturi
DHT22-sensorin arvon lukeminen
Sensorin lukeminen suoritetaan erityistä protokollaa käyttäen, ja tästä syystä helpointa on käyttää valmista kirjastoa. Tämän osion harjoituksiin kirjasto on lisätty valmiiksi.
Koodissa sensorin käyttöä varten tarvittava kirjasto on lisättävä #include komennolla. Lisää kirjastojen käytöstä voi lukea
kurssin osiosta Kirjastojen käyttäminen
#include <DHT22.h> // Lisätään sensorikirjastoSensorille tarvitsee myös luoda oma muuttuja jonka kautta sitä voi käyttää.
DHT22 sensori(8); // Luodaan sensorille muuttujaSensorin lukeminen onnistuu sensorimuuttujan tarjoamien funktioiden avulla.
float lampotila = sensori.getTemperature(); // Luetaan lämpötila sensoristaSerial.println(lampotila); // Tulostetaan luettu lämpötilaDHT22 tarjoaa käyttöön seuraavanlaisia funktioita:
-
getRawData()Antaa sensorilta raakadataa anysoiotavaksi 64-bittisessä muodossa -
getRawStrData()Antaa raakadataaString-tyyppisessä muodossa. -
getHumidity()Antaa ilmankosteudenfloat-tyyppisessä muodossa. -
getTemperature(bool M = true)Antaa lämpötilanfloat-tyyppisessä muodossa. Tämä funktio ottaa parametrikseen boolean arvonM. Mikäli M onture, palauttaa kirjasto lukeman celsiusasteina. Jos M onfalseannetaan lämpötila Farenheitteina. Jos M:n arvoa ei ole annettu annetaan lämpötila celsiusasteina -
convertCtoF(float)Apufunktio, jolla voidaan muuttaa Celsiusasteinen lämpötila Farenheit-lämpötilaksi -
convertFtoC(float)Apufunktio, jolla voidaan muuttaa Farenheit-lämpötila Celsiusasteiksi -
getHeatIndex(float t, float h, bool isCelsius = true)Apufunktio, joka laskee lämpötilaindeksin perustuen lämpötilaan ja ilmankosteuteen. Parametreja ovatt = lämpötila,h = ilmankosteusjaisCelsius = lämpötilan tyyppi -
getLastError()Funktio, jolla saadaan tietoa sensorin toiminnasta, mikäli sensorikirjasto on havainnut jotain ongelmia ym. -
debug()Funktio, jolla kirjaston kehittäjä saa lisätietoja kirjaston toiminnasta
Kirjasto siis tarjoaa paljon erilaisia funktioita. Näistä oleellisimmat ovat getHumidity() ja getTemperature().
Harjoitus 1
Tässä harjoituksessa luetaan DHT22-sensorin lämpötila-arvo.
Tehtävä 1.1
Muuta koodia niin, että luetaankin ilmakosteus.