Понедельник, 23.04.2018, 04:11
| RSS
Главная | Учет электроэнергии и расхода воды - Страница 4 - Форум
Защита, контроль, управление
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Zoolu  
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Учет электроэнергии и расхода воды
Учет электроэнергии и расхода воды


ZooluДата: Воскресенье, 21.01.2018, 12:55 | Сообщение # 31
Группа: Модераторы
Сообщений: 447
Статус: Offline
Платы есть, а желающих видимо нет.. Что, правда никому не нужны?
 
AdminДата: Воскресенье, 21.01.2018, 13:10 | Сообщение # 32
Admin
Группа: Администраторы
Сообщений: 3814
Статус: Offline
Мне Александр уже прислал smile
За что ему огромное спасибо!!! К сборке еще не приступал, но соберу обязательно!
 
AlexAWДата: Четверг, 25.01.2018, 12:47 | Сообщение # 33
Группа: Участники
Сообщений: 183
Статус: Online
Надо в ВК и FB продублировать объявление. Вот фотка

Добавлено (25.01.2018, 12:47)
---------------------------------------------
Вот не планировал ставить водосчетчики с импульсным выходом. А тут меня УК огорошила что у меня оказывается срок поверки истек на счетчике горячей воды. Пора либо поверять либо менять. ну а если менять то конечно на счетчики с импульсным выходом  Во тут нарыл и доставка не дорого и быстро 
Кто может знает нормальные счетчики?

Прикрепления: 0797630.jpg(589.6 Kb)
 
AlexAWДата: Суббота, 03.02.2018, 14:43 | Сообщение # 34
Группа: Участники
Сообщений: 183
Статус: Online
Получил сегодня водосчетчики из Питера. Глядя на фотку счетчика на их сайте предполагал что геркон пристроен где то на колесе с красной стрелочкой, и цена деления (импульса) будет в 1 литр.  В тех что мне пришли провод входит в другом месте см фото, и геркон пристроен у младшего счетного колеса. Соответственно цена деления  (импульса) равна одному ведру 10 литров.
В принципе вполне себе достаточно, но как то обидно иметь кучу шкал на приборе с большей точностью, выдавать на удаленное измерение с меньшей точностью. В электросчетчиках наоборот.
Опять же если снимать оптикой с центрального колеса то можно получить точность в единицы миллилитров , но тогда спрашивается зачем покупать с импульсным выходом?
Пристраивал его к WaterUnit Геркон работает без дребезга! Даже при отключенром программном антидребезге фиксируется только один импульс. Это радует Но прииспользовании этого счетчика антидребезг можно выставлять на полную - ведро через полдюймовую трубу прокачать за 25 мс. нереально!
Прикрепления: 8798449.jpg(166.4 Kb)
 


popДата: Понедельник, 12.02.2018, 10:08 | Сообщение # 35
Группа: Пользователи
Сообщений: 42
Статус: Offline
Цитата Zoolu ()
while ( true )do
    #так как импульсов много (3200имп= 1КВт*час), то будем отправлять в БД по 100Вт*час, для этого задаем переменную i
    i=0
    #будем считать количество импульсов по порту добавляя к переменной единичку, пока не насчитаем 320
    while [ $i -lt 320 ]
    do
        if [ $(</sys/class/gpio/gpio27/value) == 1 ]
        then
        #ждем 0.1 секунды для исключение дребезга (такое ощущение что светодиод мигает каким то кодом)
        sleep .1
        i=$[$i+1]
        fi
    done
#Отправляем информацию в MySQL
sudo /script/gpio/mysql-add.sh
Ребят, поясните. Я вот вижу, что этот скрипт считает не количество импульсов, а количество раз обнаруженных единичек на 27 ноге в бесконечном цикле.
Т.е., если на 27 ногу повесить единицу, то он будет просто тупо прибавлять единичку на каждом цикле.
Я только начинаю разбираться с малинкой, так что, не пинайте, если я не прав. А если прав, то можно ли как-то исправить это дело? Настроить пин на "прерывание" и задать скрипт, который бы вызывался однократно при появлении 1 на пине.
 
ZooluДата: Понедельник, 12.02.2018, 11:47 | Сообщение # 36
Группа: Модераторы
Сообщений: 447
Статус: Offline
Цитата pop ()
а количество раз обнаруженных единичек на 27 ноге в бесконечном цикле
Да, именно так. Я тогда был молодой и глупый и смог сделать только так))) Это решение работало конечно, только жрало ресурсы процессора как не в себя) Нужно смотреть в сторону прерываний. Тут например. Если использовать OpenHAB, то там достаточно просто правило написать по обновлению состояния порта с инкрементом переменной.
 
popДата: Понедельник, 12.02.2018, 12:42 | Сообщение # 37
Группа: Пользователи
Сообщений: 42
Статус: Offline
Цитата Zoolu ()
Это решение работало конечно
Не пойму как оно могло работать. При малых расходах, оно же могло обнаружить один и тот же импульс (присутствие 1 на пине) и десять, и сто циклов подряд, и считало бы 10...100 импульсов там, где был один. Про жраньё ресурсов это и так понятно.
Вот мне и интересно. Средствами raspbian возможно настроить пин малинки в режим прерывания?
А ещё лучше - как-то получать "событие изменения состояния входа" в программе на с или питоне?
Без ковыряния в прерываниях на низком уровне (прерывания проца, лазанье по регистрам...), из системы?
 
ZooluДата: Понедельник, 12.02.2018, 12:59 | Сообщение # 38
Группа: Модераторы
Сообщений: 447
Статус: Offline
pop, Этот код у меня считал мырганья светодиода электросчетчика. Чтобы один и тот же импульс не считать- есть задержка. Опять же можно немного поговнокодить (как я люблю))) и выдать что-то типа того: смотрим порт, появился высокий уровень-инкрементим счетчик (с условием что флаг высокого уровня не выставлен), выставляем флаг высокого уровня,  продолжаем опрашивать вход. при появлении низкого уровня- сбрасываем флаг высокого уровня. Ну и продолжаем опрашивать порт))))
 


ZooluДата: Понедельник, 12.02.2018, 13:09 | Сообщение # 39
Группа: Модераторы
Сообщений: 447
Статус: Offline
Код
#define PRESCALLER 350

uint8_t i = 0;
uint8_t gpio_hight = 0;

while(1){
    if (GPIO_READ() == 1){
        if (!gpio_hight) i ++;
        gpio_hight = 1;
    }else{
        gpio_hight = 0;

    if (i == PRESCALLER){
        SEND_TO_BD()
        i = 0;
    }    
}
 
popДата: Понедельник, 12.02.2018, 14:30 | Сообщение # 40
Группа: Пользователи
Сообщений: 42
Статус: Offline
Zoolu, это всё понятно. Можно много вариантов придумать. Вопрос в другом. Есть ли в распбиане нативные библиотеки, позволяющие в юзерском коде получать "события", "триггеры"... Я не знаю как это правильно называть - потому и спрашиваю. От GPIO. Так, чтобы не грузить малинку лишними бесконечными циклами. Я вообще не знаю как такие вещи реализуются в линуксах. Немножко представляю как это сделано в .net. Там можно просто отслеживать системное событие, подключив к нему обработчик из своей программы.
 
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Учет электроэнергии и расхода воды
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:



T2M © 2018
Сайт управляется системой uCoz