Pull to refresh

Comments 46

да, большая простыня… :) по файлам бы, логически, распределить
и на гитхаб. А сюда наиболее интересные моменты кода. Если имеются, конечно.
Дело в том, что я совсем не программист, поэтому интересных решений там нет. Самое интересное — что код работает, как я того хотел.
Интересно пишете. Спасибо за статьи.
Я вам немного завидую...
Я не могу договориться с остальными «я» на тему «секурности» радиоканала… Особенно на 433 МГц. Ведь фактически можно прийти к дому с любым передатчиком и слать в офир /dev/random из 2-х 3-х байт. Поэтому я буду тянуть кабло.
Но Вы это… не слушайте меня. =) Это у меня профдеформация…
Мне тоже пришлось пойти на компромисс. Очень хотелось и попробовать (получится вообще или нет), и попользоваться результатом, и чтобы полдома не разносить. В итоге мои «я», посовещавшись, решили, что никому они не сдались и дружно разрешили использование незащищенного беспроводного канала )
Отличные статьи, приятная реализация.
Завидую. У меня никак не доходят руки собрать всю систему целиком — есть куча замечательно работающих блоков, но вот состыковать их в монолит… Увы. Перфекционизм мешает. Постоянные переделки и переписывания кода, вынос логики на домашний сервер, «внос» её обратно, попытка переложить управление 1-wire сетью на микроконтроллер вместо owfs…
Да, не скоро запущусь, чую.
Но есть же и плюсы. Вам, например, уже никто не скажет про то, что датчики торчат в разные стороны, и что код неопрятный :) То, что получилось у меня — результат отсутствия опыта и очень многих компромиссов, на которые обычно никто не идет.
А можно подробей про алгоритм кормления кошаков. Как отличете одного от другого? У меня тоже один жрет все что не приколочено и пора бы ему уже худеть, а второй жрет 50раз в день, но по 1 грамму и ему надо, чтобы миска стояла всегда. Вот такая дилемма.
Надо одному коту скопировать прошивку от другого. Правда, если у них контроллеры разные, то труба.
Повесьте одному ремешок со светодиодом вверх, а сверху ик датчик. Или может у них температура тела разная. Можно nfc чип одному сделать или обоим.
Если подходит со светодиодом/nfc разрешать или запрещать кушать. Хотя лучше разрешать, не представляю как будет печально коту, когда он будет подходить к открытому лотку покушать и тот будет перед ним закрываться. Он будет отходить, а тот открываться. Интересно через сколько итераций коту это надоест…
я об этих итерациях тоже подумал, что прямо какое-то издевательство над животным: все едят, а ему — нельзя )
для собак, например, вполне нормальное явление
все едят, а собака — нет
все поели — встали и собаке покушать дали
Коты умные животины, через некоторое время «худой» кот будет водить кормить «жирного».
Тогда и худому по расписанию)
Если RFID метку удастся закрепить на коте, то все просто — в разрешенное время подошел — кормись, в остальное — кормушка на него не реагирует.
Кстати, а кормушек с большим контейнером и насыпанием еды не встречали?
Вот, к примеру: раз и два. Первое, что попалось — наверняка можно найти и другие размеры, и более приятные цены.
Дело в том, что мы и не отличаем. То есть, можно было бы, конечно, повесить на того, кому нужна диета, RFID-метку (у него вообще такие габариты, что и обычный пропуск можно повесить), но я против того, чтобы у кота на шее что-то было.

Главное требование не в том, чтобы «худеющий» вообще не ел из чужих мисок, а в том, чтобы он это делал максимально редко. То есть корм не должен стоять в свободном доступе всегда. Одновременно было крайне желательно, чтобы других котов можно было если не покормить, то хотя бы отвлечь ночью (потому что ночью не всегда есть силы встать и пойти покормить) этой самой едой.

Поэтому у кормушки крайне простой алгоритм: по нажатию кнопки она «открывается», а через 2.5 минуты — закрывается. И ей неважно, кто был рядом и кто сколько и чего съел.

Это не оптимальное решение, но оно реально работает. Самый капризный кот, который требует, чтобы с ним ходили ночью кормиться по два-три раза, обычно успокаивается, если ему включать кормушку (бывает, что и не успокаивается — но на то он и капризный).
Здравствуйте. У меня есть пару вопросов:
— на сколько стабильно без ложных сработок ведут себя датчики движения, двери и задымленности с протечкйо?
— на сколько у них сильное потребление тока и как быстро они кушают батарею?
Отличная реализация) Но меня жена запилила бы за датчики на двери, хотя еще не вечер()))))))
О проводном датчике движения я рассказывал в первой части. Тезисно: при моей установке (высота около 2 м, угол около 45 градусов) датчики адекватны, не реагируют на сквозняки и животных, но однозначно реагируют на человека; однако датчики реагируют на электромагнитные помехи (например, от активности передатчика контроллера или сетевых кабелей), с чем приходится бороться а) уменьшением длины провода до датчика б) разнесением датчика и передатчика в) попытками уложить кабель датчика так, чтобы не было ложных срабатываний.

Датчики двери оказались очень стабильны, но они еще и расположены почти рядом с контроллером. Датчики протечки и задымления в тестах (протечку опускал в стакан с водой, задымление проверял кнопкой теста на датчике) ведут себя аналогичным образом. Максимальное расстояние до датчиков в квартире — около 5 метров. Максимум по радиоканалу я не выяснял.

А вот кнопка «паника» меня огорчила. Оказалось, что на расстоянии около 7 м контроллер ее уже не слышит.

Потребление тока я не измерял. По характеристикам (по ссылкам есть): датчик дыма (300 мкА ожидание, 20 мА тревога; датчик протечки, если я правильно посчитал, 5 мкА ожидание, 10 мА — тревога; датчик двери аналогично датчику задымления).

По поводу реального потребления тоже в тексте — с июня прошлого года работают датчики задымления и протечки (недавно проверял), но уже пришлось пару месяцев назад поменять батарейки в датчиках двери.
Скажите еще пожалуйста. Датчики как-то сигнализируют о маленьком заряде батареи или просто перестают работать?
У датчиков протечки и двери два световых индикатора: срабатывания и разряда батареи. Если батарея разряжена, то при срабатывании загораются оба. По радиоканалу они не сообщают о разряде батареи.

У датчика задымления есть световой индикатор дежурного режима — он им мигает раз в 40 секунд. Я так понимаю, что если перестал мигать — батарейке конец. По радиоканалу тоже ничего не сообщает о разряде.
Датчик движения я использую проводной. У беспроводного есть световой индикатор срабатывания. Полагаю, на него можно ориентироваться. Т.е. помахал рукой и индикатор загорелся — значит, батарейка еще работает. Не загорелся — села.
Круто. А может код в спойлер?
Я честно искал кнопку «спойлер», правда. А она, оказывается, по ссылке html-теги. Сколько блогов, столько реализаций, а я каждый раз путаюсь. Все убрал, больше так не буду.
Статья супер. Но уберите, пожалуйста, код по спойлер!
UFO just landed and posted this here
На ближней дистанции и в зависимости от размещения приемника и передатчика наиболее удобны оказались отрезки макетного провода — их даже распрямлять и укладывать не приходилось.

На средней дистанции однозначно выигрывают спиральные антенны, причем все же «заводские».

Из передатчиков больше всего понравились те, что купил на DX — у них и антенна уже запаяна, и монтаж элементов более качественный, и субъективно все с ними работает стабильнее, чем если взять дешевый FS1000A и даже запаять в него «заводскую» спираль.

Приемники в самодельных контроллерах при этом самые дешевые, суперрегенеративные. В остальных устройствах (розетки, выключатели) ничего не трогал. А там — провод, смотанный в спираль. Похоже, как у передатчика с DX, но менее аккуратно — там эту спираль еще и по месту запихивали со всякими сопутствующими деформациями.
Возможно глупый вопрос, но… Почему не Bluetooth, а 433 MGz? По синезубу можно со смартфона управлять
Я, возможно, не очень правильно объяснил ситуацию. Радиотехнология выбрана по причине того, какая периферия используется. Розетки, выключатели, радиореле — все это 433 МГц. Более того, обычно никто не делает домашнюю автоматику на Bluetooth, поскольку это соединение типа точка-точка. Для этого используются другие протоколы (Z-Wave, Xbee/ZigBee, X10). В крайнем случае — Wi-Fi (это сейчас вот появились всякие ништяки вроде лампочек и розеток по более-менее разумным ценам).

А со смартфона я и так вполне себе управляю всем подряд. И с компьютера, причем с любого — главное, чтобы был доступ в интернет. Ведь контроллер подключен к локальной сети и принимает команды на управление через веб-интерфейс. При таком варианте нет и 10-метрового ограничения Bluetooth. Я же могу управлять и с другого конца земного шара.
Я добавил блок «Быстрый старт» в самое начало. Надеюсь, это улучшит ситуацию.
"… что к ней приложился не авторизованный для этой операции кот."

Вот это место очень понравилось)
Спасибо за статью!
думаю то-же приобрести и использовать Радиорозетки.
Но мне нужно аж 10-12 штук и все с уникальными сигралами вкл/выкл. У всех ли есть возможность перемычками джамперами и прочимы способами кроме перепрограммирования пика сделать каждой из 10 униканый код? Я Вот присмотрелся к таким www.ebay.com/itm/261362422235?_trksid=p2055119.m1438.l2649 они комплектами по 3 уникальных кода продаются.
Я полагаю, что если настраивать совсем вручную т.е. разобрать пульт и розетки, и у них на плате выставить другой адрес, то, с высокой долей вероятности можно настроить все. В розетках ведь обычно не полнофункциональный контроллер, а специальный кодирующий-декодирующий чип, у которого это единственная задача.

Однако возможность настройки также зависит от фантазии изготовителя — какой чип внутри и есть ли вообще отдельные площадки адреса на плате.

По моему опыту: я покупал два комплекта розеток одной марки (Леруа Мерлен). При этом пульты из обоих комплектов управляли розетками любого комплекта без проблем. Т.е. в этом случае коды не уникальны, и едины для всех комплектов.
Да понял, в твоих Мерленовских например есть потенциальная возмодность на плате что-то перемкнуть и получить больше каналов управления, как на твоих фотках пультов с перемычками?
Возможно ли поменять радио/декодирующий модуль в родетке на свой оставив силовую часть и питание родной?
Модуль с возможностью десятков канадов одельно видел в продаже?
В Мерленовских это будет крайне неудобно и совершенно нецелесообразно. Там нет площадок для кодирования адреса, все заранее разведено на плате под конкретную конфигурацию пульта и розеток.

На первый взгляд, радио поменять можно. А что значит «поменять декодирующий модуль» — это я не очень понимаю. Там чип 2272-L4 — это и есть декодер. Поменять его можно на точно такой же, разве что с другим режимом работы (они отличаются логикой: включен, пока нажата кнопка на пульте; одна кнопка на пульте включает и выключает; одна кнопка на пульте включает, другая — выключает).

И, чтобы не было недопонимания: радио и декодер здесь — это отдельные, по сути независимые элементы.

Еще не понял, какой именно модуль. Наборов розеток таких я не видел, но есть 12-канальный комплект с отдельными силовыми блоками. Или с единым блоком реле.Насколько он совместим с RC-Switch — я сказать не могу.
Спасибо огромное за статью. Сам очень хочу реализовать некоторое подобие умного дома. Но планирую это делать в новой девственной квартире перед всеми ремонтами. Какие будут советы по прокладке проводки, чтобы максимум датчиков реализовать по проводам? Нужно пускать отдельно низковольтовую линию, я так понимаю?
Я, если честно, не эксперт по системам этого класса. Если бы сам делал в таком состоянии, и было бы время на подумать, то:

1) Сначала бы подумал, где вообще могут быть датчики, какие именно, и чего вообще хочется.

2) Прикинул бы длину и типы необходимых проводов. Ведь некоторым датчикам нужно и питание, и канал передачи данных, а некоторым — только канал данных (например, датчику двери (геркону) нужно всего два провода).

3) Прикинул бы потери по питающим проводам, чтобы понять, какой источник питания нужен, и что лучше: единый источник питания, или, грубо говоря, розетка и блок питания рядом с каждой «контрольной точкой».

Чтобы было удобнее, на выходных точках желательно предусмотреть что-то вроде распределительных коробок (и/или разъемов/розеток в стене) — это позволит проще заменять датчики/устройства, не боясь испортить выходящий из стены провод. Или, если неприемлемо — небольшой запас провода «на всякий случай».

Хорошая практика также состоит в том, чтобы прокладывать проводные линии в кабель-каналах или гофрированной трубе с шнуром-протяжкой внутри — в теории это обеспечит возможность замены/добавления кабелей. Правда, знакомые монтажники прокладывали так не в расчете на замену, а просто «потому что начальство требует», что как бы намекает на не очень радужные перспективы замены/добавления.
Если есть возможность, то кладите кабель 5 категории и кабель для высокочастотных сигналов (антена, спутник). Все провода должны сходиться в одном месте в подсобке либо укромном месте.
Количество кабеля рассчитывайте сами. Рекомендую класть пару кабелей 5 категории и один высокочастотный к каждой электрической розетке. Расход кабеля получается большой и не все они будут задействованы, но зато потом не надо будет кидать длинные патчкорды.

PS. Кабель к выключателям и датчикам можно и попроще положить. Но перед всеми работами надо составить ТЗ и чем подробней, тем потом окажется дешевле.
Долбаюсь с приёмниками-передатчиками…
Основных — два: на 315 и на 433…
Цель — сканер для кодов пультов: постоянно нужно выяснять работает-ли пульт и точно-ли на нужном адресе?!

315 — отладил, всё Ок, все пульты на 315 ловит, а 433 — игнор…

Втыкаю вторым приёмник на 433, и тут начинается колбаса…
Эта скотина упорно принимает 315-е! И 433… Но 433 не все и в любом случае — только если ей в антенну ткнуть.

На 315 — родная антеннка, на 433 — припаял штырь. В дальнейшем — хочу телескопические воткнуть…
Я понял задачу, но из описания совсем не понял реализацию. Если принять за данное, что подключаете одновременно два приемника и пользуетесь библиотекой RC-Switch, то имейте в виду, что она, насколько я понимаю, не может работать одновременно с двумя приемниками, поскольку совершенно жестко привязана (на прием) к прерыванию 0.

Т.е. при условии, что у вас действительно два разных приемника (433 и 315), то и подключать их придется к разным платам Arduino. Или же придется разбираться и модифицировать RC-Switch, чтобы она могла работать и с другим прерыванием. Что, кстати, вряд ли особо целесообразно, поскольку прерывание — вещь максимального приоритета. И, соответственно, если вдруг в один момент времени будут работать два передатчика, то, скорее всего, не будет декодирован сигнал ни одного из них.

А вот эти эффекты, которые вы наблюдаете (прием 433, если ткнуть в него пультом), в теории могут объясняться, если приемники лежат рядом. Тогда существует вероятность, что приемник на 315 МГц таки забирает сигнал 433 МГц (знаю, звучит бредово, но есть же гармоники), а библиотека справляется с декодированием. При этом может возникать ложное впечатление, что сработал приемник 433 МГц.
В коде вбито отнюдь не жёстко: при создании класса для приёмника задаётся номер прерывания! Причём задаётся вполне честно: в коде я находил этот кусок и она при инициализации прерывания использует именно передаваемый в параметре вектор!

Сейчас больше другая проблема волнует: хреновость приёма…
Пока налаживал — вроде было всё Ок, принимал через всю комнату.
Установил в деревянный корпус, и начался дурдом: пока к этой ножке не подойдёшь с нужной стороны — фиг что принимает!!!
Чуть меняешь положение пульта — всё, «нету никакого сигнала!»…

Про 433 — молчу. Ибо писец какой-то: 315 — нормально работают, 433 — даже в одиночку ничерта не ловит!
Да, точно. Это уже я все успел позабыть и перепутать. А с передатчиками/приемниками действительно есть такое дело. У меня большая часть устройств скрыта, поэтому там антенны вне корпусов. Наверное, это как-то улучшает ситуацию.
Sign up to leave a comment.

Articles