İçindekiler:

Raspberry Pi HTS221 Bağıl Nem ve Sıcaklık Sensörü Java Eğitimi: 4 Adım
Raspberry Pi HTS221 Bağıl Nem ve Sıcaklık Sensörü Java Eğitimi: 4 Adım

Video: Raspberry Pi HTS221 Bağıl Nem ve Sıcaklık Sensörü Java Eğitimi: 4 Adım

Video: Raspberry Pi HTS221 Bağıl Nem ve Sıcaklık Sensörü Java Eğitimi: 4 Adım
Video: Raspberry Pi SI7021 Sıcaklık ve Nem Sensör Kartı 2024, Kasım
Anonim
Image
Image

HTS221, bağıl nem ve sıcaklık için ultra kompakt kapasitif bir dijital sensördür. Dijital seri arabirimler aracılığıyla ölçüm bilgilerini sağlamak için bir algılama elemanı ve karma sinyal uygulamasına özel entegre devre (ASIC) içerir. Pek çok özellikle entegre edilmiş bu sensör, kritik nem ve sıcaklık ölçümleri için en uygun sensörlerden biridir. İşte Raspberry Pi kullanan bir java kodu ile gösterim.

Adım 1: İhtiyacınız Olan Şey..!

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

1. Ahududu Pi

2. HTS221

3. I²C Kablosu

4. Raspberry Pi için I²C Kalkanı

5. Ethernet Kablosu

Adım 2: Bağlantılar:

Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar

Ahududu pi için bir I2C kalkanı alın ve ahududu pi'nin gpio pimlerinin üzerine hafifçe itin.

Ardından I2C kablosunun bir ucunu HTS221 sensörüne ve diğer ucunu I2C blendajına bağlayın.

Ayrıca Ethernet kablosunu pi'ye bağlayın veya bir WiFi modülü kullanabilirsiniz.

Bağlantılar yukarıdaki resimde gösterilmiştir.

Adım 3: Kod:

Kod
Kod

HTS221 için python kodu, github deposu-Dcube Mağazamızdan indirilebilir.

İşte aynısı için bağlantı:

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

Java kodu için pi4j kütüphanesini kullandık, pi4j'yi ahududu pi'ye kurma adımları burada açıklanmıştır:

pi4j.com/install.html

Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:

// Özgür irade lisansıyla dağıtılır.

// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.

// HTS221

// Bu kod, HTS221_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.

com.pi4j.io.i2c. I2CBus'u içe aktarın;

com.pi4j.io.i2c. I2CDevice'ı içe aktarın;

com.pi4j.io.i2c. I2CFFactory'yi içe aktarın;

java.io. IOException'ı içe aktarın;

public class HTS221{ public static void main(String args) İstisna atar

{

// I2CBus oluştur

I2CBus veri yolu = I2CFactory.getInstance(I2CBus. BUS_1);

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

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

// Ortalama konfigürasyon kaydı seç

// Sıcaklık ortalama numuneleri = 16, ortalama nem numuneleri = 32

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

// Kontrol kaydı1'i seç

// Açma, blok veri güncelleme, veri hızı o/p = 1 Hz

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

thread.sleep(500);

// Cihazın kalıcı hafızasından Kalibrasyon değerlerini oku

// Nem Kalibrasyon değerleri

bayt değer = yeni bayt[2];

// 0x30(48) adresinden 1 bayt veri oku

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

// 0x31(49) adresinden 1 bayt veri oku

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

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

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

// 0x36(54) adresinden 1 bayt veri oku

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

// 0x37(55) adresinden 1 bayt veri oku

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

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

// 0x3A(58) adresinden 1 bayt veri oku

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

// 0x3B(59) adresinden 1 bayt veri oku

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

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

// Sıcaklık Kalibrasyon değerleri

// 0x32(50) adresinden 1 bayt veri oku

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

// 0x33(51) adresinden 1 bayt veri oku

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

// 0x35(53) adresinden 1 bayt veri oku

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

// Sıcaklık Kalibrasyon değerlerini 10 bit'e çevir

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

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

// 0x3C(60) adresinden 1 bayt veri oku

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

// 0x3D(61) adresinden 1 bayt veri oku

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

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

// 0x3E(62) adresinden 1 bayt veri oku

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

// 0x3F(63) adresinden 1 bayt veri oku

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

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

// 4 bayt veri oku

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

bayt veri = yeni bayt[4]; device.read(0x28 | 0x80, veri, 0, 4);

// Verileri dönüştür

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

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

if(sıcaklık > 32767)

{

sıcaklık -= 65536;

}

çift nem = ((1.0 * H1) - (1.0 * H0)) * (1.0 * uğultu - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

çift cTemp = ((T1 - T0) / 8.0) * (sıcaklık - T2) / (T3 - T2) + (T0 / 8.0);

çift fTemp = (cTemp * 1.8) + 32;

// Ekrana veri çıktısı

System.out.printf("Bağıl Nem: %.2f %% RH %n", nem);

System.out.printf("Sıcaklık Santigrat cinsinden: %.2f C %n", cTemp);

System.out.printf("Sıcaklık Fahrenhayt cinsinden: %.2f F %n", fTemp);

}

}

Adım 4: Uygulamalar:

HTS221, hava nemlendiriciler ve buzdolapları vb. gibi çeşitli tüketici ürünlerinde kullanılabilir. Bu sensör ayrıca Akıllı ev otomasyonu, Endüstriyel otomasyon, solunum ekipmanları, varlık ve mal takibi dahil olmak üzere daha geniş bir alanda uygulamasını bulur.

Önerilen: