Оглавление:

Мониторинг температуры с использованием MCP9808 и Particle Photon: 4 шага
Мониторинг температуры с использованием MCP9808 и Particle Photon: 4 шага

Видео: Мониторинг температуры с использованием MCP9808 и Particle Photon: 4 шага

Видео: Мониторинг температуры с использованием MCP9808 и Particle Photon: 4 шага
Видео: Как использовать датчик температуры MCP9808 с кодом Arduino 2024, Июль
Anonim
Image
Image

MCP9808 - это высокоточный мини-модуль I2C с цифровым датчиком температуры ± 0,5 ° C. В них реализованы программируемые пользователем регистры, которые упрощают приложения для измерения температуры. Высокоточный датчик температуры MCP9808 стал отраслевым стандартом с точки зрения форм-фактора и интеллекта, обеспечивая откалиброванные, линеаризованные сигналы датчиков в цифровом формате I2C.

В этом руководстве было продемонстрировано взаимодействие модуля датчика MCP9808 с фотоном частицы. Для считывания значений температуры мы использовали raspberry pi с адаптером I2C. Этот адаптер I2C делает подключение к модулю датчика простым и надежным.

Шаг 1: Требуемое оборудование:

Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. MCP9808

2. Частичный фотон

3. Кабель I2C

4. I2C Shield для фотонов частиц

Шаг 2: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

Раздел подключения оборудования в основном объясняет проводные соединения, необходимые между датчиком и фотоном частицы. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

MCP9808 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого. Все, что вам нужно, это четыре провода!

Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 3: Код для измерения температуры:

Код для измерения температуры
Код для измерения температуры

Начнем с кода частицы.

При использовании сенсорного модуля с arduino мы включаем библиотеки application.h и spark_wiring_i2c.h. Библиотека application.h и spark_wiring_i2c.h содержит функции, которые облегчают обмен данными i2c между датчиком и частицей.

Полный код частицы приведен ниже для удобства пользователя:

#включают

#включают

// Адрес I2C MCP9808 0x18 (24)

#define Addr 0x18

float cTemp = 0, fTemp = 0;

установка void ()

{

// Устанавливаем переменную

Particle.variable («i2cdevice», «MCP9808»);

Particle.variable ("cTemp", cTemp);

// Инициализируем связь I2C как МАСТЕР

Wire.begin ();

// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600

Serial.begin (9600);

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр конфигурации

Wire.write (0x01);

// Режим непрерывного преобразования, по умолчанию при включении питания

Wire.write (0x00);

Wire.write (0x00);

// Остановка передачи I2C

Wire.endTransmission ();

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр разрешения

Wire.write (0x08);

// Разрешение = +0.0625 / C

Wire.write (0x03);

// Остановка передачи I2C

Wire.endTransmission ();

задержка (300);

}

пустой цикл ()

{

данные типа int без знака [2];

// Запускает связь I2C

Wire.beginTransmission (адрес);

// Выбираем регистр данных

Wire.write (0x05);

// Остановить передачу I2C

Wire.endTransmission ();

// Запрос 2 байта данных

Wire.requestFrom (Адрес, 2);

// Считываем 2 байта данных

// temp msb, temp lsb

если (Wire.available () == 2)

{

данные [0] = Wire.read ();

данные [1] = Wire.read ();

}

задержка (300);

// Преобразуем данные в 13-битные

int temp = ((данные [0] & 0x1F) * 256 + данные [1]);

если (температура> 4095)

{

темп - = 8192;

}

cTemp = temp * 0,0625;

fTemp = cTemp * 1,8 + 32;

// Выводим данные в дашборд

Particle.publish («Температура в градусах Цельсия:», String (cTemp));

Particle.publish («Температура по Фаренгейту:», String (fTemp));

задержка (500);

}

Функция Particle.variable () создает переменные для хранения выходных данных датчика, а функция Particle.publish () отображает выходные данные на панели инструментов сайта.

Выходной сигнал датчика показан на рисунке выше для справки.

Шаг 4: Приложения:

Приложения
Приложения

Цифровой датчик температуры MCP9808 применяется в нескольких отраслях промышленности, включая промышленные морозильники и холодильники, а также различные кухонные комбайны. Этот датчик может использоваться для различных персональных компьютеров, серверов, а также других периферийных устройств ПК.

Рекомендуемые: