Оглавление:
Видео: Arduino Nano - Учебное пособие по датчику относительной влажности и температуры HTS221: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для предоставления информации об измерениях через цифровые последовательные интерфейсы. Благодаря наличию такого количества функций, этот датчик является одним из наиболее подходящих для критических измерений влажности и температуры. Вот демонстрация с Arduino nano.
Шаг 1: Что вам нужно..
1. Arduino Nano
2. HTS221
3. Кабель I²C
4. I²C Shield для Arduino Nano.
Шаг 2: Подключения:
Возьмите щит I2C для Arduino Nano и аккуратно наденьте его на контакты Nano.
Затем подключите один конец кабеля I2C к датчику HTS221, а другой конец - к экрану I2C.
Подключения показаны на картинке выше.
Шаг 3: Код:
Код Arduino для HTS221 можно загрузить из нашего репозитория github - сообщества DCUBE.
Вот ссылка на то же самое:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Мы включаем библиотеку Wire.h для облегчения связи датчика I2c с платой Arduino.
Вы также можете скопировать код отсюда, он выглядит следующим образом:
// Распространяется по свободной лицензии.
// Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
// HTS221
// Этот код предназначен для работы с мини-модулем HTS221_I2CS I2C
#включают
// Адрес I2C HTS221 - 0x5F
#define Addr 0x5F
установка void ()
{
// Инициализируем связь I2C как МАСТЕР
Wire.begin ();
// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600
Serial.begin (9600);
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем средний регистр конфигурации
Wire.write (0x10);
// Образцы средней температуры = 256, образцы средней влажности = 512
Wire.write (0x1B);
// Остановка передачи I2C
Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем контрольный регистр1
Wire.write (0x20);
// Питание включено, непрерывное обновление, скорость вывода данных = 1 Гц
Wire.write (0x85);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (300);
}
пустой цикл ()
{
данные типа int без знака [2];
беззнаковый int val [4];
целое число без знака H0, H1, H2, H3, T0, T1, T2, T3, raw;
// Значения калибровки влажности
для (int я = 0; я <2; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write ((48 + i));
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Преобразование данных о влажности
H0 = данные [0] / 2;
H1 = данные [1] / 2;
для (int я = 0; я <2; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write ((54 + i));
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Преобразование данных о влажности
H2 = (данные [1] * 256,0) + данные [0];
для (int я = 0; я <2; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write ((58 + i));
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Преобразование данных о влажности
H3 = (данные [1] * 256,0) + данные [0];
// Значения калибровки температуры
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write (0x32);
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write (0x33);
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write (0x35);
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// Преобразуем значения калибровки температуры в 10-битные
T0 = ((raw & 0x03) * 256) + T0;
T1 = ((исходный & 0x0C) * 64) + T1;
для (int я = 0; я <2; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write ((60 + i));
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Конвертируем данные
T2 = (данные [1] * 256,0) + данные [0];
для (int я = 0; я <2; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write ((62 + i));
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Читаем 1 байт данных
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Конвертируем данные
T3 = (данные [1] * 256,0) + данные [0];
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем регистр данных
Wire.write (0x28 | 0x80);
// Остановка передачи I2C
Wire.endTransmission ();
// Запрос 4 байта данных
Wire.requestFrom (Адрес, 4);
// Читаем 4 байта данных
// влажность msb, влажность lsb, temp msb, temp lsb
если (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Конвертируем данные
влажность с плавающей запятой = (val [1] * 256.0) + val [0];
влажность = ((1.0 * H1) - (1.0 * H0)) * (1.0 * влажность - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Выводим данные на последовательный монитор
Serial.print («Относительная влажность:»);
Серийный отпечаток (влажность);
Serial.println («% относительной влажности»);
Serial.print («Температура в градусах Цельсия:»);
Serial.print (cTemp); Serial.println ("C");
Serial.print («Температура по Фаренгейту:»);
Serial.print (fTemp);
Serial.println ("F");
задержка (500);
}
Шаг 4: Приложения:
HTS221 может использоваться в различных потребительских товарах, таких как увлажнители воздуха, холодильники и т. Д. Этот датчик также находит свое применение в более широкой сфере, включая автоматизацию умного дома, промышленную автоматизацию, респираторное оборудование, отслеживание активов и товаров.
Рекомендуемые:
Измерение влажности и температуры с помощью HTS221 и Arduino Nano: 4 шага
Измерение влажности и температуры с использованием HTS221 и Arduino Nano: HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для передачи информации об измерениях через цифровой последовательный
Arduino Nano - Руководство по датчику температуры TCN75A: 4 шага
Arduino Nano - Учебное пособие по датчику температуры TCN75A: TCN75A - это двухпроводной последовательный датчик температуры, объединенный с преобразователем температуры в цифровой. Он объединен с программируемыми пользователем регистрами, которые обеспечивают гибкость для приложений измерения температуры. Настройки реестра позволяют пользователям
Измерение влажности и температуры с помощью HTS221 и Raspberry Pi: 4 шага
Измерение влажности и температуры с использованием HTS221 и Raspberry Pi: HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для передачи информации об измерениях через цифровой последовательный
Измерение влажности и температуры с использованием HTS221 и частиц Photon: 4 шага
Измерение влажности и температуры с использованием HTS221 и Particle Photon: HTS221 - это сверхкомпактный емкостной цифровой датчик относительной влажности и температуры. Он включает в себя чувствительный элемент и специализированную интегральную схему (ASIC) со смешанными сигналами для передачи информации об измерениях через цифровой последовательный
Регистратор температуры, относительной влажности и атмосферного давления с использованием Raspberry Pi и TE Connectivity MS8607-02BA01: 22 шага (с изображениями)
Регистратор температуры, относительной влажности и атмосферного давления с использованием Raspberry Pi и TE Connectivity MS8607-02BA01: Введение: в этом проекте я покажу вам, как построить пошаговую настройку системы регистрации температуры, влажности и атмосферного давления. Этот проект основан на Raspberry Pi 3 Model B и микросхеме датчика окружающей среды TE Connectivity MS8607-02BA