Съдържание:

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

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

Видео: Измерване на влажност и температура с помощта на HTS221 и Raspberry Pi: 4 стъпки
Видео: Linptech ES1 - microwave presence sensor for mihome, Home Assistant Gateway 3 integration 2024, Юли
Anonim
Image
Image

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

В този урок е демонстрирано взаимодействието на сензорния модул HTS221 с малинов pi и е илюстрирано и неговото програмиране с помощта на език python. За да прочетете стойностите на влажност и температура, използвахме малинов pi с I2C адаптер, който прави връзката към сензорния модул лесна и по -надеждна.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. HTS221

2. Малина Пи

3. I2C кабел

4. I2C щит за малиново пи

5. Ethernet кабел

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

HTS221 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

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

Всичко, от което се нуждаете, са четири проводника! Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

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

Стъпка 3: Код за измерване на влажност и температура:

Код за измерване на влажност и температура
Код за измерване на влажност и температура

Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме тук нейното програмиране в python. Кодът на python за HTS221 може да бъде изтеглен от нашата github общност, която е Control Everything Community.

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка от кодирането трябва да изтеглите библиотеката smbus в случай на python, защото тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

pypi.python.org/pypi/smbus-cffi/0.5.1

Можете също да копирате работния код на python за този сензор от тук също:

внос smbus

време за импортиране

# Вземете I2C автобус

шина = smbus. SMBus (1)

# HTS221 адрес, 0x5F (95)

# Изберете регистър за средна конфигурация, 0x10 (16)

# 0x1B (27) Проби със средна температура = 256, Проби със средна влажност = 512

bus.write_byte_data (0x5F, 0x10, 0x1B)

# HTS221 адрес, 0x5F (95)

# Изберете контролен регистър1, 0x20 (32)

# 0x85 (133) Включване на захранването, непрекъснато актуализиране, скорост на изход на данни = 1 Hz

bus.write_byte_data (0x5F, 0x20, 0x85)

time.sleep (0.5)

# HTS221 адрес, 0x5F (95)

# Прочетете стойностите за калибриране от енергонезависимата памет на устройството

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

# Прочетете данните обратно от 0x30 (48), 1 байт

val = bus.read_byte_data (0x5F, 0x30)

H0 = val / 2

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

val = bus.read_byte_data (0x5F, 0x31)

H1 = val /2

# Прочетете данните обратно от 0x36 (54), 2 байта

val0 = bus.read_byte_data (0x5F, 0x36)

val1 = bus.read_byte_data (0x5F, 0x37)

H2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Прочетете данните обратно от 0x3A (58), 2 байта

val0 = bus.read_byte_data (0x5F, 0x3A)

val1 = bus.read_byte_data (0x5F, 0x3B)

H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

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

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

T0 = bus.read_byte_data (0x5F, 0x32)

T0 = (T0 & 0xFF)

# Прочетете данните обратно от 0x32 (51), 1 байт

T1 = bus.read_byte_data (0x5F, 0x33)

T1 = (T1 & 0xFF)

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

необработен = bus.read_byte_data (0x5F, 0x35)

необработен = (необработен & 0x0F)

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

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

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

# Прочетете данните обратно от 0x3C (60), 2 байта

val0 = bus.read_byte_data (0x5F, 0x3C)

val1 = bus.read_byte_data (0x5F, 0x3D)

T2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Прочетете данните обратно от 0x3E (62), 2 байта

val0 = bus.read_byte_data (0x5F, 0x3E)

val1 = bus.read_byte_data (0x5F, 0x3F)

T3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Прочетете данните обратно от 0x28 (40) с команден регистър 0x80 (128), 4 байта

# влажност msb, влажност lsb, temp msb, temp lsb

данни = bus.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

# Конвертирайте данните

влажност = (данни [1] * 256) + данни [0]

влажност = ((1.0 * H1) - (1.0 * H0)) * (1.0 * влажност - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (данни [3] * 256) + данни [2]

ако temp> 32767:

temp -= 65536

cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# Извеждане на данни на екрана

отпечатайте "Относителна влажност: %.2f %%" %влажност

печат "Температура в Целзий: %.2f C" %cТемп

отпечатайте "Температура по Фаренхайт: %.2f F" %fTemp

Частта от кода, спомената по -долу, включва библиотеките, необходими за правилното изпълнение на кодовете на python.

внос smbus

време за импортиране

Кодът може да бъде изпълнен чрез въвеждане на посочената по -долу команда в командния ред.

$> python HTS221.py

Изходът на сензора също е показан на горната снимка за справка на потребителя.

Стъпка 4: Приложения:

Приложения
Приложения

HTS221 може да се използва в различни потребителски продукти като овлажнители на въздух и хладилници и др. Този сензор намира своето приложение и в по -широка област, включително автоматизация на интелигентен дом, промишлена автоматизация, дихателно оборудване, проследяване на активи и стоки.

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