Pull to refresh

Comments 99

Очень интересно, но мета данный в фотографиях лучше удалять, а то ещё приедет кто.
а что за осциллограф на USB, тоже, хочется посмотреть?
CTI 260. Сейчас такой уже что-то не найду…
Заманчиво, но во всех жизненно важных DIY проектах(яркий пример — умный дом) есть 1 минус(по крайней мере, говорю про себя) — когда то банально надоест заниматься их поддержкой.
И если сейчас все хорошо, то на момент возникновения проблемы уже может не быть времени\желания заниматься ее поисками, вспоминать самописные прошивки и отлаживать все это.
Это особенно актуально, когда перестают работать важные устройства, используемые в повседневной жизни, например банальный выключатель света. Поэтому выключатель мой отлично работает и без сети, да ещё и сенсорные кнопки ему сделал.
А если перестанут работать датчики температуры или эмулятор пульта ДУ, то я лишь потеряю удобство, которое получил. Хуже, чем было без всего этого, уже не станет.
поэтому нужно заиметь привычку при любых разработках составлять документацию — для себя в будущем — я частенько себе в прошлом говорю за это спасибо, это как код комментировать.
Вай-фай роутер в помощь, будет вам сеть по всему дому без необходимости тянуть провода, сразу с адресацией, протоколами без потерь, возможностью развернуть сервера на любом из узлов и, конечно же, с возможностью писать на высокоуровневых языках без перепрошивки железа.
Нет, это был дружеский совет по эффективной реализации.
Я сильно сомневаюсь что вы сделаете ваши оконечные устройства дешевле 1000р с учетом комплектующих, времени на изготовление платы (я уж не говорю о ее промышленном исполнении), корпуса и т.п.
На базе мелких роутеров с линуксом можно сделать оконечное устройство в пределах 1000 рублей.
Проблем с подключением к нему датчиков на любых интерфейсах (rs-232, i2c, spi, 1-wire) нет.

При этом у вас сразу же будет высокоскорстная и покрывающая всю квартиру связь (позволяющая даже стримить видео, что тоже организуется очень легко), полноценная ОС, решения под которую поддерживать проще, чем свои велосипеды, и целый набор инструментов для организации фронт-энда и администрирования узлов системы в виде разнообразных веб-серверов и т.п.
У меня уже шесть устройств (Вы пост не читали, ведь?), себестоимость каждого вышла менее 100 рублей, на изготовление каждого уходило всего несколько часов. Есть возможность подключать всё это и без проводов (пост не читали, ведь?), всё это управляется Wi-Fi роутером под Линуксом (пост не читали, ведь?), с веб-админкой и всеми делами: home.clusterrr.com/
И я ловлю кайф от низкоуровневого программирования (пост не читали, ведь?)
Смысл именно в том, что я легко могу добавить маленькое устройство ценой 50-100 рублей, выполняющее простую задачу и имеющее доступ к сети и Интернету.
Я не говорил про центральный узел, я говорил про беспроводные оконечные устройства, которые у вас в данный момент подключены по проводам. Меньше ста рублей на устройство с учетом времени изготовления и печатной платы у вас не выйдет.
Чтобы «легко добавить маленькое устройство» нужно тянуть эти провода, доступа к «сети и интернету» на маленьком устройстве не будет, т.к. у него нет сетевого контроллера, а ваша шина функций моста не выполняет.
Впечатление, что вы мой текст читаете как-то по диагонали. Утверждаете, что у меня не получится сделать то, что я уже сделал.
Вы не привели никаких сведений о схематике оконечных устройств.
Без этого «сто рублей» притянуты за уши. Беспроводной связи вы тоже не сделали, кстати. Только на центральном узле, который один на квартиру.
А я вам рекомендую вместо одного центрального узла в лице здорового асусовского роутера сделать несколько маленьких, в лице мини-роутеров от того же TP-линка, избавившись от большого количества проводов. А ваши оконечные устройства уже подключите к нему, раз вам такое удовольствие доставляет их изготавливать.

Понимаете, не один узел. Тогда решение будет на порядок более гибким и удобным.
Дык понятно же, что всё без лишней обвески. Цена микроконтроллера — 30 рублей. Радиорешение или ИК решение сделать не проблема, и это явно не стоит 1000 рублей. Правда, питание всё равно придётся делать.
Я могу с таким же успехом просто поставить везде розетки, что и делаю.
Думаю, это бесполезный спор.
У вас и так один узел на линуксе, вместе с платой преобразователя в вашу шину, он стоит дороже. Используя вместо одного узла несколько (на мелких роутерах), получите более удачное решение. К которому, кстати, сможете прикрутить видеонаблюдение.
Мне кажется, что вы в корне не понимаете поставленной задачи. Если мне нужно будет сделать видеонаблюдение, я учту ваши советы. Можете дать ссылку на подобный роутер, кстати?
Понимаю, потому что сам этим занимался. И прошел через все эти велосипеды, начиная с ИК и кастомного радио.
В итоге пришел к реализации, которая наиболее гибкая и эффективная в силу того, что работает все это под управлением linux и сразу же есть WiFi доступ. Это определяет и простоту поддержки данного решения, чем меньше там низкоуровневых велосипедов, тем ее проще расширять и поддерживать.
Если нужно несколько оконечных устройств — допустим несколько датчиков в непосредственной близости друг от друга, то конечно, не по роутеру на датчик делать.
Но датчики без проблем можно подключить к нему по тому же 1-Wire, и не тянуть через всю квартиру эту шину.
У вас хорошее решение с точки зрения лично опыта, тут я ничего и не говорю, вы сделали намного больше чем делают всякие ардуинщики. Просто теперь, т.к. вы свой опыт уже получили, я рекомендую не отметать сразу другие варианты, а посмотреть на возможности реализации, которые имеют множество плюсов (и отлично комбинируются с вашим подходом — вам же не надо выкидывать ваши оконечные устройства, просто можете разбить текущую систему на два узла, допустим, сократив число проводов — скажем, по комнатам).
Роутер — TL-MR3020 (либо его китайский аналог TL-WR703N).
Вот моя статья об аналогичной проблеме.
Я не назвал бы себя нищебродом, но тут всё упирается скорее в вопрос цены. Моя задача — пойти путём установки огромного количества ультрадешёвых устройств, подготовив себе лёгкую в разворачивании платформу. Вон у меня в ящике десяток микроконтроллеров, из которых я могу быстро что-то состряпать без особых усилий, воткнуть в розетку, и оно будет работать. Иначе я использовал бы как минимум CAN вместо своего велосипеда.
Оставьте, человек явно не хочет слушать и читать то, что ему говорят. Единственная его цель — нести идею о том, что в лампочке нужен линукс в массы.
еще больше подходит тематике

=O.O= Ооок.
Его девайсы, с вайфаем и линуксом, должны жрать на порядок больше энергии. И это плюс ещё к тому, что стоят в 10 раз дороже. Да и потом стоимость разработки увеличивается ещё и за счёт того, то придётся разрабатывать свою систему секурити ибо, как известно, вардрайверы не спят. ;) О надёжности умолчу. Более простые девайсы гораздо проще делать надёжными, нежели более сложные.
Глянь на досуге на HLK-RM04. Теоретическая (сам не проверял) совместимость с OpenWRT, до 12 GPIO, 2 Ethernet-порта, 2 последовательных порта, WiFi. Цена на TaoBao 8-9 евро (для внешнего рынка повышается до 13-15, чтобы дешевле — нужны знакомые из Китая :)), размер самого модуля сравним с CF-картой. Может много интересного получиться.
Извините, а что за микроконтроллер за 30 руб?
да те же stm32 — была у них раньше модель, которая меньше бакса стоила, но они демпинговали тогда, сейчас почти в 2 раза цены подняли на всё(что ожидаемо): www.compel.ru/?s=stm32 вот здесь например можете посмотреть
У меня сейчас везде ATMEGA8A.
К вашему роутеру тоже придётся тянуть провода, что бы обеспечить его электричеством.
Электричество есть на самом объекте управления, 220В. Будь то телевизор, кондиционер или лампа.
В выключателе нет 220В… Он включается последовательно лампе.
В выключатель его в большинстве домов ввести не проблема, там зачастую есть лишние провода в расчете на многорожковые люстры.
Остальные 5 устройства, кстати, не имеют 220 вольт под боком и располагаются достаточно далеко друг от друга…
Вы предлагаете в каждый выключатель по WiFi-роутеру поставить?
Располагающиеся вблизи объекты можно повесить на один. А так — почему нет? Это все равно выходит дешевле и эффективнее велосипедной реализации. И уж точно более удобно, чем тащить провода к каждому объекту.
WiFi-роутер это маленькая плата 60х60 мм, одноплатный компьютер с линуксом, потребляющий в такой конфигурации 0.5 Вт.
Мне нравится ваша идея. Но она применима для отдельных устройств — для всего дома не накупишь довольно дорогих роутеров.
Кстати а есть такой же роутер со встроеным БП?
Его собственнный БП не проблема встроить. Есть, кстати, аналог от того же TPLink'а со встроенным аккумулятором даже.
Они, на самом деле, дешевые — 800 рублей за центральный узел это очень немного.
Тут, почему-то, восприняли это как идею поставить одни роутеры. Это не так, в идеале, роутеры являются узлами. Грубо говоря, у меня в одном конце комнаты выключатель люстры, в другом — кондиционер и окно. В прихожей дверь с глазком и люстра.

Итого три роутера — три узла сети. Тот что в комнате около выключателя нагружен еще и на датчик температуры, влажности, CO2 — чего там хочется — без необходимости тянуть витуху. Тот что около кондиционера — на ИК трансмиттер кондиционеру и датчики температуры за окном. Тот, что в прихожей — на выключатель света, открывалку двери и вебку, смотрящую в глазок.
Все три — клиенты домашней вай-фай сети, никаких левых точек. Централизованное приложение CGI-запросами собирает с них инфу. Вот и все, никаких проводов, легкая и непренужденная передача видео, сбор данных.
При желании тем же методом можно себе в ванную стримить музыку с домашнего сервера.
Пожалейте эфир и соседей.
Сейчас типично в многоквартирном доме вокруг ловится полтора десятка вайфаев (и это в Новосибирске, не в default city!) Куда дальше забивать эфир? Или «главное, что у меня лампочка с пульта включается. А то, что в целом у меня и у соседей падает качество связи — мне до лампочки»?
Станции, а не точки доступа. Все эти прибамбасы — станции, подключенные к центральному роутеру. Вы можете десяток в квартире разместить, нового не поймается. Особенно в условиях отсутствия обмена данными — сколько там клиенты шлют, пару байт, маякуя что они до сих пор не отвалились. Пока к ним не обратитесь, даже обмена не будет.
Что-то все зациклились на включении лампочек, будто это единственное, что можно автоматизировать дома. Это не в упрёк Вам, просто мысли вслух.
Да это просто самое очевидное и видимое применение :). Пришёл приятель в гости — а ты — щёлк «лентяйкой» — и включился свет! А всё остальное не так заметно с первого взгляда. Да и не всегда возможно. Техника нынче больно умная. Если какой-нибудь чайник можно включить, коммутируя цепь питания — то какую-нибудь современную микроволновку с сенсорным управлением и собственными мозгами зарулить на умный дом уже не так просто.
На практике я гораздо чаще использую управление телевизором/ресивером через ИК трансмиттер, нажимая горячие клавиши на клавиатуре компа. Например, так гораздо удобнее регулировать громкость, чем искать пульт ДУ. Пожалуй, это первое, что мне хотелось сделать :)
Да ну? Как раз это в последнюю очередь надо. Умный дом должен начинаться с умного сортира:

1) автоматическая вентиляция
2) Защита от протечек и перекрытие воды когда квартира ставится на охрану.
3) слежение за температурой стояки и подключение бакового нагревателя автоматом
4) логи температуры воды, для озолупливания коммунальщиков.
5) автоматический ароматизатор/освежитель

А также со входной двери:

1) автоответчик на домофон и вынос домофона в телефон (через сотовый мост) или на комп.
2) видеоглазок пишущий всех кто шарится возле двери и сливает это на сервер.
3) кодовый замок (вообще шик такую экзотику ни один домушник не вскроет)
4) трансляция прогноза погоды и обстановки за бортом в прихожую, чтобы сразу по погоде одеться.
5) трансляция состояния всех датчиков а также токовых потребителей на входную группу, чтобы с первого взгляда оценить все ли выключено, не забыт ли где то утюг и тыды.

Освещение в последнюю очередь идет:

1) аварийное освещение. Пропало питание — зажигаются светодиодные минисветильники от батарей и то только в темное время суток.
2) дистанционное управление светом, в идеале голосовое.

Вот это все реально облегчает и упрощает жизнь, а главное легко реализуемо в обычной квартире без тотального дестроя всего и вся.
Автоответчик есть, видеокамеры есть, погода в прихожей отображаетя… Всё остальное учту, спасибо :) Пожалуй, начать стоит действительно с туалета. Спускать воду по голосовой команде: «Бомбы сбросить!» =D
Сейчас модно в каждый выключатель по ардуине ставить. Надо пойти дальше и засунуть туда компьютер с виндой.
Почему не 1-wire? Очень интересует сравнение с этой технологией.
Я рассматривал 1-wire :) Он очень привлекает простотой, но обязательно требует наличия главного устройства, а хочется, чтобы всё было самостоятельным. У меня сейчас одно из устройств выполняет функцию моста между моей сетью и 1-Wire, опрашивает датчики температуры.
Супер! Все в точности так, как я хотел реализовать для себя!
Мое детище пока в мыслях. У Вас — в жизни. Завидую всеми фибрами души.

Но почему не железный CAN почему свой протокол?
CAN-контроллеры влетают в копеечку, а у меня из обвязки только транзистор с резистором, и то можно без них. Я решил пойти путём огромного числа простых и дешёвых устройств :)
Да, с CAN — цена за простоту и достоверность данных.

Еще вопрос — Ваше обновление по сети схематично выглядит так:
1. Устройство принимает некую команду
2. По команде оно ушло в бутлодер
3. Бутлодер самостоятельно принимает данные, тут же шьет
4. Обратная перезагрузка в основную (уже обновленную программу)
Похоже?

Все гениальное — просто, а то я по заносчивости уже хотел изобретать JIT-компилятор.
Да именно так. При условии, конечно, что основная прошивка жива, иначе надо будет сначала перезагрузить устройство руками. Если прошивки кроме бутлоадера совсем нет, микроконтроллер при попытке перейтик ней, сам перезагружается, бесконечно ожидая прошивки.
Бутлоадер достаточно просто пишется. Я ожидал, что сложнее будет. На эту тему есть отличный FAQ:
blog.schicks.net/wp-content/uploads/2009/09/bootloader_faq.pdf
Интересная идея. Но надо обжиться разными интерфейсами — теми же 1-wire, ethernet и т.д.
А пока этого нет я бы использовал 1-wire. Для умного дома, реально умного, а не просто выключателей света — все равно будет свой головной компьютер.
Можно сказать, что роутер с линуксом и есть головной компьютер, но если без него сеть работать не будет, это сильно понижает надёжность.
Надежность понятие относительное. Можно резервировать компьютеры. Но если мне надо управлять домом, то это должно делаться централизованно, и управление отдельными датчиками для меня плохая идея. Этими датчиками все равно будет управлять центаральный мозг. Какой нить ARM компьютер
У меня как раз изначально идея, что устройства могут посылать команды друг другу. Это уже реализовано, и получается очень удобно.
В централизации есть недостаток именно в этом центре:
1. Во-первых, если умирает центр, то перестает работать все. Хорошо, если сеть реализована на условной цетрализации (например, обработчик выключатель+лампочка — в одном подмодуле).
2. Центр — скорее всего довольно сложная, мощная и относительно дорогая штука. Чем сложнее устройство, тем ниже надежность итд.
3. Резервирование центра — умножение стоимости решения.
4. Скорее всего, на центре будет не ОС реального времени. Готовимся к подвисаниям и лагам.

ИМХО, гораздо лучше, когда устройства могут независимо общаться между собой, а «центром» выступает мост из шины умного дома в ethernet. На это устройство и вешаем память на последние события и состояния и внешнее командование.
Торт!

Вот только вынужденная необходимость опутывать квартиру паутиной проводов расстраивает. Сделать это аккуратно и незаметно никогда не получается, если только не заладывать это заранее в проект евроремонта.

PS Всегда восхищался твоей увлеченностью и талантом.
Паутины не будет, достаточно проложить за плинтусом шлейф из трёх проводов и установить розетки, что я и сделал. Заодно получил источник постоянного тока. Всегда хотелось, чтобы в квартире были розетки не только на 220 вольт, но и 5В, например. Как те китайские с USB.
100500 розеток не очень здорово, я сейчас думаю над практически полностью wireless системой. С разными провайдерами — ZigBee/RF/WiFi.
Энергии обычные датчики потребляют не так уж и много, можно подсадить на микроаккумы, и подзаряжать раз в пару лет.
А увлечённость — вещь не постоянная, увы.
«пост ориентирован скорее на обычных людей, чем на тех, кто в теме»
Круто! Ща почитаем.

«Что-то вроде CAN-шины в современных автомобилях»
«На борту микроконтроллера есть всякие I²C, да UART»
«доминантный и рецессивный сигналы»
Что-что-что?..

Видимо, кроме обычных людей и тех, кто в теме, есть ещё какая-то категория, где я. При этом я не домохозяйка…
Для меня все посты на хабре делятся на две группы — «ничего не понятно» и «как-то всё слишком просто и глупо» :)
Ну просто пост изначально был ориентирован на мой личный блог, а не на хабр.
А почему у вас такой странный график освещенности за сутки?
Это экспериментальная фича. Никак не подберу подходящий резистор для подтяжки фотодиода. Поздним вечером он вообще не пропускает ток.
Диод тут плохо канает, лучше фоторезистор.
С фотодиодом получается интересный эффект. Солнца нифига не видно, пасмурно, но на графике чётко видно время восхода и захода солнца. Похоже, он на ИК диапазон в основном реагирует.
скорее на ультрафиолет — его облака не задерживают — как то пасмурным летним деньком жестко обгорел так, книжечку на крыше читая
Очень здорово, воодушевляет! Планируете выпустить свои наработки в open source? На данный момент я планирую автоматизацию у себя в жилище, но по беспроводке (рассматриваю Z-Wave как перспективный вариант), причем хочется поменьше возиться с железом и побольше с софтом.
Думаю, рано или поздно выложу :)
Отлично! Но лучше рано. ;)
UFO just landed and posted this here
UFO just landed and posted this here
По ссылке совсем не то, что я ожидал увидеть от Z-Wave… Какие есть модули, чтобы самому сделать Z-Wave устройство?
Z-Wave — беспроводной, больше подходит тогда, когда ремонт уже готов и стену курочить нельзя от слова совсем. Когда я буду гулять по квартире с личтом железа, умный дом будет лагать. Если можно протянуть надежную проводную сеть, лучше так и делать.
А часто вы гуляете по дому с листом железа?
Z-wave — закрытый протокол, и не бесплатный, просто так сделать свои девайсы на нем не получится. А готовые девайсы стоят дорого. Есть еще ZigBee, он открытый, бесплатный для некоммерческого использования, но имеет кучу других проблем, например — отсутствие четкого стандарта, и как следствие плохая совместимость между устройствами разных производителей. К тому же дешево на этих протоколах сделать тоже не получится. Лучше посмотреть в сторону протокола 6LoWPAN — открытый и с весьма хорошими перспективами.
>Вам надо ознакомится с Z-Wave — он делает все то что и ваш, безусловно, крутой велосипед.

13 баксов за RF+8051 чип не больно круто?
«не думаю, что по этой сети будет передаваться большой объём данных.» — сильное, и возможно не верное допущение.
«большой объём» — понятие очень относительное.
Извините. я дилетант в этой теме, но хочу спросить: Вы говорите поступающие управляющие сигналы обрабатываются через прерывания. А сколько прерываний таких происходит для получения полного пакета с командой?
По два прерывания на каждый бит.
А какие микроконтроллеры то? :)
И еще интереснее передавать данные и питание по одному проводу, т.е. модулировать питающее напряжение. Все так делают (с)
Тем не менее профессиональные решения так сделаны, кстати именно по просто витой паре и UTP в частности. Из того, с чем регулярно работаю: EIB/KNX (он еще и по 230В умеет, но не сталкивался) и С-Bus (на честной UTP).
Используются 2 жилы из 4х у KNX и 4 попарно соединенных у C-Bus (для уменьшения потерь).
Насчет обвязки это да, но есть простор для творчества.
Есть хороший удобный провод — витая пара. Там 8 проводов. Можно съекономить и пустить 4х жильный кабель. Зачем извращаться?
Кроме того, потребителям может быть нужно довольно много энергии, особенно если они на общей шине сидят. А это дает ощутимую просадку напряжения на несколько вольт. Поэтому я бы на землю использовал 2 проводника и еще один задействовал бы под 12 или 24 вольта.
Вот выше написал, что профессиональные решения так делают, и наверное неспроста.
И просадки напряжения не боятся, 24-36 В вгоняют, падение напряжения даже на километрах проводов не влияет на работоспособность, DC/DC конвертерам хватит, чтобы в 5 вольт преобразовать.
Я ни раз прокладывал у себя по дому витую пару и могу смело сказать, что нифига она не удобная. Как раз с ней и получается паутина из проводов. Тоненький шлейф гораздо легче спрятать.
Про питание думал. Если понадобится поставить что-то мощное, например панель управления с дисплеем, то лучше наверное отдельное питание сделаю.
Проект отличный! Может стоит залить на BitBucket и дать ему жизнь?
Там глядишь и радио, и IR, и MSP430 подтянутся общими силами.
А вы не планируете выложить проект в github или еще куда-нибудь?
Там всё заточено под мои требования, но ссылку на исходники я дал чуть выше.
чОрт, я что-то не вижу. :(
Прошу прощения — читал комментарий через почту, подумал, что он относится к другому топику, и на автомате ответил.
Вот: clusterrr.com/soft/clunet.zip

Вообще, я раздавал его тут нескольким людям через личку, но что-то никаких отзывов не получил. Пожалуй, действительно стоит выложить его куда-нибудь уже и хорошо документировать.
А не пробовали обойтись одной мегой8? Без переходника uart-usb, есть отличный проект V-USB (http://www.obdev.at/products/vusb/index.html) для этих контроллеров. Я давно отказался от чипов FTDI и прочих аналогов. Один минус существенный только есть, не считая скоростей, софтварный USB отъедает львиную долю ресурсов контроллера, но в таком случае я ставлю две дешевые меги8 (я их закупил приличное кооличество для поделок), одна из которых работает как переходник USB-UART (http://www.recursion.jp/avrcdc/)
Я как раз раньше везде делал софтварный USB, но это жутко нестабильная штука. На одних USB-контроллерах работает, на других нет… Да даже не на всех ревизиях восьмой меги может работать из-за небольших отличий в характеристиках. Ну и ресурсы мне действительно важны.
Есть отличный чип CP2102. По размерам меньше меги, обвеса не требует. Зачем изобретать велосипед?
На борту микроконтроллера есть всякие I²C, да UART, но они явно не удовлетворяют условиям.

А чем именно UART не угодил? С драйвером MAX485 получается сеть RS-485, вполне годится для данных задач.
Sign up to leave a comment.

Articles