Мазмуну:

MCP9808 жана Raspberry Pi колдонуу менен температураны көзөмөлдөө: 4 кадам
MCP9808 жана Raspberry Pi колдонуу менен температураны көзөмөлдөө: 4 кадам

Video: MCP9808 жана Raspberry Pi колдонуу менен температураны көзөмөлдөө: 4 кадам

Video: MCP9808 жана Raspberry Pi колдонуу менен температураны көзөмөлдөө: 4 кадам
Video: Lesson 32: MCP9808 High Accuracy I2C Temperature | Arduino Step By Step Course 2024, Ноябрь
Anonim
Image
Image

MCP9808 абдан так санарип температура сенсору ± 0,5 ° C I2C мини модулу. Алар температураны сезүү колдонмолорун жеңилдетүүчү колдонуучу программалоочу реестрлер менен камтылган. MCP9808 жогорку тактыктагы температура сенсору форма фактору жана интеллектуалдык жактан индустриялык стандартка айланып, санариптик, I2C форматында калибрленген, сызыктуу сенсор сигналдарын берет.

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

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

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

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

1. MCP9808

2. Raspberry Pi

3. I2C кабели

4. Малина пи үчүн I2C калканы

5. Ethernet кабели

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

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

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

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

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

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

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

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

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

Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгынан пайдаланып, биз бул жерде анын питондогу программалоосун көрсөтүп жатабыз. Python - эң оңой синтаксиси бар эң оңой программалоо тилдеринин бири. MCP9808 үчүн питон кодун биздин github коомчулугунан жүктөп алууга болот DCUBE Store Community.

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

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

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

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

smbus импорттоо

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

# Get I2C busbus = smbus. SMBus (1)

# MCP9808 дареги, 0x18 (24)

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

# 0x0000 (00) Үзгүлтүксүз которуу режими, Демейки күйгүзүү

config = [0x00, 0x00] bus.write_i2c_block_data (0x18, 0x01, конфигурация)

# MCP9808 дареги, 0x18 (24)

# Тандоо чечим rgister, 0x08 (8)

# 0x03 (03) токтому = +0.0625 / C

bus.write_byte_data (0x18, 0x08, 0x03)

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

# MCP9808 дареги, 0x18 (24)

# 0x05 (5), 2 байт маалыматтарын кайра окуу

# Temp MSB, TEMP LSB

маалыматтар = bus.read_i2c_block_data (0x18, 0x05, 2)

# Маалыматтарды 13 битке айландырыңыз

ctemp = ((маалыматтар [0] & 0x1F) * 256) + маалыматтар [1]

эгер ctemp> 4095:

ctemp -= 8192

ctemp = ctemp * 0.0625

ftemp = ctemp * 1.8 + 32

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

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

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

Код төмөнкү буйруктун жардамы менен аткарылат:

$> python MCP9808.py gt; python MCP9808.py

gt; python MCP9808.py

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

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

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

MCP9808 Санариптик Температура Сенсорунда өнөр жайлык тоңдургучтар жана муздаткычтар, ар кандай тамак -аш процессорлору камтылган, өнөр жай деңгээлиндеги бир нече тиркемелер бар. Бул сенсор ар кандай жеке компьютерлерде, серверлерде жана башка PC перифериялык түзүлүштөрүндө колдонулушу мүмкүн.

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