Оглавление:

Учебное пособие по Java для датчика относительной влажности и температуры Raspberry Pi HTS221: 4 шага
Учебное пособие по Java для датчика относительной влажности и температуры Raspberry Pi HTS221: 4 шага

Видео: Учебное пособие по Java для датчика относительной влажности и температуры Raspberry Pi HTS221: 4 шага

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

HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для предоставления информации об измерениях через цифровые последовательные интерфейсы. Благодаря наличию такого количества функций, этот датчик является одним из наиболее подходящих для критических измерений влажности и температуры. Вот демонстрация кода Java с использованием Raspberry Pi.

Шаг 1: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!

1. Raspberry Pi

2. HTS221

3. Кабель I²C

4. I²C Shield для Raspberry Pi

5. Кабель Ethernet.

Шаг 2: Подключения:

Подключения
Подключения
Подключения
Подключения
Подключения
Подключения
Подключения
Подключения

Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.

Затем подключите один конец кабеля I2C к датчику HTS221, а другой конец - к экрану I2C.

Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi.

Подключения показаны на картинке выше.

Шаг 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.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

открытый класс HTS221 {public static void main (String args ) выдает исключение

{

// Создаем I2CBus

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

// Получение устройства I2C, адрес I2C HTS221 - 0x5F (95)

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

// Выбираем средний регистр конфигурации

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

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

// Выбираем контрольный регистр1

// Включение, обновление данных блока, скорость передачи данных o / p = 1 Гц

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

Thread.sleep (500);

// Считываем значения калибровки из энергонезависимой памяти устройства

// Значения калибровки влажности

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

// Считываем 1 байт данных с адреса 0x30 (48)

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

// Считываем 1 байт данных с адреса 0x31 (49)

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

int H0 = (значение [0] & 0xFF) / 2;

int H1 = (значение [1] & 0xFF) / 2;

// Считываем 1 байт данных с адреса 0x36 (54)

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

// Считываем 1 байт данных с адреса 0x37 (55)

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

int H2 = ((значение [1] & 0xFF) * 256) + (значение [0] & 0xFF);

// Считываем 1 байт данных с адреса 0x3A (58)

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

// Считываем 1 байт данных с адреса 0x3B (59)

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

int H3 = ((значение [1] & 0xFF) * 256) + (значение [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 = ((raw & 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 = ((значение [1] & 0xFF) * 256) + (значение [0] & 0xFF);

// Считываем 1 байт данных с адреса 0x3E (62)

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

// Считываем 1 байт данных с адреса 0x3F (63)

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

int T3 = ((значение [1] & 0xFF) * 256) + (значение [0] & 0xFF);

// Читаем 4 байта данных

// гул msb, hum lsb, temp msb, temp lsb

byte data = новый байт [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 может использоваться в различных потребительских товарах, таких как увлажнители воздуха, холодильники и т. Д. Этот датчик также находит свое применение в более широкой сфере, включая автоматизацию умного дома, промышленную автоматизацию, респираторное оборудование, отслеживание активов и товаров.

Рекомендуемые: