Меню

Счетчик импульсов для газового счетчика

Счетчик импульсов на Linux (получаем информацию о расходе газа со счетчика ВК-G4)

В процессе автоматизации домашнего хозяйства было обнаружено, что имеющийся в наличии счетчик расхода газа ВК-G4 обладает интересной особенностью: его в младший разряд встроен магнит, который может замыкать геркон, устанавливаемый снаружи самого устройства (т.е. для его подключения не требуется разрешения от газовой компании). Это даже указано в паспорте на сам счетчик. Правда там рекомендуется использовать «НЧ генератор импульсов IN-Z 61», но на самом деле это просто геркон с креплением на счетчик за невменяемую цену. Поэтому вместо IN-Z 61 было решено использовать самый дешевый датчик Холла с цифровым выходом (т.е. со встроенным триггером Шмитта).

Из имеющегося в наличии был взят датчик Холла типа SS441A. В соответствии с datasheet на SS44xA в третьей цифре кодируется его магнитная чуствительность, которая обуславливает физическое расположение датчика на газовом счетчике.
В качестве управляющей системы у меня используется одноплатный компьютер Banana PI, работающий под управлением ОС Linux (vanilla kernel 4.2+). Физическое подключение SS44xA очень простое:
вывод (-) подключаем к общему проводу;
вывод (+) подключаем к +5V (а не к +3.3V);
вывод (D) подключаем к порту GPIO и подтягиваем через резистор 4.7 кОм на +3.3V.
Но каково же было мое удивление, когда я не смог обнаружить kernel in-tree drivers, способных просто подсчитывать кол-во импульсов на заданном порту GPIO! Я понимаю, что Linux — это не ОС реального времени, но просто считать низкочастотные импульсы… Неужели только у меня возникла такая задача?
Внимательно посмотрев последние исходники ядра, было обнаружено два промежуточных решения:

  1. Использовать штатный драйвер UIO. Если такое устройство открыть как файл в прикладной программе и записать в него соответствующее значение, то последующая операция чтения из него будет приостановлена до появления прерывания, вызванного изменением уровня сигнала на соответствующем GPIO;
  2. Использовать штатный драйвер gpio_keys. При помощи него можно объявить GPIO в качестве «кнопки» (button) или «переключателя» (switch), и отлавливать в прикладной программе события, связанные с изменением их состояния.

Использование любого из этих решений потребует наличия прикладной программы-демона, которая должна быть активна для выполнения подсчета импульсов. Это не лучшее решение, так как в случае ее завершения по какой-либо причине мы можем пропустить некоторое количество импульсов, что для целей учета достаточно критично. Поэтому, для минимизации рисков, было принято решение написать собственный драйвер устройства, который бы работал непосредственно на уровне ядра.
Итак, встречайте: драйвер для подсчета импульсов на произвольной линии GPIO, конфигурируемый при помощи технологии Device Tree.

Preconditions

  • Используемое ядро Linux версии не ниже 4.x
  • Заголовочные файлы ядра, использованные при его сборке (обычно расположены в /usr/include/linux на целевой системе)
  • Средства для компиляции модулей на целевой системе либо средства для кросс-компиляции
  • Исходный или двоичный файл Device Tree для используемой аппаратной платформы
  • Компилятор Device Tree в двоичный формат (программа dtc)

Для своей работы я использую сборку от Armbian, причем на их же сайте можно взять и исходники ядра, на основе которых и была подготовлена сборка. Но, в принципе, нет никаких ограничений на целевую сборку быть не должно.
Сборку внешнего модуля я здесь не описываю (а надо? в принципе ресурсов с таким описанием достаточно много), поэтому считаем, что у вас уже есть готовые модули counters.ko gpio-pulse.ko, собранные под ваше ядро. Дальнейший процесс я описываю на примере Banana PI, но по аналогии его можно перенести и на любую другую платформу.

Открываем табличку с описанием разъемов на плате. Нас интересует разъем CON3 (GPIO Headers). Выбираем любой понравившийся нам контакт, и определяем его функционал (например мне понравился контакт 12 на разъеме CON3, на который выведен порт сокета PH2). Сверяемся с Allwinner A20 datasheet (таблица GPIO multiplexing function) — выбранный порт должен поддерживать генерацию прерываний (в моем случае это EINT2 в столбце Multi 6). Дальше нам нужно определить номер pin с точки зрения GPIO, которому соответствует выбранный порт (PH2). Мне проще было определить это непосредственно на рабочем устройстве:

# grep ‘(PH2)’ /sys/kernel/debug/pinctrl/1c20800.pinctrl/pinmux-pins
pin 226 (PH2): (MUX UNCLAIMED) (GPIO UNCLAIMED)

заодно и убедился, что этот порт в данный момент ничем не используется (MUX и GPIO UNCLAIMED).

Читайте также:  Счетчики ителма чье производство

Теперь можно создавать Device Tree configuration. Примеры на некоторые устройства имеются в исходных текстах ядра Linux в папке arch/arm/boot/dts, для Banana PI файл называется sun7i-a20-bananapi.dts
В нем мы производим следующие изменения:

Параметр gpios в node расчитывается следующим образом:

  • Сначала идет ссылка на метку pio;
  • Далее идет номер банка, в котором содержится искомый порт GPIO. Для Allwinner A20 в каждом банке содержатся 32 порта, поэтому номер банка определяется как целая часть от деления GPIO pin на 32;
  • Далее идет номер pin внутри банка. Т.к. в каждом банке по 32 pin, то это значение вычисляется как остаток от деления GPIO pin на 32;
  • Последним параметром идет указание, какой уровень сигнала считать активным

Параметр interrupts в node расчитывается следующим образом:

  • Первым параметром указывается номер прерывания у контроллера GPIO (для EINT2 это будет 2)
  • Вторым параметром указываем IRQ_TYPE_EDGE_FALLING, разрешающей генерацию прерывания при переходе сигнала с высокого уровня в низкий (т.к. датчик у нас с открытым коллектором и подтянут к +VCC)

Выполняем компиляцию измененного файла Device Tree:

Полученным sun7i-a20-bananapi.dtb перезаписываем файл в /boot/dtb/sun7i-a20-bananapi.dtb
Модули ядра counters.ko gpio-pulse.ko записываем в любое место внутри /lib/modules/$(uname -r)/kernel/drivers и загружаем целевую систему. На загруженной целевой системе даем команду

и снова выполняем перезагрузку. После этого смотрим вывод команды dmesg:

Отлично, модули загружены и работоспособны. Проверяем функционал сначала программным путем:

(это мы имитировали сигнал программными средствами).

Теперь подключаем датчик Холла и убеждаемся в его работоспособности путем поднесения к нему какого-нибудь магнитика (например, от магнитной наклейки на холодильник).

Послесловие

Наконец-то у меня появилось время для размещения фоток. Итак:

Собственно сенсор. Его чуствительной частью является сторона без скосов (т.е. ее прижимаем к счетчику под младшим разрядом)

Затем фиксируем сенсор изолентой

Для прочности вырезаем из пенопласта кусок под размер выемки в газовом счетчике и дополнительно фиксируем сенсор им

После чего фиксируем этот кусок и провод изолентой

Ну и вот что получилось в результате

За решение по крепежу просьба ногами не пинать, т.к. в доме пока еще идет ремонт и крепеж, фактически, является макетным.

Источник



Датчик импульсов IN-Z61 для газового счетчика ELSTER BK

Назначение

Датчик импульсов IN-Z61 используется в автоматизированных системах сбора информации. Предназначен для установки на газовые счетчики ELSTER модификации BK. Подходит для счетчиков ELSTER BK с любым номинальным расходом от G1.6 до G40.

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

Внутри имеет два геркона. Один из них срабатывает от магнитной вставки, встроенной в ролик младшего разряда отсчетного устройства — это импульсный выход для контроллера (зеленый и коричневый проводники). Второй предназначен для сигнализации влияния на счетчик внешним магнитным полем (желтый и белый проводники).

Количество литров которые соответствуют одному импульсу определяются моделью счетчика. Данный параметр написан на циферблате счетчика.

Датчик имеет 0.5 метровый 2х жильный кабель, который при необходимости можно удлинить до 50 метров. Можно использовать стандартный кабель типа витая пара или кспв. Для одного датчика достаточно однопарной витой пары. Используя, например, четырехпарную витую пару можно проложить трассу сразу для 4х датчиков или 2х счетчиков воды и 2х датчиков. Для удобства приобрести необходимый кабель можно в нашем интернет магазине в разделе АКСЕССУАРЫ.

Дистанционный съем показаний по Wi-Fi

Для дистанционного съема показаний с газовых счетчиков по Wi-Fi подключите его к контроллеру SAURES и зарегистрируйте личный кабинет. Один контроллер обслуживает до 8 счетчиков и датчиков.

Руководства, инструкции и документация

Скачайте свежие версии инструкций к оборудованию SAURES и прочую документацию в разделе Документация и утилиты.

Часто задаваемые вопросы

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

Видеоинструкции и YouTube-канал

Видеоинструкции по настройке оборудования расположены в разделе Видеоинструкции.

Больше видео о продуктах SAURES и совместимом оборудовании на нашем канале YouTube.

Источник

Герконовый датчик импульсов для газового счетчика BK-4GT

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Читайте также:  Чем отличаются типы данных числовой от счетчика

Отписаться от уведомлений вы всегда сможете в профиле автора.

Статья относится к принтерам:

Надоело мне ходить к счетчикам для сбора с них данных. Если с электрических счетчиков получать импульсы легко, счетчик воды при замене купил сразу с импульсным выходом, а вот с газовым была проблема. В самом счетчике импульсного выхода нет, а купить такой датчик стало жалко денег, т.к. стоят датчики дороже 1000 руб (находил в интернете в пределах от 1100 руб. до 1500 руб.).

А раз существует внешний датчик, значит в счетчике имеется возможность снятия импульсов. В паспорте к моему счетчику BK-4GT было написано, что на младшем разряде имеется магнит. Внешний датчик содержит геркон. Находил видео где считывали показания датчиком Холла взятого из кулера ПК. Датчики Холла у меня имелись, но мне было удобнее использовать геркон. Кое как прилепил геркон и какое-то время он передавал показания, но периодически отваливался. к тому же вид такого монтажа не особо нравился контроллерам, приходилось каждый раз пояснять что да как, отсоединять, показывать что это всего-лишь геркон.

Когда у меня появился 3D принтер решил наконец-то сделать более презентабельный вид датчика. Не судите строго — первая модель, первая печать.

Сначала подготовка. Припаиваем геркон к телефонному проводу. С проводом повезло — жилы медные и хорошо лудящиеся. Частенько попадают провода с нитками и плохо подвергающиеся пайке.

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

Можно и без термоусадки, но с ней мне нравится куда больше. И выглядит лучше (субъективно) и некая защита имеется, опять же много термоусадки не используйте и постарайтесь, чтобы она минимально выступало над герконом. Усаживаю её быстро двигая над зажигалкой.

Теперь берём наш распечатанный полуфабрикат датчика.

Просовываем в отверстие геркон чтобы верх его, буквально на полмиллиметра торчал сверху. Фиксируем провод стяжкой, так чтобы фиксатор стяжки был сзади. НЕ ЗАТЯГИВАЕМ сильно стяжку, важно чтобы провод не выпал, но у него была свобода для движения вверх-вниз.

Затянуть сильнее можно будет когда уже непосредственно прицепите получившийся датчик к счетчику и убедитесь что геркон реагирует на переход, младшего разряда счетчика, с девятки на ноль. Если нет, то значит геркон не «чувствует» магнит. либо провод во время монтажа датчика вниз сполз, либо верхний контакт геркона загнули далеко.

Я проверял подключив геркон в разрыв АКБ и Buzzer`а.

Процесс монтажа и тест датчика:

Скачать модель можете ТУТ.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Еще больше интересных постов

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

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

3D печать в медицине

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Кастомные ступичные заглушки.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Доброго времени суток, уважаемые коллеги!

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

Комментарии

При всём этом ДиАйВай снятия показаний со счётчиков, главное чтобы поверочные специалисты не взбунтовались при осуществлении очередной поверке.

главное чтобы поверочные специалисты не взбунтовались при осуществлении очередной поверке

Если пломбы целые, то чего им бунтовать?

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

Читайте также:  Значность счетчика со и446

Про показ геркона.

А поверяющий может и не знать, что ему геркон показывают (хотя из ряда фантастики, но уровень подготовки поверяющих может быть разным).
Так что я бы снимал датчик при поверке, на всякий.

Ниже вы написали, что счетчик фотографируют (поверку я тоже проходил). И эти фотки явно потом лягут к папку. А поверяющему охота объяснять, почему на фотке не только счетчик.

Думаю будет так: Приходит проверяющий, смотрит, пломбы целые, но на счетчике какая-то приблуда, явно к счетчику не относящаяся. А внутри он не знает что. Может там супер магнит или другой девайс из области фантастики, который в конечном счете может блокировать повороты цифровых колес.

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

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

Во первых как такового съема показаний контролером не существует. Есть только проверка счетчика.

Во вторых тут скорее девайс для себя любимого. Контролер все равно будет требовать увидеть счетчик. Делают они это:

Поставщик газа проводит проверки не реже одного раза в полугодие, а также в случае поступления от абонента заявки. При проверке контролером составляется акт, в котором отражаются результаты проверки: состояние пломб, данные о счетчике, указываются нарушения (при выявлении). Акт необходимо внимательно изучить, проверить заполнение всех граф и расписаться. Один экземпляр акта должен остаться у Вас на руках. Кроме проверки контролеры выполняют съём показаний счетчика – контролер записывает в журнал показание счетчика и делает фото арифмометра счетчика, при этом проверка пломб и счетчика на работоспособность и возможные вмешательства не выполняются.

На самом деле нормами законодательства количество проверок не оговорено. Но если к вам приходят «снять показания», то можно только требовать составление акта проверки и полного перечня работ, им быстро это надоест и просто не будут к вам заходить. Посылать контролера ну ни как нельзя. Официально можно отказать, ибо должны уведомить минимум за 7 дней о предстоящих работах, но они такого ни когда не делают. Нет уведомления — нет работ. Все предельно просто.

По сему автору просто не нужно скажем раз в месяц ходить к счетчику чтобы снять показания чтобы произвести оплату. Но контролеру все же придется. С другой стороны есть ленивые контролеры, они просят сказать показания, сами на прибор учета и не смотрят. К примеру тот же водоканал. Счетчики в ямах, увидеть там что-то сложно даже со 100% зрением. Меня просят сказать показания, я в яму естественно не полезу о чем и сообщаю. Почему я должен делать их работу?

Если вы про непосредственно работу прибора. В доме будет установлен микроконтроллер. Геркон считывает каждый тик на счетчике который соответствует определенному потреблению газа. МК будет считать эти тики и по итогу выдаст потребленный газ за период. Ставим начальные показания на МК как на приборе учета и радуемся жизни ) Конечно нужно обеспечить бесперебойную и стабильную работу МК. но это уже другой вопрос.

Источник