2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
MCP9805 - это цифровой датчик температуры модуля памяти. Он включает в себя программируемые пользователем регистры, которые обеспечивают гибкость для приложений измерения температуры. Этот датчик предназначен для встраивания в датчик температуры модуля памяти мобильной платформы. Вот демонстрация кода Java с использованием Raspberry Pi.
Шаг 1: Что вам нужно..
1. Raspberry Pi
2. MCP9805
3. Кабель I²C
4. I²C Shield для Raspberry Pi
5. Кабель Ethernet.
Шаг 2: Подключения
Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.
Затем подключите один конец кабеля I2C к датчику MCP9805, а другой конец - к экрану I2C.
Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi. Подключения показаны на картинке выше.
Шаг 3: Код
Код Java для MCP9805 можно загрузить из нашего репозитория GitHub - Dcube Store.
Вот ссылка на то же самое:
github.com/DcubeTechVentures/MCP9805
Техническое описание MCP9805 можно найти здесь:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Мы использовали библиотеку pi4j для java-кода, шаги по установке pi4j на raspberry pi описаны здесь:
pi4j.com/install.html
Вы также можете скопировать код отсюда, он выглядит следующим образом:
// Распространяется по свободной лицензии.
// Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
// MCP9805
// Этот код предназначен для работы с мини-модулем MCP9808_I2CS I2C, доступным в Dcube Store.
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
публичный класс MCP9805
{
public static void main (String args ) выдает исключение
{
// Создаем шину I2C
Шина I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Получение устройства I2C, адрес I2C MCP9805 0x18 (24)
Устройство I2CDevice = Bus.getDevice (0x18);
Thread.sleep (300);
// Выбираем регистр конфигурации
// Режим непрерывного преобразования, включение питания
byte config = новый байт [2];
config [0] = 0x00;
config [1] = 0x00;
device.write (0x01, config, 0, 2);
// Выбираем регистр разрешения
// Разрешение = +0.0625 / C
device.write (0x08, (байт) 0x03);
Thread.sleep (300);
// Считываем 2 байта данных с адреса 0x05 (05)
// temp msb, temp lsb
byte data = новый байт [2];
device.read (0x05, данные, 0, 2);
// Преобразуем данные в 13-битные
int temp = ((данные [0] & 0x1F) * 256 + (данные [1] & 0xFF));
если (температура> 4095)
{
темп - = 8192;
}
двойной cTemp = temp * 0,0625;
двойной fTemp = cTemp * 1.8 + 32;
// Выводим данные на экран
System.out.printf ("Температура в градусах Цельсия:%.2f C% n", cTemp);
System.out.printf ("Температура в градусах Фаренгейта:%.2f F% n", fTemp);
}
}
Шаг 4: Приложения..:
MCP9805 может быть включен в различные системы, включая системы контроля температуры с модулями памяти с двойным расположением линий (DIMM), персональные компьютеры и серверы. Обычно его можно использовать как датчик температуры общего назначения.