1 2 3 4 5 6 7 8 9 10 0/10 0,00оценок: 0

Как я "умный дом" делал...

Тема в разделе "Умный дом", создана пользователем Netbyka, 05.11.16.

  1. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    Показываю то, что использую в проектах, а точнее честно скачанную стандартную библиотеку для STM32F1XX. Она доступна бесплатно с сайта ST, или на Github.Там в разделе common есть интересующая нас библиотека stm32_eval_i2c_ee.h. Как видно из дефайнов она поддерживает все 24-ки от 01 до 64. Больше нет.
    Может научите, как туда парой строк добавить поддержку 24С256? Или свою прогу привести как пример. С удовольствием посмотрю.
     
  2. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320
    О, вот вам практический опыт, как раз в тему:
    - отключается электричество (разумеется, я этого ожидал), запускается генератор, иииии...
    И ничего. Потому что в генераторе внутри есть маленькая коробочка - AVR, регулятор напряжения, а в нем есть транзистор, и этот транзистор сказал, что с него хватит.
    И вот у меня есть гудящий генератор, но нет электроэнергии, потому что он сломан. А купить эту штучку можно только под заказ, с доставкой в несколько недель. И просто починить нельзя - залито компаундом под горлышко.

    Но у меня, о чудо, как раз и есть "десяток аккумуляторов и зарядных устройств" (на самом деле два аккума, четыре зарядника и два инвертора) - поэтому я выругался на долбозавров, делающих неремонтопригодные вещи, и сел за комп заказывать аналог-неоригинал с Алибабы.
    Сейчас генератор уже восстановлен, но он - не единственный источник энергии в доме, и несколько часов как-нибудь переживу. В конце концов, если очень будет надо - можно подзарядить от генератора автомобиля, а там, глядишь, и магазины с генераторами откроются.

    Это из жизненного опыта и практики :)
     
  3. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320
    @negator, вот примерно к такому я и пришел в итоге:

    - есть "абсолютные автоматы" - грубо говоря, термодатчик на котле, который не даст ему взорваться. Такое не должно управляться вообще, кроме как вручную физически выставить порог срабатывания.
    Типа - безусловный рефлекс.

    - есть "управляемые автоматы" - например, тот же терморегулятор с возможностью задания порога как вручную, если хочется, так и с управляющего сервера. Это локальный контроллер, отвечающий за работу железок вот-тут-рядом. Достаточно автоматический, чтобы работать автономно, но управляемый. Условные рефлексы, так сказать.

    - и есть центральный компьютер, с помощью которого можно управлять. Включить, выключить, установить новые пороги. Это мозг системы.

    Если вылетел мозг - ну, ум потеряется, но местная автоматика работать будет.
    Если вылетел где-то локальный контроллер - значит, там все будет вручную управляться, как будто ничего и не было, а в остальных местах все будет ОК.
    Если вылетело само оборудование - ну тут извините, не работает, надо чинить-менять конкретный сломанный прибор.

    На роль локальных контроллеров ардуины прекрасно подходят. Осталось решить вопросы с обменом данными - там есть ряд нюансов.
    Вот например, все идет к отказу от сети 1-wire - она медленная и тормозит все. Можно с ней работать с компьютера, где нет проблем с параллельными процессами, а вот с контроллеров работать неудобно, хотя технически можно. Но вендоры пишут, что у них есть аппаратные мастера сети - хочу заказать посмотреть возможности...
     
  4. ОлегМ
    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63

    ОлегМ

    Живу здесь

    ОлегМ

    Живу здесь

    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63
    Адрес:
    Красноярск
    1-wire не поддерживает длинные линии связи, на мой взгляд это сразу должно насторожить. Если на каком то этапе Вы сможете обойтись 1-wire, то при дальнейшем наращивании системы придётся применять что то другое и в корне изменять весь проект. Из доступных для радиолюбителя в России проводных интерфейсов связи, всё таки это RS485. У буржуев много радиолюбительских проектов на европейской шине. В своё время я отслеживал их проекты KNX на ардуино, нашёл несколько разных библиотек KNX, всё упирается в шилд KNX TP uart. В принципе находил у китайцев самые дешёвые KNX шилды примерно по 600р, но отказался от этой затеи в пользу RS485. Дорогие KNX шилды, дорогой провод, дорогие источники питания, не для моих доходов.
    Сам обслуживаю системы АСДУ, там подход мне кажется очень разумный - вся автоматика делается на локальных контроллерах, а диспетчеризация данных данных поверх них на более высоком уровне, с помощью интерфейсных карт или где тет возможности их установить, применяются дополнительные контроллеры.
    При таком подходе получается очень устойчивая система, выход из строя любого контроллера ни как не влияет на работу всей системы. Вот по такому пути я и пошёл для своей системы.
     
  5. __AK__
    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407

    __AK__

    сноб

    __AK__

    сноб

    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407
    Отнюдь не для агитации в пользу 1-wire, отмечу, что KNX тоже медленная, однако не тормозит. :)
     
  6. __AK__
    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407

    __AK__

    сноб

    __AK__

    сноб

    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407
    Опять же, отнюдь не агитируя за 1-wire, неужто для дома мало 200 м с простым пуллап резистором или 500 м с более сложной подтяжкой?
     
  7. ОлегМ
    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63

    ОлегМ

    Живу здесь

    ОлегМ

    Живу здесь

    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63
    Адрес:
    Красноярск
    Ну сначала взял бухту 600м, потом ещё докупал, делать драйвер на россыпухе конечно в качестве эксперимента интересно, но зачем, если MAX485 выйдет дешевле, займёт меньшие габариты (актуально когда контроллер в подрозетнике) и организует стандартную сеть для автоматизации.
    Хотя не настаиваю у всех свои предпочтения.
     
  8. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320
    Тут не в этом дело. С одной стороны - 1-wire достаточно просто эмулируется на программном уровне, т. е. получается очень удобно - воткнул очередной ds1820 - и вот тебе еще одна точка измерения температуры.
    Но - сам процесс измерения занимает ощутимое время. Если отправка команды - то быстрее, только адрес набрать, но если опрос сети - то уже задержка. Протокол подразумевает эти задержки, он на них построен.
    Немного, но ощутимо на уровне легкого подтормаживания. А при попытке работы с таким контроллером через modbus возникают ситуации, когда запрос вообще не может быть обработан, т. к. по спецификации он должен ответить в заданное время, а он в это время выставляет задержки в 1-wire линии и занят, вместо того чтобы отвечать.

    Возможный выход - использование аппаратного мастера сети, отдельной микросхемы (усложнение), или отказ от самой технологии в данном случае.
    Первоначальная идея была в том чтобы использовать 1-wire в локальных контроллерах, как раз в силу простоты реализации и удобства. Но по всему выходит, что либо часть времени контроллер будет тратить на обслуживание сети, либо надо в каждый присобачивать этот самый аппаратный контроллер, а тогда где дешевизна, простота и удобство?

    С компьютером оно работает без проблем, так как там отдельный процесс на это запускается, а городить на микроконтроллере с 2к памяти многозадачную RTOS - это как-то сложно. Значит, это просто не то место, где надо ее применять.
     
    Последнее редактирование: 13.12.16
  9. ОлегМ
    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63

    ОлегМ

    Живу здесь

    ОлегМ

    Живу здесь

    Регистрация:
    07.12.11
    Сообщения:
    139
    Благодарности:
    63
    Адрес:
    Красноярск
    Этот вопрос решается. Надо вывести опрос датчиков за цикл опроса модбаса, и вместо жестких delay (1000) использовать таймер - millis(). Тогда не надо использовать доп контроллер.
     
  10. Igor3
    Регистрация:
    29.05.12
    Сообщения:
    3.770
    Благодарности:
    13.620

    Igor3

    Ничего не рекламиро(вал/ю)! Совпадения–случайны!

    Igor3

    Ничего не рекламиро(вал/ю)! Совпадения–случайны!

    Регистрация:
    29.05.12
    Сообщения:
    3.770
    Благодарности:
    13.620
    Адрес:
    Москва
    А не надо её использовать для для того, для чего она не предназначена -
    “Всё должно быть адекватно -
    Зад соответствовать штанам!(с) “Султан Брунея” Т. Шаов
    Для датчиков температуры/далласовских ключей и небыстрого включения распределённых нагрузок типа прожекторного освещения территории – самое то, и да -

    а кто Вас заставляет заниматься онанизмом/эмулировать 1-ware на языке высокого уровня – ассемблер, нее? И да, там основное время – преобразование – запускайте одновременно, хотя нахрена Вам измерять температуру быстрее, чем раз в минуту? :).
     
  11. __AK__
    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407

    __AK__

    сноб

    __AK__

    сноб

    Регистрация:
    19.10.15
    Сообщения:
    951
    Благодарности:
    407
    Кооперативная на ассемблере всего пару сотен байт возьмет, на С - меньше килобайта. Я в Ардуинках использую сплошь и рядом.
     
  12. Mycraft
    Регистрация:
    14.03.15
    Сообщения:
    2.517
    Благодарности:
    2.781

    Mycraft

    Живу здесь

    Mycraft

    Живу здесь

    Регистрация:
    14.03.15
    Сообщения:
    2.517
    Благодарности:
    2.781
    Адрес:
    Берлин
    Плохо смотрели...на КНХсе такие логические операции детский сад...в том числе можно и на малине всю логику настроить чтобы сьэкономить на различных навороченных вебсерверах итд...
     
  13. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    Ну вообще- то такие вещи обычно решаются профилактическим обслуживанием. В данном случае если бы вы запускали генератор хотя бы раз в полгода, чтобы проверить его исправность, то на 99% избавились бы от таких сюрпризов. А так, конечно, можно из практики привести много примеров, только статистики из них, как и в случае с STM32F103 не построишь.
     
  14. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    По поводу 1-wire, кстати: В Сodesys для Raspberry PI есть поддержка и его и Modbus TCP/RTU и Вебсервера и прочих блекджеков с шлю... фич.
    И так, как там рантайм сделан не ардуинщиками, а серьезными пацанами из промышленной автоматизации:hello:, ничего не тормозит и работает почти в реалтайме с 400мкс джиттером.
     
  15. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.887
    Благодарности:
    2.320
    Ну держите еще пример: сегодня примерно в 12 часов отключилась электроэнергия. У все того же моего любимого генератора по случаю мороза сломался запуск, отломилась маленькая пластиковая деталюшка.
    Шах и мат, сэр! :)

    (мат был, и много...)

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

    Да, кстати, электроэнергии еще нет. На улице -9, представляю, что может произойти у тех, у кого поотключались септики, циркуляционные насосы и подогрев ввода воды.
    У нас тут такое часто, куда чаще чем раз в полгода...

    А в тему "умного дома" - надо добавить сигнализацию и на такой отказ: света нет, генератор не сработал, аларм!

    Кстати, Распберри как раз подходит на роль "мозга", по крайней мере предварительно.
    Но не подходит на то, чтобы "в каждой комнате", и уж точно не для того, чтобы управлять всем единолично. А вдруг и в нем "транзистор" сгорит?