Система контролю напруги та температури з передачею показань через Bluetooth

Система призначена для вимірювання напруги з високою точністю та бездротової передачі результатів у систему моніторингу (ПК, мобільний телефон або інший контролер, оснащений Bluetooth-приймачем).

Для підвищення точності вимірювань (внесення додаткових поправок), крім напруги, передається і точна температура в зоні вимірювання. Показання датчика температури також можна використовувати для захисту від перегріву обладнання, на якому встановлено систему.

Система живиться від мережі постійного струму 12 через понижувальний перетворювач. Напруга живлення може впливати на точність вимірювання, тому воно також контролюється та передається разом з іншими даними. Опорне значення напруги живлення можна додатково відрегулювати під час введення в експлуатацію за допомогою змінного резистора.

Додаткову передачу даних (температура та напруга живлення) можна вимкнути для зменшення обсягу даних, що передаються (якщо ці дані не потрібні або частоту вимірювання напруги необхідно значно збільшити)

Робоча логіка

Вимірювання здійснюється за допомогою високоточного АЦП-перетворювача ADS1115, підключеного до контролера Arduino Nano за протоколом I2C.

АЦП має кілька режимів вимірювання, які відрізняються точністю та тривалістю вимірювання. За замовчуванням прошивка налаштована на вимірювання з множником «8х», що відповідає діапазону виміру +/-0,512В та межі виміру на 1 біт = 0,25мВ.

[!УВАГА] Для встановленого множника x8 виміряна напруга не повинна виходити за межі +/-0,8 В (0,512+60%). Якщо вона перевищена, АЦП вийде з ладу. Для вимірювання вищих напруг необхідно спочатку змінити значення множника (що відповідно знизить точність вимірювання) у прошивці перед включенням системи

Після подачі живлення на систему витримується пауза в 1 секунду (змінна ADSPause, за умовчанням 1000 мс), необхідна для коректного включення вимірюваного обладнання.

Після цього кожні 0,3 с (змінна ADSDelay за замовчуванням 300 мс) вимірюється напруга на вході АЦП ADS1115. Для зменшення шуму вимірюються 3 значення напруги (параметр ADSCount, за замовчуванням 3), після чого розраховується середнє значення та використовується як результат вимірювання струму.

Для керування напругою живлення використовується власний аналоговий вихід Arduino, який вимірює напругу на аналоговому вході кожні 1 с (параметр PowerVolageDelay, за замовчуванням 1000 мс).

Для зниження напруги живлення 12В до діапазону вимірювання 0..5В використовується змінний резистор, що підключається до землі як знижувальний резистор. За умовчанням він встановлений у положення 6кОм+4кОм, що відповідає коефіцієнту зниження 2,5 (щоб привести результати на аналоговому вході назад до опорної напруги живлення 12 В, використовуйте параметр PowerVolageRatio, за умовчанням 2.5)

>

Для контролю температури використовується датчик DS18B20, вимірювання проводяться кожні 1 с (параметр TemperatureDelay, за умовчанням 1000 мс). При роздільній здатності за замовчуванням 9 біт кожен вимір займає 94 мс. При підвищенні точності частота вимірювань не може бути вищою за 1 вимірювання за 0,75 с.

Формат виводу

При надходженні запиту на вимірювання струму через послідовний інтерфейс надсилається рядок з вимірюваннями струму

При отриманні запиту n (запит усіх параметрів) у відповідь надсилається наступний рядок:

U:12.03 T:22.3 Q:0.33325

  • U:12.03 – напруга живлення 12,03 В
  • T:22,3 – температура 22,3°C
  • Q:0.33325 – напруга вимірювання 0,33325 В

При отриманні запиту q (запит лише за напругою) у відповідь надсилається наступний рядок:

Q:0.33325 – вимірювана напруга 0,33325 В

Одразу після отримання команди початку вимірювання контролер сигналізує про початок процесу вимірювання видачею логічного сигналу 5В на вхід D5. Цей сигнал можна використовувати для підключення сигнального світлодіода або підключення до іншої системи автоматизації

Основні характеристики

  • Основний контролер – Arduino Nano
  • Процесор – 16 МГц, ATmega328P
  • Пам'ять контролера - 32 КБ Flash + 2 КБ SRAM + 1 КБ EEPROM.
  • Аналоговий вхід контролера – 10 біт (1024 рівня)
  • Дозволя аналогового входу контролера – 0,00448 В
  • Датчик напруги – перетворювач АЦП ADS1115
  • Дозвіл датчика напруги – 16 біт.
  • Частота вибірки – від 8 до 860 вибірок за секунду.
  • Можливі множники та дозвіл АЦП

    • x2/3 – діапазонвхідного сигналу ±6,144,
    • x1 – діапазон вхідного сигналу ±4,096, 1 біт = 2 мВ
    • x2 – діапазон вхідного сигналу ±2,048, 1 біт = 1 мВ
    • x4 – введення діапазон ±1,024 В, 1 біт = 0,5 мВ
    • x8 – діапазон введення ±0,512 В, 1 біт = 0,25 мВ (за умовчанням)
    • x16 – діапазон вхідного сигналу ±0,256 В, 1 біт = 0,125 мВ
  • Датчик температури – DS18B20
  • Температурний дозвіл – 9..12 біт.
  • Час виміру – 94..750мс (9..12біт). За замовчуванням – 94мс.
  • Діапазон вимірювання – -10..+85°C
  • Точність вимірювання – ±0,5°C
  • Джерело живлення DC/DC перетворювач – MP1584
  • Вхідна напруга живлення – 4,5–28 В (регульована).
  • Номінальна вхідна потужність – 12 В, 0,5 А.
  • Робоча температура: – -10..+85 °С)
  • Розміри – 50x25x20 мм (компоненти зібрані у корпусі).
  • Вага – 50 г (з пластиковим футляром).

Компоненти

Схема підключення

Схема підключення датчика напруги Bluetooth

Дальші поліпшення системи

  • Додавання каналів вимірювання (всього до 4)
  • Видавання результатів за допомогою таймера або логічного сигналу (від кнопки або іншої системи автоматизації)
  • Додавання РК-екрана з відображенням результатів вимірювань у реальному часі.
  • Ведення журналу параметрів з відмітками часу.
  • Додавання тригера перевищення показання з додатковими діями (включення/вимкнення реле, видача логічних сигналів, звукова сигналізація тощо)
  • Додавання незалежного джерела живлення
  • Веб-інтерфейс та передача даних у хмару