Подключение контроллера MegaD-328

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

Модератор: immortal

zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Дверной звонок + ПинКод на открытие двери

Сообщение zelevova » Чт дек 11, 2014 10:10 am

Bagir писал(а):Конечно хочется по фото. Смотришь в камеру, жмешь кнопку звонка, а дальше либо звенит звонок, либо открывается дверь, если фотка опознана и лицо есть в базе. Но уы, ничего я не нашел. Сравнение лиц на фотографиях вероятно дело будущего. Хотя странно. Телефоны уже это давно делают, и причем вполне хорошо, а для компа варианты не находятся
Посмотри в сторону http://ab-log.ru/smart-house/video_came ... -detection

На тему проверки доступности меги: может просто в incomingMessage указывать что мега жива и запускать таймер что бы при любом срабатывании или опросе порта подтверждалось что она жива, тогда не надо ее регулярно опрашивать.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1614
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Чт дек 11, 2014 2:36 pm

OpenCV + FANN, давненько я уже пробовал подбить клинья к этим библиотекам. Возможно стоит попробовать еще раз. Может быть кто то и раскрутить это тему. Интересно, как это все будет работать на винде.
Перезапускать таймер при получении любого сообщения от Меги - идея хорошая. Но подойдет она только если с Мегой идет частый обмен сообщениями. У меня не все такие. Например к одной Меге я могу вообще несколько часов не обработаться, и она мне ничего не пришлет. Конечно когда будут задействованы больше портов, то и обмен сообщениями пойдет веселей. Так что способ интересный, но не всем подойдет. Хотя можно объединить эти способы. Тогда можно сильно увеличить временной интервал опроса температуры.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Пн дек 15, 2014 12:36 pm

Что то у меня датчик освещенности неровно работает.
Пришлось для АЦП портов сделать как у разработчика Меги, а именно в getData скорректировал следующий текст:
СпойлерПоказать

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

// Запрос данных у Меги
if($params['port'] == 14 || $params['port'] == 15) {
    // Опрашиваем датчик несколько раз, берем значение, близкое к минимальному
    for ( $i = 0; $i < 5; $i++ )
    {
        $cur_val[] = trim(file_get_contents($cmdUrl, 0, $ctx));
        sleep(3);
    }
    sort($cur_val);
    $dt = $cur_val[1];
} else {
    $dt = trim(file_get_contents($cmdUrl, 0, $ctx));
}
У кого то еще есть такие проблемы?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Пн дек 15, 2014 1:00 pm

Еще можно код:

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

$alive_timeout=(int)$this->getProperty('aliveTimeOut');
if (!$alive_timeout) { $alive_timeout=15*60; }
clearTimeOut($ot."_check_alive");
setTimeOut($ot."_check_alive","callMethod('".$ot.".getData(), array('port'=>'tget')',0);",$alive_timeout); 
Вставить в incomingMessage и тогда после первого опроса меги или прихода от нее сообщения она сама себя по таймеру будет проверять на живучесть и не придется регулярно ее опрашивать. Как такая идея?

PS: Код примерный пока не придумал куда именно его вставить.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1614
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 15, 2014 1:27 pm

Проверка самой себя по таймауту после последнего обмена сообщениями - штука крайне интересная! Надо будет оформить как один из возможных вариантов на выбор. Получать данные температуры мне тоже интересно, но так часто вроде и не нужно. И так база данных пухнет. Так что при таком варианте, я бы мог намного реже запрашивать данные температуры Меги, а в промежутках код Меги будет проверять ее сам по таймауту.

На счет АЦП портов. Работают они так то нормально. И если датчик хороший и провод короткий, то большого разбега в показаниях не будет. Но при других условиях ситуация хуже. У меня сейчас два датчика. Освещенности и газа. Освещенность вообще грубо работает. К вечеру показания прыгают от 0 до 5. А это вообще никуда не годится. Но как вариант, Я просто спрашиваю данные почаще, а потом беру из базы среднее значение за определенный период времени. Пока это устраивает. Но у объекта должна быть включена история. А для этого его приходится запихивать в подкласс.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Пн дек 15, 2014 1:48 pm

Я пока на самописном ядре сидел, подсмотрел у Андрея. У него алгоритм такой и мне он помог избавиться от скачков когда на улице совсем темно, а датчик может показывать временные просветления до 5 - 10% и лишнюю информацию в базу не писать.
Датчик газа только повесил, еще не могу понять его показания.

Ты отличный класс написал. Хотелось бы время от времени синхронизировать основные изменения с ним. :)
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1614
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 15, 2014 4:34 pm

zelevova писал(а):Ты отличный класс написал. Хотелось бы время от времени синхронизировать основные изменения с ним. :)
Спасибо )) Я часто в коннект все скидываю. От туда можно взять любой кусок кода. А то обновлять весь класс конечно неудобно. Много чего теряется из своих настроек. Да и класс уже вполне нормальный. В дальнейшем наврятли будет что то сильно меняться. Просто будут добавляться разные полезности, такие как отлов разных нажатий, набор пин кода и т.д. Это все по отдельности я и тут выкладываю, и в коннекте есть. Так что полное обновление можно уже и не делать.
На счет временного просветления да, тоже было. И с этим ничего не поделать. Слишком уж велика цена деления у датчика, и четко поймать момент сумерек довольно сложно. Варианта два. Либо как у тебя, несколько раз опросить порт и взять среднее, либо периодически почаще опрашивать и брать среднее уже из базы данных. Лишние записи при этом конечно будут. Ну пока что полет нормальный. Опрашиваю каждые 5 минут, а среднее беру за 15 минут. Как меньше 1, значит темно, и будет разрешение для включения прожекторов при движении. А вот слабенький свет у крыльца планирую включать пораньше. Посмотрим, как получится на деле.
Такая же ситуация у меня и с датчиком газа в воздуховоде приточной вентиляции. Опрашиваю каждую минуту, чтобы вовремя закрыть заслонку.
В связи с этим давно есть просьба для Сергея. Сейчас минимальный период записей в историю 1 день. Хотелось бы получить альтернативу в количествах записей. Например для датчика света я бы поставил 10 записей. Это позволило бы мне писать чаще и не задумываться о размерах базы данных. Но я пока что не представляю как сейчас устроен механизм удаления старых записей, и как часто он запускается.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1614
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Вт дек 16, 2014 1:22 pm

Хочу поделиться наблюдениями за датчиком света, о котором говорил. Но это мягко говоря совсем не по теме. Но другой более подходящей ветки наверно и не найти. Датчик света конечно отдельное железо, но подключено через Мегу.
Уберу все в спойлер.Показать
Вот примерно такой датчик освещенности
Изображение
И вот его сегодняшний график. Первая линия - данные с датчика как есть, без обработки. Вторая - Усреднение за 16 минут, куда гарантированно попадают три последних измерения. Период съёма 5 минут.
Изображение
К сожалению наблюдаются весьма серьезные скачки ночью, и провалы на расцвете даже после восхода солнца. Будет не совсем просто расценивать показания этого датчика. Без истории или усреднения нескольких показаний они однозначно бесполезны. Но возможно Вам будет интересно на их посмотреть.
По данным Интернета, солнце сегодня взошло в 9:05 и зашло в 15:42. Пока что я не представляю как можно использовать эти полученные данные. Уж слишком грубые измерения. Сегодня попробую увеличить частоту измерений до 1 минуты. Возможно это хотя бы от части решить проблему. А вообще буду искать другой датчик.
----------------------
Вот данные с периодом в 1 минуту и усреднением так же за последние 16 минут. Усредненный график конечно же немного отстает, но это не помешает. Надо сказать, что предыдущий день был весьма пасмурный. Этот день был по светлее. А вообще были показания и выше 500 единиц, когда ранее солнце выглядывало из-за тучи и лучи попадали на датчик. Так что при установке датчика это придется обязательно учитывать, если мы хотим измерять окружающую освещенность, а не свет самого солнца.
Изображение
Сейчас я настроил включение прожекторов при значении <=2. Меня это устраивает, но все же датчик весьма грубо измеряет освещенность при закате солнца, и я бы предпочел сдвинуть пик его чувствительности ближе к темноте. Так что все равно буду искать замену. Хотелось бы, чтобы цена деления при небольшом освещении была меньше, пускай жаде при этом датчик не сможет замерять очень сильное освещение, что для наших целей как бы и не требуется. А вот увеличение чувствительности к малому освещению позволит, например, немного раньше включать подсветку, что весьма красиво, а уже когда совсем стемнеет, включать основной свет при движении.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
vova5049
Сообщения: 64
Зарегистрирован: Пт фев 21, 2014 10:56 am
Откуда: Днепропетровск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: Подключение контроллера MegaD-328

Сообщение vova5049 » Ср дек 24, 2014 2:06 am

Bagir, посоветуйте, пожалуйста. Есть ворота с установленными концевиками в виде герконов на полностью открытое и закрытое состояние, которые подключены к МегаД. В момент срабатывания (возможно из-за вибрации, дребезга контактов или низкой скорости движения ворот) геркон срабатывает несколько раз, причем происходит это и в момент замыкания контактов и в момент размыкания. Мне нужно отследить несколько состояний ворот:
- закрыты датчик1 = 0, датчик2 = 1
-открываются д1 = 1, д2 = 1 , но при этом предыдущее состояние - закрыты
- открыты д1 = 1, д2 = 0
- закрываются д1 = 1, д2 = 1 , но при этом предыдущее состояние - открыты

Подскажите, в какие состояния лучше настроить входные порты меги и , хотя бы общее направление мысли, как лучше это в incomingMessage реализовывать. Я так понимаю, этот дребезг,который происходит при приближении ворот к конечной точке и удалении от нее нужно отфильтровать таймером
2*MegaD328, Система на Raspberry Pi 2
Аватара пользователя
Bagir
Сообщения: 1614
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Ср дек 24, 2014 2:18 am

vova5049, вот не поверите, как раз сейчас тоже прикручиваю концевики своих подъемных ворот к Меге. Их так же 2, и так же на оба состояния. И все тоже надо будет отследить. Только у меня не герконы, а здоровые конечник. Они отлично показали себя за уже долгое время. Да и влок на реле и пускателях в принципе тоже. Но хочу все завести на Мегу и к МД подключить, вот и переделываю. На первое время слепил вот такие кнопки в меню для ворот. Так что довольно скоро будет полный мой вариант этого решения.
Изображение
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить