Mundarija:

HDC1000 va Arduino Nano yordamida harorat va namlikni o'lchash: 4 qadam
HDC1000 va Arduino Nano yordamida harorat va namlikni o'lchash: 4 qadam

Video: HDC1000 va Arduino Nano yordamida harorat va namlikni o'lchash: 4 qadam

Video: HDC1000 va Arduino Nano yordamida harorat va namlikni o'lchash: 4 qadam
Video: 6-sinf texnologiya DHT-11 Harorat va namlikni o‘lchovchi datchik 2024, Iyul
Anonim
Image
Image

HDC1000 - bu past haroratda o'lchashning aniqligini ta'minlaydigan o'rnatilgan harorat sensori bo'lgan namlik sensori. Qurilma namlikni yangi sig'im sensori asosida o'lchaydi. Namlik va harorat sensori zavod sozlamalarida. To'liq -40 ° C dan +125 ° C gacha bo'lgan harorat oralig'ida ishlaydi.

Ushbu qo'llanmada HDC1000 sensor modulining arduino nano bilan o'zaro aloqasi tasvirlangan. Harorat va namlik ko'rsatkichlarini o'qish uchun biz I2c adapterli arduino -dan foydalanganmiz, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. HDC1000

2. Arduino Nano

3. I2C kabeli

4. Arduino Nano uchun I2C qalqoni

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi asosan sensor va arduino nano o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

HDC1000 I2C orqali ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz.

Sizga faqat to'rtta sim kerak! Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Harorat va namlikni o'lchash kodi:

Harorat va namlikni o'lchash kodi
Harorat va namlikni o'lchash kodi

Endi arduino kodidan boshlaylik.

Sensor modulini arduino bilan ishlatganda, biz Wire.h kutubxonasini o'z ichiga olamiz. "Wire" kutubxonasida sensorlar va arduino kartalari o'rtasida i2c aloqasini osonlashtiradigan funktsiyalar mavjud.

Foydalanuvchining qulayligi uchun butun arduino kodi quyida keltirilgan:

#qo'shing

// HDC1000 I2C manzili - 0x40 (64)

#aniqlang Addr 0x40

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Seriyali aloqani ishga tushiring, bod tezligi = 9600 ni o'rnating

Serial.begin (9600);

// I2C aloqasini boshlaydi

Wire.beginTransmission (Addr);

// Konfiguratsiya registrini tanlang

Wire.write (0x02);

// Harorat, namlik yoqilgan, piksellar sonini = 14 bit, isitgich yoqilgan

Wire.write (0x30);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (300);

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [2];

// I2C aloqasini boshlaydi

Wire.beginTransmission (Addr);

// Haroratni o'lchash buyrug'ini yuboring

Wire.write (0x00);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (500);

// 2 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 2);

// 2 bayt ma'lumotni o'qing

// temp msb, temp lsb

agar (Wire.available () == 2)

{

ma'lumotlar [0] = Wire.read ();

ma'lumotlar [1] = Wire.read ();

}

// Ma'lumotni aylantirish

int temp = (ma'lumotlar [0] * 256) + ma'lumotlar [1];

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

float fTemp = cTemp * 1.8 + 32;

// I2C aloqasini boshlaydi

Wire.beginTransmission (Addr);

// Namlikni o'lchash buyrug'ini yuboring

Wire.write (0x01);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (500);

// 2 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 2);

// 2 bayt ma'lumotni o'qing

// namlik msb, namlik lsb

agar (Wire.available () == 2)

{

ma'lumotlar [0] = Wire.read ();

ma'lumotlar [1] = Wire.read ();

}

// Ma'lumotni aylantirish

suzuvchi namlik = (ma'lumotlar [0] * 256) + ma'lumotlar [1];

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

// Ma'lumotlarni ketma -ket monitorga chiqarish

Serial.print ("Nisbiy namlik:");

Ketma -ket bosma (namlik);

Serial.println (" %RH");

Serial.print ("Selsiy bo'yicha harorat:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Farengeytdagi harorat:");

Serial.print (fTemp);

Serial.println ("F");

kechikish (500);

}

Tel kutubxonasida Wire.write () va Wire.read () buyruqlarni yozish va sensor chiqishini o'qish uchun ishlatiladi.

Arduino IDE seriyali monitorida sensorning chiqishini ko'rsatish uchun Serial.print () va Serial.println () ishlatiladi.

Sensorning chiqishi yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

HDC1000 isitish, shamollatish va konditsioner (HVAC), aqlli termostatlar va xona monitorlarida ishlatilishi mumkin. Ushbu sensor, shuningdek, printerlar, qo'l o'lchagichlar, tibbiy asboblar, yuklarni tashish, shuningdek, avtomobil oynalarini tozalashda o'z qo'llanilishini topadi.

Tavsiya: