Мазмуну:

Raspberry Pi HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун Java үйрөткүчү: 4 кадам
Raspberry Pi HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун Java үйрөткүчү: 4 кадам

Video: Raspberry Pi HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун Java үйрөткүчү: 4 кадам

Video: Raspberry Pi HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун Java үйрөткүчү: 4 кадам
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Ноябрь
Anonim
Image
Image

HTS221 салыштырмалуу нымдуулук жана температура үчүн өтө компакт сыйымдуу санарип сенсор. Бул санариптик сериялык интерфейстер аркылуу өлчөө маалыматын берүү үчүн сезгич элементти жана аралаш сигналга тиешелүү интегралдык микросхеманы (ASIC) камтыйт. Бул көптөгөн өзгөчөлүктөр менен интеграцияланган, бул нымдуулукту жана температураны өлчөө үчүн эң ылайыктуу сенсорлордун бири. Бул жерде Raspberry Pi колдонулган java коду бар демонстрация.

1 -кадам: Сизге эмне керек..

Сизге эмне керек.. !!
Сизге эмне керек.. !!

1. Raspberry Pi

2. HTS221

3. I²C кабели

4. Raspberry Pi үчүн I²C Shield

5. Ethernet кабели

2 -кадам: Байланыштар:

Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар

Малина пи үчүн I2C калканчын алыңыз жана аны акырын малинанын пи gpio төөнөгүчтөрүнүн үстүнө басыңыз.

Андан кийин I2C кабелинин бир учун HTS221 сенсоруна, экинчи учун I2C калканчына туташтырыңыз.

Ethernet кабелин пи -ге туташтырыңыз же WiFi модулун колдонсоңуз болот.

Байланыштар жогорудагы сүрөттө көрсөтүлгөн.

3 -кадам: Код:

Код
Код

HTS221 үчүн питон кодун биздин github репозиторийибизден көчүрүп алсаңыз болот-Dcube Store

Мына ушуга шилтеме:

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

Биз Java коду үчүн pi4j китепканасын колдондук, малина piге pi4j орнотуу кадамдары бул жерде сүрөттөлгөн:

pi4j.com/install.html

Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:

// Эркин лицензия менен таратылган.

// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.

// HTS221

// Бул код HTS221_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан.

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 Гц

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

Thread.sleep (500);

// Түзмөктүн туруксуз эсинен калибрлөө баалуулуктарын окуңуз

// Нымдуулукту калибрлөө баалуулуктары

байт вал = жаңы байт [2];

// 0x30 (48) дарегинен 1 байт маалыматтарды окуу

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

// 0x31 (49) дарегинен 1 байт маалыматтарды окуу

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

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

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

// 0x36 (54) дарегинен 1 байт маалыматтарды окуу

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

// 0x37 (55) дарегинен 1 байт маалыматтарды окуу

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

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

// 0x3A (58) дарегинен 1 байт маалыматтарды окуу

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

// 0x3B (59) дарегинен 1 байт маалыматтарды окуу

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

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

// Температураны калибрлөө баалуулуктары

// 0x32 (50) дарегинен 1 байт маалыматтарды окуу

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

// 0x33 (51) дарегинен 1 байт маалыматтарды окуу

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

// 0x35 дарегиндеги 1 байт маалыматтарды окуу (53)

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

// Температураны Калибрлөө баалуулуктарын 10 битке айландырыңыз

T0 = ((чийки & 0x03) * 256) + T0;

T1 = ((чийки & 0x0C) * 64) + T1;

// 0x3C дарегинен 1 байт маалыматтарды окуу (60)

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

// 0x3D (61) дарегинен 1 байт маалыматтарды окуу

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

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

// 0x3E (62) дарегинен 1 байт маалыматтарды окуу

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

// 0x3F (63) дарегинен 1 байт маалыматтарды окуу

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);

эгер (темп> 32767)

{

темп -= 65536;

}

кош нымдуулук = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

кош cTemp = ((T1 - T0) / 8.0) * (темп - 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 абаны нымдагычтар жана муздаткычтар сыяктуу ар кандай керектөөчү продуктыларда колдонулушу мүмкүн. Бул сенсор ошондой эле акылдуу үйдү автоматташтыруу, өнөр жайлык автоматташтыруу, дем алуу жабдуулары, активдерди жана товарларды көзөмөлдөө сыяктуу кеңири аренада колдонулат.

Сунушталууда: