Мазмуну:

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

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

Video: HDC1000 жана Raspberry Pi менен температураны жана нымдуулукту өлчөө: 4 кадам
Video: Как использовать LM35 для измерения температуры в градусах Цельсия, Фаренгейта и Кельвина 2024, Декабрь
Anonim
Image
Image

HDC1000 - бул санариптик нымдуулук сенсору, ал өтө аз кубаттуулукта мыкты өлчөө тактыгын камсыз кылган интегралдык температура сенсору менен. Аппарат нымдуулукту жаңы сыйымдуу сенсордун негизинде өлчөйт. Нымдуулук жана температура сенсорлору заводдо калибрленген. Бул толук -40 ° Cдан +125 ° Cга чейинки температура диапазонунда иштейт.

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

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

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

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

1. HDC1000

2. Raspberry Pi

3. I2C кабели

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

5. Ethernet кабели

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

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

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

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

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

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

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

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

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

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

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

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

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

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

smbus импорттоо

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

# I2C автобусун алыңыз

автобус = smbus. SMBus (1)

# HDC1000 дареги, 0x40 (64)

# Конфигурация реестрин тандоо, 0x02 (02)

# 0x30 (48) Температура, Нымдуулук иштетилген, Resolultion = 14-бит, Жылыткыч күйүк

bus.write_byte_data (0x40, 0x02, 0x30)

# HDC1000 дареги, 0x40 (64)

# Температураны өлчөө буйругун жөнөтүү, 0x00 (00)

bus.write_byte (0x40, 0x00)

убакыт.уйку (0.5)

# HDC1000 дареги, 0x40 (64)

# Маалыматты кайра окуу, 2 байт

# темп MSB, temp LSB

data0 = bus.read_byte (0x40)

data1 = bus.read_byte (0x40)

# Маалыматтарды айландыруу

темп = (data0 * 256) + маалымат1

cTemp = (темп / 65536.0) * 165.0 - 40

fTemp = cTemp * 1.8 + 32

# HDC1000 дареги, 0x40 (64)

# Нымдуулукту өлчөө буйругун жөнөтүү, 0x01 (01)

bus.write_byte (0x40, 0x01)

убакыт.уйку (0.5)

# HDC1000 дареги, 0x40 (64)

# Маалыматты кайра окуу, 2 байт

# нымдуулук MSB, нымдуулук LSB

data0 = bus.read_byte (0x40)

data1 = bus.read_byte (0x40)

# Маалыматтарды айландыруу

нымдуулук = (data0 * 256) + маалымат1

нымдуулук = (нымдуулук / 65536.0) * 100.0

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

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

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

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

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

smbus импорттоо

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

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

$> python HDC1000.py gt; python HDC1000.py

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

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

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

HDC1000 жылытуу, вентиляция жана кондиционерлөө (HVAC), Smart Thermostats жана Room Monitorдо колдонулушу мүмкүн. Бул сенсор ошондой эле Принтерлерде, Колдогу эсептегичтерде, Медициналык приборлордо, Жүк ташууда, ошондой эле Автомобиль айнектерин тазалоодо колдонмосун табат.

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