Sisukord:

Temperatuuri ja niiskuse mõõtmine HDC1000 ja Arduino Nano abil: 4 sammu
Temperatuuri ja niiskuse mõõtmine HDC1000 ja Arduino Nano abil: 4 sammu

Video: Temperatuuri ja niiskuse mõõtmine HDC1000 ja Arduino Nano abil: 4 sammu

Video: Temperatuuri ja niiskuse mõõtmine HDC1000 ja Arduino Nano abil: 4 sammu
Video: Robootika töötuba: Makeblock mBot, Neuron ja Codey Rocky 2024, Juuli
Anonim
Image
Image

HDC1000 on digitaalne niiskusandur koos integreeritud temperatuurianduriga, mis tagab suurepärase mõõtmistäpsuse väga väikese võimsusega. Seade mõõdab niiskust uue mahtuvusliku anduri põhjal. Niiskus- ja temperatuuriandurid on tehases kalibreeritud. See on funktsionaalne temperatuurivahemikus -40 ° C kuni +125 ° C.

Selles õpetuses on illustreeritud HDC1000 andurimooduli liidestamist arduino nanoga. Temperatuuri ja niiskuse väärtuste lugemiseks oleme kasutanud arduino koos I2c adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.

Samm: vajalik riistvara:

Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara

Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:

1. HDC1000

2. Arduino Nano

3. I2C kaabel

4. I2C kilp Arduino Nano jaoks

2. samm: riistvara ühendamine:

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja arduino nano vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:

HDC1000 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.

Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik.

Kõik, mida vajate, on neli juhtmest! Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.

Neid seoseid on näidatud ülaltoodud piltidel.

3. samm: temperatuuri ja niiskuse mõõtmise kood:

Temperatuuri ja niiskuse mõõtmise kood
Temperatuuri ja niiskuse mõõtmise kood

Alustame nüüd arduino koodiga.

Andurimoodulit arduinoga kasutades kaasame Wire.h raamatukogu. Juhtmeraamatukogu sisaldab funktsioone, mis hõlbustavad i2c side anduri ja arduino plaadi vahel.

Kogu arduino kood on kasutaja mugavuse huvides toodud allpool:

#kaasake

// HDC1000 I2C aadress on 0x40 (64)

#define Addr 0x40

tühine seadistus ()

{

// Initsialiseeri I2C side kui MASTER

Wire.begin ();

// Initsialiseeri jadaühendus, määrake edastuskiirus = 9600

Seriaalne algus (9600);

// Alustab I2C suhtlust

Wire.beginTransmission (Addr);

// Valige konfiguratsiooniregister

Wire.write (0x02);

// Temperatuur, niiskus lubatud, resolutsioon = 14-bitine, kütteseade sisse lülitatud

Wire.write (0x30);

// Peata I2C edastamine

Wire.endTransmission ();

viivitus (300);

}

tühine tsükkel ()

{

allkirjastamata int andmed [2];

// Alustab I2C suhtlust

Wire.beginTransmission (Addr);

// Saada temp mõõtmise käsk

Wire.write (0x00);

// Peata I2C edastamine

Wire.endTransmission ();

viivitus (500);

// Taotle 2 baiti andmeid

Wire.requestFrom (Addr, 2);

// Lugege 2 baiti andmeid

// temp msb, temp lsb

kui (Wire.available () == 2)

{

andmed [0] = Wire.read ();

andmed [1] = Wire.read ();

}

// Teisendage andmed

int temp = (andmed [0] * 256) + andmed [1];

ujuk cTemp = (temp / 65536,0) * 165,0 - 40;

ujuk fTemp = cTemp * 1,8 + 32;

// Alustab I2C suhtlust

Wire.beginTransmission (Addr);

// Niiskuse mõõtmise käsk

Wire.write (0x01);

// Peata I2C edastamine

Wire.endTransmission ();

viivitus (500);

// Taotle 2 baiti andmeid

Wire.requestFrom (Addr, 2);

// Lugege 2 baiti andmeid

// niiskus msb, niiskus lsb

kui (Wire.available () == 2)

{

andmed [0] = Wire.read ();

andmed [1] = Wire.read ();

}

// Teisendage andmed

ujuki niiskus = (andmed [0] * 256) + andmed [1];

niiskus = (niiskus / 65536,0) * 100,0;

// Andmete väljastamine jadamonitorile

Serial.print ("Suhteline õhuniiskus:");

Serial.print (niiskus);

Serial.println (" %RH");

Serial.print ("Temperatuur Celsiuse järgi:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Temperatuur Fahrenheiti järgi:");

Serial.print (fTemp);

Serial.println ("F");

viivitus (500);

}

Traaditeegis kasutatakse käskude kirjutamiseks ja anduri väljundi lugemiseks Wire.write () ja Wire.read ().

Serial.print () ja Serial.println () kasutatakse anduri väljundi kuvamiseks Arduino IDE jadamonitoril.

Anduri väljund on näidatud ülaltoodud pildil.

4. samm: rakendused:

Rakendused
Rakendused

HDC1000 saab kasutada kütte-, ventilatsiooni- ja kliimaseadmete (HVAC), nutikate termostaatide ja ruumimonitoride jaoks. See andur leiab rakendust ka printerites, pihuarvutites, meditsiiniseadmetes, kaubaveos ja autotööstuse tuuleklaasi udus.

Soovitan: