Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Компоненты и материалы

Arduino UNO×1
Перемычки (25 шт.)×25
Беспаечная макетная плата×1
Потенциометр 10 кОм×1
Adafruit RGB LCD 16x2 с подсветкой×1
Резистор 220 кОм×1
Датчик напряжения Diymall DC 0-25V×1
Усилитель сигнала AD620 (DROK)×1
Чашечный анемометр (cup anemometer)×1

Инструменты

Паяльник

О проекте

Предыстория

Нам нужно было создать расходомер воздуха для жилых помещений. К сожалению, в современной HVAC-индустрии все устройства для измерения потока воздуха рассчитаны на промышленные системы. Существующие датчики для промышленных решеток либо слишком велики для жилых, либо не способны измерять малые потоки жилых HVAC-систем.

Принцип работы

Для генерации сигнала от потока воздуха использовался чашечный анемометр. Лопатки были 3D-печатаны в Autodesk Inventor для оптимизации захвата воздуха. Также 3D-печатана коробка для анемометра.

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Для считывания сигнала анемометра выбран датчик напряжения. Сигнал также требовал усиления для более точного измерения. Усилитель увеличивает выходное напряжение анемометра в 10 раз (коэффициент можно менять от 1.5 до 1000 в зависимости от входного напряжения).

Arduino Uno считывает аналоговый сигнал с датчика напряжения и управляет LCD-дисплеем. Для данной задачи требовалась скорость ветра в CFM (кубических футах в минуту) — так и отображается на экране.

Сборка

Электроника

Начинаем с анемометра. Фото устройства:

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Смотрите на «Anemometer Top View». Точка крепления лопаток — L-образная и очень тонкая. Не выдержит высоких скоростей. Поэтому спроектировали новые лопатки: толще, более надежное крепление. Цель больших лопаток — уменьшить воздушный зазор между лопаткой и корпусом, увеличить захватываемый воздух и выработанное напряжение. Фото места крепления:

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Провели анализ прочности в Autodesk Inventor. Результаты ниже — новые лопатки намного эффективнее на высоких скоростях.

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

STL-файлы лопаток во вложениях. НЕ устанавливайте новые лопатки пока.

Установим модифицированный анемометр в корпус. STL корпуса во вложениях. Без лопаток протащите анемометр через отверстие внизу корпуса. Приклейте (горячим клеем) дно анемометра к двум тонким деревянным кругам (из Hobby Lobby). Проймите 4 маленьких отверстия через круги и ABS-корпус. Одно — для провода, три — для винтов. Как это выглядит:

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Подключение анемометра к усилителю

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

* Все провода к усилителю — male-to-male

  1. Паяем красный провод к +S справа. Другой конец — к красному проводу анемометра.
  2. Паяем черный провод к -S справа. Другой конец — к желтому проводу анемометра.
  3. Изолента для фиксации.
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Питание усилителя

Усилитель к датчику напряжения

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Теперь соединим датчик напряжения с Arduino — схема в разделе «Схемы».

Финальные штрихи

Самое сложное позади! Установим электронику на расходомер. Пенопласт — потолок вентиляторного корпуса. Приклеили горячим клеем. Электронику на пенопласте, еще пенопласт — для защиты. Фото:

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

В пенопласте вырезы для доступа Arduino и усилителя к их 9V батарейкам:

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Воронка

Из PVC — 4 трапециевидные доски. Соединены горячим клеем и герметиком. Тот же метод — крепление воронки к корпусу вентилятора. На большом конце воронки — резиновая уплотнительная лента для герметичности при прижатии к венту. Поперечное сечение большого конца — 14'' × 14''. Фронтальный вид воронки на фото.

Калибровка

После сборки откалибровали расходомер. Тестировали с эталонным прибором. Первый код выводил напряжение на LCD. Собранные данные использовались для уравнений перевода в CFM.

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

На графике две кривые: начальный поток и фактический поток. Разные, так как при сужении воронки скорость слегка падает. Используем уравнение лучшей аппроксимации для фактического потока:

y = 1.1409x² + 44.958x — в Arduino-коде. Код разбит на три части: нулевая скорость, малые/средние скорости, большие скорости. Можно использовать одно уравнение для всего диапазона, но для малых/средних нашли лучшее:

Код в следующем разделе. После загрузки — расходомер готов!

Самостоятельная калибровка (опционально)

Хотите калибровать сами? Нужны другие единицы (м/с, миль/ч). Пошагово:

  1. Найдите способ узнать реальный расход. Самый дешевый — купить анемометр (например, этот).
  2. Поставьте анемометр перед вентилятором с разными скоростями (как на фото).
  3. Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг
  4. Запишите скорость ветра анемометром на каждой настройке.
  5. Сделайте так, чтобы расходомер считывал выходное напряжение вентилятора. Загрузите код «Voltage Sensor Code» в Arduino.
  6. Теперь расходомер показывает напряжение. Запишите напряжение на каждой скорости вентилятора.
  7. В Excel постройте точечный график «Wind Speed vs Voltage».
  8. Используйте линию тренда для уравнения, моделирующего зависимость.
  9. Если тренд нелинеен — найдите отдельные уравнения для нижней и верхней частей графика.
  10. Подставьте свои уравнения в «Flowmeter Code». Загрузите в Arduino — готово!

Код

Flowmeter Code (C/C++)
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Пины LCD

// Значения резисторов в датчике напряжения
float R1 = 30000;
float R2 = 7500;

void setup() {
    Serial.begin(9600);
    lcd.begin(16, 2);
    // Инициализация LCD
}

void loop() {
    int sensorValue = analogRead(A0);
    // Чтение датчика
    
    float voltage = ((5 * sensorValue * (R1 + R2)) / (1024 * R2));
    // Уравнение реального напряжения
    
    //*********************************************************//
    // Уравнение CFM — кусочная функция напряжения,
    // if-ы делят функции на области
    //*********************************************************//
    
    if (voltage > 1) {
        // Первая область: большой CFM
        float cfm = (1.1409 * voltage * voltage) + 44.258 * voltage;
        Serial.println(cfm);
        lcd.print("CFM = ");
        lcd.setCursor(0, 1);
        lcd.print(cfm);
        delay(1000);
        lcd.clear();
        delay(1000);
    }
    else if (voltage > 0.01 && voltage < 1) {
        // Вторая область: средний/малый CFM
        float cfm = (40 * voltage + 20);
        Serial.println(cfm);
        lcd.print("CFM = ");
        lcd.setCursor(0, 1);
        lcd.print(cfm);
        delay(1000);
        lcd.clear();
        delay(1000);
    }
    else {
        // Вентилятор не вращается — CFM = 0
        float cfm = 0;
        Serial.println(cfm);
        lcd.print("CFM = ");
        lcd.setCursor(0, 1);
        lcd.print(cfm);
        delay(1000);
        lcd.clear();
        delay(1000);
    }
}
Code for Voltage Sensor (C/C++)

Код для чтения напряжения при самостоятельной калибровке:


// Значения резисторов в датчике
float R1 = 30000;
float R2 = 7500;

void setup() {
    Serial.begin(9600);
}

void loop() {
    int sensorValue = analogRead(A0);
    float voltage = ((5 * sensorValue * (R1 + R2)) / (1024 * R2));
    Serial.println(voltage);
    delay(1000);
}
Voltage Sensor Code (C/C++)

Код для калибровки расходомера (с выводом на LCD):

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

float R1 = 30000;
float R2 = 7500;

void setup() {
    Serial.begin(9600);
    lcd.begin(16, 2);
}

void loop() {
    int sensorValue = analogRead(A0);
    float voltage = ((5 * sensorValue * (R1 + R2)) / (1024 * R2));
    Serial.println(voltage);
    lcd.print("V = ");
    lcd.setCursor(0, 1);
    lcd.print(voltage);
    delay(1000);
    lcd.clear();
    delay(1000);
}

Схемы

Arduino-расходомер воздуха для жилых помещений: Сборка и мониторинг

Производственный процесс

  1. Очистители воздуха: конструкция, история и будущие тенденции
  2. Производство кислородных баллонов: от сырья к качественному контролю
  3. Освежители воздуха: от древних ароматов к современным плагинам
  4. Кислород: от древнего открытия к современному промышленному гиганту
  5. Системы кондиционирования воздуха: проектирование, производство и будущие тренды
  6. Горячевоздушные шары: от монгольфьера к современным полётам
  7. Системы подушек безопасности: дизайн, история и будущие инновации
  8. Игра «UFO Attack» на Arduino UNO и матрице MAX7219 — Собираем аркаду с джойстиком Atari
  9. 3D RGB Arduclock — Bluetooth-часы на адресных LED с RTC
  10. Мониторинг состояния реки: Arduino-система контроля качества воды