Оглавление:
Видео: Учебное пособие по Java для датчика относительной влажности и температуры Raspberry Pi HTS221: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
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 может использоваться в различных потребительских товарах, таких как увлажнители воздуха, холодильники и т. Д. Этот датчик также находит свое применение в более широкой сфере, включая автоматизацию умного дома, промышленную автоматизацию, респираторное оборудование, отслеживание активов и товаров.
Рекомендуемые:
Arduino Nano - Учебное пособие по датчику относительной влажности и температуры HTS221: 4 шага
Arduino Nano - Учебное пособие по датчику относительной влажности и температуры HTS221: HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для передачи информации об измерениях через цифровой последовательный
Raspberry Pi - Учебное пособие по Python для датчика влажности и температуры HIH6130 I2C: 4 шага
Raspberry Pi - HIH6130 I2C Humidity & Temperature Sensor Python Tutorial: HIH6130 - датчик влажности и температуры с цифровым выходом. Эти датчики обеспечивают уровень точности ± 4% относительной влажности. С лучшей в отрасли долговременной стабильностью, истинной температурной компенсацией цифрового I2C, лучшей в отрасли надежностью, энергоэффективностью
Учебное пособие по Java для датчика температуры Raspberry Pi MCP9803: 4 шага
Учебное пособие по датчику температуры Raspberry Pi MCP9803 для Java: MCP9803 - это двухпроводный высокоточный датчик температуры. В них реализованы программируемые пользователем регистры, которые упрощают приложения для измерения температуры. Этот датчик подходит для сложной многозонной системы контроля температуры. Здесь
Учебное пособие по Java для датчика температуры Raspberry Pi MCP9805: 4 шага
Учебное пособие по датчику температуры Raspberry Pi MCP9805 по Java: MCP9805 - это цифровой датчик температуры модуля памяти. Он включает в себя программируемые пользователем регистры, которые обеспечивают гибкость для приложений измерения температуры. Этот датчик предназначен для встраивания в модуль памяти мобильной платформы
Учебное пособие по Java для датчика температуры Raspberry Pi TMP112: 4 шага
Raspberry Pi TMP112 Temperature Sensor Java Tutorial: TMP112 High-Accuracy, Low Power, Digital Temperature Sensor I2C MINI module. TMP112 идеально подходит для расширенного измерения температуры. Это устройство обеспечивает точность ± 0,5 ° C без необходимости калибровки или преобразования сигнала внешних компонентов