РадиоКот :: Регистратор температуры, или за что мы платим?
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Защита и контроль >

Теги статьи: Добавить тег

Регистратор температуры, или за что мы платим?

Автор: Simurg, ghjdflf@mail.ru
Опубликовано 19.09.2016
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2016!"

 Поздравляю РадиоКота с Днём Рождения!

   С помощью данного регистратора можно записывать температуру в энергонезависимую память сроком на 7 дней или 31 день, загружать накопленный архив в компьютер и передавать в программу EXCEL, для построения графика. Работает регистратор от аккумулятора мобильного телефона, поэтому его можно использовать в любом месте, подвале, автомобиле и тд.
    Идея создания данного регистратора продиктована желанием пользоваться горячей водой. Когда я в течение нескольких лет сливал из горячего крана пол ванны летней воды, наматывая на счетчик расход, то постоянно возникало желание исправить эту ситуацию. Причем такая вода, только на моем стояке в многоквартирном доме. Воду приходилось долго сливать и ждать пока она прогреется. А это означает большой расход воды и денег. На нескольких других стояках дома горячая вода была всегда горячей и стабильно держалась на отметке +50 … +55 градусов в течение суток. Теплоэнергетик проблему не решил. Пришлось разбираться самому, и изучать тему домовой системы ГВС (горячего водоснабжения).

Предыстория


   Чтобы посмотреть график изменения температуры горячей воды в течение суток, нужен был регистратор температуры. А чтобы разобраться в причинах отсутствия нужной температуры горячей воды, их пришлось сделать несколько для каждого стояка и установить в подвал.
   Схема регистраторов очень простая и показала высокую повторяемость и экономичность. Всё это позволило исправить положение с горячей водой в лучшую сторону. Сделано их было много, и развитие проекта дошло до четырех версий (V1, V2, V3, V4).

   Первый график был получен в январе с двухканального регистратора первой версии (V1). Он позволял записывать данные одни сутки и каждые 2 минуты. На нем была видна проблема с температурой воды. Вода достигала нормальной температуры только в часы пик утром в момент максимального разбора воды.

   После нескольких измерений температуры ГВС непосредственно на трубах водоснабжения у себя на этаже, было решено перейти к самому источнику тепла – к бойлеру в подвал. Результаты измерения температуры воды из бойлера вселяли надежду, что всё получится. Вода на квартиры из бойлера подавалась стабильная и горячая + 55 градусов. Давление насосов было в норме.

   Далее было решено настроить температуру ГВС на моем стояке при помощи кранов «обратки» на чердаке. Самый длительный процесс, занявший целых три месяца, который в итоге ни к чему не привел. Ситуация с ГВС на моем стояке оставалась плачевной. Более того, она стала существенно ухудшаться и на остальных стояках дома. Все это указывало на тупиковую ветку решения проблемы, поэтому все краны были полностью открыты. На графике видно ухудшение и у других потребителей.

   К этому времени были уже сделаны одноканальные регистраторы второй версии (V2) и установлены в подвал на каждый стояк. Фото одного из регистраторов V2 в подвале:

     Это позволило охватить измерениями все стояки в доме. Они записывали данные неделю, каждые три минуты и это поначалу казалось достаточно долго. Но через 3 месяца бегать в подвал каждую неделю сильно надоело. Пришлось заново писать программу, чтобы увеличить длительность до месяца и сократить пробежки в подвал. Ограничение было в малой памяти EEPROM у ATMEGA128A только 4КБ. Особо не разгонишься. Смирился с возросшей дискретностью записи – 12 минут. Но как показала практика для ГВС можно еще больше. На читаемость графиков сильно не влияет.
    Контроль на моем стояке всегда продолжал вестись двухканальным регистратором V1 каждую неделю. Он позволял одновременно наблюдать за горячей и за холодной водой, чтобы заметить факт перелива горячей в холодную и наоборот. Тогда была доработана программа V1 до возможности записи 7 дней каждые 6 минут. Это существенно улучшало пользование регистратором, сократив тем самым ежедневные чтения данных. На результатах можно видеть очень незначительное улучшение. Теперь температура воды не падает ниже 30 градусов. Но такой исход решения проблемы меня все равно не устраивал. Хотелось как у всех – 50 градусов.      Результат длительной настройки:

   Также один регистратор писал температуру наружного воздуха за окном, длительностью месяц и дискретностью 12 минут. Видно из графика, что вечером после 15-00 на датчик попадало солнце, и начинался резкий рост температуры. На самом деле там должен быть спад. График температуры за апрель:

    Спустя три месяца, с момента получения первого январского графика, был найден опытный теплоэнергетик со стороны. Он после полного обследования системы ГВС нашего дома и анализа сохраненных графиков за все время, подсказал решение проблемы. Переставить циркуляционный насос с общей трубы «обратки» на проблемный стояк. Через неделю все было установлено и запущено. Начался новый виток измерений. Графики с регистратора V1 на моем этаже измерений с насосом приятно удивили. Сразу же температура воды поднялась до +37…+42 градусов и держалась неделю в этом интервале. После были настройки, удаление воздуха из системы ГВС, поиск теплых полов у жильцов, пережатых стояков и много других, не очень интересных мероприятий.

     В это время была разработана 3 версия регистратора V3, без кнопок. Она существенно проще собиралась, так как не было лишних проводов к разъему. Для неё тоже есть две программы: 7 дней дискретностью 3 минуты и 31 день 12 минут.
    В результате всей эпопеи, последний замер температуры закончился в августе, и регистраторы сняты со всех контрольных точек в подвале. График последнего замера показал удовлетворительную температуру горячей воды, и было решено остановиться на текущих результатах. Температура воды держится на постоянном уровне +40…+44 градуса месяцами. Хотя показателей других стояков по дому +50 градусов достигнуть не смогли, но это уже существенно лучше, чем было.
    Последний график за июль 2016г:

     Далее была радикально переработана сама концепция построения регистраторов температуры. Исходя из того, что регистратор работает от аккумулятора, то необходимо снизить энергопотребление до минимума. Решено было разделить функции регистратора от функций формирования отчета и передачи данных на компьютер. Тем самым можно отказаться от использования ATMEGA128A заменив её на более экономичную ATTINY13A, а EEPROM использовать внешнюю и более ёмкую.
    Тогда в функции регистратора будет входить только собственно сама функция регистрации данных. Запросить текущее время, измерить температуру, положить результат в ячейку памяти и заснуть. Экономия возрастет еще и за счет более длинного периода сна между проверками текущего времени = 12секунд против 2 секунд у АТМЕГА128. Это время увеличить никак нельзя, так как сторожевой таймер, который будит контроллер имеет фиксированную частоту тактового генератора. А делители выставили уже на максимум. Так появилась версия V4 еще более простая и экономичная. Длительность работы от одного заряда по расчетам может достигнуть 1 года. Тогда длительность записи на AT24C256 составит 1 год, дискретностью 20 минут непрерывно.
    Остальные функции: установить время, дату; прочитать память, сформировать отчет, передать на компьютер, будут возложены на устройство считывания данных с регистратора. Оно собирается одно для любого количества регистраторов, что упрощает сборку самих регистраторов, так как их количество больше. Результат переработки концепции построения регистраторов – версия 4 (V4). Длительность записи 31 день дискретностью 2 минуты. Получается огромный массив данных, что Exсel не все виды графиков позволяет строить с таким массивом.
    Для повторения имеет смысл брать только версии V3 и V4. Причем V3 если вы будете использовать в работе только один, или два регистратора. Тогда не нужно собирать еще и считыватель на МЕГА8. Если более, то лучше V4. А собирать V1 только если вам нужно одновременно два канала на один регистратор, или необходима гальваническая развязка (нужно разделить земли до и после оптопары). Версия V2 более сложная в сборке из-за пайки проводов на разъем.
    Регистраторы версий V1, V2 ,V3 сами формируют отчет из данных массива считанных из EEPROM и передают на компьютер. Для регистратора версий V4 необходимо дополнительный приемо-передатчик для формирования отчета.
     

Видео работы со всеми версиями регистраторов:https://www.youtube.com/watch?v=K16ulsHJJf0

 

Двухканальный регистратор версии V1

     Схема собрана на ATMEGA128A, которая используется из-за большого объема EEPROM равного 4 КБ для хранения журнала измерений. Также содержит часы DS1307. Имеет кнопки управления и светодиоды индикации режимов.

 Распайка штекера DB9:

Алгоритм работы для семидневного варианта прошивки прост:
1. Считывание текущего времени с секундами;
2. Если минуты кратны 6 и секунды меньше 2, инициация процесса измерения и записи, иначе сон;
3. Считывание дня недели;
4. Расчет адреса ячейки записи значения температуры по формуле. Адрес = ((clock*60) + min)/6;
5. Считывание максимальной и минимальной зарегистрированной температуры;
6. Измерение температуры;
7. Сравнение со значениями мин/мах и запись в ОЗУ часов DS1307;
8. Запись значения температуры в массив под номером дня недели, по адресу, высчитанному ранее из текущего времени;
9. Проверка состояния кнопок, если не используются, то сон. В зависимости от нажатой кнопки выгрузка архива, удаление, или установка и коррекция часов. Расчет времени i-кого измерения происходит из адреса по обратной формуле: часы = адрес/10. Минуты = (остаток от деления адреса на 10) *6). Таким образом формируется отчет и передается на компьютер в любые терминальные программы;
10. Сон на 2 секунды;
11. Переход в п.1;
Для работы с данной версией достаточно только два провода: корпус и провод передачи данных на компьютер (ТХ).
Общий вид первой версии: 

    Название кнопок не соответствуют выполняемым функциям из-за множества реализаций прошивки. Поэтому читаем расшифровку для чего, какая кнопка предназначена.
    При всех операциях с кнопками требуется их удержание до просыпания контроллера. Назначение кнопок:
«1мин» - Передать архив измерений в терминал.
«30мин»- Используется только в установке времени.
«Стереть»- При удержании двух кнопок «отмена» и «стереть» – удаление архива, перед новым измерением.
«Отмена» – Передать текущее время и день недели. При загрузке архива – отмена загрузки.
«Коррекция» – установить новое время дату. При этом в терминал передается время текущее и день недели. При этом кнопки: «1мин»- часы; «30мин»- минуты; «Стереть»- день недели;  «Отмена»- отмена установки времени; «Коррекция» - сохранить новое время и день недели.

3D модели платы:

Ток потребления:

Установка фьюзов :

Вид отчета передаваемого в терминал:

   Скорость порта 9600 режим 8N1.
   

Перед подключением кабеля к регистратору, последний должен быть включен заранее.
  В папке V1 есть прошивка для 7 дней 6 минут, считанная с долго проработавшего без ошибок регистратора, для 100% уверенности что все будет работать.


Одноканальный регистратор версии V2


Версия V2, как я писал выше, больше промежуточная и имеет еще кнопки. Для версии прошивки 31 день есть двунаправленная связь с компьютером (RX-TX). Их было собрано больше всех – 9 штук. Схема немного сократилась в отличие от V1. Убрана оптопара, две кнопки и один светодиод. Схема:

    В данной версии часы и термодатчик DS18B20 работают от батареи только в момент опроса. Остальное время они отключены. Это дает несколько большее время работы. Работа от одного заряда не новой батареи от мобильного телефона на 700 мА более трех месяцев. После трех месяцев я вынужден был их снять, и проверить максимальное время работы от одного заряда батареи не удалось.
    Алгоритм работы для 31 - дневного варианта прошивки:
1. Подача питания на часы и термометр. Считывание текущего времени с секундами;
2. Если минуты кратны 12 и секунды меньше 2, инициация процесса измерения и записи, иначе сон;
3. Считывание даты;
4. Расчет адреса ячейки записи значения температуры по формуле. Адрес = ((clock*60) + min)/12;
5. Считывание максимальной и минимальной зарегистрированной температуры;
6. Измерение температуры;
7. Сравнение со значениями мин/мах и запись в ОЗУ часов DS1307;
8. Запись значения температуры в массив под номером текущего дня месяца, по адресу, высчитанному из текущего времени;
9. Проверка состояния кнопок, если не используются, то сон. В зависимости от нажатой кнопки, или принятого символа по УСАРТ происходит выгрузка архива, удаление, или установка и коррекция часов. Расчет времени i-кого измерения происходит из адреса по обратной формуле: часы = адрес/5. Минуты = (остаток от деления адреса на 5) *12).
10. Отключение питания с часов и термометра. Сон на 2 секунды;
11. Переход в п.1;


    Вид собранных регистраторов в разных корпусах:

 

 

 

3D модели платы:

Ток потребления:

Установка фьюзов :

Перед подключением кабеля к регистратору, последний должен быть включен заранее.
При всех операциях с кнопками требуется их удержание до просыпания контроллера. Назначение кнопок:
«Читать» - Передать архив измерений в терминал.
«Коррекция»- Измерить текущую температуру.
«Стереть»- При удержании двух кнопок «отмена» и «стереть» – удаление архива, перед новым измерением.
«Отмена» – Передать текущее время и дату. Запрет сна для работы по УСАРТ. При загрузке архива – отмена загрузки.
«Коррекция» – установить новое время дату. При этом в терминал передается время текущее и день недели. При этом кнопки: «1мин»- часы; «30мин»- минуты; «Стереть»- день недели; «Отмена»- отмена установки времени; «Коррекция» - сохранить новое время и день недели.

Скорость порта 57600 режим 8N1.

Команды по терминалу (* символ подтверждения):
d установить новую дату. Например, сегодня 9 марта 2016г. Набрать в терминале: d090316*
t установить новое время. Например, время 12:55. Набрать в терминале: t1255*
i информация об устройстве. Выдает в терминал номер регистратора время дату и текущий адрес.
x удалить весь архив. Набрать в терминале: x123456*
a Прочитать весь архив. Выдает в терминал последовательно день за днем архив измерений.
с Прочитать текущую температуру. Выдает в терминал значение текущей температуры в градусах. Если датчик не подключен, пишет -15С.
Вид отчета передаваемого в терминал:

 

    В папке V2 есть прошивка для 31 дней 12 минут, считанная с долго проработавшего без ошибок регистратора, для 100% уверенности что все будет работать. 

 

Одноканальный регистратор версии V3


  Версия V3, уже избавилась от кнопок и двух светодиодов в отличие от версииV2. Двунаправленная связь с компьютером (RX-TX). Их было собрано несколько штук. Схема не существенно изменилась в отличие от V2, но плата улучшилась значительно. Удалось избавиться от проводов на разъем DB-9. Он теперь паяется на торец платы. Схема:

   В данной версии также часы и термодатчик DS18B20 работают от батареи только в момент опроса. Остальное время они отключены. Алгоритм работы такой же как и V2.
   На 3D модели платы модель DB-9 не совпадает с реальной:

Вид собранного регистратора корпусе:

Установка фьюзов :

Ток потребления:

    Перед подключением кабеля к регистратору, он должен быть включен заранее.
    Скорость порта 9600 режим 8N1.


Команды по терминалу (* символ подтверждения):


d установить новую дату. Например, сегодня 12 марта 2016г. Набрать в терминале: d120316*
t установить новое время. Например, время 21:05. Набрать в терминале: t2105*
i информация об устройстве. Выдает в терминал номер регистратора время дату и текущий адрес.
x удалить весь архив. Набрать в терминале: x123456*
a Прочитать весь архив. Выдает в терминал последовательно день за днем архив измерений.
с Прочитать текущую температуру. Выдает в терминал значение текущей температуры в градусах. Если датчик не подключен, пишет -15С.
   

Вид отчета передаваемого в терминал:

    В папке V3 есть прошивка для 31 дней 12 минут, считанная с долго проработавшего без ошибок регистратора, для 100% уверенности что все будет работать.

 

Одноканальный регистратор версии V4


    В соответствии с переработанной концепцией, регистратор собран на ATTINY13A и внешней памятью 24С256. Для того что бы можно было забрать архив нужно еще устройство чтения, которое останавливает работу регистратора и считывает данные с памяти и часов и передает их в USART.
Схема:

На схеме и на плате предусмотрена дополнительная память 24LC256, которую ставить не нужно. Так как используется только одна.
3D модель:

На фото видно на какое место устанавливать память. Печатные платы:

Общий вид регистратора:

Ток потребления:

Установка фьюзов :

    Работа с версией V4 несложная. Так как это только регистратор, то он только измеряет температуру и пишет её в память. Включил включатель, и регистратор работает. Каждые 12 секунд просыпается, кратко моргая светодиодом. Если в это время идет измерение, то светодиод вспыхивает на 1 секунду.
     Перед подключением кабеля к регистратору, он должен быть выключен.
     Есть прошивки 31 день дискретностью 2 минуты, и 1год дискретностью 20 минут.

 

Приемо-передатчик для регистратора версии V4
   

      Приемо-передатчик предназначен для чтения/записи памяти и часов реального времени регистратора V4. С его помощью данные из массива значений считанных из EEPROM формируются в отчет и передаются на компьютер.
     Перед подключением кабеля к регистратору его необходимо отключить.
При подключении кабеля к регистратору, работа регистратора останавливается. В этот момент температура не регистрируется.
Схема:

Вид собранного приемо-передатчика корпусе:

 

 Скорость порта 57600 режим 8N1.
 

 Команды по терминалу (* символ подтверждения):


d установить новую дату. Например, сегодня 12 марта 2016г. Набрать в терминале: d120316*
t установить новое время. Например, время 21:05. Набрать в терминале: t2105*
i информация об устройстве. Выдает в терминал номер регистратора, время, дату и текущий адрес.
x удалить весь архив. Набрать в терминале: x123456*
a прочитать весь архив. Выдает в терминал последовательно день за днем архив измерений.
q прочитать архив за один текущий день.
 

Установка фьюзов:

 

 Вид отчета передаваемого в терминал:

   В приемо-передатчике на данный момент времени не реализована поддержка формирования отчета для регистратора V4 с годовой прошивкой. В ближайшее время будет дописана и протестирована. С 31-дневной все работает.
   

Прошивка всех регистраторов и приемо-передатчика для V4 производится программатором USBASP, заказанном на алиэкспресс. На шлейф припаян разъем DB-9 в соответствии со схемой ниже. Таким образом, он подходит для всех устройств и позволяет менять прошивку «на лету» не разбирая корпуса прямо в подвале.
   

Для работы со всеми регистраторами использовалась терминальная программа Z0C Pro5.12. Считаю её наиболее удачной и серьёзной программой для любых работ по USART.

Распайка кабелей

В качестве зарядного устройства для всех регистраторов использовалась готовая плата на TPL4056 за 0,2$.

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

Плата V1 в архиве исправлена (выводы MOSI, MISO).

В прилагаемых файлах имеется вся информация, схемы платы, исходники, прошивки, загруженные с устройств, примеры полных логов. 
  

 

.

 


Файлы:
01.rar
02.rar
Стадии разработки.rar
04.rar
05.rar
06.rar
07.rar
Результаты.png
V1_KORPUS


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

60 7 7
4 0 0