Съдържание:

Raspberry Pi HTS221 Сензор за относителна влажност и температура Java Урок: 4 стъпки
Raspberry Pi HTS221 Сензор за относителна влажност и температура Java Урок: 4 стъпки

Видео: Raspberry Pi HTS221 Сензор за относителна влажност и температура Java Урок: 4 стъпки

Видео: Raspberry Pi HTS221 Сензор за относителна влажност и температура Java Урок: 4 стъпки
Видео: Arduino Nano - Учебное пособие по датчику относительной влажности и температуры HTS221 2024, Ноември
Anonim
Image
Image

HTS221 е ултра компактен капацитивен цифров сензор за относителна влажност и температура. Той включва сензорен елемент и специфична интегрална схема (ASIC) за прилагане на смесен сигнал за предоставяне на измервателната информация чрез цифрови серийни интерфейси. Интегриран с толкова много функции, това е един от най -подходящите сензори за измерване на критична влажност и температура. Ето демонстрацията с java код, използващ Raspberry Pi.

Стъпка 1: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!

1. Малина Пи

2. HTS221

3. Кабел I²C

4. I²C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 2: Връзки:

Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки

Вземете I2C щит за малиново пи и леко го натиснете върху щифтовете на gpio на малиново пи.

След това свържете единия край на I2C кабела към сензора HTS221, а другия край към I2C щита.

Свържете също Ethernet кабела към pi или можете да използвате WiFi модул.

Връзките са показани на снимката по -горе.

Стъпка 3: Код:

Код
Код

Кодът на python за HTS221 може да бъде изтеглен от нашето хранилище на github-Dcube Store

Ето линк за същото:

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

Използвахме библиотека pi4j за java код, стъпките за инсталиране на pi4j на raspberry pi са описани тук:

pi4j.com/install.html

Можете също да копирате кода от тук, той е даден, както следва:

// Разпространява се с лиценз за свободна воля.

// Използвайте го по какъвто начин искате, печалба или безплатно, при условие че се вписва в лицензите на свързаните с него произведения.

// HTS221

// Този код е проектиран да работи с HTS221_I2CS I2C мини модул.

внос com.pi4j.io.i2c. I2CBus;

внос com.pi4j.io.i2c. I2CDevice;

внос com.pi4j.io.i2c. I2CFactory;

импортиране на java.io. IOException;

публичен клас HTS221 {public static void main (String args ) хвърля Exception

{

// Създаване на I2CBus

I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);

// Вземете I2C устройство, HTS221 I2C адресът е 0x5F (95)

I2CDevice устройство = bus.getDevice (0x5F);

// Избор на регистър за средна конфигурация

// Средни температурни проби = 16, средни проби за влажност = 32

device.write (0x10, (байт) 0x1B);

// Изберете контролен регистър1

// Включване, блокиране на актуализиране на данни, скорост на предаване на данни o/p = 1 Hz

device.write (0x20, (байт) 0x85);

Thread.sleep (500);

// Четене на стойностите за калибриране от енергонезависимата памет на устройството

// Стойности за калибриране на влажност

байт val = нов байт [2];

// Четене на 1 байт данни от адрес 0x30 (48)

val [0] = (байт) device.read (0x30);

// Прочетете 1 байт данни от адрес 0x31 (49)

val [1] = (байт) device.read (0x31);

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

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

// Прочетете 1 байт данни от адрес 0x36 (54)

val [0] = (байт) device.read (0x36);

// Прочетете 1 байт данни от адрес 0x37 (55)

val [1] = (байт) device.read (0x37);

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

// Прочетете 1 байт данни от адрес 0x3A (58)

val [0] = (байт) device.read (0x3A);

// Прочетете 1 байт данни от адрес 0x3B (59)

val [1] = (байт) device.read (0x3B);

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

// Температурни стойности за калибриране

// Прочетете 1 байт данни от адрес 0x32 (50)

int T0 = ((байт) device.read (0x32) & 0xFF);

// Четене на 1 байт данни от адрес 0x33 (51)

int T1 = ((байт) device.read (0x33) & 0xFF);

// Прочетете 1 байт данни от адрес 0x35 (53)

int raw = ((байт) device.read (0x35) & 0x0F);

// Преобразуваме температурните стойности за калибриране в 10-бита

T0 = ((необработен & 0x03) * 256) + T0;

T1 = ((необработен & 0x0C) * 64) + T1;

// Четене на 1 байт данни от адрес 0x3C (60)

val [0] = (байт) device.read (0x3C);

// Прочетете 1 байт данни от адрес 0x3D (61)

val [1] = (байт) device.read (0x3D);

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

// Прочетете 1 байт данни от адрес 0x3E (62)

val [0] = (байт) device.read (0x3E);

// Прочетете 1 байт данни от адрес 0x3F (63)

val [1] = (байт) device.read (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);

ако (temp> 32767)

{

temp -= 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 може да се използва в различни потребителски продукти като овлажнители на въздух и хладилници и др. Този сензор намира своето приложение и в по -широка област, включително автоматизация на интелигентен дом, промишлена автоматизация, дихателно оборудване, проследяване на активи и стоки.

Препоръчано: