Нода - счетчик импульсов на DS2423

О программировании Arduino, использование библиотек, примеры и общие вопросы программирования.
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Нода - счетчик импульсов на DS2423

Сообщение serghei »

Представляю Вашему вниманию скетч ноды - счетчика импульсов. Это мой первый опыт работы с MySensors.
Сам счетчик - это микросхема DS2423. Работает по протоколу 1-Wire. Имеет 2 канала подсчета. Код публикую с разрешения автора Berk .
Вложение My_SensorsDS2423.zip больше недоступно
Я его использую совместно с механическими счетчиками воды 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 КБ) 1198 скачиваний
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Re: Нода - счетчик импульсов на DS2423

Сообщение serghei »

Фото с просторов интернета ( их уже больше не продают).
Ds2423.gif
Ds2423.gif (22.65 КБ) 26250 просмотров
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Re: Нода - счетчик импульсов на DS2423

Сообщение serghei »

Схема
DS2423.jpg
DS2423.jpg (96.24 КБ) 26250 просмотров
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Re: Нода - счетчик импульсов на DS2423

Сообщение serghei »

Месяц работы прошел успешно. За это время можно сделать некоторые выводы.
Во первых в коде надо заменить строчку

Код: Выделить всё

  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);
иначе считает до 255 и сбрасывает в 0. При uint16_t считает до 32 768 и при переполнении сбрасывает в - (минус)32 768.
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) // умный сон  /// дни
PS/ код приведен с разрешения автора.
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Honey
Сообщения: 4
Зарегистрирован: 30 сен 2020, 18:43
Откуда: Киев, Украина

Re: Нода - счетчик импульсов на DS2423

Сообщение Honey »

serghei писал(а): 27 авг 2018, 20:09 Фото с просторов интернета ( их уже больше не продают).
Ds2423.gif
Простите, что поднимаю старую тему. Сейчас такой счетчик выглядит немного иначе
counter.jpg
counter.jpg (20.66 КБ) 13577 просмотров
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Re: Нода - счетчик импульсов на DS2423

Сообщение serghei »

Ооо. Супер ! А где такое продают ? Ссылочку можно ? Где и как используешь ? Сейчас переделал скетч на 485 протокол и до кучи ещё три ds28b20 там же гоняю.
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Honey
Сообщения: 4
Зарегистрирован: 30 сен 2020, 18:43
Откуда: Киев, Украина

Re: Нода - счетчик импульсов на DS2423

Сообщение Honey »

Один сейчас использую для счетчика электроэнергии, фотодиод прикрепил к счетчику (но надо переделать, понял, что на него попадает свет извне и может вносить искажения, уже "потерялось" около 100 импульсов за пару месяцев). Второй протестировал с инфракрасными отражателями TCRT5000 и будет работать на счетчиках воды, нужно придумать как эти датчики прикрепить и закрыть от света. Там же установлю и DS18B20 на стояки.
Напишите мне в приват, скину ссылку, у меня пока нет прав отпрвлять приватные сообщения.
walkerit
Сообщения: 1
Зарегистрирован: 20 ноя 2020, 20:05

Re: Нода - счетчик импульсов на DS2423

Сообщение walkerit »

Люди добрые, поделитесь пожалуйста ссылкой где можно купить?
serghei
Сообщения: 53
Зарегистрирован: 05 апр 2018, 09:12
Откуда: Молдова

Re: Нода - счетчик импульсов на DS2423

Сообщение serghei »

Напиши в личку Honey , как увидит - ответит. У меня только пара микрух осталась. Но пересылка чертовски дорогая стала. Или Тут.
MySensors Гетвей на ESP8266 с веб интерфейсом + много нод на NRF52832
Berk
Сообщения: 81
Зарегистрирован: 11 окт 2017, 22:05

Re: Нода - счетчик импульсов на DS2423

Сообщение Berk »

Honey писал(а): 30 сен 2020, 19:10
serghei писал(а): 27 авг 2018, 20:09 Фото с просторов интернета ( их уже больше не продают).
Ds2423.gif
Простите, что поднимаю старую тему. Сейчас такой счетчик выглядит немного иначе
counter.jpg
А это не такой счетчик что с просторов инета, осмелюсь предположить это ваша интерпретация. Насколько эта микра совместима с ds2423?
Ответить