Mundarija:

HYT939 va Arduino Nano yordamida namlikni o'lchash: 4 qadam
HYT939 va Arduino Nano yordamida namlikni o'lchash: 4 qadam

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

Video: HYT939 va Arduino Nano yordamida namlikni o'lchash: 4 qadam
Video: Arduino datchiklari va qurilmalari.|Ultrasonic,yomg'ir va tuproq namligi datchiklari 2024, Noyabr
Anonim
Image
Image

HYT939 - I2C aloqa protokolida ishlaydigan raqamli namlik sensori. Namlik - bu tibbiy tizimlar va laboratoriyalarga taalluqli asosiy parametr, shuning uchun biz bu maqsadlarga erishish uchun HYT939 ni arduino nano bilan bog'lashga harakat qildik. Ushbu qo'llanmada HYT939 sensor modulining arduino nano bilan o'zaro aloqasi ko'rsatilgan.

Namlik ko'rsatkichlarini o'qish uchun biz I2c adapterli arduino -dan foydalanganmiz, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.

Sensor ishlaydigan aloqa protokoli I2C. I2C o'zaro integratsiyalashgan sxemani anglatadi. Bu aloqa protokoli bo'lib, bunda aloqa SDA (ketma -ket ma'lumotlar) va SCL (ketma -ket soat) liniyalari orqali amalga oshiriladi. Bu bir vaqtning o'zida bir nechta qurilmalarni ulash imkonini beradi. Bu eng oddiy va samarali aloqa protokoli.

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. HYT939

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:

HYT939 I2C ustida 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: Namlikni o'lchash uchun Arduino kodi:

Namlikni o'lchash uchun Arduino kodi
Namlikni o'lchash uchun Arduino kodi
Namlikni o'lchash uchun Arduino kodi
Namlikni o'lchash uchun Arduino kodi

Endi Arduinoo kodidan boshlaylik.

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

Foydalanuvchining qulayligi uchun butun Arduino kodi quyida keltirilgan:

#qo'shing

// HYT939 I2C manzili - 0x28 (40)

#aniqlang Addr 0x28

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani boshlang

Serial.begin (9600);

kechikish (300);

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [4];

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Oddiy rejim buyrug'ini yuborish

Wire.write (0x80);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (300);

// 4 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 4);

// 4 bayt ma'lumotni o'qing

// namlik msb, namlik lsb, temp msb, temp lsb

agar (Wire.available () == 4)

{

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

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

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

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

// Ma'lumotni 14 bitga aylantiring

suzuvchi namlik = (((ma'lumotlar [0] & 0x3F) * 256.0) + ma'lumotlar [1]) * (100.0 / 16383.0);

float cTemp = (((ma'lumotlar [2] * 256.0) + (ma'lumotlar [3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40;

float fTemp = (cTemp * 1.8) + 32;

// 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 (300);

}

Tel kutubxonasida Wire.write () va Wire.read () buyruqlarni yozish va sensor chiqishini o'qish uchun ishlatiladi. Kodning keyingi qismida sensor chiqishining o'qilishi ko'rsatilgan.

// 4 bayt ma'lumotni o'qing // namlik msb, namlik lsb, temp msb, temp lsb if (Wire.available () == 4) {data [0] = Wire.read (); ma'lumotlar [1] = Wire.read (); ma'lumotlar [2] = Wire.read (); ma'lumotlar [3] = Wire.read ();

}

Sensor chiqishi yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

HYT939 samarali raqamli namlik sensori bo'lib, tibbiy tizimlarda, avtoklavlarda qo'llaniladi. Bosim shudring nuqtasini o'lchash va quritish tizimlari ham ushbu sensor modulidan foydalanishni topadi, namlik darajasi mos bo'lgan tajribalar o'tkazish uchun asosiy parametr bo'lgan turli laboratoriyalarda bu sensor namlikni o'lchash uchun joylashtirilishi mumkin.

Tavsiya: