Mundarija:

HYT939 va Raspberry Pi yordamida namlikni o'lchash: 4 qadam
HYT939 va Raspberry Pi yordamida namlikni o'lchash: 4 qadam

Video: HYT939 va Raspberry Pi yordamida namlikni o'lchash: 4 qadam

Video: HYT939 va Raspberry Pi yordamida namlikni o'lchash: 4 qadam
Video: Как использовать LM35 для измерения температуры в градусах Цельсия, Фаренгейта и Кельвина 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 malina pi bilan bog'lashga harakat qildik. Ushbu qo'llanmada HYT939 sensor modulining malina pi bilan o'zaro aloqasi ko'rsatilgan va uning Java tili yordamida dasturlashi ham tasvirlangan.

Namlik ko'rsatkichlarini o'qish uchun biz I2c adapterli malina pi 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

Vazifani bajarish uchun zarur bo'lgan uskunalar quyidagilar:

1. HYT939

2. Raspberry Pi

3. I2C kabeli

4. Raspberry Pi uchun I2C qalqoni

5. Ethernet kabeli

-

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi, asosan, sensori va malina pi 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 Java kodi:

Namlikni o'lchash uchun Java kodi
Namlikni o'lchash uchun Java kodi
Namlikni o'lchash uchun Java kodi
Namlikni o'lchash uchun Java kodi

Malinali pi -ni ishlatishning afzalligi shundaki, u sizga sensorni interfeysga ulash uchun taxtani dasturlashni xohlagan dasturlash tilining moslashuvchanligini ta'minlaydi. Ushbu kengashning afzalliklaridan foydalanib, biz bu erda Java dasturlashini namoyish qilamiz. HYT939 uchun java kodini bizning github hamjamiyatidan yuklab olish mumkin, bu Dcube do'koni.

Foydalanuvchilarning qulayligi uchun biz bu erda ham kodni tushuntiramiz:

Kodlashning birinchi bosqichi sifatida siz java holatida pi4j kutubxonasini yuklab olishingiz kerak, chunki bu kutubxona kodda ishlatiladigan funktsiyalarni qo'llab -quvvatlaydi. Shunday qilib, kutubxonani yuklab olish uchun quyidagi havolaga kirishingiz mumkin:

pi4j.com/install.html

Bu sensor uchun ishlaydigan java kodini bu erdan ham ko'chirishingiz mumkin:

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException ni import qilish;

HYT939 umumiy sinf

{

public static void main (String args ) istisno qiladi

{

// I2CBus yaratish

I2CBus avtobus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C qurilmasini oling, HYT939 I2C manzili - 0x28 (40)

I2CDevice qurilmasi = bus.getDevice (0x28);

// Oddiy rejim buyrug'ini yuborish

device.write ((bayt) 0x80);

Thread.sleep (500);

// 4 bayt ma'lumotni o'qing

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

bayt ma'lumotlar = yangi bayt [4];

device.read (ma'lumotlar, 0, 4);

// Ma'lumotni 14 bitga aylantiring

ikki marta namlik = (((ma'lumotlar [0] & 0x3F) * 256) + (ma'lumotlar [1] & 0xFF)) * (100.0 / 16383.0);

er -xotin cTemp = ((((ma'lumotlar [2] & 0xFF) * 256) + (ma'lumotlar [3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40;

er -xotin fTemp = (cTemp * 1.8) + 32;

// Ma'lumotni ekranga chiqarish

System.out.printf ("Nisbiy namlik: %.2f %% RH %n", namlik);

System.out.printf ("Selsiydagi harorat: %.2f C %n", cTemp);

System.out.printf ("Farengeytdagi harorat: %.2f F %n", fTemp);

}

}

Sensor va karta o'rtasidagi i2c aloqasini osonlashtiradigan kutubxona pi4j, uning turli paketlari I2CBus, I2CDevice va I2CFactory ulanishni o'rnatishga yordam beradi.

com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; com.pi4j.io.i2c. I2CFactory -ni import qilish; java.io. IOException ni import qilish;

yozish () va o'qish () funktsiyalari sensorga ma'lum rejimda ishlashini ta'minlash uchun maxsus buyruqlarni yozish va sensorning chiqishini o'qish uchun ishlatiladi. Kodning keyingi qismi bu funktsiyalardan foydalanishni ko'rsatadi.

// Oddiy rejim buyrug'ini yuboring device.write ((bayt) 0x80); Thread.sleep (500); // 4 bayt ma'lumotni o'qing // namlik msb, namlik lsb, temp msb, temp lsb bayt ma'lumotlar = yangi bayt [4]; device.read (ma'lumotlar, 0, 4);

Sensorning chiqishi ham 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: