Вывод показаний от счетчиков воды.

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Вывод показаний от счетчиков воды.

Сообщение ser009 » Чт фев 01, 2018 7:04 am

В АМС есть готовое решение по обработке дискретных входов. Его можно немного доработать для счетчика воды
СпойлерПоказать

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

/*
  Modul Contacts
  part of Arduino Mega Server project
*/

#ifdef CONTACTS_FEATURE

#define cont1pin 27 // Вход счетчика

#define OPEN  1
#define CLOSE 0

char cont1object[] = "Hot Woter";

char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";

// states
  // 0 - open
  // 1 - close
  // 2 - not defined
  // 3 - not defined and not contXstatus
byte cont1state = 2; byte old_cont1state = 3; byte cont1objectState = 2;

void contactsInit() {
  pinMode(cont1pin, INPUT);
  modulContacts = MODUL_ENABLE;
  started("Contacts", true);
}

void printAndSend(char obj[], char mess[]) {
  #ifdef EVENTS_CONTACTS
    timeStamp();
    Serial.print(obj);
    Serial.print(": ");
    Serial.println(mess);
  #endif
}

void contactsWorks() {
 
cont1state = digitalRead(cont1pin);
  if (cont1state != old_cont1state) {
      old_cont1state = cont1state;
        if (cont1state == 0) {
        cont1objectState = OPEN;
        counter1();
        printAndSend(cont1object, cont1openMess);
        #ifdef MAJORDOMO_FEATURE
        sendRequestM(cont1object, OPEN);
        #endif
      } else {
        cont1objectState = CLOSE;
        printAndSend(cont1object, cont1closeMess);
        #ifdef MAJORDOMO_FEATURE
        sendRequestM(cont1object, CLOSE);
        #endif
      }
 }
 // contactsWorks()

#endif // CONTACTS_FEATURE


Вызванная функция counter1(); суммирует входные импульсы
СпойлерПоказать

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

/*
  Modul Counter
  part of Arduino Mega Server project
*/

unsigned long counter1_all;  // общий накопительный счетчик

void counter1(){
  counter1_all++;
}
 
Далее обрабатывая общий накопленный счетчик можно получать часовые, суточные и месячные значения
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Вывод показаний от счетчиков воды.

Сообщение serghei » Пт фев 02, 2018 12:21 am

Alex77 писал(а):Кто на чем остановился?
Вот уже год реализую данное решение и пока пришел к таким выводам.
1. Считать импульсы можно любым кодом на любой ардуине или ESP.

Это НЕ работает по причине сброса счетчиков при зависании или открытия сериал - порта.

2. На прямую AMS считать импульсы бесполезно по этой же причине.

3. Считать сенсором с батарейным питанием ( можно в качестве резервного хотя бы на сутки ). Сенсор передает значения в AMS , тот в свою очередь в МД.
Ближе к истине , но ограничение по времени работы от батарейки.

4 Самое правильное - счетчик - 1WIRE мост DS2324. 2 счетчика , батарейки хватает на год работы.

Цена вопроса - 1200 рублей готовое изделие на 2 счетчика. Цена микрухи очень не адекватная на АЛИ. Ссылки выше.

Готовый код для сенсора AMS
СпойлерПоказать

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

/*
   YF-S201 Hall Effect Water Flow Meter / Sensor
   http://www.hobbytronics.co.uk/yf-s201-water-flow-meter
   
   Read Water Flow Meter and output reading in litres/hour


Тупо регистрируем замыкания контактов
*/
  #ifdef YFS201_FEATURE



  int pin3 = 3;       // 3-й цифровой пин, первое прерывание
  long counter = 0;  // счётчик импульсов


  int pin2 = 2;       // 2-й цифровой пин, 0 прерывание
  long counter1 = 0;  // счётчик импульсов
 
  long vol1_last ;    // полезные переменные

  long vol2_last ;

  void yfs201Init()


  {
  // Настраиваем последовательный интерфейс, для вывода информации 
  //  Serial.begin(9600);    // кажется ,это лишнее
  
  //Настраиваем цифровой вход
    pinMode(pin3, INPUT);      // Сюда будем подключать подтягивающий резюк
    digitalWrite(pin3, HIGH);  // "Подключаем" подтягивающий резистор (реализован внутри ATmega)
    attachInterrupt(1, count1, FALLING); // задаём обработчик прерывания 1 (3-й пин). 
                                      // прерывание будет при изменении уровня с HIGHT на LOW
                                      // вызывать функицю count 1


    pinMode(pin2, INPUT);      // Сюда будем подключать подтягивающий резюк
    digitalWrite(pin2, HIGH);  // "Подключаем" подтягивающий резистор (реализован внутри ATmega)

     attachInterrupt(0, count0, FALLING); // задаём обработчик прерывания 0 (2-й пин). 
                                      // прерывание будет при изменении уровня с HIGHT на LOW
                                      // вызывать функицю count 0
   }


    void yfs201Works ()  


   {
  
  
  // основной рабочий цикл
    
   vol1 = (counter /430); //430 оборотов на литр первый счетчик

   vol2 = (counter1 / 430); //430 оборотов на литр( можно подключить электросчетчик и изменить коэффициент)
    
    // vol1 = (counter /1600); // 1600 импульсов KWT/час первый счетчик

  // vol2 = (counter1 / 2000); // 2000 импульсов KWT/час второй счетчик
    
  
   
 /* 
   #ifdef YFS201_FEATURE                 // без этого вроде работает
    if (vol1NeedSend) {
      sendPacket(DTA_VOL_1);
    }
  #endif
 */
   // checkTemp();  //   ?????????????????????????????????????????????????

   

    #ifdef SERIAL_PRINT

    if (vol1>vol1_last) { // выводит объем когда следуюшее значение больше предыдущего

    Serial.print(F("Volume 1: "));// вывод литров . Надо дописать условие - выволить при изменении на 1 литр
    Serial.println(vol1);
    
     Serial.print(F("V_1: ")); // для проверки работы счетчика каждый импульс
    Serial.println(counter);
 
  vol1_last=vol1;
  } 
    if (vol2>vol2_last) {
        Serial.print(F("Volume 2: "));// вывод литров . Надо дописать условие - выволить при изменении на 1 литр
    Serial.println(vol2);
    
     Serial.print(F("V_2: ")); // для проверки работы счетчика
    Serial.println(counter1);

    
  vol2_last=vol2;
  } 
    
    #endif
  }


   void count0(){
  // вызывается прерыванием 0 от 2-го цифрового входа
     counter++;  // ясен перец, увеличиваем переменную. Утекло ещё 2 грамма
    
   }

    void count1(){
  // вызывается прерыванием 1 от 3-го цифрового входа
     counter1++;  // ясен перец, увеличиваем переменную. Утекло ещё 2 грамма
    
  }
 
   #endif  
Это же можно вставить напрямую в Мегу или Дую ( с прерываниями не уверен). Еще раз - в этом нет смысла.

Ну и в догонку. Внутри счетчика YFS201 стоит датчик Холла , поэтому нет дребезга контактов. Считает от 2-х грамм , видно утечку воды через кран.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Вывод показаний от счетчиков воды.

Сообщение alexsis_76 » Пт фев 02, 2018 8:19 am

все это преодолимо,можно записывать данные счетчика через интервал времени в файловую систему в JSON формате для удобства использования,для минимизации потребления энергии использовать режим сна с просыпанием по перифрии,в перерыве между посылками отключать WIFI.
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Вывод показаний от счетчиков воды.

Сообщение ученик » Пт фев 02, 2018 9:44 am

serghei писал(а): Цена вопроса - 1200 рублей готовое изделие на 2 счетчика.
А где такой продается, за такие деньги, я видел блок за 2500 и выше .

Я сделал предзаказ, у них на сайте добавил счетчик на ХВС и ГВС. счетчик обошелся за 4300
СпойлерПоказать
1-wire & WiFi
Russian Russian
Рубль
КОРЗИНА ПОКУПОК
Товаров: 1 (4300.00 р.)Поиск
RS-485 & ETHERNET
WI-FI МОДУЛИ
1-WIRE МОДУЛИ
РАДИОДАТЧИКИ 433МГЦ

Главная » Оформление заказа
ОФОРМЛЕНИЕ ЗАКАЗА
Корзина Покупатель Способ доставки Способ оплаты Оплата
Фото Наименование товара Модель Кол-во Цена Итого
WiFi счетчик воды RS-25 WiFi счетчик воды RS-25
- счетчик холодной воды: счетчик холодной вод..
- версия ПО: обычная версия
- счетчик горячей воды: счетчик горячей воды
WiFi счетчик воды RS-25
1
4300.00 р. 4300.00 р.
Сумма: 4300.00 р.
Итого: 4300.00 р.
Второй счетчик без wifi стоит дороже 4700
СпойлерПоказать
ОФОРМЛЕНИЕ ЗАКАЗА
Корзина Покупатель Способ доставки Способ оплаты Оплата
Фото Наименование товара Модель Кол-во Цена Итого
Модуль счетчик воды Модуль счетчик воды
- счетчик холодной воды: счетчик холодной вод..
- счетчик горячей воды: счетчик горячей воды
Модуль счетчик с воды
1
4700.00 р. 4700.00 р.
Сумма: 4700.00 р.
Итого: 4700.00 р.
года три назад можно было купить вот здесь https://hobbyboards.com/ за 1,500 руб с пересылкой
год назад они закрылись, сейчас ссылка обновилась можно попробовать написать им?
Rто силен в англичанском?
Напишите, может ценник будет адекватный почему бы и не купить?
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Вывод показаний от счетчиков воды.

Сообщение serghei » Пт фев 02, 2018 9:59 am

Совсем беда ....Еще 2 недели назад точно было 1200..Вот тут.
Эти микрухи уже не выпускают...кроме Китайцев. Где то видел альтернативу из часов , но не могу найти.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Вывод показаний от счетчиков воды.

Сообщение ученик » Пт фев 02, 2018 10:03 am

ученик писал(а):
serghei писал(а): Цена вопроса - 1200 рублей готовое изделие на 2 счетчика.
А где такой продается, за такие деньги, я видел блок за 2500 и выше .

Я сделал предзаказ, у них на сайте добавил счетчик на ХВС и ГВС. счетчик обошелся за 4300
СпойлерПоказать
1-wire & WiFi
Russian Russian
Рубль
КОРЗИНА ПОКУПОК
Товаров: 1 (4300.00 р.)Поиск
RS-485 & ETHERNET
WI-FI МОДУЛИ
1-WIRE МОДУЛИ
РАДИОДАТЧИКИ 433МГЦ

Главная » Оформление заказа
ОФОРМЛЕНИЕ ЗАКАЗА
Корзина Покупатель Способ доставки Способ оплаты Оплата
Фото Наименование товара Модель Кол-во Цена Итого
WiFi счетчик воды RS-25 WiFi счетчик воды RS-25
- счетчик холодной воды: счетчик холодной вод..
- версия ПО: обычная версия
- счетчик горячей воды: счетчик горячей воды
WiFi счетчик воды RS-25
1
4300.00 р. 4300.00 р.
Сумма: 4300.00 р.
Итого: 4300.00 р.
Второй счетчик без wifi стоит дороже 4700
СпойлерПоказать
ОФОРМЛЕНИЕ ЗАКАЗА
Корзина Покупатель Способ доставки Способ оплаты Оплата
Фото Наименование товара Модель Кол-во Цена Итого
Модуль счетчик воды Модуль счетчик воды
- счетчик холодной воды: счетчик холодной вод..
- счетчик горячей воды: счетчик горячей воды
Модуль счетчик с воды
1
4700.00 р. 4700.00 р.
Сумма: 4700.00 р.
Итого: 4700.00 р.
года три назад можно было купить вот здесь https://hobbyboards.com/ за 1,500 руб с пересылкой
год назад они закрылись, сейчас ссылка обновилась можно попробовать написать им?
Rто силен в англичанском?
Напишите, может ценник будет адекватный почему бы и не купить?
Российские продаваны готовы привезти эти микросхемы, примерно за 400 руб за микруху если заказ будет от 200 шт.

*** Сообщение запрещено. Сообщение похоже на спам. ***
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Вывод показаний от счетчиков воды.

Сообщение ученик » Пт фев 02, 2018 10:13 am

serghei писал(а):Совсем беда ....Еще 2 недели назад точно было 1200..Вот тут.
Эти микрухи уже не выпускают...кроме Китайцев. Где то видел альтернативу из часов , но не могу найти.
Эта альтернатива, на микрухе PCF8583
Но только у нею одна проблема она считает до опред момента вроде до 999 импульсов А потом вроде перезагружать надо или сама обнуляется. дальше разбираться не стал
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Вывод показаний от счетчиков воды.

Сообщение serghei » Пт фев 02, 2018 10:32 am

Ну тогда остается одно - покупать 5 штук за 20 баксов и городить огород самим. Ссылка на Али. Кто бы взялся нарисовать плату ? За вознагрождение , конечно.

*** Сообщение запрещено. Содержит контактную информацию. Сообщение похоже на спам. ***
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Вывод показаний от счетчиков воды.

Сообщение serghei » Пт фев 02, 2018 10:35 am

Забанили ссылку. Повторюсь - придется покупать 5 микрух за 20 баксов. ( На Украине не нахожу). Другой альтернативы не вижу.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Вывод показаний от счетчиков воды.

Сообщение ser009 » Пт фев 02, 2018 2:53 pm

за эти деньги клиента проще nrf24 + Arduino32mini собрать
Ответить