Нода - счетчик импульсов на DS2423
Нода - счетчик импульсов на DS2423
Представляю Вашему вниманию скетч ноды - счетчика импульсов. Это мой первый опыт работы с MySensors.
Сам счетчик - это микросхема DS2423. Работает по протоколу 1-Wire. Имеет 2 канала подсчета. Код публикую с разрешения автора Berk . Я его использую совместно с механическими счетчиками воды YF-S201 около 2-х лет. Один стоит перед бойлером на подаче и по факту меряет горячую воду , второй на стиральной машине. Точность измерений ( 1 тик ) - 2,5 грамма. На 3-х литровую банку делает в среднем 1280 оборотов. Что бы получить значение в литрах результат делим на 430 . Для других счетчиков подбирается по необходимости.
Зачем это надо , зачем такие сложности ( цена микросхемы 5 долларов и продают на Али минимум 5 штук).
Вся прелесть микрухи - микротоковое потребление. В качестве резервного питания я применяю ионистор на 1 фараду.
Так как это автономное устройство , то можно считывать данные с любым интервалом и не боятся пропадания питания у ноды по любым причинам.
Код тестовый для ознакомления. Если надо знать расход за период ( час , день или месяц ) можно просто один раз прочитать значения. Тогда ноду можно переводить в спящий режим.
Исходные данные взял С этого сайта.
Всех заинтересованных прошу помочь дописать код под спящий режим. Девайс есть в наличии и могу протестировать.
PS/ Изначально применял DS2423 в проекте AMS на ESP32. В качестве приемника шины выступал мост DS2482 - конвертор 1-wire - I2C. К ней подключено 4 DS18B20 и этот девайс. Длинна линии около 30 метров телефонной лапши.
Сам счетчик - это микросхема DS2423. Работает по протоколу 1-Wire. Имеет 2 канала подсчета. Код публикую с разрешения автора Berk . Я его использую совместно с механическими счетчиками воды YF-S201 около 2-х лет. Один стоит перед бойлером на подаче и по факту меряет горячую воду , второй на стиральной машине. Точность измерений ( 1 тик ) - 2,5 грамма. На 3-х литровую банку делает в среднем 1280 оборотов. Что бы получить значение в литрах результат делим на 430 . Для других счетчиков подбирается по необходимости.
Зачем это надо , зачем такие сложности ( цена микросхемы 5 долларов и продают на Али минимум 5 штук).
Вся прелесть микрухи - микротоковое потребление. В качестве резервного питания я применяю ионистор на 1 фараду.
Так как это автономное устройство , то можно считывать данные с любым интервалом и не боятся пропадания питания у ноды по любым причинам.
Код тестовый для ознакомления. Если надо знать расход за период ( час , день или месяц ) можно просто один раз прочитать значения. Тогда ноду можно переводить в спящий режим.
Исходные данные взял С этого сайта.
Всех заинтересованных прошу помочь дописать код под спящий режим. Девайс есть в наличии и могу протестировать.
PS/ Изначально применял DS2423 в проекте AMS на ESP32. В качестве приемника шины выступал мост DS2482 - конвертор 1-wire - I2C. К ней подключено 4 DS18B20 и этот девайс. Длинна линии около 30 метров телефонной лапши.
- Вложения
-
- My_SensorsDS2423.zip
- 1-Wire счетчик на DS2423
- (3.43 КБ) 1234 скачивания
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
Фото с просторов интернета ( их уже больше не продают).
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
Схема
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
Месяц работы прошел успешно. За это время можно сделать некоторые выводы.
Во первых в коде надо заменить строчку
на
иначе считает до 255 и сбрасывает в 0. При uint16_t считает до 32 768 и при переполнении сбрасывает в - (минус)32 768.
430 это коэффициент преобразования. Водяные в счетчики YF-S201 делают в среднем 1280 оборотов на 3 литра. На электрических пишут сколько импульсов на 1 киловатт-час.
Во вторых скетч позволяет регулировать частоту отправки данных. За это отвечает
Тут можно подставить требуемое число.
И в развитии скетча можно перевести ноду в спящий режим. Это в случае , если интересуют данные за определённый период. Для этого в loop заменить
на
где за время сна отвечает
PS/ код приведен с разрешения автора.
Во первых в коде надо заменить строчку
Код: Выделить всё
uint8_t counA = ((ds2423.getCount(DS2423_COUNTER_A)) / 430);
uint8_t counB = ((ds2423.getCount(DS2423_COUNTER_B)) / 430);
Код: Выделить всё
uint16_t counA = ((ds2423.getCount(DS2423_COUNTER_A)) / 430);
uint16_t counB = ((ds2423.getCount(DS2423_COUNTER_B)) / 430);
430 это коэффициент преобразования. Водяные в счетчики YF-S201 делают в среднем 1280 оборотов на 3 литра. На электрических пишут сколько импульсов на 1 киловатт-час.
Во вторых скетч позволяет регулировать частоту отправки данных. За это отвечает
Код: Выделить всё
uint16_t const count_interval = 5000;
И в развитии скетча можно перевести ноду в спящий режим. Это в случае , если интересуют данные за определённый период. Для этого в loop заменить
Код: Выделить всё
void loop() {
if (millis() - previousMillis > count_interval) {
if (flag == 1) {
ds2423_read_ver1 ();
flag = 0;
previousMillis = millis();
}
else {
ds2423_read_ver2 ();
flag = 1;
previousMillis = millis();
}
}
}
Код: Выделить всё
void loop() {
if (flag == 1) {
ds2423_read_ver1 ();
flag = 0;
} else {
ds2423_read_ver2 ();
flag = 1;
}
// sleep(count_interval, false);
sleep(count_interval, true);
}
Код: Выделить всё
//sleep(count_interval*1000, false) // глупый сон /// секунды
//sleep(count_interval*1000*60, false) // глупый сон /// минуты
sleep(count_interval*1000*60*60, false) // глупый сон /// часы
//sleep(count_interval*1000*60*60*24, false) // глупый сон /// дни
//sleep(count_interval, true) // умный сон //
//sleep(count_interval*1000*60, true) // умный сон /// минуты
//sleep(count_interval*1000*60*60, true) // умный сон /// часы
//sleep(count_interval*1000*60*60*24, true) // умный сон /// дни
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
Ооо. Супер ! А где такое продают ? Ссылочку можно ? Где и как используешь ? Сейчас переделал скетч на 485 протокол и до кучи ещё три ds28b20 там же гоняю.
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
Один сейчас использую для счетчика электроэнергии, фотодиод прикрепил к счетчику (но надо переделать, понял, что на него попадает свет извне и может вносить искажения, уже "потерялось" около 100 импульсов за пару месяцев). Второй протестировал с инфракрасными отражателями TCRT5000 и будет работать на счетчиках воды, нужно придумать как эти датчики прикрепить и закрыть от света. Там же установлю и DS18B20 на стояки.
Напишите мне в приват, скину ссылку, у меня пока нет прав отпрвлять приватные сообщения.
Напишите мне в приват, скину ссылку, у меня пока нет прав отпрвлять приватные сообщения.
Re: Нода - счетчик импульсов на DS2423
Люди добрые, поделитесь пожалуйста ссылкой где можно купить?
Re: Нода - счетчик импульсов на DS2423
Напиши в личку Honey , как увидит - ответит. У меня только пара микрух осталась. Но пересылка чертовски дорогая стала. Или Тут.
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Re: Нода - счетчик импульсов на DS2423
А это не такой счетчик что с просторов инета, осмелюсь предположить это ваша интерпретация. Насколько эта микра совместима с ds2423?