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


• О проекте
• Обратная связь
• Полезные ссылки
• Полезные программы
• Друзья сайта


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

Васил: Загрузчик для AVR микроконтроллеров
Ошибка #ifdef ST...

Алексей: Загрузчик для AVR микроконтроллеров
Да, есть такая фи...




           

Библиотека для AVR





AXLIB Генератор





Помощь сайту


   
				

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

	
	
	

Дата: 2 Декабря 2013. Автор: Алексей

	
	
Все началось с проржавевшего полотенцесушителя. Прохудился, надо менять. Ну сказано, сделано. Сходил на рынок, купил, принес. Вызвал сантехника Васю. Тот заценил все это добро одним глазам и сказал что скоро придет. Через час вернулся с газовой горелкой, трубой, болгаркой и коллегой Федей. Часа три они оперировали заунитазье и наконец-то позвали меня. Вот мол те два крана, а дальше мол е...сь сам. С тем и ушли. Ну думаю, надо посмотреть в инете как че дальше делать. Один умный человек посоветовал сварить полипропиленовые трубы и ими соединить сушилку. В "ОБИ" мне помогли с выбором труб и разных уголков, муфт и сгонов. Все это добро я привез домой и начал варить. После удачно-неудачной сварки, сушилка оказалась на своем месте. Подал воду и начал радоваться. И вот тут у меня упал взгляд на два непонятных провода выходящих из водосчетчиков и аккуратно скрученных. О... Зачем водосчетчику провод? Явно он что-то может передавать. Если да, то что за протокол? Поиск в интернете был весьма быстрым. Я моментально нашел описание сего девайса. Протокол меня просто порадовал своей сложностью :) А работает он так: 10 литров протекло, геркон замкнулся, разомкнулся. Единственное изменение которое присутствовало, ток это период замкнутого состояния. Длинна его зависела от скорости потока воды, ну или на сколько сильно открыт кран. Каждый месяц жена залезает туда для снятия показаний. И тут я решил облегчить ей эту задачу. Говорю мол сделаю я тебе такой девайс, который сам будет тикать с водосчетчиком и показывать данные на дисплей.

А вот они на фото.

 Водосчетчики

Далее сел обдумывать алгоритм. Думал, думал и надумал.

    1) Счет импульсов холодной и горячей воды берут на себя два внешних 
        прерывания по спаду. То есть когда замкнулся геркон, то ждем момента
        его размыкания и бац, 10 литров прибавили.

    2) Для ввода и корректировки данных, должны быть кнопки. 
        а) Вход/выход режима настроек.
        б) Ввод данных (больше/меньше).
        в) Кнопка выбора холодная/горячая вода.
        г) Выбор разряда (нужно, так как их там 7).

    3) Кнопка включения подсветки. Ну куда без нее :)

Итого мы имеем два двойных клеммника для герконов и 6 кнопок. Вот такая у меня получилась схема. Жуть, да? На скорую руку етит...


Теперь картинки режимов.

Первый старт, счетчик по нулям. Буква "W" говорит о том что он в работе.

 В работе

Жмакаем на кнопку "Коррекция" и входим в режим ввода данных. Буква "S" говорит о том что мы в режиме ввода данных, а буква "H" может сменится на "С" и означает горячая/холодная вода.

 Коррекция

Жмакая по кнопке "Разряд" выбираем соответственно разряд. Для наглядности рядом с буквой "H" или "C" появится буковка.

 e - единицы
 d - десятки
 s - сотни
 t - тысячи
 D - десятки тысяч
 S - сотни тысяч
 m - миллионы
 M - десятки миллионов

Кнопками "Коррекция +" и "Коррекция -" выставляем значения по счетчику для холодной и горячей воды.

 Ввод данных

Далее проделываем ту же работу с холодной водой поменяв текущее значение кнопкой "Горячая/Холодная". После ввода данных нажимаем на кнопку "Коррекция" для подтверждения водимых данных. Контроллер перейдет в режим работы о чем покажет буквой "W" и начнет считать расход воды.

 Ввод в работу

Главное не забыть что данные выводятся до десяток. Единицы литров воды он не учитывает. То есть значения выводятся без крайнего правого разряда водосчетчика.

Кнопка "Подсветка" нужна для того чтобы включить или выключить подсветку. Но если все же после включения подсветки забыть ее выключить, она сама выключится через определенный промежуток времени. Период включения подсветки можно менять изменив значение переменной "t". Работа задержки проста. Пока выполняется условие if переменная увеличивается при каждом пробеге по программе. Это удобно тем что задержка есть, но при этом программа выполняется.

В железе я не реализовывал, так как хочу убрать дисплей, а передачу показаний замутить по RS-485 прям на комп и там смотреть. Так что если кто захочет сделать с дисплеем то милости просим. Проект для CodeVisionAVR и проект для Proteus можно скачать ниже.

Фьюз биты для ATmega8

Фьюз биты для ATmega8

Вот и все. Удачи!
Внесены небольшие изменения в программу:
1 - Изменена визуализация ввода началных значений.
2 - Добавлен русский вариант для ЖК с кириллицей.

Проект для CodeVisionAVR
Проект для CodeVisionAVR с кириллицей
Проект для CodeVisionAVR с кириллицей и запятой
Проект для Proteus



Дмитрий    04.04.14

вдруг отключили электричество...и? значения не сохранились?

Алексей    04.04.14

Данные пишутся в EEPROM. Смотрите исходник, 41 строка.

Андрей    28.09.14

По хорошему на дисплей нужно выводить только целые кубы, платим ведь по кубам. Кстати, можно программно организовать тест "забитости грязевиков" Если мерить проход воды на время.

Алексей    28.09.14

Все в ваших руках :) Пришлите мне на почту ваш вариант и я его опубликую.

alex.korole-ff@yandex.ru    02.03.15 14:24

Добрый день! Буду очень признателен если Вы поделитесь информацией по fuse-битам? Заранее благодарен! С уважением!

Александр    20.10.15 23:31

Добрый день!Как тактируется контроллер,нужен ли в схеме кварц? В исходнике есть о нем упоминание. Сброс, запитка контроллера? Удалось ли реализовать передачу показаний по RS-485?

Алексей    21.10.15 07:31

Александр, супруга сказала что такая приблуда ей не нужна. Поэтому все заглохло. Если использовать RS-485, то необходимо ставить кварц кратный битрейту. Например 7,3728 МГц. Питание подается по параллельной паре UTP. Протокол для передачи показания довольно простой, даем старт байт затем 4 байта данных и стоп байт. Вроде и все.

Павел    02.11.15 11:42

Алексей, добрый день! Прочитав Вашу статью я загорелся реализовать данный вариант считывания данных со счетчика и переноса их на дисплей. Сам работаю в ИТ, поэтому с программированием проблем возникнуть не должно, но вот с "железом" не связан никак, поэтому самостоятельно спаять схему не смогу. Скажите, может быть есть какие-либо варианты готовых схем? Например Arduino или что-нибудь в этом духе? Смотрел на сайте Чип и Дип - там миллион вариантов и готовых плат с контроллерами и кварцом и самих дисплеев, но как собрать всё воедино я просто не представляю. Можете что-нибудь порекомендовать? Заранее спасибо! Павел

Алексей    02.11.15 15:32

Сначала нужно решить на каком МК будет реализована схема. Например Если все делать с нуля, то можно пойти еще дальше и например использовать мою плату с STM32F030F4P6 + купить TFT дисплей ST7735. Оформить все это в красивом боксе и радовать глаз. Либо можно купить arduino mini и стерев загрузчик, просто залить прошивку скачав ее отсюда и так же пользоваться устройством. Тут важен не подход к готовой плате, а под какой МК есть желание писать программу. Та же Arduino это всего лишь ATmega8 и самописный загрузчик. Так что выбирайте МК, а я направлю куда лучше копать.

Павел    02.11.15 16:19

Алексей, спасибо большое за ответ! На самом деле для меня не очень принципиален сам МК, поскольку я и предполагал использовать именно Вашу прошивку (за нее Вам отдельное спасибо!). У меня проблема именно в том, чтобы собрать всё это. Поскольку, даже понимая идею и предназначение всего этого, я не имею никакого представления куда и что подключать и что с чем соединять. Поэтому, дабы уменьшить количество манипуляций со сборкой, я предполагал использовать Arduino Uno R3 на базе ATmega328, купив к нему дисплей, кнопки и источник питания. Спаять плату сам я точно не смогу. Скажите, такая комбинация подойдет для Вашей прошивки? Заранее спасибо!

Алексей    02.11.15 16:35

Подойдет. Но лучше mini. Там тот же МК, а плата меньше.

Павел    02.11.15 16:41

Я исходил из того, что Uno изначально имеет встроенный USB порт и разъем питания, чтобы опять же было меньше манипуляций со сборкой, размер платы также не имеет значения, поскольку места достаточно. Также в качестве кнопок я подобрал восьмикнопочную матрицу. Но как соединить это пока не представляю. Скажите, Вы сможете помочь рекомендациями по сборке?

Алексей    02.11.15 18:33

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

Павел    03.11.15 12:16

Алексей, приветствую! Скажите, а Вы готовы были бы взяться за такой проект? Если да, то может быть обсудим варианты нашего дальнейшего взаимодействия? Или, возможно, Вы могли бы мне кого-нибудь порекомендовать? Как с Вами можно связаться?

Алексей    03.11.15 17:18

Если в планах это коммерческий проект, то нужно разрабатывать плату с нуля.))) Если для себя, то какая нужна помощь?

Max    22.11.15 17:28

Собираю свой проект под четыре счетчика с LCD 4x20 в тестовом варианте.

Алексей    22.11.15 21:31

Это на 2 горячих и 2 холодных счетчика?

Max    27.11.15 10:04

2 на воду + газ + электро = 4

Алексей    27.11.15 14:12

А газ и электро тоже импульсные?

Max    27.11.15 14:35

Да

Алексей    27.11.15 15:27

Ну если они импульсные, то проблем не должно возникнуть.

СергейНикола    29.03.17 21:58

e - единицы
d - десятки
s - сотни
t - тысячи
D - десятки тысяч
S - сотни тысяч
m - миллионы
M - десятки миллионов

А чего курсор не включить-то было?

Алексей    29.03.17 22:13

Карты в руки. Я опубликую)))




Чтобы вставить ссылку используйте форму вида[url]http://www.адрес.ru[/url][text]текст ссылки[/text]
Чтобы вставить код используйте форму вида[code]код[/code]

Имя:   





  








Вверх


Рейтинг@Mail.ru Яндекс.Метрика