Счетчик импульсов на дин рейку

Счетчик имеет два варианта исполнения, первый для снятия показаний со счетчиков с низкочастотным выходом импульсов, например водосчетчики, а второй для снятия показаний с электросчетчиков с импульсным выходом, где частота импульсов может достигать 16000 импульсов на 1 кВтч.

Первый вариант:

Счетчик имеет два входа. После С16 и С13 сигнал поступает на аналоговый коммутатор сигналов MM74HC4066, он коммутириует входные сигналы для разных типов датчиков. Например для датчиков системы NAMUR, если датчик используется герконовый или транзисторный например, то коммутатор коммутирует входы на триггер шмитта SN74LVC1G14DBVR для формирования сигнала с четким фронатами.

Далее сигнал поступает на цифровые или аналоговые (в случае NAMUR) входы микроконтроллера Atmega328, который и ведет подсчет импульсов. Счетчик имеет связь с внешним миром через Ethernet выполненного на микросхеме W5500 или WiFi (при установке на плату счетчика ESP8266) по протоколу MQTT.

Принципиальная схема счетчика
Принципиальная схема счетчика

При пропадании питания подсчитанные импульсы записываются в энергонезависимую память EEPROM микроконтроллера и при подачи питания счет продолжается.

Входные цепи счетчика
Входные цепи счетчика
Схема импульсного выхода счетчика воды Valtec
Схема импульсного выхода счетчика воды Valtec

Счетчик собран в корпусе фирмы меандр и представляет собой одномодульный (в соответствии с международным стандартом DIN 43-880) пластмассовый корпус для электронной аппаратуры, способ сборки без винтовой (на защёлках). Материал корпуса — ABS пластик светло серого цвета (RAL7035).  Крепление корпуса на DIN рейку (35мм) или на ровную поверхность.

Код счетчика в открытом доступе на GitHub. Счетчик имеет несколько конфигурируемых параметров. Изменение параметров через топики MQTT:

Создаваемые топики MQTT
Создаваемые топики MQTT

 

Топик MQTT Значения Описание
namur  true/false Переключает входы счетчика на тип — NAMUR.
polling 500 — 4294967295 мс Интервал публикации изменений данных в миллисекундах, т.е. данные счетчика публикуются только по изменению состояния, но не чаще заданного периода.
correction 0;0 Для ручного задания текущих показаний счетчика, данные отправляются с разделителем «;»
ratio 1 — 32767 Множитель, лучше использовать не на счетчике, а непосредственно в IoBroker
namur_lvl_1 /  namur_lvl_2 0 — 1023 Значение аналогового входа, для типа NAMUR, выше которого будет считаться как срабатывание датчика.
namur_brk_1 / namur_brk_2 0 — 1023 Значение аналогового входа, для типа NAMUR, ниже которого будет выдаваться ошибка на обрыв кабеля.
interrupt_1 / interrupt_2 1, 2 , 3 1 — CHANGE прерывание вызывается при смене значения на порту, с LOW на HIGH и наоборот.
2 — RISING прерывание вызывается только при смене значения на порту с LOW на HIGH.
3 — FALLING прерывание вызывается только при смене значения на порту с HIGH на LOW.
bounce 0 — 5000 мс Задержка в миллисекундах для программного подавления дребезга
save true/false При записи значения true происходит сохранение данных и параметров в энергонезависимую память EEPROM
A_1 / A_2 0 — 1023 Отображает текущие значения аналоговых входов при активном режиме NAMUR. Для облегчения конфигурации параметров — namur_lvl_x и namur_brk_x
count_1 / count_2 0 — 4 294 967 295 Значения счетчика.

Второй вариант:

Схема счетчика отличается только входной и программной частью. Входная часть сделана на отдельном микроконтроллере Atmega328 которая занимается подсчетом импульсов, расчетом текущей нагрузки, замером тока и выводит значения на UART порт.

Код для второго варианта так же на моей странице GitHub.

После отключения питания счетчик автоматически сохраняет текущие показания в энергонезависимой памяти EEPROM.

Публикуемые топики MQTT, счетчика импульсов
Публикуемые топики MQTT, счетчика импульсов
Топик MQTT Значения Описание
count 0 — 4 294 967 295 кВт. Значения счетчика.
power 0 — 32767 Вт Текущее значение мощности нагрузки
amp 0 -100 А. Ток нагрузки (требует подключения трансформатора тока)
polling 1000 — 32767 мс Интервал публикации изменений данных в миллисекундах, т.е. данные счетчика публикуются только по изменению состояния, но не чаще заданного периода.
bounce 0 — 10000 мс Задержка в миллисекундах для программного подавления дребезга
num 0 — 32767 Значение передаточного числа счетчика. Количество импульсов на 1 кВт*ч
save true/false При записи значения true происходит сохранение данных и параметров в энергонезависимую память EEPROM
correction 0 — 4 294 967 295 Для ручного задания текущих показаний счетчика
reset true/false Перезагрузка устройства с сохранением текущих значений
RAW count;power;amp;bounce;num;error Вывод сырых данных одной строкой.
Блок питания счетчика собран на микросхеме MC

MC34063, которая имеет широкий диапазон входных напряжений от 5.5 до 40 Вольт.

Корпус 151 Меандр
Корпус 151 Меандр
Подписаться
Уведомлять
guest

1 Комментарий
Старые вначале
Новые вначале По голосам
Межтекстовые Отзывы
Посмотреть все комментарии
Evgeny
5 лет назад

Огромную работу проделали!
Я делал Attiny85+ESP8266. А шлю в Blynk.сс или HTTP.
Идея была «подключил дома и забыл на 5 лет», чтобы питалась от батареек.

https://github.com/dontsovcmc/waterius

1
0
Поделиться своими мыслямиx