Mündəricat:

HDC1000 və Arduino Nano istifadə edərək temperatur və rütubətin ölçülməsi: 4 addım
HDC1000 və Arduino Nano istifadə edərək temperatur və rütubətin ölçülməsi: 4 addım

Video: HDC1000 və Arduino Nano istifadə edərək temperatur və rütubətin ölçülməsi: 4 addım

Video: HDC1000 və Arduino Nano istifadə edərək temperatur və rütubətin ölçülməsi: 4 addım
Video: HUARONG HDC1000 Двухкомпонентное литье стекла заднего фонаря 2024, Iyun
Anonim
Image
Image

HDC1000, çox aşağı gücdə əla ölçmə dəqiqliyi təmin edən inteqrasiya edilmiş temperatur sensoru olan rəqəmsal rütubət sensoru. Cihaz rütubəti yeni bir kapasitiv sensora əsaslanaraq ölçür. Rütubət və temperatur sensörleri zavodda kalibr edilmişdir. Tam -40 ° C ilə +125 ° C aralığında işləkdir.

Bu təlimatda HDC1000 sensor modulunun arduino nano ilə qarşılıqlı əlaqəsi təsvir edilmişdir. İstilik və rütubət dəyərlərini oxumaq üçün I2c adapterli arduino istifadə etdik. Bu I2C adapteri sensor moduluna qoşulmağı asanlaşdırır və daha etibarlıdır.

Addım 1: Lazım olan avadanlıq:

Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur

Məqsədimizə çatmaq üçün ehtiyacımız olan materiallar aşağıdakı aparat komponentlərindən ibarətdir:

1. HDC1000

2. Arduino Nano

3. I2C Kabeli

4. Arduino Nano üçün I2C Shield

Addım 2: Hardware Bağlantısı:

Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama

Donanım bağlama bölməsi əsasən sensor və arduino nano arasında lazım olan naqillərin əlaqələrini izah edir. İstənilən çıxış üçün hər hansı bir sistem üzərində işləyərkən düzgün əlaqələrin təmin edilməsi əsas zərurətdir. Beləliklə, zəruri əlaqələr aşağıdakılardır:

HDC1000 I2C üzərində işləyəcək. Sensorun hər bir interfeysini necə bağlayacağınızı göstərən nümunə naqillər diaqramı.

Qutudan kənarda, lövhə I2C interfeysi üçün konfiqurasiya olunmuşdur, buna görə də başqa cür agnostiksinizsə bu əlaqəni istifadə etməyi məsləhət görürük.

Lazım olan tək şey dörd teldir! Vcc, Gnd, SCL və SDA pinləri üçün yalnız dörd əlaqə lazımdır və bunlar I2C kabelinin köməyi ilə bağlanır.

Bu əlaqələr yuxarıdakı şəkillərdə göstərilmişdir.

Addım 3: Temperatur və Rütubət Ölçmə Kodu:

İstilik və Nəmlik Ölçmə Kodları
İstilik və Nəmlik Ölçmə Kodları

İndi arduino kodundan başlayaq.

Sensor modulunu arduino ilə işləyərkən Wire.h kitabxanasını daxil edirik. "Tel" kitabxanası, sensor və arduino lövhəsi arasındakı i2c əlaqəsini asanlaşdıran funksiyaları ehtiva edir.

İstifadəçinin rahatlığı üçün bütün arduino kodu aşağıda verilmişdir:

#daxil edin

// HDC1000 I2C ünvanı 0x40 (64)

#təyin et Addr 0x40

boş quraşdırma ()

{

// I2C ünsiyyətini MASTER olaraq başladın

Wire.begin ();

// Serial rabitəni işə salın, baud dərəcəsini = 9600 olaraq təyin edin

Serial.begin (9600);

// I2C ünsiyyətinə başlayır

Wire.beginTransmission (Addr);

// Konfiqurasiya qeydini seçin

Wire.write (0x02);

// Temperatur, rütubət aktivdir, qətnamə = 14 bit, qızdırıcı aktivdir

Wire.write (0x30);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

gecikmə (300);

}

boşluq döngəsi ()

{

imzasız int məlumatları [2];

// I2C ünsiyyətinə başlayır

Wire.beginTransmission (Addr);

// İstilik ölçmə əmrini göndərin

Wire.write (0x00);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

gecikmə (500);

// 2 bayt məlumat tələb edin

Wire.requestFrom (Addr, 2);

// 2 bayt məlumat oxuyun

// temp msb, temp lsb

əgər (Tel.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Məlumatları çevirin

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

float cTemp = (temp / 65536.0) * 165.0 - 40;

float fTemp = cTemp * 1.8 + 32;

// I2C ünsiyyətinə başlayır

Wire.beginTransmission (Addr);

// Nəm ölçmə əmrini göndərin

Wire.write (0x01);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

gecikmə (500);

// 2 bayt məlumat tələb edin

Wire.requestFrom (Addr, 2);

// 2 bayt məlumat oxuyun

// rütubət msb, rütubət lsb

əgər (Tel.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Məlumatları çevirin

float rütubət = (data [0] * 256) + data [1];

rütubət = (rütubət / 65536.0) * 100.0;

// Məlumatların serial monitora çıxarılması

Serial.print ("Nisbi Nəmlik:");

Serial çap (rütubət);

Serial.println (" %RH");

Serial.print ("Selsi temperaturu:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Fahrenheitdəki temperatur:");

Serial.print (fTemp);

Serial.println ("F");

gecikmə (500);

}

Tel kitabxanasında Wire.write () və Wire.read () əmrləri yazmaq və sensor çıxışını oxumaq üçün istifadə olunur.

Sensorun çıxışını Arduino IDE -nin serial monitorunda göstərmək üçün Serial.print () və Serial.println () istifadə olunur.

Sensorun çıxışı yuxarıdakı şəkildə göstərilmişdir.

Addım 4: Tətbiqlər:

Tətbiqlər
Tətbiqlər

HDC1000 istilik, havalandırma və kondisioner (HVAC), Ağıllı Termostatlar və Otaq Monitorlarında istifadə edilə bilər. Bu sensor həm də Yazıçılar, Əl Ölçənlər, Tibbi Cihazlar, Yük Göndərmə və Avtomobilin Ön Camı Dumanında tətbiqini tapır.

Tövsiyə: