Turinys:

Temperatūros ir drėgmės matavimas naudojant HDC1000 ir Arduino Nano: 4 žingsniai
Temperatūros ir drėgmės matavimas naudojant HDC1000 ir Arduino Nano: 4 žingsniai

Video: Temperatūros ir drėgmės matavimas naudojant HDC1000 ir Arduino Nano: 4 žingsniai

Video: Temperatūros ir drėgmės matavimas naudojant HDC1000 ir Arduino Nano: 4 žingsniai
Video: 3 в 1 ZigBee датчик температуры, влажности и освещения с LCD дисплеем 2024, Lapkritis
Anonim
Image
Image

„HDC1000“yra skaitmeninis drėgmės jutiklis su integruotu temperatūros jutikliu, kuris užtikrina puikų matavimo tikslumą esant labai mažai galiai. Prietaisas matuoja drėgmę remdamasis nauju talpiniu jutikliu. Drėgmės ir temperatūros jutikliai yra sukalibruoti gamykloje. Jis veikia nuo -40 ° C iki +125 ° C temperatūros diapazone.

Šiame vadove buvo parodyta HDC1000 jutiklio modulio sąsaja su arduino nano. Norėdami nuskaityti temperatūros ir drėgmės vertes, mes naudojome arduino su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti prie jutiklio modulio.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. HDC1000

2. „Arduino Nano“

3. I2C kabelis

4. „I2C Shield“, skirtas „Arduino Nano“

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir „arduino nano“. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

HDC1000 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.

Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 žingsnis: Temperatūros ir drėgmės matavimo kodas:

Temperatūros ir drėgmės matavimo kodas
Temperatūros ir drėgmės matavimo kodas

Pradėkime nuo arduino kodo dabar.

Naudodami jutiklio modulį su arduino, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir arduino plokštės.

Visas arduino kodas vartotojo patogumui pateiktas žemiau:

#įtraukti

// HDC1000 I2C adresas yra 0x40 (64)

#define Addr 0x40

negaliojanti sąranka ()

{

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin ();

// Inicijuoti nuoseklųjį ryšį, nustatyti duomenų perdavimo spartą = 9600

Serial.begin (9600);

// Pradeda I2C ryšį

Wire.beginTransmission (Addr);

// Pasirinkite konfigūracijos registrą

Wire.write (0x02);

// Temperatūra, įjungta drėgmė, rezoliucija = 14 bitų, šildytuvas įjungtas

Wire.write (0x30);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (300);

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [2];

// Pradeda I2C ryšį

Wire.beginTransmission (Addr);

// Siųsti temperatūros matavimo komandą

Wire.write (0x00);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (500);

// Prašyti 2 baitų duomenų

Wire.requestFrom (Addr, 2);

// Skaityti 2 baitus duomenų

// temp msb, temp lsb

jei (Wire.available () == 2)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

}

// Konvertuoti duomenis

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

plūdė cTemp = (temp / 65536.0) * 165.0 - 40;

plūdė fTemp = cTemp * 1,8 + 32;

// Pradeda I2C ryšį

Wire.beginTransmission (Addr);

// Siųsti drėgmės matavimo komandą

Wire.write (0x01);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (500);

// Prašyti 2 baitų duomenų

Wire.requestFrom (Addr, 2);

// Skaityti 2 baitus duomenų

// drėgmė msb, drėgmė lsb

jei (Wire.available () == 2)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

}

// Konvertuoti duomenis

plūdės drėgmė = (duomenys [0] * 256) + duomenys [1];

drėgmė = (drėgmė / 65536,0) * 100,0;

// Duomenų išvedimas į serijinį monitorių

Serial.print („Santykinė drėgmė:“);

Serijinis atspaudas (drėgmė);

Serial.println (" %RH");

Serial.print ("Temperatūra Celsijaus laipsniais:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Temperatūra Farenheitu:");

Serial.print (fTemp);

Serial.println ("F");

vėlavimas (500);

}

Laidų bibliotekoje Wire.write () ir Wire.read () naudojami komandoms rašyti ir jutiklio išėjimui skaityti.

Serial.print () ir Serial.println () naudojami jutiklio išėjimui rodyti „Arduino IDE“serijos monitoriuje.

Jutiklio išvestis parodyta aukščiau esančiame paveikslėlyje.

4 žingsnis: programos:

Programos
Programos

HDC1000 gali būti naudojamas šildymui, vėdinimui ir oro kondicionavimui (ŠVOK), išmaniesiems termostatams ir kambario monitoriams. Šis jutiklis taip pat naudojamas spausdintuvuose, rankiniuose matuokliuose, medicinos prietaisuose, krovinių gabenime ir automobilių priekinio stiklo rūke.

Rekomenduojamas: