Სარჩევი:

Raspberry Pi HTS221 შედარებითი ტენიანობისა და ტემპერატურის სენსორი Java გაკვეთილი: 4 ნაბიჯი
Raspberry Pi HTS221 შედარებითი ტენიანობისა და ტემპერატურის სენსორი Java გაკვეთილი: 4 ნაბიჯი

ვიდეო: Raspberry Pi HTS221 შედარებითი ტენიანობისა და ტემპერატურის სენსორი Java გაკვეთილი: 4 ნაბიჯი

ვიდეო: Raspberry Pi HTS221 შედარებითი ტენიანობისა და ტემპერატურის სენსორი Java გაკვეთილი: 4 ნაბიჯი
ვიდეო: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, ივლისი
Anonim
Image
Image

HTS221 არის ულტრა კომპაქტური capacitive ციფრული სენსორი ფარდობითი ტენიანობისა და ტემპერატურისათვის. იგი მოიცავს სენსორულ ელემენტს და შერეული სიგნალის გამოყენების სპეციფიკურ ინტეგრირებულ წრეს (ASIC), რომელიც უზრუნველყოფს გაზომვის ინფორმაციას ციფრული სერიული ინტერფეისების საშუალებით. ამდენი მახასიათებლით ინტეგრირებული ეს არის ერთ -ერთი ყველაზე შესაფერისი სენსორი კრიტიკული ტენიანობისა და ტემპერატურის გაზომვისთვის. აქ არის დემონსტრაცია java კოდით Raspberry Pi გამოყენებით.

ნაბიჯი 1: რაც გჭირდებათ..

Რა გჭირდება..!!
Რა გჭირდება..!!

1. ჟოლო პი

2. HTS221

3. I²C კაბელი

4. I²C ფარი ჟოლოს პიისთვის

5. Ethernet კაბელი

ნაბიჯი 2: კავშირები:

კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები
კავშირები

აიღეთ I2C ფარი ჟოლოსთვის და ნაზად წაისვით ჟოლოს პი გპიოს ქინძისთავებზე.

შემდეგ დააკავშირეთ I2C კაბელის ერთი ბოლო HTS221 სენსორთან და მეორე ბოლო I2C ფარს.

ასევე დაუკავშირეთ Ethernet კაბელი pi- ს ან შეგიძლიათ გამოიყენოთ WiFi მოდული.

კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 3: კოდი:

კოდი
კოდი

HTH221– ის პითონის კოდი შეგიძლიათ გადმოწეროთ ჩვენი github საცავიდან-Dcube Store

აქ არის იგივე ბმული:

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

ჩვენ გამოვიყენეთ pi4j ბიბლიოთეკა java კოდისთვის, ჟოლოს პიზე pi4j– ის დაყენების ნაბიჯები აღწერილია აქ:

pi4j.com/install.html

თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:

// განაწილებულია თავისუფალი ნების ლიცენზიით.

// გამოიყენეთ იგი ნებისმიერი ფორმით, როგორც გსურთ, მოგებით ან უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოებისათვის.

// HTS221

// ეს კოდი შექმნილია HTS221_I2CS I2C მინი მოდულთან მუშაობისთვის.

იმპორტი com.pi4j.io.i2c. I2CBus;

იმპორტი com.pi4j.io.i2c. I2CD მოწყობილობა;

იმპორტი com.pi4j.io.i2c. I2C ქარხანა;

იმპორტი java.io. IOException;

public class HTS221 {public static void main (სიმებიანი არგები ) ისვრის გამონაკლისს

{

// შექმენით I2CBus

I2CBus ავტობუსი = I2CFactory.getInstance (I2CBus. BUS_1);

// მიიღეთ I2C მოწყობილობა, HTS221 I2C მისამართი არის 0x5F (95)

I2CD მოწყობილობის მოწყობილობა = bus.getDevice (0x5F);

// აირჩიეთ საშუალო კონფიგურაციის რეგისტრი

// ტემპერატურის საშუალო ნიმუშები = 16, ტენიანობის საშუალო ნიმუშები = 32

მოწყობილობა. დაწერეთ (0x10, (ბაიტი) 0x1B);

// აირჩიეთ კონტროლის რეგისტრატორი 1

// ჩართვა, მონაცემთა განახლების ბლოკირება, მონაცემთა სიჩქარე o/p = 1 Hz

მოწყობილობა. დაწერეთ (0x20, (ბაიტი) 0x85);

თემა. ძილი (500);

// წაიკითხეთ კალიბრაციის ღირებულებები მოწყობილობის არასტაბილური მეხსიერებიდან

// ტენიანობის დაკალიბრების მნიშვნელობები

ბაიტი val = ახალი ბაიტი [2];

// წაიკითხეთ მონაცემების 1 ბაიტი მისამართიდან 0x30 (48)

val [0] = (ბაიტი) მოწყობილობა. წაიკითხეთ (0x30);

// წაიკითხეთ მონაცემების 1 ბაიტი მისამართიდან 0x31 (49)

val [1] = (ბაიტი) მოწყობილობა. წაიკითხეთ (0x31);

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

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

// წაიკითხეთ მონაცემების 1 ბაიტი 0x36 მისამართიდან (54)

val [0] = (ბაიტი) მოწყობილობა. წაიკითხეთ (0x36);

// წაიკითხეთ მონაცემების 1 ბაიტი 0x37 მისამართიდან (55)

val [1] = (ბაიტი) მოწყობილობა. წაიკითხეთ (0x37);

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

// წაიკითხეთ მონაცემების 1 ბაიტი 0x3A მისამართიდან (58)

val [0] = (ბაიტი) მოწყობილობა. წაკითხვა (0x3A);

// წაიკითხეთ მონაცემების 1 ბაიტი 0x3B მისამართიდან (59)

val [1] = (ბაიტი) მოწყობილობა. წაკითხვა (0x3B);

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

// ტემპერატურის კალიბრაციის მნიშვნელობები

// წაიკითხეთ მონაცემების 1 ბაიტი 0x32 მისამართიდან (50)

int T0 = ((ბაიტი) მოწყობილობა. წაკითხვა (0x32) & 0xFF);

// წაიკითხეთ მონაცემების 1 ბაიტი მისამართიდან 0x33 (51)

int T1 = ((ბაიტი) მოწყობილობა. წაკითხვა (0x33) & 0xFF);

// წაიკითხეთ მონაცემების 1 ბაიტი მისამართიდან 0x35 (53)

int ნედლეული = ((ბაიტი) მოწყობილობა. წაკითხვა (0x35) & 0x0F);

// გადააკეთეთ ტემპერატურის კალიბრაციის მნიშვნელობები 10 ბიტზე

T0 = ((ნედლეული & 0x03) * 256) + T0;

T1 = ((ნედლეული & 0x0C) * 64) + T1;

// წაიკითხეთ მონაცემების 1 ბაიტი 0x3C მისამართიდან (60)

val [0] = (ბაიტი) მოწყობილობა. წაკითხვა (0x3C);

// წაიკითხეთ მონაცემების 1 ბაიტი მისამართიდან 0x3D (61)

val [1] = (ბაიტი) მოწყობილობა. წაკითხვა (0x3D);

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

// წაიკითხეთ მონაცემების 1 ბაიტი 0x3E მისამართიდან (62)

val [0] = (ბაიტი) მოწყობილობა. წაიკითხეთ (0x3E);

// წაიკითხეთ მონაცემების 1 ბაიტი 0x3F მისამართიდან (63)

val [1] = (ბაიტი) მოწყობილობა. წაკითხვა (0x3F);

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

// წაიკითხეთ 4 ბაიტი მონაცემები

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

ბაიტი მონაცემები = ახალი ბაიტი [4]; device.read (0x28 | 0x80, მონაცემები, 0, 4);

// მონაცემების კონვერტაცია

int hum = ((მონაცემები [1] & 0xFF) * 256) + (მონაცემები [0] & 0xFF);

int temp = ((მონაცემები [3] & 0xFF) * 256) + (მონაცემები [2] & 0xFF);

თუ (ტემპერატურა> 32767)

{

ტემპერატურა -= 65536;

}

ორმაგი ტენიანობა = ((1.0 * H1) - (1.0 * H0)) * (1.0 * ჰუმ - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

ორმაგი cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

ორმაგი fTemp = (cTemp * 1.8) + 32;

// მონაცემების გამოტანა ეკრანზე

System.out.printf ("ფარდობითი ტენიანობა: %.2f %% RH %n", ტენიანობა);

System.out.printf ("ტემპერატურა ცელსიუსში: %.2f C %n", cTemp);

System.out.printf ("ტემპერატურა ფარენჰეიტში: %.2f F %n", fTemp);

}

}

ნაბიჯი 4: პროგრამები:

HTS221 შეიძლება გამოყენებულ იქნას სხვადასხვა სამომხმარებლო პროდუქტში, როგორიცაა ჰაერის დამატენიანებლები და მაცივრები და ა.შ.

გირჩევთ: