Двухпозиционный (ON/OFF) контроллер с терморезистором Pt100 и управлением со смартфона через bluetooth модуль HC-05

На этой страничке представлена простейшая система управления подогревом по типу включить/выключить, которая использует в качестве измерителя температуры самодельный температурный преобразователь термосопротивления Pt100.

Двухпозиционный (ON/OFF) контроллер

Двухпозиционный (ON/OFF) контроллер

Что может данная система управления. Она включает и выключает подогреватель при заданных температурах. Выдает сигнализацию по высокой и низкой температуре. Все события выводятся на LCD-дисплей. Система позволяет настраивать все необходимые параметры и записывать их в память Arduino. В системе есть полностью ручной режим (включение/выключение).

В чем же разница с контроллером, представленным на этой страничке сайта? В данную схему добавлена возможность получать данные о температуре и управлять системой со смартфона по средством bluetooth модуля HC-05.

СОСТАВ СИСТЕМЫ

PLC Arduino UNO с шилдом Sensor Shield v 5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания реле и дисплея, реле включения и выключения подогревателя и реле сигнализации, кнопочный пост с тремя кнопками и самодельный температурный преобразователь термосопротивления Pt100. Датчик Pt100 можно использовать штатный, установленный на системе подогрева. Также для связи смартфона и Arduino добавлен bluetooth модуль HC-05.

КАК РАБОТАЕТ

При подаче питания на Arduino контроллер замерит текущую температуру объекта. При снижении температуры ниже заданной минимальной контроллер подаст питание на реле включения подогревателя, а при превышении заданной максимальной выключит реле. В случае, если текущая температура уйдет за пределы аварийной минимальной или максимальной уставки, будет подано питание на реле сигнализации. При неисправности термодатчика вы можете переключиться в ручной режим и сами включать и выключать подогреватель.

ИНДИКАЦИЯ LCD

Верхняя строчка :

Нижняя строчка :

УПРАВЛЕНИЕ СИСТЕМОЙ КНОПКАМИ

Есть два способа управления данной системой : с помощью трех кнопок : НАСТРОЙКИ, ВВЕРХ, ВНИЗ, и по средством специального приложении на смартфоне. Рассмотрим функции тактовых кнопок подробно :

Кнопка НАСТРОЙКИ

При нажатии этой кнопки вы попадете в меню настроек и будете циклично переходить по пунктам меню. После последнего пункта меню вы снова вернетесь на основной экран (показания температуры). Изменение параметров осуществляется кнопками ВВЕРХ и ВНИЗ. Все цифровые параметры имеют верхнюю и нижнюю границы, за которые вы выйти не сможете. Изменение цифровых параметров сразу принимается системой, подтверждение не нужно. Обратите внимание, верхнюю и нижнюю границы, а также значение по умолчанию вы можете сами изменять в скетче.

Пройдемся по пунктам меню Настройки.

MinTemp XXºC
(minimum temperature) : температура включения подогревателя в ºC. Значение по умолчанию - 29ºC. Нижняя граница - 0ºC, верхняя - 980ºC.
MaxTemp XXºC
(maximum temperature) : температура выключения подогревателя в ºC. Значение по умолчанию - 33ºC. Нижняя граница - 0ºC, верхняя - 999ºC.
AlarMin XXºC
(alarm minimum temperature) : температура активации сигнализации по низкой температуре в ºC. Значение по умолчанию - 28ºC. Нижняя граница - 0ºC, верхняя - 990ºC.
AlarMax XXºC
(alarm maximum temperature) : температура активации сигнализации по высокой температуре в ºC. Значение по умолчанию - 40ºC. Нижняя граница - 0ºC, верхняя - 999ºC.
AlarmDiff
(alarm temperature differential) : дифференциал сигнализации в ºC. Значение по умолчанию - 0ºC. Нижняя граница 0ºC, верхняя 990ºC.
TempCor
(temperature correction) : поправка температуры в ºC. Значение по умолчанию - 0ºC. Нижняя граница -100ºC, верхняя +100ºC. Эта поправка добавляется к замеренной температуре. Если поправка отличается от нуля, в нижней строчке появится восклицательный знак.
Min_Volt
нижняя граница вольтажа с аналогового порта датчика Pt100, переведенная в цифровой вид. Значение по умолчанию - 39. Нижняя граница 0, верхняя 1023. Эта величина и далее необходимы для калибровки самодельного преобразователя термосопротивления Pt100.
MinPt
соответствующая нижней границе температура в ºC. Значение по умолчанию - 0ºC. Нижняя граница 0ºC, верхняя +1000ºC.
Max_Volt
верхняя граница вольтажа с аналогового порта датчика Pt100, переведенная в цифровой вид. Значение по умолчанию - 546. Нижняя граница 0, верхняя 1023.
MaxPt
соответствующая верхней границе температура в ºC. Значение по умолчанию +100ºC. Нижняя граница 0ºC, верхняя +1000ºC.
Alarm ON/OFF
включение или выключение сигнализации по температуре. Значение по умолчанию - ON (сигнализация включена). При включенной сигнализации и выходе температуры за пределы уставок подается питание на реле сигнализации, а на LCD выводится "TLow" - низкая температура или "THigh" - высокая температура. При отключенной сигнализации реле срабатывать не будет, но текст на экране все равно появится.
Auto/Man
переключение между автоматическим и ручным режимом. Значение по умолчанию - Auto (автоматический режим). При переходе в ручной режим реле подогревателя отключается.
Heater ON/OFF
включение или выключение подогревателя. Значение по умолчанию - OFF (выключен). Этот пункт меню работает только в ручном режиме.
ReadSet. (UP)
чтение настроек из энергонезависимой памяти Arduino. При нажатии кнопки ВВЕРХ настройки из памяти PLC перейдут в оперативную. Обратите внимание, в настройки записываются только цифровые параметры (пункты 1 - 6).
SaveSet. (UP)
запись настроек в энергонезависимую память Arduino. При нажатии кнопки ВВЕРХ текущие параметры запишутся в постоянную память PLC. Обратите внимание, в настройки записываются только цифровые параметры. При перезагрузке контроллера (выключение - включение) именно эти настройки загрузятся в программу.
Default (UP)
загрузка значений по умолчанию (пункты 1 - 6). При нажатии кнопки ВВЕРХ параметры, определенные в начале скетча, загрузятся в оперативную память PLC (в текущие настройки). Эта функция может быть полезна, когда вы запутались в регулировках и хотите все вернуть в исходное положение. Но есть и еще одна причина ее использования. Если вы на одну и ту же плату Arduino постоянно записываете скетчи разных проектов, возможна ситуация, когда параметры одного проекта запишутся в настройки другого. Конечно, это можно исправить, но представьте, что в параметре, где должно быть, например, число 10, стоит 32000. Вручную кнопками ВВЕРХ или ВНИЗ корректировать это очень долго, проще сбросить настройки к заводским, а уже затем их подправить.

Кнопки ВВЕРХ-ВНИЗ

Этими кнопками меняются значения параметров.

УПРАВЛЕНИЕ СИСТЕМОЙ СО СМАРТФОНА

Второй способ управления системой - из приложения на смартфоне через bluetooth модуль HC-05. Как его подключить, рассказывается ниже. Для работы нам необходимо установить на смартфон специальное приложение. Их довольно много, и чтобы выбрать правильное, нужно ответить на вопрос, что мы хотим от него получить. Конкретно в этом проекте необходимо заменить (продублировать) функции тактовых кнопок, а также иметь возможность получать данные о текущей температуре с датчика. Исходя из этого, в арсенале приложения должны быть джойстик или четыре кнопки (право-лево для перемещения по пунктам меню настройки, и вверх-вниз для изменения параметров). Также понадобятся переключатели ON/OFF для ручного управления системой. А чтобы получать данные с датчика, подойдет любой индикатор цифрового типа с возможностью настройки диапазона, например, спидометр (естественно, в нашем случае он будет показывать температуру).

Раз уж зашла речь о приложениях, расскажу, какие я попробовал и почему от некоторых отказался.

Arduino Bluetooth Controller 5.3 (MyValley Apps)
Почему то джойстик не работает без подключения к интернету. После подключения выдает ошибку. Удалил.
Ardutooth 1.2.4 (Frederik Hauke)
Чистый терминал. Функций управления нет. Удалил.
Dabble 1.0.6 (STEMpedia)
Не подсоединяет bluetooth, пока не включена gps-навигация (а зачем?), но при этом выдает предупреждение, что gps нельзя включить, если работает bluetooth - замкнутый круг. Удалил.
Arduino Controller - Bluetooth Terminal for Arduino (AMSoftwares)
Не обнаруживает модуль HC-05. Удалил.
Arduino BlueControl 4.5 (Broxcode)
Очень хорошее приложение, много настроек. Есть и джойстик и кнопки. Единственный минус - кривая реализация получения данных (панель Metrics). Оставил, как запасной вариант.
Bluetronics 1.0.1 (Aniket Raj)
Это приложение было взято за основу для этого проекта. Но это не значит, что оно самое лучшее. При всех своих плюсах : красивый дизайн, много возможностей по управлению, продвинутые функции (например, построение графика полученных данных), есть и минус - практически нет настроек, а те, что есть, не записываются в память при выходе из программы. Учитывая, что версия приложения 1.0.1, надеюсь, автор его не забросит и в будущем доработает.

ПОДКЛЮЧЕНИЕ СМАРТФОНА

Установите приложение Bluetronics на свой смартфон. Активизируйте Bluetooth. Запустите приложение. При первом запуске оно попросит разрешение на определение местоположения, разрешите. Нажмите на "Select Your Device".

Приложение Bluetronics

В открывшемся списке доступных устройств выберите модуль HC-05.

Приложение Bluetronics

Кнопка "Connect" станет активной. Нажмите на нее.

Приложение Bluetronics

Дождитесь окончания процесса подсоединения.

Приложение Bluetronics

Об успешном подсоединении вам подскажет надпись внизу экрана.

Приложение Bluetronics

Теперь пройдемся по некоторым элементам управления. Для начала выберем джойстик "Arrow Key". Здесь представлены пять кнопок. Две из них (лево - left - L и право - right - R) в нашем проекте отвечают за переход по пунктам меню Настройки. С помощью двух других (верх - top - T и низ - bottom - B) можно изменять текущий параметр в настройках. Эти четыре стрелки дублируют функции тактовых кнопок. Пятая кнопка OK в проекте не используется.

Приложение Bluetronics

Следующим элементом управления будет переключатель "Switch". На этой вкладке их несколько штук. Конкретно в этом проекте переключатель №1 включает-выключает автоматический режим работы подогревателя, переключатель №2 включает-выключает подогреватель, если он находится в ручном режиме, а переключатель №3 включает-выключает сигнализацию по температуре. К сожалению в этом приложении нельзя переименовать названия переключателей.

Приложение Bluetronics

Кроме функции управления, приложение Bluetronics имеет возможность мониторинга за каким-либо параметром. В нашем случае это будет температура с датчика Pt100. В качестве индикатора здесь имеется спидометр, на который и будет приходить информация с Arduino. Опять же, переименовать спидометр в термометр в приложении возможности нет. Можно изменить диапазон шкалы, но эта настройка не сохраняется даже при переходе на другую вкладку внутри приложения.

Приложение Bluetronics

Итак, стоит ли вообще использовать управление со смартфона, чтобы заменить им те же тактовые кнопки и LCD-экран. Можно, только, если вы напишите свое собственное приложение под конкретный проект. В остальных случаях (при использовании универсальных приложений) это не имеет смысла, так как главное преимущество такого управления - дистанционность полностью нивелируется отсутствием обратной связи от контроллера к смартфону. Например, управляя со смартфона настройками, вы не видите реакцию на ваши действия на экране смартфона и вам нужно подходить и смотреть ее на экране LCD.

Тем не менее, попробовать создать хотя бы один проект с использованием смартфона и bluetooth модуля можно. Как минимум, чтобы освоить совместную работу Arduino и этих устройств и научиться программировать реакцию на их действия.

ПОДКЛЮЧЕНИЕ

Здесь приведено соединение всех элементов системы управления, Arduino (через шилд) и самого подогревателя. В виде схемы подключение представлено ниже.

Подключение подогревателя

Подключение подогревателя

Плата Arduino и Sensor-shield

Подогреватель

Настоятельно рекомендуется подключать подогреватель через контактор, катушку которого питать от реле системы. Реле включения/выключения подогревателя : COM - источник питания с напряжением аналогичным катушке контактора подогревателя, NO - клемма катушки контактора подогревателя (например А1). Минусовой или нулевой провод контактора можно оставить штатный.

Bluetooth модуль HC-05

Примечание. Рекомендую использовать для проекта шилд версии 5.0 - на нем есть отдельная колодка для подключения bluetooth модуля.

Плата для bluetooth модуля HC-05

Для удобства работы с модулем HC-05 вы можете собрать небольшую плату. На ней, кроме колодок под пины, устанавливается и делитель напряжения. Ниже представлена электросхема платы.

Электросхема платы

Электросхема платы

Ниже приведена схема пайки. За базу взята макетная плата 30х25 мм. Конечно вы можете расположить элементы по другому и более компактно. Обратите внимание, для экономии места на плате резисторы установлены вертикально. Колодка ARDUINO(M) - это штыревой соединитель на 6 пинов, колодка ARDUINO(F) - это разъем PBS на 6 пинов, колодка HC-05 - тоже разъем PBS на 6 пинов.

Схема пайки платы

Схема пайки платы

ЧТО НУЖНО ДЛЯ ПРОЕКТА

ВОЗМОЖНЫЕ ПРОБЛЕМЫ

Главная проблема, возникшая при полевых испытаниях, большая чувствительность Arduino к электромагнитным полям (плата зависает). Это явление возникает при коммутации через реле токов переменного напряжения 220 В и более. В этом случае вынесите реле К1 на расстояние не менее полуметра от платы.