Страница 1 из 1

Кустарный интеллект в квартире для себя на Atmega328

Добавлено: 28 ноя 2018, 21:31
volt78
Проект за минимальные деньги своими руками из эл.компонентов при наличии массы свободного времени

Наконец, реализовал давнюю идею (конечно, давненько уже, сейчас только руки дошли описать)
Делал несколько живых проектов на Arduino (для машины мониторинг с кнопочным интерфейсом, часы аналоговые на W2811 и др.).
Изучаю электронику и МК примерно 1,5 года (Atmega). Получились надежные работающие проекты. Часы W2811 сразу забрала жена в детскую.

Пришел к тому, что добавить ума своей квартире тоже не сложно.

В свое время, кода делал ремонт в квартире, то была мысль о какой-то автоматизации в далеком будущем,
соответственно привел все световые кабели (светильники и выключатели) в щиток на клеммники на всякий случай,
розетки привел несколькими группами тоже на клеммники.
Единственно, не заложил здорового щита для автоматики, щит поставил обычный размером всего 300х400х150.


Задумал следующие задачи, которые реализовал в конечном итоге:
1. Сделать с ноля из набора электронных компонентов, самому распаять, чтобы ни от кого не зависеть (не дергать).
Таким образом, самому быть ответственным за надежность и ни к кому не обращаться за помощью в последующей эксплуатации.
Если сам не учту какие-то моменты, то сам же исправлю в процессе отладки.

2. Исключить все контактные механизмы, вся коммутация исключительно на полупроводниках (симисторы и полевики).

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

4. Вписаться по объему оборудования в свой маленький щиток. В щитке занята часть места. Есть счетчик, автоматы, клеммники DIN (90 шт.),
ТВ-кабели, роутер с пачкой кабелей LAN из всех комнат, от серверов в гардеробе, БП12В для видеокамер и ATmega-системы и др. мелочи.
В щите почти нет места, придется трамбовать в несколько слоев, вероятно, добавится принудительная вентиляция.

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

6. Предусмотреть секцию контроля температуры на 8 каналов на базе терморезисторов на 10к, участвуют в контроле температуры радиатора силовых симисторов
и отключении всей силы в случае нагрева выше установленной температуры.

7. Предусмотреть звук (пищание зуммера) на события (перегрев, нажатие кнопки) чтобы слышать что делает контроллер и все работает.

8. Уже позже предусмотрел мигание одной лампы в прихожей как индикации (параллельно с зуммером, т.к. зуммер пищит довольно тихо
и ребенка разбудить нельзя)
для таких событий, как отключение всего света в квартире (когда ложишься спать) и отключение света с неприоритетными розетками
(когда уходим все из дома, чтобы самим не считать секунды длительности нажатия кнопки).

9. Элементы, которые, возможно, могут выходить из строя нужно сделать на разъемах для оперативной замены
( это сам контроллер ATmega238, оптроны, микросхемы PCF8574),
силовые симисторы сделать на общем радиаторе предусмотреть запасные, если сгорят от случайного КЗ, перегруза.

Процесс:
Выключатели использовал Wessen59, кнопки сделал из выключателей, приклеив на клавиши с обратной стороны пружинки на 2-х сторонний скотч.
Пружинки постоянно чуть сжаты, и все держится хорошо, переделывается легко и просто, нареканий за 6 мес не выявлено (3 мес. отладка и 3 мес готовое решение).
Изначально хотел в выключатели Etika Legrand вставлять пружинки, сделал несколько и передумал - гиморойно.
Конечно, пришлось Wessen59 ставить по всей квартире и негативный момент - в Wessen59 розетки ТВ очень низкого качества
по сравнению с Etika или еще более дорогими Legrand сериями.

Изображение
пружинка на клавише Wessen59

Отработка на макетках, подключенных в квартире у меня заняла примерно 3 мес в свободное от работы и ребенка время – тут
корректировка ошибок схемы, доработка программы, уточнение алгоритмов работы.

На макетках:
Из-за того, что не надежно фиксируются провода в первое время иногда наблюдались подвисания, корректируешь схему,
заденешь проводок – контакт нарушился (особенно по шине I2C происходило) и фиг его знает какой провод сдвинулся в этой куче проводов,
ушел из дома, а свет завис – прикольно. Спаял – проблема ушла. В машине тоже делал сначала шину I2C на разъемах,
примерно – через 1,5 года начались проблемы, заменил разъемы на пружинные контакты Wago.

Начал живую сборку с силовой части – симисторов на общем радиаторе.
В качестве общего радиатора использовал алюминиевую шину 8х80х350 мм.
Использовал симисторы для групп освещения BT24-600 и BT16-600, для розеточной группы использовал BT41-600,

Все мои симисторы не изолированные, поэтому получалось, что если я буду коммутировать фазу, то на моем радиаторе всегда будет фаза,
т.е. его нужно хорошо изолировать от щита и прятать в корпус вентилируемый защищающий от случайного прикосновения,
что увеличивало габариты конструкции.
Я решил отойти от рекомендаций в угоду снижения габаритов и более высокой безопасности внутри щита, но более низкой на потребителях.
Собрал схему с коммутацией нейтрали, т.е. на светильниках всегда есть L, а N я коммутирую.На розетках аналогично всегда L, а коммутирую N.
Таким образом, получилась шина на которой нейтраль и ее просто можно установить на изоляторах в щите.

На шину-радиатор у меня влезло 24 слабых BT16/ВТ24 и два силовых BT41. На начальном этапе один силовой BT41 я задействовал на розетки
и через какое-то быстрое время (1 неделя) он умер (включал пылесос, может еще чего), тогда добавил на радиатор еще 2 шт. BT41.
Включил все ВТ41живые (3 шт) параллельно, так они уже долго работают с пылесосом и масляным обогревателем, тепловентилятором.
Но еще и заменил резисторы в плече BT41, которые идут от А2 на 6-й контакт оптосимистора MOC3041, в схемах приводится 330-360 Ом,
установил 110 Ом и переместил его между 4 ногой MOC и управляющим элктродом Gate чтобы разделить контакты G всех BT41.
Падение напряжения на ВТ41 снизилось до 3В, а было сначала в районе 8В.


Розеточную группу я защитил автоматом С10А, а освещение С3А, мне хватает на все, приоритетная нагрузка идет не касаясь моей схемы и
защищена другим автоматом С16А.
Еще слаботочные BT16/ВТ24 я защитил от скачков термисторами 47D-15, но их эффективность ничем не замерял и пока не знаю как они помогают или нет.
Снабберные цепи решил исключить на начальном этапе, негативного влияния не обнаружил пока.

прикрепил к радиатору два терморезистора для программного контроля температуры.

Изображение
Силовые цепи, спаяны на обычных мекетках, фото дорожек не делал.

Изображение
В щитке сила смонтирована на простых угловых изоляторах.

Контроллер использовал Arduino Pro Mini с чипом ATmega328 на 5В (китайская платка за 100 руб.)

Схему обвязки контроллера изначально собирал на макетках чтобы оперативно вносить изменения.
Питание в итоге сделал: БП12В5А –> понижающий имп. стабилизатор LM2596 до напряжения 7В-> 7805 (4 штуки).
одна 7805 – питает только контроллер, остальные 7805 – питают все обвесы (PCF8574 пять штук).
Схему питания приводить не вижу смысла. Так же схему подключения интерфейса I2C тоже не буду приводить.

Изображение
Схема системы на начальном этапе.

Изображение
Система в сборе в процессе тестирования и отработки программы (на фото не растыканы провода по выключателям и лампочкам).

Итоговые платы спаяны на макетках по своим соображениям. Макетки с дорожками оказались дешевы и удобны
т.к. в схеме много повторяющихся элементов (16 каналов).

Изображение
Платка входов в процессе сборки, справа позже установил контроллер, питание - стабилизаторы, пищалка, полевики.

Изображение
Выходы. Макетка так же с дорожками.

Изображение
Конечный результат разместил на дверце щита на листе текстолита.

В последствии планирую закрыть прозрачным пластиком т.к. оптосимисторы под высоким напряжением 220В.
Естественно, все промыто и покрыто лаком в 2 слоя.
В процессе работы менял один оптосимистор (много брака), один ВТ41 умер на испытаниях, остальное работает как часы без нареканий.
Программу оптимизировал и доводил сотню раз.


Изображение
Схема входов от выключателей U0 и кнопок U1 отдельными группами по 8 каналов PCF8574.

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

Изображение
Схема выходов 220В на светильники и розетки с коммутацией N.

Но можно коммутировать L только если надежно изолировать радиатор
или есть изолированные BTA (у меня нет). Все 15 каналов одинаковы, розеточный чуть отличается.

Изображение
Схема ШИМ на вентилятор12-ти вольтовый сан.узла и пищалки (зуммера).

Они у меня управляются Р10 и Р12 каналами.
При этом пришлось программно увеличить разрядность ШИМ,
т.к. с частотой ШИМ 500Гц по умолчанию - вентилятор слишком громко пищал при работе.

Схема измерения температуры на 8 каналов сделана на одном аналоговом канале A0,
а PCF8574 через полевиков попеременно подключает канал А0 к соответствующему терморезистору.
Можно сравнить с мультиплексором 74HC4067, но только с управлением через общую шину I2C.


Изображение
Схема измерения 8-ми температур одним аналоговым каналом с переключением по I2C.

По стоимости комплектующих пока не считал, но собирал все на копеешном китае,
неоднократно вставала работа т.к. приходилось ждать те или иные эл. компонеты,
т.к. концепция обдумывалась и изменялась постоянно. К качеству китайских компонентов у меня претензий почти нет,
только пара оптронов и примерно 10% оптосимисторов были битые, ну еще платки стабилизаторов DC-DC попадались нерабочие.

Скетч написан в ArduinoIDE для Arduino Pro Mini с чипом ATmega328.

Re: Кустарный интеллект в квартире для себя на Atmega328

Добавлено: 29 ноя 2018, 07:28
Alex_Jet
Просто "жесть" с морем труда и упорства. А также 100% заточенность решения под конкретный объект. Масштабировать трудно, перенести на другой объект крайне сложно (например, купите дачу - придется практически все делать с нуля). Зачет но только если это рассматривать в качестве хобби. Я бы столько потраченного времени уделил либо семье, либо более приоритетным вещам...
Особенно "порадовала" в конце фраза "Скетч написан в ArduinoIDE"... в таком эпичном проекте....

Re: Кустарный интеллект в квартире для себя на Atmega328

Добавлено: 29 ноя 2018, 16:24
alexsis_76
float lock_sw = 0; // флаг - блокировка выполнена
а зачем переменная которая принимает всего два значения объявлена как float и таких моментов масса?
наличие магических чисел
"Скетч написан в ArduinoIDE
это нормально, не важно на чем пишешь, важно как.

Re: Кустарный интеллект в квартире для себя на Atmega328

Добавлено: 01 дек 2018, 22:43
volt78
alexsis_76 писал(а):
29 ноя 2018, 16:24
float lock_sw = 0; // флаг - блокировка выполнена
а зачем переменная которая принимает всего два значения объявлена как float и таких моментов масса?
наличие магических чисел
"Скетч написан в ArduinoIDE
это нормально, не важно на чем пишешь, важно как.
точно, попутал :D

Re: Кустарный интеллект в квартире для себя на Atmega328

Добавлено: 02 дек 2018, 10:11
volt78
Alex_Jet писал(а):
29 ноя 2018, 07:28
Просто "жесть" с морем труда и упорства. А также 100% заточенность решения под конкретный объект. Масштабировать трудно, перенести на другой объект крайне сложно (например, купите дачу - придется практически все делать с нуля). Зачет но только если это рассматривать в качестве хобби. Я бы столько потраченного времени уделил либо семье, либо более приоритетным вещам...
Особенно "порадовала" в конце фраза "Скетч написан в ArduinoIDE"... в таком эпичном проекте....
В заголовке это и написано "кустарный, для себя" :D
с ноля - не с ноля у каждого свое понимание: по шине I2C тут железо масштабируется, а программа у каждого своя во всех проектах, я же буду свои блоки кода использовать в дальнейших проектах.
ArduinoIDE или нет - для обычного человека, чуть знакомого с программированием на ПК этот вариант наиболее прост в освоении с ноля, мало того я еще кучу проектов перелопатил в виртуальном circuits.io