Найти в Дзене
294 подписчика

📌 Подключение датчика давления к контроллеру MyHeatSmart2

Данное руководство описывает процесс подключения датчика давления через Arduino Nano, который будет эмулировать цифровой датчик температуры DS18B20, понятный для контроллера MyHeatSmart2.
📦 Необходимое оборудование:
Микроконтроллер Arduino Nano.
Датчик давления (например, MPX5010DP или аналогичный) с верхним пределом 1.2 МПа.
Соединительные провода.
USB-кабель для программирования Arduino.
🛠 Шаг 1: Прошивка Arduino Nano
Установите среду Arduino IDE.
Установите необходимую библиотеку через менеджер библиотек:
Библиотека: OneWireHub (от orgua).
Скопируйте и вставьте приведенный ниже скетч в новое окно проекта.
Выберите плату Arduino Nano и правильный COM-порт.
Нажмите «Загрузить».
✅ Индикация успешной прошивки:
После загрузки скетча встроенный светодиод (D13) на Arduino начнет мигать с интервалом 0.5 секунд. Это означает, что система готова к работе.

💾 Скетч для Arduino Nano:

#include "OneWireHub.h"
#include "DS18B20.h"

// Настройка пинов
#define SENSOR_PIN A0 // Зеленый провод датчика давления
constexpr uint8_t PIN_LED = 13; // Встроенный светодиод
constexpr uint8_t PIN_ONEWIRE = 8; // Пин для виртуальной 1-Wire шины

// Создание объектов
auto hub = OneWireHub(PIN_ONEWIRE);
// Эмуляция датчика DS18B20 с заданным адресом
auto ds18B20 = DS18B20(0x28, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);

// Функция мигания светодиодом
bool blinking() {
constexpr uint32_t INTERVAL = 500; // Интервал в миллисекундах
static uint32_t nextMillis = millis();
static uint8_t ledState = LOW;

if (millis() >= nextMillis) {
nextMillis += INTERVAL;
ledState = (ledState == LOW) ? HIGH : LOW;
digitalWrite(PIN_LED, ledState);
return true; // Сообщаем, что произошло мигание (и время снять показания)
}
return false;
}

void setup() {
pinMode(PIN_LED, OUTPUT);
Serial.begin(9600); // Для отладки
Serial.println("MyHeatSmart2 Pressure Sensor Adapter: READY");

// Инициализация виртуальной 1-Wire шины
hub.attach(ds18B20);
}

void loop() {
hub.poll(); // Обслуживание 1-Wire шины (обязательно вызывать часто)

// Блок отладки (ошибки шины)
if (hub.hasError()) {
hub.printError();
}

// В момент мигания светодиода считываем и конвертируем данные
if (blinking()) {
// 1. Чтение аналогового значения
int rawValue = analogRead(SENSOR_PIN);

// 2. Перевод в напряжение (для Arduino 5В)
float voltage = (float)rawValue * 5.0 / 1024.0;

// 3. Перевод напряжения в давление (для датчика 1.2 МПа = 1200 кПа)
// Формула: P (кПа) = (Vout - 0.5V) / 4.0V * 1200.0 кПа
float pressure_kPa = (voltage - 0.5) / 4.0 * 1200.0;

// 4. Конвертация в Бары (1 Бар ≈ 100 кПа)
float pressure_bar = pressure_kPa / 100.0;

// 5. Отправка значения в качестве "температуры" на MyHeatSmart2
ds18B20.setTemperature(pressure_bar);

// 6. Отладочный вывод в монитор порта
Serial.print("Raw: ");
Serial.print(rawValue);
Serial.print(" | P: ");
Serial.print(pressure_bar);
Serial.println(" bar");
}
}
🔌 Шаг 2: Схема подключения
Подключите компоненты согласно следующей таблице и схеме:

Датчик давления (3 провода)Arduino NanoНазначениеЧерный / Синий (-)GNDЗемля (минус питания)Красный (+)5VПитание +5ВЗеленый (OUT / Signal)A0 (Аналоговый пин)Аналоговый сигнал давления

MyHeatSmart2 (1-Wire разъем)Arduino NanoНазначениеСигнал (желтый/зеленый)Pin 8 (D8)Цифровая шина 1-WireПитание (+)VIN или 5V (*)Питание адаптераЗемля (GND)GNDОбщая земля
Схематическое изображение:
text
[MyHeatSmart2] <---1-Wire (3 провода)---> [Arduino Nano] <---Аналоговый сигнал---> [Датчик давления]
(+5V, GND, DQ) (Pin 8, 5V, GND) (Vcc, GND, Out)
⚠️ Важные примечания:
(*) Питание Arduino: Если контроллер MyHeatSmart2 подает стабильные 5V на разъем 1-Wire, можно использовать их (пин 5V на Arduino). Если напряжение выше или есть сомнения, лучше запитать Arduino Nano от отдельного стабилизированного источника 5V через пин VIN.
Общая земля: Крайне важно соединить GND контроллера MyHeatSmart2, GND
📌 Подключение датчика давления к контроллеру MyHeatSmart2 Данное руководство описывает процесс подключения датчика давления через Arduino Nano, который будет эмулировать цифровой датчик...
3 минуты
152 читали