Mundarija:

Raspberry Pi HTS221 nisbiy namlik va harorat sensori Java darsligi: 4 qadam
Raspberry Pi HTS221 nisbiy namlik va harorat sensori Java darsligi: 4 qadam

Video: Raspberry Pi HTS221 nisbiy namlik va harorat sensori Java darsligi: 4 qadam

Video: Raspberry Pi HTS221 nisbiy namlik va harorat sensori Java darsligi: 4 qadam
Video: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, Noyabr
Anonim
Image
Image

HTS221 - nisbiy namlik va harorat uchun ultra ixcham sig'imli raqamli sensor. Raqamli ketma -ket interfeyslar orqali o'lchash ma'lumotlarini etkazib berish uchun sezuvchi element va aralash signalli maxsus o'rnatilgan elektron (ASIC) o'z ichiga oladi. Ko'p funktsiyalar bilan birlashtirilgan, bu namlik va haroratni o'lchash uchun eng mos sensorlardan biridir. Bu erda Raspberry Pi yordamida java kodli namoyish.

1 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!

1. Raspberry Pi

2. HTS221

3. I²C kabeli

4. Raspberry Pi uchun I²C qalqoni

5. Ethernet kabeli

2 -qadam: Ulanishlar:

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar

Malinali pi uchun I2C qalqonini oling va uni malina pi gpio pimlariga sekin suring.

Keyin I2C kabelining bir uchini HTS221 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.

Ethernet kabelini pi -ga ulang yoki WiFi modulidan foydalanishingiz mumkin.

Ulanishlar yuqoridagi rasmda ko'rsatilgan.

3 -qadam: Kod:

Kod
Kod

HTS221 uchun piton kodini bizning github omboridan-Dcube do'konidan yuklab olish mumkin

Mana shu havola:

github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java

Biz Java kodi uchun pi4j kutubxonasidan foydalandik, malina pi ga pi4j o'rnatish bosqichlari bu erda tasvirlangan:

pi4j.com/install.html

Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:

// Ixtiyoriy litsenziya bilan tarqatilgan.

// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.

// HTS221

// Bu kod HTS221_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

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;

HTS221 umumiy klassi {public static void main (String args ) istisno qiladi

{

// I2CBus yaratish

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

// I2C qurilmasini oling, HTS221 I2C manzili 0x5F (95)

I2CDevice qurilmasi = bus.getDevice (0x5F);

// O'rtacha konfiguratsiya registrini tanlang

// O'rtacha harorat namunalari = 16, namlikning o'rtacha namunalari = 32

device.write (0x10, (bayt) 0x1B);

// Boshqarish registrini tanlang1

// Quvvatni yoqish, ma'lumotlarni yangilashni blokirovka qilish, ma'lumotlarni uzatish tezligi o/p = 1 Gts

device.write (0x20, (bayt) 0x85);

Thread.sleep (500);

// Qurilmaning doimiy bo'lmagan xotirasidan kalibrlash qiymatlarini o'qing

// Namlikni kalibrlash qiymatlari

bayt val = yangi bayt [2];

// 0x30 (48) manzildan 1 bayt ma'lumotlarni o'qing

val [0] = (bayt) device.read (0x30);

// 0x31 (49) manzildan 1 bayt ma'lumotlarni o'qing

val [1] = (bayt) device.read (0x31);

int H0 = (val [0] & 0xFF) / 2;

int H1 = (val [1] & 0xFF) / 2;

// 0x36 (54) manzildan 1 bayt ma'lumotlarni o'qing

val [0] = (bayt) device.read (0x36);

// 0x37 (55) manzildan 1 bayt ma'lumotlarni o'qing

val [1] = (bayt) device.read (0x37);

int H2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// 0x3A (58) manzilidan 1 bayt ma'lumotlarni o'qing

val [0] = (bayt) device.read (0x3A);

// 0x3B (59) manzilidan 1 bayt ma'lumotlarni o'qing

val [1] = (bayt) device.read (0x3B);

int H3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Haroratni kalibrlash qiymatlari

// 0x32 (50) manzilidan 1 bayt ma'lumotlarni o'qing

int T0 = ((bayt) device.read (0x32) & 0xFF);

// 0x33 (51) manzildan 1 bayt ma'lumotlarni o'qing

int T1 = ((bayt) device.read (0x33) & 0xFF);

// 0x35 (53) manzildan 1 bayt ma'lumotlarni o'qing

int raw = ((byte) device.read (0x35) & 0x0F);

// Haroratni kalibrlash qiymatlarini 10 bitga aylantiring

T0 = ((xom & 0x03) * 256) + T0;

T1 = ((xom & 0x0C) * 64) + T1;

// 0x3C (60) manzilidan 1 bayt ma'lumotlarni o'qing

val [0] = (bayt) device.read (0x3C);

// 0x3D (61) manzilidan 1 bayt ma'lumotlarni o'qing

val [1] = (bayt) device.read (0x3D);

int T2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// 0x3E (62) manzilidan 1 bayt ma'lumotlarni o'qing

val [0] = (bayt) device.read (0x3E);

// 0x3F (63) manzilidan 1 bayt ma'lumotlarni o'qing

val [1] = (bayt) device.read (0x3F);

int T3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// 4 bayt ma'lumotni o'qing

// hum msb, hum lsb, temp msb, temp lsb

bayt ma'lumotlar = yangi bayt [4]; device.read (0x28 | 0x80, ma'lumotlar, 0, 4);

// Ma'lumotni aylantirish

int hum = ((ma'lumotlar [1] & 0xFF) * 256) + (ma'lumotlar [0] & 0xFF);

int temp = ((ma'lumotlar [3] & 0xFF) * 256) + (ma'lumotlar [2] & 0xFF);

agar (harorat> 32767)

{

harorat -= 65536;

}

ikki marta namlik = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

er -xotin cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

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

// Ma'lumotni ekranga chiqarish

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

System.out.printf ("Selsiy bo'yicha harorat: %.2f C %n", cTemp);

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

}

}

4 -qadam: Ilovalar:

HTS221 har xil turdagi havo namlagichlari va muzlatgichlar kabi iste'molchi mahsulotlarida ishlatilishi mumkin. Bu sensor, shuningdek, aqlli uy avtomatizatsiyasi, sanoat avtomatizatsiyasi, nafas olish uskunalari, aktivlar va tovarlarni kuzatishni o'z ichiga oladi.

Tavsiya: