Мазмуну:

HTS221 жана Raspberry Pi аркылуу нымдуулукту жана температураны өлчөө: 4 кадам
HTS221 жана Raspberry Pi аркылуу нымдуулукту жана температураны өлчөө: 4 кадам

Video: HTS221 жана Raspberry Pi аркылуу нымдуулукту жана температураны өлчөө: 4 кадам

Video: HTS221 жана Raspberry Pi аркылуу нымдуулукту жана температураны өлчөө: 4 кадам
Video: ВОДА приближается! Рыбалка в диком месте. Забыл спички!! 2024, Июль
Anonim
Image
Image

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

Бул окуу куралында HTS221 сенсордук модулунун малина пи менен интерфейси көрсөтүлөт жана анын питон тили менен программаланышы да сүрөттөлгөн. Нымдуулукту жана температураны баалоо үчүн I2C adapter. This I2C адаптери менен малина пи колдонгонбуз, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. HTS221

2. Raspberry Pi

3. I2C кабели

4. Малина pi үчүн I2C Shield

5. Ethernet кабели

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

HTS221 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз.

Сизге болгону төрт зым керек! Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

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

3 -кадам: Нымдуулукту жана температураны өлчөө коду:

Нымдуулукту жана температураны өлчөө коду
Нымдуулукту жана температураны өлчөө коду

Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгынан пайдаланып, биз бул жерде анын питондогу программалоосун көрсөтүп жатабыз. HTS221 үчүн питон кодун биздин бардыгын көзөмөлдөө жамаатыбыздан жүктөп алсаңыз болот.

Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:

Коддоонун биринчи кадамы катары сиз питон үчүн smbus китепканасын жүктөп алышыңыз керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:

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

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

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) Power ON, Үзгүлтүксүз жаңыртуу, Маалымат чыгаруу ылдамдыгы = 1 Гц

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

убакыт.уйку (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 байттан кайра маалыматтарды окуу

raw = 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)

темп = (маалымат [3] * 256) + маалымат [2]

эгерде темп> 32767:

темп -= 65536

cTemp = ((T1 - T0) / 8.0) * (темп - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# Экранга маалыматтарды чыгаруу

басып чыгаруу "Салыштырмалуу нымдуулук: %.2f %%" %нымдуулук

басып чыгаруу "Цельсий боюнча температура: %.2f C" %cTemp

басып чыгаруу "Фаренгейт температурасы: %.2f F" %fTemp

Төмөндө айтылган коддун бөлүгү python коддорунун туура аткарылышы үчүн керектүү китепканаларды камтыйт.

smbus импорттоо

импорттоо убактысы

Код төмөнкү буйрукту буйрук сабына терүү менен аткарылышы мүмкүн.

$> python HTS221.py

Сенсордун чыгышы да колдонуучунун маалымдамасы үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

HTS221 абаны нымдагычтар жана муздаткычтар сыяктуу ар кандай керектөөчү продуктыларда колдонулушу мүмкүн. Бул сенсор ошондой эле акылдуу үйдү автоматташтыруу, өнөр жайлык автоматташтыруу, дем алуу жабдуулары, активдерди жана товарларды көзөмөлдөө сыяктуу кеңири аренада колдонулат.

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