2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
MCP9808 - это высокоточный мини-модуль I2C с цифровым датчиком температуры ± 0,5 ° C. В них реализованы программируемые пользователем регистры, которые упрощают приложения для измерения температуры. Высокоточный датчик температуры MCP9808 стал отраслевым стандартом с точки зрения форм-фактора и интеллекта, обеспечивая откалиброванные, линеаризованные сигналы датчиков в цифровом формате I2C. Вот демонстрация кода Python с использованием Raspberry Pi.
Шаг 1: Что вам нужно..
1. Raspberry Pi
2. MCP9808
3. Кабель I²C
4. I²C Shield для Raspberry Pi
5. Кабель Ethernet.
Шаг 2: Подключения
Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.
Затем подключите один конец кабеля I2C к датчику MCP9808, а другой конец - к экрану I2C.
Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi.
Подключения показаны на картинке выше.
Шаг 3: Код
Код python для MCP9808 можно скачать из нашего репозитория GitHub - Dcube Store.
Вот ссылка на то же самое:
github.com/DcubeTechVentures/MCP9808
Техническое описание MCP9808 можно найти здесь:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Мы использовали библиотеку SMBus для кода Python, шаги по установке SMBus на Raspberry Pi описаны здесь:
pypi.python.org/pypi/smbus-cffi/0.5.1
Вы также можете скопировать код отсюда, он выглядит следующим образом:
# Распространяется по свободной лицензии.
# Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
# MCP9808
# Этот код предназначен для работы с мини-модулем MCP9808_I2CS I2C, доступным в Dcube Store.
импортировать smbus
время импорта
# Получить шину I2C
автобус = 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)
time.sleep (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
# Выводить данные на экран
print "Температура в градусах Цельсия:%.2f C"% ctemp
print "Температура по Фаренгейту:%.2f F"% ftemp
Шаг 4: Приложения..:
Цифровой датчик температуры MCP9808 применяется в нескольких отраслях промышленности, включая промышленные морозильники и холодильники, а также различные кухонные комбайны. Этот датчик может использоваться для различных персональных компьютеров, серверов, а также других периферийных устройств ПК.