Присоединяйтесь к сообществу Мастерград

Зарегистрироваться
#6172838

Вдруг кому пригодится.

Сделано на базе Wemos D1 mini. Также понадобятся шилды зарядки батареи (нужно доработать, припаяв сопротивление порядка 12 кОм между входным напряжением +5в и пином D0) и SD-карты от этого же производителя. И АКБ, типа 18650.

Поначалу было сделано аппаратное устранение дребезга контактов (так мне было проще) на микросхеме 74LVC14AD.118. Но система работала плоховато и все равно дребезг полностью не устраняла. Поэтому было переделано на MC14490. Но потом выяснилось что и специализированная микросхема не спасает (ну или у меня руки кривые) полностью и за длительный период счетчик все равно убегает вперед. Потому код был изменен - был написан кусок устраняющий дребезг программно.

Есть web-интерфейс для вывода показаний, настройки и заливки кода для обновления ...

Конфиг записывается или на SD (если есть) или во флэш.

Данные отсылаются на mqtt сервер, где mqttwarn их складывает в базу sqlite3 (ну не сам конечно, а с помощью скрипта на Perl). mqttwarn в процедуре execute пришлось немного доработать, добавив одну строку, чтобы топик передавался вторым аргументом.

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

Наваял еще пару php и html, чтобы можно было статистику смотреть не на самом устройстве, а на сервере, куда данные отсылаются. За день, за месяц и за год.

На самом устройстве можно просто посмотреть кол-во куболитров [​IMG], например вот -

Сервер у меня локально крутится на Debian 9.

Все подробности тут -

Собранная плата без АКБ.

Конфиг

Статистика на локальном http сервере из базы sqlite