Я имел в виду статус выключателя которым управляет свое решение. Тогда у своего решения можно запросить в каком состоянии в текущий момент находится выключатель. Сторонние решения не сообщают свой статус. Если это не дорогое решение.
Тут надо использовать коплексный подход с вероятностными весами.
К примеру:
Пропала метка с ключами — вероятность ухода 70%
Пропал телефон — вероятность ухода 30%
Пропал ноутбук — вероятность ухода 10%
и т.п.
Так же использовать не один тип датчиков для детектирования, а копмлекс: датчики на дверях, RFID считываетли, датчикки двежения, сканирование сети и т.п.
Как вариант в профиле человека добавить мак адреса и/или ip-ки всех его устройств: ноутбук, телефон, планшет.
Дальше минимальная логика.
1. Раз в 5/10/15/… минут проверяем список доступных устройств и запоминаем его
2. Сработал датчик открытия входной двери
3. Через 2-3 минуты проверяем список устройств и сравниваем с теми, что были до открытия двери
4. По списку пропавших устройств определяем кто ушел/пришел (сотовый в приоритете)
Вот еще вариант как определить что кто-то идет домой и заранее включить свет в прихожей.
Преамбула. У нас в подъезде стоит цифраловский домофон. Открыть его можно либо талеткой, либо кодом. Сам код вида [НОМЕР_КВАРТИРЫ]*[КОД_КВАРТИРЫ]. Если входить по коду, то домофон в квартире издает определенный писк.
Можно подключить динамик на один из входов и ловить этот писк. Ну а дальше все просто.
Получили сигнал открытия домофона => подождали время пока хозяин поднимается => включили освещение => если через заданный промежуток не открыта входная дверь (геркон), то выключаем свет.
Кстати. Мне по работе пришлось столкнуться с байтовым протоколом. Поэтому для себя накидал такой документик. Может кому будет полезно.
Код команды:
A0 — запрос для получения названия клиента
A1 — отправка названия клиента
A2 — запрос для получения значения датчиков
A3 — отправка значения датчиков
A4 — установка значения для реле
Код устройства получатея:
От 20 до FF
FF — бродкаст
Для одного клиента уникальная нумерация датчиков / реле(выходов).
Запрос для получение названия клиента
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A0]
[EOT = 04]
Отправка названия клиента
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A1]
Название клиена HEX кодами произвольной длины
[EOT = 04]
Запрос для получения значения датчиков
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [00 — FF]
Код устройства получателя [00 — FF]
Код команды [A2]
[EOT = 04]
Отправка значения датчиков
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [00 — FF]
Код устройства получателя [00 — FF]
Код команды [A3]
Код датчика [20 — FF]
Значение [0000 — FFFF]
… повторяем для каждого датчика
[EOT = 04]
Установка значения для реле/выхода
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A4]
Код реле [20 — FF]
Значение [0000 — FFFF]
… повторяем для каждого реле/выхода, значение которого надо задать
[EOT = 04]
Примеры.
Запрос для получение названия клиента
02F92503002021A004
Отправка названия клиента
02663B07002120A15465737404
Запрос для получения значения датчиков
02D96703002021A204
Отправка значения датчиков
024A1C09002120A320990021AA3004
Установка значения для реле/выхода
02DD0806002021A422010004
Ну если это для вас затруднительно, тогда согласен — герконы проще.
Просто я сам поменял все трубы в доме, так что не вижу тут проблемы :) А такой счетчик я предполагал использовать не вместо, а ВМЕСТЕ с герконами. Если кто-то в кабине моется, то не будет проблемой вход в ванную и выход другого члена семьи.
Так этот датчик не обязательно в короб ставить. Можно и сзади душевой кабины в разрыв подключения подводки воды. А тут уже и питание для ардуинки не проблема :)
Про высокую цену внешнего датчика согласен.
Я довольно долго пользовался покупной метеостанцией с внешним датчиком. Он требовал замены батарейки раз в год. Висел за окном и показывал влажность и температуру. Поэтому для себя рассматриваю вариант с внешним датчиком — никаких проводов.
А счетчик воды использовать не в качестве счетчика, а в качестве дополнительного датчика. В вашем случае он поможет определить что кто-то находится в душевой кабине. Пока открыт кран он будет генерировать сигнал позволяющий понять что кто-то есть внутри.
Статья в планах есть. Как начну реализовывать — выложу.
Мозг — набор скриптов на веб сервере который в свою очередь крутится на NAS'е. Логика работы простая. Кратко опишу на примере контроля вытяжки в ванной.
Ардуино в ванной с датчиком влажности регистрирует изменение на 1% или больше
=> Посылает запрос на сервер типа такого 192.x.x.x:8080/sensor.php?id=...&value=…
=> Скрипт знает последнее значение этого датчика, понимает что надо сделать (включи или выключить реле) и отправляет ответ
=> Адруино выполняет действие
Ну и минимальная логика в сомой ардуинке: нет ответа от сервера — включаем и выключаем реле по граничным значениям которые прошиты в памяти.
Сейчас выбираю модель NAS'а которая мне наиболее подойдет с учетом всех требований.
Задался целью реализовать практически тот же функционал. Для начала потренировался с ардуинкой и теперь она с лета управляет освещением растений на лоджии.
В планах сделать:
— выключение света когда все ушли из дома (RFID метка на ключах в ключнице — нет ни одной = все ушли)
— ночная подсветка в кухне (по датчику света)
— контроль вытяжки в ванной
Основное отличие — «мозг» будет на NAS'е. А конечные Arduin'ки буду выполнять всего лишь сбор данных и управлением по командам из вне.
Для мониторинга температуры за окном почитайте вот это: habrahabr.ru/post/165747/ :) Цепляем Oregon'овский датчик по 433 и все.
P.S. Еще есть счетчики воды. Можно их использовать как датчик срабатывания.
Не много не по теме робототехники, но добавлю свои 2 копейки. Все же советую сразу избавиться от BT и перейти на WiFi. Пусть дороже и тяжелее. Но более стабильная связь.
По работе реализовывал протокол общения iPod'ов с внешним BT устройством. В тепличных условиях все работало стабильно. Но как только вышли из теплицы, то выползли проблемы. Начали тестировать у себя и оказалось что как только в зоне связи появляется еще несколько BT устройств (телефоны, гарнитуры и т.п.), то передаваемые данные просто пропадают. Т.е. я фиксирую отправку данных, а до внешнего устройства они не доходят.
Пришлось разработчиков просить реализовать WiFi. Проблемы со связью ушли.
…
— Молодой человек, я имею в виду ваш почтовый адрес!
— А… Записывайте: Слоник-в-домене-завелся-собачка-маил-ру.
— Как-как?
— Пишется по-русски, но латинскими буквами. Вместо пробелов — символы нижнего подчеркивания…
…
— Так… Попробуем… Минуточку… Да, такой ящик обнаружен. Скажите, пожалуйста, ваш пароль.
— Пароль у меня такой: мама сшила мне штаны из березовой коры
— Молодой человек, кто вас такие пароли учил делать?.. Набирать также?
— Хакер один знакомый… Да, также… Только вместо символов нижнего подчеркивания ничего не ставьте.
— Вы ошибаетесь — пробелов в пароле быть не может.
— А пробелы и не надо — все слитно пишется.
…
Дело за малым — реализовать набор команд.
К примеру:
Пропала метка с ключами — вероятность ухода 70%
Пропал телефон — вероятность ухода 30%
Пропал ноутбук — вероятность ухода 10%
и т.п.
Так же использовать не один тип датчиков для детектирования, а копмлекс: датчики на дверях, RFID считываетли, датчикки двежения, сканирование сети и т.п.
Дальше минимальная логика.
1. Раз в 5/10/15/… минут проверяем список доступных устройств и запоминаем его
2. Сработал датчик открытия входной двери
3. Через 2-3 минуты проверяем список устройств и сравниваем с теми, что были до открытия двери
4. По списку пропавших устройств определяем кто ушел/пришел (сотовый в приоритете)
Преамбула. У нас в подъезде стоит цифраловский домофон. Открыть его можно либо талеткой, либо кодом. Сам код вида [НОМЕР_КВАРТИРЫ]*[КОД_КВАРТИРЫ]. Если входить по коду, то домофон в квартире издает определенный писк.
Можно подключить динамик на один из входов и ловить этот писк. Ну а дальше все просто.
Получили сигнал открытия домофона => подождали время пока хозяин поднимается => включили освещение => если через заданный промежуток не открыта входная дверь (геркон), то выключаем свет.
Просто я сам поменял все трубы в доме, так что не вижу тут проблемы :) А такой счетчик я предполагал использовать не вместо, а ВМЕСТЕ с герконами. Если кто-то в кабине моется, то не будет проблемой вход в ванную и выход другого члена семьи.
Я примерно про такие счетчики — dvrobot.ru/shop/i221.schetchik_rashoda_zhidkosti..htm
Других вариантов пока не рассматривал.
Тут есть пример кода.
Готовый модуль плюс вот такие брелки: devicter.ru/goods/RFID-tag-combo?from=ZWM2
Я довольно долго пользовался покупной метеостанцией с внешним датчиком. Он требовал замены батарейки раз в год. Висел за окном и показывал влажность и температуру. Поэтому для себя рассматриваю вариант с внешним датчиком — никаких проводов.
А счетчик воды использовать не в качестве счетчика, а в качестве дополнительного датчика. В вашем случае он поможет определить что кто-то находится в душевой кабине. Пока открыт кран он будет генерировать сигнал позволяющий понять что кто-то есть внутри.
Мозг — набор скриптов на веб сервере который в свою очередь крутится на NAS'е. Логика работы простая. Кратко опишу на примере контроля вытяжки в ванной.
Ардуино в ванной с датчиком влажности регистрирует изменение на 1% или больше
=> Посылает запрос на сервер типа такого 192.x.x.x:8080/sensor.php?id=...&value=…
=> Скрипт знает последнее значение этого датчика, понимает что надо сделать (включи или выключить реле) и отправляет ответ
=> Адруино выполняет действие
Ну и минимальная логика в сомой ардуинке: нет ответа от сервера — включаем и выключаем реле по граничным значениям которые прошиты в памяти.
Сейчас выбираю модель NAS'а которая мне наиболее подойдет с учетом всех требований.
В планах сделать:
— выключение света когда все ушли из дома (RFID метка на ключах в ключнице — нет ни одной = все ушли)
— ночная подсветка в кухне (по датчику света)
— контроль вытяжки в ванной
Основное отличие — «мозг» будет на NAS'е. А конечные Arduin'ки буду выполнять всего лишь сбор данных и управлением по командам из вне.
Для мониторинга температуры за окном почитайте вот это: habrahabr.ru/post/165747/ :) Цепляем Oregon'овский датчик по 433 и все.
P.S. Еще есть счетчики воды. Можно их использовать как датчик срабатывания.
Привет очки!!!
Кто-то дедлайн почти про
срфукал вот быстро и пытаются работу сделать.It's humor ;)
По работе реализовывал протокол общения iPod'ов с внешним BT устройством. В тепличных условиях все работало стабильно. Но как только вышли из теплицы, то выползли проблемы. Начали тестировать у себя и оказалось что как только в зоне связи появляется еще несколько BT устройств (телефоны, гарнитуры и т.п.), то передаваемые данные просто пропадают. Т.е. я фиксирую отправку данных, а до внешнего устройства они не доходят.
Пришлось разработчиков просить реализовать WiFi. Проблемы со связью ушли.
…
— Молодой человек, я имею в виду ваш почтовый адрес!
— А… Записывайте: Слоник-в-домене-завелся-собачка-маил-ру.
— Как-как?
— Пишется по-русски, но латинскими буквами. Вместо пробелов — символы нижнего подчеркивания…
…
— Так… Попробуем… Минуточку… Да, такой ящик обнаружен. Скажите, пожалуйста, ваш пароль.
— Пароль у меня такой: мама сшила мне штаны из березовой коры
— Молодой человек, кто вас такие пароли учил делать?.. Набирать также?
— Хакер один знакомый… Да, также… Только вместо символов нижнего подчеркивания ничего не ставьте.
— Вы ошибаетесь — пробелов в пароле быть не может.
— А пробелы и не надо — все слитно пишется.
…