Страница 9 из 12
Re: Вывод показаний от счетчиков воды.
Добавлено: Чт фев 01, 2018 7:04 am
ser009
В АМС есть готовое решение по обработке дискретных входов. Его можно немного доработать для счетчика воды
Код: Выделить всё
/*
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++;
}
Далее обрабатывая общий накопленный счетчик можно получать часовые, суточные и месячные значения
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 12:21 am
serghei
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-х грамм , видно утечку воды через кран.
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 8:19 am
alexsis_76
все это преодолимо,можно записывать данные счетчика через интервал времени в файловую систему в JSON формате для удобства использования,для минимизации потребления энергии использовать режим сна с просыпанием по перифрии,в перерыве между посылками отключать WIFI.
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то силен в англичанском?
Напишите, может ценник будет адекватный почему бы и не купить?
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 9:59 am
serghei
Совсем беда ....Еще 2 недели назад точно было 1200..
Вот тут.
Эти микрухи уже не выпускают...кроме Китайцев. Где то видел альтернативу из часов , но не могу найти.
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 шт.
*** Сообщение запрещено. Сообщение похоже на спам. ***
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 10:13 am
ученик
serghei писал(а):Совсем беда ....Еще 2 недели назад точно было 1200..
Вот тут.
Эти микрухи уже не выпускают...кроме Китайцев. Где то видел альтернативу из часов , но не могу найти.
Эта альтернатива, на микрухе PCF8583
Но только у нею одна проблема она считает до опред момента вроде до 999 импульсов А потом вроде перезагружать надо или сама обнуляется. дальше разбираться не стал
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 10:32 am
serghei
Ну тогда остается одно - покупать 5 штук за 20 баксов и городить огород самим.
Ссылка на Али. Кто бы взялся нарисовать плату ? За вознагрождение , конечно.
*** Сообщение запрещено. Содержит контактную информацию. Сообщение похоже на спам. ***
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 10:35 am
serghei
Забанили ссылку. Повторюсь - придется покупать 5 микрух за 20 баксов. ( На Украине не нахожу). Другой альтернативы не вижу.
Re: Вывод показаний от счетчиков воды.
Добавлено: Пт фев 02, 2018 2:53 pm
ser009
за эти деньги клиента проще nrf24 + Arduino32mini собрать