Mündəricat:

Raspberry Pi HTS221 Nisbi Nəmlik və İstilik Sensoru Java Dərsliyi: 4 addım
Raspberry Pi HTS221 Nisbi Nəmlik və İstilik Sensoru Java Dərsliyi: 4 addım

Video: Raspberry Pi HTS221 Nisbi Nəmlik və İstilik Sensoru Java Dərsliyi: 4 addım

Video: Raspberry Pi HTS221 Nisbi Nəmlik və İstilik Sensoru Java Dərsliyi: 4 addım
Video: Инфракрасный Zigbee контроллер Moes UFO R11, обзор, использование в Home Assistant 2024, Noyabr
Anonim
Image
Image

HTS221 nisbi rütubət və temperatur üçün ultra kompakt kapasitiv rəqəmsal sensordur. Ölçmə məlumatlarını rəqəmsal serial interfeysləri ilə təmin etmək üçün bir hissedici element və qarışıq siqnal tətbiqinin xüsusi inteqrasiya edilmiş dövrə (ASIC) daxildir. Bir çox xüsusiyyətə sahib olan bu, kritik rütubət və temperatur ölçmələri üçün ən uyğun sensorlardandır. Burada Raspberry Pi istifadə edərək bir java kodu olan bir nümayişdir.

Addım 1: Nə Lazımdır..

Nə Lazımdır.. !!
Nə Lazımdır.. !!

1. Moruq Pi

2. HTS221

3. I²C Kabel

4. Raspberry Pi üçün I²C Qalxanı

5. Ethernet Kabeli

Addım 2: Bağlantılar:

Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr
Əlaqələr

Moruq pi üçün bir I2C qalxanı götürün və moruq pi -nin gpio sancaqlarının üzərinə yumşaq bir şəkildə itələyin.

Sonra I2C kabelinin bir ucunu HTS221 sensoruna, digər ucunu isə I2C ekranına bağlayın.

Ayrıca Ethernet kabelini pi -yə qoşun və ya WiFi modulundan istifadə edə bilərsiniz.

Bağlantılar yuxarıdakı şəkildə göstərilmişdir.

Addım 3: Kod:

Kod
Kod

HTS221 üçün python kodu github depomuzdan-Dcube Mağazasından yükləyə bilərsiniz

İşdə bunun üçün bağlantı:

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

Java kodu üçün pi4j kitabxanasından istifadə etdik, moruq pi üzərində pi4j quraşdırma addımları burada təsvir edilmişdir:

pi4j.com/install.html

Kodu buradan da kopyalaya bilərsiniz, belə verilir:

// Azad iradə lisenziyası ilə paylanmışdır.

// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.

// HTS221

// Bu kod HTS221_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.

com.pi4j.io.i2c. I2CBus idxal edin;

com.pi4j.io.i2c. I2CDevice idxal edin;

com.pi4j.io.i2c. I2CFactory idxal edin;

java.io. IOException idxal edin;

public class HTS221 {public static void main (String args ) Exception buraxır

{

// I2CBus yaradın

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

// I2C cihazı alın, HTS221 I2C ünvanı 0x5F (95)

I2CDevice cihazı = bus.getDevice (0x5F);

// Orta konfiqurasiya qeydini seçin

// Orta temperatur nümunələri = 16, orta rütubət nümunələri = 32

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

// Nəzarət reyestrini seçin1

// Yandırın, məlumat yeniləməsini bloklayın, məlumat sürəti o/p = 1 Hz

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

Thread.sleep (500);

// Cihazın dəyişməz yaddaşından Kalibrləmə dəyərlərini oxuyun

// Nəmlik Kalibrləmə dəyərləri

bayt val = yeni bayt [2];

// 0x30 (48) ünvanından 1 bayt məlumat oxuyun

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

// 0x31 (49) ünvanından 1 bayt məlumat oxuyun

val [1] = (bayt) cihaz. oxu (0x31);

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

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

// 0x36 (54) ünvanından 1 bayt məlumat oxuyun

val [0] = (bayt) cihaz. oxu (0x36);

// 0x37 (55) ünvanından 1 bayt məlumat oxuyun

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

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

// 0x3A (58) ünvanından 1 bayt məlumat oxuyun

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

// 0x3B (59) ünvanından 1 bayt məlumat oxuyun

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

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

// Temperatur Kalibrləmə dəyərləri

// 0x32 (50) ünvanından 1 bayt məlumat oxuyun

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

// 0x33 (51) ünvanından 1 bayt məlumat oxuyun

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

// 0x35 (53) ünvanından 1 bayt məlumat oxuyun

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

// İstilik Kalibrləmə dəyərlərini 10 bitə çevirin

T0 = ((xam və 0x03) * 256) + T0;

T1 = ((xam və 0x0C) * 64) + T1;

// 0x3C (60) ünvanından 1 bayt məlumat oxuyun

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

// 0x3D (61) ünvanından 1 bayt məlumat oxuyun

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

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

// 0x3E (62) ünvanından 1 bayt məlumat oxuyun

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

// 0x3F (63) ünvanından 1 bayt məlumat oxuyun

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

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

// 4 bayt məlumat oxuyun

// uğursuz msb, zümzümə lsb, temp msb, temp lsb

bayt məlumat = yeni bayt [4]; device.read (0x28 | 0x80, data, 0, 4);

// Məlumatları çevirin

int hum = ((data [1] & 0xFF) * 256) + (data [0] & 0xFF);

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

əgər (temp> 32767)

{

temp -= 65536;

}

ikiqat rütubət = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

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

ikiqat fTemp = (cTemp * 1.8) + 32;

// Ekrana məlumat çıxarın

System.out.printf ("Nisbi Nəmlik: %.2f %% RH %n", rütubət);

System.out.printf ("Selsi İstiliyi: %.2f C %n", cTemp);

System.out.printf ("Fahrenheitdəki temperatur: %.2f F %n", fTemp);

}

}

Addım 4: Tətbiqlər:

HTS221, hava nəmləndiriciləri və soyuducular kimi müxtəlif istehlak məhsullarında istifadə edilə bilər. Bu sensor, ağıllı ev avtomatlaşdırması, Sənaye avtomatlaşdırması, tənəffüs cihazları, aktiv və malların izlənməsi də daxil olmaqla daha geniş bir sahədə tətbiqini tapır.

Tövsiyə: