Последнее время активно продвигаются устройства умного дома, в том числе, и на данном ресурсе. Одной из основных проблем коммутации силовых нагрузок в таких устройствах является сохранение привычного (кнопочного или иного) управления. Устройство из обзора призвано решить данную проблему, предоставив возможность управлять как из «умной составляющей» дома, так и привычными средствами, например, выключателем. Помимо этого, на данном устройстве можно легко и безопасно реализовать управление светом несколькими выключателями. Либо сочетать разные способы управления. Поделки, пайка, код и тесты — все под катом… (осторожно: много фото и видео).
Про сам контроллер Attiny85 написано немало, в том числе и на этом ресурсе. Мой обзор про вариант использованием с подробной инструкцией по подключению контроллера можно найти здесь. Сам контроллер имеет 8 выводов: 2 из которых предназначены для подключения питания, 1 — под сигнал сброса (перезагрузки), таким образом под «полезные» задачи остается всего 5 выводов, но и этого, во многих случаях, достаточно. Контроллер:
Микроконтроллер ATtiny85 имеет следующие характеристики:
— для программного кода предусмотрено 8 КБ памяти;
— для исполняемого кода (ОЗУ, SRAM, RAM) зарезервировано 512Б;
— память данных (EEPROM) 512 Б
— наличие 6 цифровых пинов, в реальности лучше использовать 5 (оставив 1 под RESET);
— два выхода PWM и 4 АDC (разрешение 10-bit);
— частота от 1 до 20 МГц.
ATtiny85 предлагается в корпусах: MLF (WQFN) 20M1 20dip8, PDIP 8P3 8, SOIC (208mil) 8S2 8.
В зависимости от модификации источник питания может быть от 1,8 до 5,5В.
В данном обзоре речь пойдет о версии в SOIC корпусе. Посылка пришла за 3 недели (трек отслеживался).
В своих поделках я довольно часто использую реле на твердотельных элементах, в частности, при создании аппарата точечной сварки использовал именно симистор, подробнее тут. Но вот незадача, если использовать твердотельное (да и любое другое) реле в сочетании со сложной системой управления возникают следующие неприятности:
— локально таким реле можно управлять только в 2-х вариантах: либо через центральный узел, либо центральный узел будет находиться в неведении о текущем состоянии реле;
— в случае перезагрузки центрального узла — состояние реле меняется на исходное (либо нужно сохранять текущее состояние):
— но, самое главное, если вам захотелось внести изменения в центральный узел, либо его заменить (в совсем плохом случае он может просто сломаться) — то, фактически, реле становится неуправляемым, а это означает например невозможность включить свет или что-то еще.
Вторым моментом двинувшим меня на данную разработку является довольно типичная ситуация использования проходных (перекидных) выключателей. В силу дороговизны силового кабеля, а его требуется немало для организации возможностей включения/выключения света в нескольких точек, кроме того большое количество кабеля с напряжением 220 Вольт никак не способствует безопасности, мне кажется разумным коммутировать силовую нагрузку тонким проводом (например телефонным) с напряжением порядка 5 Вольт. Устройство из обзора позволит решить и эту задачу.
Если же эти две проблемы объединить, то целесообразность применения такого устройства сложно переоценить. Я отдаю себе отчет, что найдутся знатоки, которые использовав всего 15 транзисторов и несколько навесных элементов гордо заявят, что обошлись без контроллера, решив задачу (почти похожую на данную) в железе. Сразу аргументирую: цена контроллера настолько мала, что и обсуждать бессмысленно, вдобавок решение получается очень гибким, внесение изменений не требует паяльника. При этом тиньки зарекомендовали себя как очень надежные и стабильные контроллеры, кроме всего прочего, ничто не мешает иметь некий резерв таких «слегка умных» реле — чтобы совсем исключить все нештатные ситуации.
Нехитрая схема устройства:
R1, R2, R3 — устанавливаются опционально, подтягивая соответствующие выводы контроллера к питанию. R4 подтягивает вывод RESET к питанию, препятствуя самопроизвольной перезагрузке контроллера. Нагрузка подключается к выводу PB3 контроллера, данный вывод подтянут к земле резистором R6 во избежание нештатных ситуаций по включению симистора. R5 ограничивает ток оптосимистора MOC3063. MOC3063, R7(0.5 Вт), R8(0.5 Вт) и Т1 — образуют типовую схему включения симистора. Снабберная (демпфирующая) RC-цепь состоит из C1 и R9 (1Вт), её наличие особенно критично при индуктивной нагрузке. В качестве симистора я использовал BTA16, можно поставить как менее так и более мощный (в корпусе ТО220), в зависимости от коммутируемой нагрузки. Также, по необходимости, можно установить радиатор на симистор, я специально расположил его с краю.
Печатная плата получилась такая:
Плата изготовлена в Китае, размеры компактные (вполне войдет в подрозетник или распаячную коробку), конкретно эту плату изготавливал в dirtypcbs.com, воспользовавшись панелизацией (в ближайшее время ожидаю платы другого производителя за 2$ — по акции :) ):
После сборки устройство выглядит так:
Это экспериментальный образец, поэтому немного пострадал, не обращайте внимания на внешний вид. :) Обратная сторона:
Естественно, вместо тестовых штырьков можно сразу припаять проводки, тем самым сэкономить пространство. Если сигнальные провода будут проходить вплотную с электрической сетью и вы не используете экранированные провода, то стоит позаботится защитой от наводок.
Первым делом я загрузил программку мигания нагрузкой:
В качестве программатора использовал arduino nano:
После подключил питание к макетной плате и подал на новое устройство:
Видео работы (использовал, доработанный по пожеланиям, стенд из этого обзора):
Простейшие функции проверены, впрочем, если вам нужна мигалка на 220 Вольт, то можно использовать устройство в таком виде :).
Далее, сымитируем ситуацию, когда нам требуется много (ну до 4-х) выключателей для одной нагрузки, и мы не хотим тянуть толстые провода с 220 Вольт. Для этого, на все свободные входы нашего устройства нужно подключить выключатели с поведением аналогичным типовым и написать соответствующую программу:
// выход на нагрузку
const uint8_t load_pin = 3;
// состояние нагрузки
bool load_on = false;
// структура, описывающая отдельный выключатель
typedef struct {
uint8_t pin; // пин
bool state; // состояние
unsigned long ButtonTimerDebounce; // время начало переключения (для защиты от дребезга)
} btn_t;
// массив выключателей
btn_t btn[] = {
{1, 0, 0},
{0, 0, 0},
{2, 0, 0},
{4, 0, 0},
};
// количество элементов в массиве - посчитаем позже
uint8_t num_btn = 0;
// количество миллисекунд со старта контроллера (для защиты от дребезга)
unsigned long CurrentTime = 0;
// защитный временной интервал в мс
const unsigned int DebounceTime = 100;
// функция определения количества элементов массива с элементами произвольного типа
template<typename T, size_t n> inline size_t arraySize(const T (&arr)[n]) {
return n;
}
void setup() {
// настраиваем пин нагрузки
pinMode(load_pin, OUTPUT);
digitalWrite(load_pin, LOW);
// считаем количество выключателей
num_btn = arraySize(btn);
// настраиваем все выключатели
for (uint8_t i = 0; i < num_btn; i++) {
pinMode(btn[i].pin, INPUT);
pinMode(btn[i].pin, INPUT_PULLUP);
btn[i].state = digitalRead(btn[i].pin); // текущее состояние выключателя считаем исходным
}
}
void loop() {
CurrentTime = millis();
// обходим все выключатели
for (uint8_t i = 0; i < num_btn; i++) {
// Если состояние выключателя отличается от текущего
if (btn[i].state != digitalRead(btn[i].pin)) {
// Если мы в самом начале устранения дребезга, то ставим время отсчета
if (btn[i].ButtonTimerDebounce == 0) btn[i].ButtonTimerDebounce = CurrentTime;
// Если произошло переключение с учетом устранения дребезга
if ((btn[i].ButtonTimerDebounce + (unsigned long)DebounceTime) < CurrentTime) {
// Меняем состояние нагрузки
btn[i].state = !btn[i].state;
load_on = !load_on;
if (load_on) {
digitalWrite(load_pin, HIGH);
} else {
digitalWrite(load_pin, LOW);
}
// сбрасываем время отсчета
btn[i].ButtonTimerDebounce = 0;
}
} else {
// сбрасываем время отсчета при ложной тревоге - переключатель не изменил состояние за заданное время
btn[i].ButtonTimerDebounce = 0;
}
}
}
В качестве имитаторов выключателей решил использовать такие кнопки со сменой состояния:
Чтобы не паять, решил изготовить проводки для подключения кнопок к макетной плате (они мне еще пригодятся). В качестве проводков использовал обрезки ШВВП 2х0.5. Надеваем изолятор и зажимаем клемму в обжимке:
С обратной стороны:
Результат:
Надеваем изолятор:
Другой конец жал штырьками для макетной платы:
Провод толстоват для таких наконечников, поэтому обжимные части и узкая и широкая обжимают сам провод, хотя широкая должна впиваться в изоляцию, но держится все очень крепко — руками у меня не вышло сорвать терминал с провода. Лишнее закрываем термоусадкой:
Если кому интересно, то клещи и процесс обжима я обозревал здесь.
Получилось вот такие проводки:
Далее защелкнул их на кнопки и сдвинул изоляцию:
Тест кнопок проводил сразу всех (3 штуки сделал) в режиме прозвонки поочередно нажимал:
Итоговый стенд:
Видео тестов:
Логика работы такая же как у проходных (перекидных) выключателей. Памяти данный код занимает мало и на месте 85-ой тиньки вполне справится ATTiny13, благо корпуса у них похожи и я предусмотрел на плате их заменяемость. Таким образом, вместо дорогих и толстых проводов можно с успехом использовать тонкий телефонный, и напряжение безопасно, более того перебив и замкнув провод можно вывести из строя только один выключатель, остальные будут продолжать работать.
Приступим к самой сложной части — взаимодействии нашего «немного умного» реле с другими, более умными, собратьями. Для тестов, да и на практике, вполне работоспособно решение с сериал портом. ATtiny85 не имеет аппаратного Serial-порта, но программный работает отлично. Пишем код:
Я не буду построчно его комментировать, благо они похожи с предыдущим. Поясню, я использовал несколько кодов для взаимодействия устройств. При загрузке тинька сообщает старшему собрату, что нагрузка отключена. Далее она может принять и обработать команды включения, выключения и запроса статуса нагрузки. Процедуру изменения состояния нагрузки вынес в отдельную функцию, так как кода там немного прибавилось, и количество возможных мест вызова тоже изменилось. В качестве старшего собрата выступит все та же arduino nano (хотя это может быть что угодно: компьютер (в том числе raspberry pi), другой контроллер и тп). Код ардуины попроще:
После загрузки считывается состояние нагрузки и отображается светодиодом. Также, принимается информация об изменении состояния нагрузки самой тинькой (локальными выключателями). К ардуино подключил кнопку, обработчик которой посылает команду на изменение состояния нагрузки тинькой. индикация меняется только при подтверждении смены состояния. Итоговый стенд:
Видео иллюстрирующее работы такого варианта:
Кнопка, подключенная к ардуинке, у меня давно используется для тестов и пережила не мало, поэтому срабатывает не всегда, но смысл ясен. В данном случае, удаление более умного устройства (тут ардуно нано) никак не скажется на локальной работе устройства, чего нам и требовалось. Преимущества прошлой схемы сохранены, единственное уменьшилось количество выключателей. Для тех кто не любит провода, напомню про радиомодули предназначенные для расширения по радио Serial UART интерфейса, мой обзор на эту тему тут.
Таким образом, устройство показало свою работоспособность и, я думаю, что очень пригодится мне в решении дачных и не только задач. Если требуется больше выводов, то это также возможно:
1 — использовать другой, более ногастый, контроллер (например ATTiny 2313);
2 — применить расширитель портов по шине i2c (например: PCF8574 — для 8 портов или MCP23017 — для 16 портов), которая в данном контроллере присутствует. Сохранение состояния нагрузки при отключении питания нетрудно реализовать, но я предпочту выключенный свет при восстановлении электричества по целому ряду причин.
Если будет интересно, расскажу ещё о своих новых поделках.
Спасибо тем кто дочитал до конца! Надеюсь, что данный огромный обзор такого простого устройства вас не утомил! Всех поздравляю с наступившим новым Годом!
PS.
Доработанная плата:
Плата защиты:
Плата из обзора с блоком питания:
Файл для открытия в программе Sprint Layout скачать тут.
Готовые гербер-файлы для заказа доработанной платки из обзора скачать тут.
Планирую купить+97Добавить в избранноеОбзор понравился+104
+202
Отлично! Как раз мучался вопросом «как включать и выключать лампу в комнате с 4-мя дверьми». Каковы границы коммутации? 12В, 6А возьмет? Где можно по десятку элементов заказать? Симисторов тех же и конденсаторов?
спасибо!
конкретно этот симистор коммутирует до 12А с радиатором, без радиатора до 0,5 А, можно поставить и помощнее. В обзоре это написал. На али можно найти детальки в любом количестве.
Например: симисторы конденсаторы
Устройство интересное, но прямо в таком виде будет нормально работать только на столе :)
Входы контроллера необходимо защищать, т.к. помехи на длинные провода подключения вызовут пробой контроллера.
все зависит от длины и количества помех, защитить выводы конечно можно — например поставив на выводы идущие далеко резисторы.
В большинстве случаев, будет отлично работать — входы контроллера достаточно устойчивы, а программное подавление дребезга не даст им повлиять на устройство. При длине порядка 10 метров у меня контроллеры трудятся уже несколько лет.
Если устройство будет использоваться как проходной выключатель и установлено в подрозетнике, провода подключения будут проходить рядом с силовыми. Ёмкость между этими проводами запросто может составлять сотни пФ. Импульсная помеха с силового провода допустимой амплитуды до 1,5кВ через эту ёмкость запросто пробивает вход любого контроллера.
при желании можно зашунтироать такие линии стабилитроном и конденсатором — если условия по помехам беспокоят, на практике не в промышленных условиях, такое практически не встречается.
это нужно умудрится проложить в параллель впритык с силовым проводом на достаточно большой длине сигнальный неэкранированный проводок, если такая ситуация имеет место быть — то нужно поставить стабилитрон от сигнальной линии на землю и в параллель ему конденсатор
да, в реальном применении, каждый сам по необходимости может защитить сигнальную линию, вариантов решения не мало — в крайнем случае, можно оптически развязать контроллер с линией, самый простой вариант со стабилитроном и конденсатором
Да, но бросить сигнальные линии один раз витой парой с экраном и избавить себя от мучений раз и навсегда тоже никто не мешает. А городить такое — это пипец…
Тут уже надо прикидывать, какой вариант более приемлем: прокладывать экранированные провода или делать контроллер с защитой от помех, либо вообще и то и другое для ответственного применения :)
Ну как бы делается для себя же родимого, нет? :)
И на века, чтобы больше вообще не парится.
Стоит копейки, и раз все равно планируешь разводить слаботочку — самое то чуть-чуть подумать перед этим.
Обвесить, конечно, контроллер можно — но это убивает на корню простоту всего этого дела.
Если заказывать все в сборе через гербер — то наверное да — пофиг, а если самому паять — то нет.
А кинуть кабель с экраном — проще и дешевле — один раз и на всегда.
Что бы не парится, надо меньше придумывать на пятую точку приключений, типа автоматизации простейших действий. Потому что любая автоматика ломается именно в тот момент, когда это наименее приемлемо)))
Если все протянуто проводами (не радиоканал), и отлажено — то вероятность отказа не сильно будет отличаться от решения «в лоб рубильником» :)
Естественно, с усложнением конструкции, уменьшается ее надежность, но если сделано с головой — то это единицы процентов, а удобство пользования при этом вырастает в разы. Кроме того — важные (действительно важные) вещи имеют байпас на крайний случай — это как раз вытекает из «сделано с головой».
А так, если Вас послушать — до сих пор бы на лошадях волокуши тянули — во сколько раз машина сложнее волокуши-то? :D
Везде просто баланс надо соблюдать — в том числе и между сложностью.
И как раз заложить на слаботочку провода в экране проще, чем городить помехоустойчивую защиту на всех контроллерах потом — собственно об этом я выше и писал.
Одно другое не исключает. Любой длинный провод это антенна которая ловит всякое. И не надо говорить, что «ну у меня же дома нет помех» их до поры до времени нет. Скажем если рядом ударит молния, то на всех длинных проводах наведется потенциал. И он может быть даже очень большим. И я естественно говорю на о прямом ударе молнии, а именно что «где то рядом». Пара диодов, стоимость платы сильно не увеличат но количество проблем уменьшит
Что такое экран — в курсе?
Чего там внутри экрана ловится будет?
Барабульки из Америки? — не смешите меня.
Пара диодов? Где Вы пару диодов видите?
Если уж делать, то делать по нормальной схеме и ksiman действительно годную схему дал, только там стаб, кондер и сопротивление и никаких диодов — теперь умножьте на кол-во линий и ваше «сильно не увеличат» мягко говоря будет неверным. И дело не только в стоимости, но и в размерах и сложности сборки.
Есть много разнообразной спецухи с интегрированными снаберными цепями (разной мощности) для работы интерфейсов с проводами. Но это считается для промышленной отрасли. И цены как-бы не зашкаливают, но для масового в использования в УД неприемлимы. Можно и трансы от сетевух пользовать.
А кинуть кабель с экраном — проще и дешевле — один раз и на всегда.
— насчет дешевле уже не соглашусь :). Да и не просто, особенно после отделки :) Да и навсегда сомнительно — недавно всюду по помещениях коаксиал вели — и что теперь с ним делать? :))
Если честно, то ты уже отмазываешься. Я когда увидел и осознал, что ты будешь пускать проводами незащищенные входы МК, то еще до просмотра комментов хотел написать то, что написал Ксиман.
У меня вопрос, а почему не ESP и WiFi как средство гальванической развязки? Программируется в той же среде ардуино.
esp стабильности сильно не хватает, да и решение тут именно просто реле, просто немного с логикой, а как на него сигнал подавать и как с ним взаимодействовать — это уже другой вопрос — я привел пример радиомодулей.
провода в большинстве случаев предпочтительней, если условия требуют защиту — то ее можно поставить
ESP с nodemcu на борту — согласен — там энтропия раздута сильно.
ESP с базовым скетчем на ардуино — не согласен.
Провода хорошо, но все меры по защите и меры по предотвращению ложных срабатываний делают решение дороже ESP по радио.
Помню как-то нужно было развязаться, я взял толстую рыболовную леску и засверлившись в ИК диод и фотодиод сделал оптоволоконную развязку. Может и тут так?
Радио канал — однозначно в топку — по безопасности и стабильности.
Для чего-то незначимого — можно, а для всего другого — нет.
И это точно плохой вариант для умного дома.
А то я приду и поуправляю вашим умным домом за Вас, ну, или, на худой конец, не дам Вам им управлять ;)
P.S. А уж про защищенность Wi-Fi (особенно в свете последней уязвимости) я вообще молчу.
Не стану спорить. С таким же успехом ты придешь к моему дому и вытащишь дверной звонок и жахнешь в проводную CAN-bus шокером и остановишь весь вумный дом(ц)
Вся прелесть радиоканала в том, что к дому приезжать не надо — достаточно быть просто рядом — и это две БОЛЬШИЕ разницы. Никаких следов проникновения или чего-то еще.
А ведь до проводов-то внутри дома нужно еще как-то добраться, правда?
Замок смочь взломать, звонок отвинтить и т.д. — все, статья.
А тут просто рядышком встал в машинке, ноут включил — и все.
И цель то может быть просто напоганить — достали вы, например, соседей своей громкой музыкой :) И никакой статьи — следы добыть в такой ситуации крайне сложно.
Так что не о чем тут спорить — хотите быть незащищенным — будьте им — кто запрещает.
P.S. Причем для всего этого быть хакером абсолютно не обязательно — достаточно купить девайс на али (направленная wifi карта или антенна) и установить софт (лежит в открытом доступе, для пен-тестов, например). Мало того — можно для начала попробовать сделать все это со смартфона без спец-железа. Софт тоже есть и тоже в открытом доступе.
Ты меня не понял. Я тебе не зря сказал о умысле. Чтобы умышленно навредить, что радио что провод одинаково.
Окей, теперь о КРАК уязвимости. Она не дает пароль. Она лишь позволяет _возможно_ сбросить сессионный ключ для конкретного устройства и СЛУШАТЬ его трафик. Окей, ты слышишь к ESP что-то типа GET 192.168.1.2/turnonlight. Что ты с этим сможешь сделать? Кодовой фразы у тебя нету. Всё. Приехали.
Окей, допустим я идиот и поставил пароль из словаря. Ты отснифал мой хендшейк, поехал домой, прокрутил его по многотеррабайтному словарю и нашел таки мой пароль. Ну приехал ты назад, сидишь в машине. И что дальше?
Всё что ты знаешь, это то что можно сделать GET 192.168.1.2/turnonlight
Окей. Что мешает сделать целочисленный challenge-response, чтобы ESP аутентифицировала управляющий сервер и управляющий сервер аутентифицировал ESP?
Тогда сбросив сессионный ключ ты увидишь GET 192.168.1.2/turnonlight?challenge=1919191919 и ответ 345867. И всё. Ты приехал.
Глушилка? Ты имеешь ввиду deauth? Ну у меня на точке обновлено ПО и WPA2 предхендшейк и сам хендшейк уже не в OPEN режиме, так что ты лососнешь тунца даже в момент «ловли» моего хеншейка. И deauth мне и моим девайсам не грозит и не работает против них вообще. Проверял для надежности и с помощью Kali.
Ну и на последок, запрет OPEN режима закрывает вектор атаки КРАК.
CSMA/CA не даст. А разработка своего устройства, которое наплюет на этот механизм потянет на такую сумму, что проще позвонить в дверной звонок и огреть хозяина бейсбольной битой.
А разработка своего устройства, которое фиксирует излучение с этого азимута в этом канале и посылает помеху потянет на такую сумму, что проще позвонить в дверной звонок и огреть хозяина бейсбольной битой.
проще позвонить в дверной звонок и огреть хозяина бейсбольной битой
— нет, не проще.
Совсем другой уровень правовой ответственности и последствия.
У соседа роутер от ТВ на два метра на котором он смотрит айпитиви. Через полкирпича мои комнаты. Несколько раз просил понизить мощность (есть такая возможность). Тупо игнорил. Теперь сосед постоянно дергает провайдера почему во время его футбола нет интернета. Приходят — все есть и работает. Он снова звонит. Его уже на обследование направляют. Я предлагаю ему решить проблемму — дам кусок обжатого кабеля. И вайфая не надо. Но лишнего провода еме не надо. Так и живем.
Лупит ему deauth от имени приставки в сторону роутера. Если бы за стеной была бы не дубина, то уже врубила бы снифак да поняла что к чему, и тогда у Z2K началось бы…
Бгг :)
Все возможно в этом мире — не зарекайся. Вон блид в OpenVPN нашли — а сколько исходники до этого копали.
Челлендж можно тоже обойти как делают с автомобильными токенами — не всегда работает и не на всех реализациях, но вклинившись и глуша базу можно попробовать и такой вектор атаки.
Ну хрен с ним — предположим, руки у тебя из правильного места, как и голова — да, НА ДАННЫЙ момент ты можешь сделать все чтобы минимизировать точки и возможности атаки, но так как тема популярная — это постоянная точка ненадежности.
Понятно, что внутри TCP можно сделать свой протокол с шифрацией, феями и кабаре — но смешно заешь что? Что ты себе придумал проблем и теперь с ними борешься, вместо того, чтобы убрать узкое место с проблемами.
Рано или поздно откроют еще что-то про что ты можешь не сразу узнать, или не успеть пофиксить — и все, палка уже в твоей #пе. Адьё. Как раз твой занавес пригодится #пу бинтовать…
Причем ты сам это себе создал, а можно было сразу убрать этот вечный источник проблем.
Глушилка — это в прямом смысле глушилка — девайс такой, который направлено глушит радиоканал, в т.ч. WiFi,
Усе — сети у тебя не будет, пока эта радость работает.
Не, конечно можно клетку фарадея сварить и жить в ней…
Однако это еще большее извращенство и главное — ради чего?
Люблю юношеский максимализм. Чего скрывать — сам таким был. Я тебя полностью понял, разделяю твои опасения, понимаю каждое твоё слово, ибо ITSec это моё, но снова же, считаю их преувеличенными. У меня не форт-нокс. Я серый гражданин в сером доме.
Спускаться на TCP нет смысла. Даже на HTTP уровне можно сделать адекватную защиту.
За глушняк в Канаде на годик присесть можно и получить криминальный рекорд, означающий волчьий билет на любую работу выше уборщика, по-этому должна быть ПРИЧИНА, желательно веская, почему какой-то идиот приедет под мой дом глушить 13 каналов wifi, только чтобы я не смог дистанционно выключить свет в туалете.
Больше всего мне нравится вот это апеллирование к возрасту…
Прям все диванные психологи, которые возраст сквозь TCPIP определяют, ага :)))
Юноше давно уже за 30-ку перевалило, если что :D
И говорит это не максимализм, а простой и долгий опыт в ИТ безопасности.
Про серого гражданина — знаете, когда мне говорят «Мне скрывать нечего — кому я нужен вообще» (а Вы — не первый), я сразу вспоминаю страуса… И это грустно, что эта ошибка встречается так часто у вполне образованных людей.
Оставайтесь с Wi-Fi — я не против.
Ну и резюмируя все это — Вы сами себе создали проблемы и сами с стоически с ними боритесь — Вы назвали мои суждения максималистскими — так что я имею полное право назвать ваши — глупостью.
Ведь умный человек старается избежать лишних проблем (если только они не оправданы), не правда-ли? :)
Но да, можно быть Доном Кихотом и бороться с ветряными мельницами там, где все решает один единственно проложенный провод.
По сути тебе сказать нечего?
KRAK проходит мимо. Deauth проходит мимо. Получение доступа проходит мимо.
Глушак маловозможен, а если и возможен, то это не перехват управления.
А как начинал то красиво, сенсация, шок и т.п.
Пойду напишу нашим айтисекам, почему в AWS они еще используют этот «ненадежный» вайфай. Как думаешь, дадут премию?
По сути я уже все сказал — дело не в том, что Вы защищены на данный момент или нет — дело в том, что Вы оставили возможность для будущих атак у себя в инфраструктуре там, где ее можно было вообще избежать (причем без оправдания какой-либо необходимости). И исходя из этого безопасник Вы — так себе :)
Если мозга не хватает уловить — тут уж я беспомощен…
дадут премию?
А попробуйте — премию может и дадут, но боюсь что только Дарвина ;)
Оффтоп закрываю — всего хорошего Вам и ваше вере в Wi-Fi.
Я конечно за провода и всё такое.
Ну ведь сам смысл умного дома по-моему в том, чтобы управлять устройствами по wi fi со смартфона. По этому наверное для уязвимости не очень важно как подключено устройство, по wi fi или через провод, если устройством можно управлять по wi fi.
С пессимизмом товарища УД лучше не делать. Можно сделать архибезопасную проводную сеть для исполнительных устройств, но всё-равно где-то будет сервер или шлюз, который должен и будет каким-то образом обеспечивать доступ извне. И его, по законам жанра, тоже можно хакнуть.
Да, прикольная вещь. Я игрался с трекинг генератором на частотах wifi. У меня получалось увалить современное устройство на пару секунд, если оно непросредственно рядом. Далее band steering уводил точку на другой канал и связь восстанавливалась. Я делал ГКЧ, чтобы покрыть весь диапазон. Это всего лишь замедляло связь. Отойди я на 5м от ТД и устройства с таким генератором и всё, ничего не заметно.
Использовал siglent ssa3032x. Устройство на базе killer 1535 и ТД unifi ac pro
Я пробовал этим девайсом. Коннект на пропадет, но данные не ходят. В пределах комнаты точно работает. Дальше не проверял. Но если надо усилитель прикручивается быстро.
Можно вообще генератор шума сделать. Довольно просто.
Очень зависит от точки и, видимо, стандарта. Когда тот-же клиент был подключен к dir-825 с dd-wrt, то было аналогично Вашему. Стопорилась передача и все стояли на одном канале. Лишь через пару минут точка согласовывала новый канал.
Бяка сильно зависит от логики точки. Точка инициирует смену канала. ac pro(не реклама) уже через пару секунд уходила от пораженного места, чем меня несказанно удивила.
— нет ничего, что нельзя сломать. Но я сильно сомневаюсь в Вашей возможности взломать вайфай сеть с AES и WPA2 и 18 символьным паролем.
Почему за столько десятков лет не сломана защита сим карт? Разве это никому неинтересно ??!!! Всем даже очень-очень нужно. Даже премиальный фонд был в 10 млн ё. Но никто эти денюжки получить не смог.
Но я сильно сомневаюсь в Вашей возможности взломать вайфай сеть с AES и WPA2
Смотря что называть взломом — пароль не узнать, а вот работать от имени уже авторизованного устройства — легко в свете данной уязвимости. А больше и не надо.
И пофиг сколько символов пароль и AES там или TKIP.
«Чтобы войти в деревянный дом, вовсе не обязательно пытаться ломать в нем железную дверь»
есть такая поговорка…
не сломана защита сим карт
Этот оффтоп тут причем?
По секрету — через микросоту все прекрасно перехватывается — да это мидм (а не взлом защиты), но этого тоже вполне достаточно.
«работать от имени уже авторизованного устройства — легко в свете данной уязвимости.» — перехватываете сессию, блокируете (выбрасываете) авторизированное устройство из сети и работаете от него? Без пароля? Как вы свой траффик шифровать для роутера будете без пароля?
Надо почитать. У меня две мои гостевые сети на остановках светят. Так что Вы никому не говорите об этой уязвимости. :). Машины охранных фирм на ночь приезжают и под халявным интернетом стоят и спят. :))
Понятно что периферия этого МК не расчитывалась для работы с такими физическими выводами (провода), но если попробывать и оно будет нормально работать, то почему нет? Какая особенная защита в аппаратной части 485 интерфейса?
Люто плюсую. Даже если развести в отдельной штробе, никто не исключает просто наводку в проводах помехи достаточной амплитуды (например, недалеко молния ударила). А если развести экранированным кабелем, помеха эта будет наведена в экране, возникает резонный вопрос, куда его подключать. Если к заземлению — пол беды (и то, это полностью не исключит всплеска — ведь в заземлении тоже может быть наведена помеха в этот же момент), а если просто «на общий провод», то получим то же самое, что и без экрана.
Единственное правильное (и необходимое) решение — это TVS на входе схемы. И не стабилитроны — их просто выбьет мощной помехой, а именно TVS. Они, правда, добавят емкости, но зато обеспечат необходимую помехоустойчивость. TVS есть, например, на 6.8 В. Что касается резистора (схема предложена ранее) — его необходимо ставить после TVS, он будет защищать вход от всплесков 6.8 В. Перед TVS резистор ставить смысла никакого не имеет — у smd рабочее напряжение 150 — 200 В, что такие резисторы сделают против 1 — 2 КВ?
Тип защиты определяется степень воздействия, типом помех, условиями их воздействия и т.д
В данном случае все эти параметры известны до определенной степени из постановки задачи. И на мой взгляд, единственное разумное решение — это TVS. Если не согласны — приведите альтернативный вариант.
они выдерживают короткие киловольтные импульсы
Если можно, ссылку, где это подтверждается. Обычно на 1206 указывается рабочее напряжение 200 В, а 400 — максимальное.
TVS и стабилитроны — вещи похожие, даже могут работать на одном принципе (зависит от напряжения пробоя), но применяются совершенно для разных целей. Вот что говорит википедия:
Особый тип стабилитронов, высоковольтные лавинные диоды («подавители переходных импульсных помех», «супрессоры», «TVS-диоды») применяется для защиты электроаппаратуры от перенапряжений.
Более подробно защита на TVS описана, например, здесь:
TVS-диоды часто путают с кремниевыми стабилитронами (диодами Зенера). TVS-диоды разработаны и предназначены для защиты от мощных импульсов перенапряжения, в то время как кремниевые стабилитроны предназначены для регулирования напряжения и не рассчитаны на работу при значительных импульсных нагрузках.
Я лично видел как стабилитроны выгорают в цепях, связанных с импульсными помехами, поэтому вариант со стабилитроном допустимым не считаю. Для стабилитронов в даташитах не указывается максимальная импульсная мощность помехи, которую он может выдержать, да и вообще ничего про работу в импульсном режиме. Потому что это — не его задача. Для этой задачи есть другие полупроводниковые изделия.
Ваш вариант тоже рабочий но не факт, что он лучше.
Мой вариант правильный в данном случае, а со стабилитроном — нет. Применять стабилитроны для защиты от импульсных помех такого уровня нельзя.
Импульсное напряжение для них не указывается :(
О чем и речь. Т.е. проектировать таких схемных решений на них нельзя.
Мне попадался контроллер из фонарик с пробитым входом!
Там то уж точно никаких помех, а контроллер умер.
Так что… здесь уж точно лучше перестраховаться и сделать все по уму!
С новым годом всех! Люблю подобные обзоры, но хотелось бы увидеть уже готовую версию, с бп и подрозетнике. Не будет ли там тесно и жарко? А вообще однозначный плюс, такие обзоры продвигают людей думать и делать, даже таких ленивых, как я :)))
Так и не понял зачем весь огород. Только что автору руки занять. Обратной связи по реальному состоянию реле так и нет. А для управления нагрузкой из неограниченого числа точек в электрике используется простое импульсное (бистабильное) реле, упраляется обычной кнопкой, которая при желании делается из обычного выключателя установкой пружинки. У большинства производителей выключателей это предусмотрено конструкцией. Реле делаются многими брендами и китайцами в различных исполнениях, как под дин рейку, так и в других малогабаритных корпусах. И надёжность их заметно выше, нежели электроники. А в наших сетях, особено за городом, где по сети киловольтные импульсы постоянно пролетают, это весьма актуально. Про УЗИП если кто и слышал, то узнав цену, быстро забывают под давлением земноводного и с надеждой на авось.
вы обзор читали? про обратную связь и прочее.
Из выключателя можно сделать что угодно, но мне так удобнее — возможно кому то тоже.
Устройство из обзора можно считать реле с программируемым поведением, в том числе и обратная связь
Про троллейбус из буханки хлеба я в курсе. Но возникает вопрос зачем?
Ещё в детстве в прошлом веке наигрался с подобием умных домов и сделал выводы на тему целесообразности и надёжности. Занятно, прикольно, понтануться перед пацанами можно, но в остальном в жизни это часто неудобно и ненадёжно. А поскольку детство у меня давно прошло, то все подобные поделки были изъяты из домашней сети и заменены на банальные, но надёжные элементы.
это сугубо ваше мнение, в прошлом веке детали были несколько иными и возможности тоже…
я пользуюсь без проблем, очень удобно — и по количеству обратной связи — желающих что-то сделать немало
Где обратная связь то? Вся инфа только до оптрона, а дальше ничего нет. Что на нагрузке, неизвестно.
Китайские детали это кот в мешке, в совке они отбирались по параметрам и соответствовали маркировке, а какой кристалл китайцы сунули в корпус, они и сами часто не знают, задача у них другая, продать сделаное, а какие параметры конкретного изделия это тайна и когда полыхнёт тот же симистор, никто не знает.
Точно. А ещё, чтобы сидеть и не дрожать при вое сирен после того как «съэкономил» на кабеле, думаю, даже использование нормальных «дефицитных» деталей недостаточно. Здесь уж лучше посматривать на элементы для автопромышленности в усиленных корпусах и т.д.
Но съэкономить тут уже нет возможности.
Ставить детали как раз можно, если есть их контроль. При пробое симистора, нагрузка будет включена постоянно, а счастливый творец этого чуда будет уверен что она выключена, ведь сигнал на оптопару то не подан. Ну фиг с ним когда это в квартире, а когда на даче и ты за сотню км от неё и появишься там через неделю. Хорошо если без последствий, счёт за электричество это мелочи, а если полыхнёт избушка, будет обидно.))
Уже почти вся бытовая техника включается тиристорами — стиралки. посудомойки, кофеварки, телевизоры, рисоварки, електроплиты, увлажнители, и т.д.(пылесосы нет). А не механическими выключателями. Почему так? Вас это не волнует? Или Вы не покупаете такую «ненадежную» технику?
в совке они отбирались по параметрам и соответствовали маркировке
когда полыхнёт тот же симистор
— да Вы хоть слегка поинтересуйтесь статистикой причин пожаров.
Вот пожары от возгорания советских цветных транформаторных кинескопных телевизоров — вот это четко и конкретно.
Совковые ламповые телевизоры давно в истории, кому сейчас интересна статистика прошлого века?
Ну и насчёт всего включаемого тиристорами, может есть смысл матчасть поизучать, а не нести чушь?
Согласен, пару лет назад, в Норвегии, монтировали системы Smart House — Loxone (Серверная часть), ZenseHome (соккеты, свичи, сенсоры, жалюзи и т.д и т.п). Всего 27 котеджей. Так вот по истечению некоторого времени, хозяева начали отказываться от этих плюшек. Да и глючило это всё по-страшному
Yurok, экономьте ресурсы микроконтроллеров, не перегружайте их говнокодом неуклюжими конструкциями. Всю эту кучу операторов можно заменить одной строкой digitalWrite(load_pin, load_on). У вас это постоянно.
Абсолютно не обязательно — зависит насколько хорошо компилятор умеет оптимизировать код при компиляции.
CodeVision умеет оптимизировать такие конструкции, которые привел klop — разницы не будет. Про AStudio не скажу — не экспериментировал.
Так если Вам нетрудно — прокомпилируйте два примера и скажите конкретную разницу в размере.
Если память использована под завязку, а нужно пристроить новую фичу приходится оптимизировать. А так, в чем резон и выигрыш?
я обычно подхожу к этому иначе: делаю как нагляднее — если появляются проблемы с памятью, то оптимизирую — там где это даст существенный прирост, в данном случае совсем иная ситуация :)
ну в данном случае почти в двойку разница :) Но я понимаю что местами это пофиг, просто вопрос был принципиальный «измениться код или нет, изменится размер или нет». Мой ответ, что изменится, и думаю ни какой компилятор не пойдет на такую оптимизацию.
Даю подсказку. Интересовался этим много лет назад. Номер вывода ардуино это не номер вывода самого МК. digitalWrite дальше в рантайме расчитывает номер вывода МК, как этот параметр не передавай. И получается, что на выходе имеем вызов digitalWrite и работу по смене состояния в килогерцы, как бы вы тут не спорили. Если хочется по прежнему использовать ардуиновские определения выводов, то надо хотя бы взять digitalWriteFast в инете. И передавать во всех параметрах константы. То есть через define или const оба параметра. Тогда все расчитает препроцессор во время компиляции и на выходе будет «пару» процессорных команд без вызова функции digitalWrite в рантайме. И работать смена состояния уже будет на мегагерцах.
Т.е. именно
#define PINXXX 3
if (load_on)
digitalWriteFast(PINXXX, HIGH);
else
digitalWrite(PINXXX, LOW);
и опять же отвечу: это шаблон — для примера так нагляднее, сюда удобно вставлять иной код — например индикацию.
Результат компиляции будет одинаковым в данном случае, так что про ресурсы мимо, а про наглядность и удобство расширения — я писал…
Ваш вариант ничем не лучше. Это же ардуино. Вызов digitalWrite нивелирует все ваши оптимизации. Объяснил почему рядом в другом комменте. Можно получить несколько ассемблерных комманд вместо вызова digitalWrite дописав в исходном коде 4 буквы :).
Тема питания такого устройства не раскрыта. Если вы собрались прятать его в коробке под выключателем, то туда нужно вести 5 вольт от внешнего источника питания. Если это будет простой конденсаторный блок питания, то дополнительные выключатели все равно придется брать рассчитанные под 220 вольт, и управление по UART придется оптически развязывать.
Красивая у вас плата вышла. Только в сеть ее включать не надо. От слова «запрещено».
Этож надо — сделать изоляционный пропил, а потом насажать цепей с расстоянием меньше мм.
Занимайтесь вы лучше низковольтовыми схемами, а то убьет же.
меньше 2,5мм нигде нет расстояний между высоковольтной и низковольтной частями…
не стану советовать чем вам заняться )
В высоковольтной части все расстояния допустимы, откройте любой блок питания и посмотрите расстояния там.
Допустимое расстояние без всякой обработки при худьших условиях и напряжении 310 Вольт 0,31 мм, если покрыть плату лаком, то пробивная прочность увеличится в разы.
Вы разводите =сеть=, это потенциально опасное соединение. На работу с ним есть правила, которые вы ОБЯЗАНЫ выполнять. То, что вы сделали можно нужно выкинуть. Это — опасно для жизни.
Не умеете работать с опасными цепями — ваша проблема. Но, не выкладывайте это на всеобщее обозрение — кто-то повторит и он может пострадать. Из-за вас.
Пускай будет на всеобщее обозрение, но с указанием на ошибки и с методом их исправления. Это будет полезнее, чем просто удалить без объяснения причин. А чтобы новички не пропустили — плюсуем комментарий, где указана критичная ошибка(свой "+" добавил и автору и комментарию).
А стоит? На схеме автор не предусмотрел никакой защиты входов MCU — будут дохнуть. Питание на «девайс» подается снаружи, что дико повышает его функциональность (сарказм). Такие устройства должны иметь встроенное питание. Делать питание внешним, =общим=, да еще и протяженным (кабельное подключение) — это вообще вынос мозга.
необходимость защиты определяется в каждом конкретном варианте использование, да и нужна она не на все проводки, на локальные не нужна. Внешнее питание часто удобнее — например если рядом находится источник на несколько устройств. Это устройство следует рассматривать как немного улучшенное реле — не более и об этом есть в тексте.
— общее питание массива приборов опасно выходом из строя общего БП, попаданием в цепь питания внешнего повышенного напряжения, закорачивания цепи питания и т.д и для этого нужны свои решения. Такая задача давно стоит и решается в низковольтном питании камер и устройств систем видеонаблюдения.
А можно подробнее из-за чего входы должны сдохнуть? Там внутренние защитные диоды стоят. Но как минимум резистор конечно надо бы поставить. А лучше TVS диоды или еще лучше буфер.
А про питание полностью согласен.
Между SMD резистором с открытой площадкой тиристора расстояние 1.8 мм по воздуху. Причем, от углового вывода резистора, на острых углах пробивное напряжение меньше.
Я делал 77 заказ, приемник метеорологических карт для траулеров и сейнеров Балтики и Северной Атлантики. Испытание — морской туман. Соленая вода. Не так страшен черт. :)
u3712, разводка симистра стандартная зазор в 0,4 для него безопасен иначе бы расстояние ножек у него было бы больше. 0,4 мм это > 400 вольт на пробой. 1 мм уже киловольт.
Вы бы посмотрели, как разводят корпус ТО220 в таких включениях. И барьеры пилят и термоусадку надевают и, простите за нескромность, средний вывод отводят.
Впрочем, это еще не самое противное в плате. У автора между выводами сети (а не тиристора) расстояние 0.6(+0.6) мм. Малейший всплеск в сети и выгоревшая розетка.
не выкладывайте это на всеобщее обозрение — кто-то повторит и он может пострадать
Естественный отбор, бро, — основной эволюционный процесс))) С детства мамы детей учат — не тянуть в рот что попало и не совать пальцы куда получается)))
Народ свою нервность обосновал.
Если бы ты запитал всё от высоковольтной цепи и не делал бы саму возможность разницы потенциалов (вынос пинов проводами и внешнее низковольтное питание), то все претензии по расстояниям снялись бы моментально.
на сетевом напряжениии будет работать. Критики говорят — если там импульс 3кВ, а 10кВ, а если молния и 200кВ. Так что, делать электроприборы для квартиры расчитанные на устойчивость к таким импульсным перенапряжениям? Или если такие импусные перенапряжения случаются ставить варисторную защиту на входе? Первого, второго уровня.
Конечно помехи приходят не только по вводу. Но это помехи уже другой интенсивности и мощности и ноуты не уходят в перезагрузку от выключения двигателя компрессора холодильника.
Вот взял плату из выброшенного канадского кинескопного телевизора.
Дежурное питание на маленьком железном трансформаторе. Основное питание на импульсный БП включается с помощью реле. На входе стоит предохранитель, потом два разрядника, common mode choke, два X2 конденсатора на землю и два варистора параллельно им и один варистор в толстой силиконовой оболочке на питании. Дураки наверное, сэр
в 3УСТ так же, кроме возможно «варистор в толстой силиконовой оболочке на питании». Но при чем же «Дураки наверное, сэр». Многие бытовые приборы не включаются сетевой кнопкой, а сигнальной, а вот потом подключение силовий части может быть как реле так и тведотельным реле (которое в стиралке идет с черным радиатором посколько там тен 1.5-1.8кВт). У меня стиралка лдж. термопот, кофеварка на тведотельном. Но может и ошибаюсь насчет другой техники и техники в США — там 110В и ток в 2 раза больше. Тиристоры там не катят.
Автор а вы правильную схему привели — на симистор точно с 6 ноги управление с оптопары. Всегда думал, что с 4 0_0.
И по печатке у вас управление идет с 4 ноги. И если уж занудствовать то и в схеме у вас не ваттный резюк указан в снаббере, а 0,25. В обвязке резюков симистра тоже не указана ватность 2 других, а они тоже не менее поувата должны быть. Эхххе.
И да по зазорам для управления маломощной нагрузки все в норме, для лампочек и меньше можно сделать.
Но, боюсь, вынужден буду присоединиться к предыдущим ораторам: как в части защиты входов, так и в части топологии платы. 2мм расстояние между выводом контроллера (резистор R5) и выводом силового тиристора лично мне кажется не очень удачным решением. Фактически, только оно отделяет сетевое напряжение от всей остальной низковольтной части, включая то, что будет подключено к управляющим входам.
P.S. Если габариты платы являются ключевым параметром, возможно, имеет смысл расположить элементы (резисторы) с обеих сторон платы, и тем самым выгадать место на широкий hot/cold раздел?
Лишней толщины это не добавит — резистор не сильно толще высоты пайки выводных компонентов.
Паника, увы, основана на богатой ремонтной практике.
Неизбежная пыль плюс не менее неизбежная влага рано или поздно способны одарить сюрпризом, тем более что здесь полноценного-то пробоя вовсе не надо ждать, достаточно нескольких ма утечки…
Есть у 3063 7.5 мм расстояния между рядами «горячих» и «холодных» ног — и хорошо, и не надо нигде делать меньше. Такое вот частное мнение.
даже snabberless версии симисторов (способных выдержать высокое dU/dt) — зачастую используют со снабберной цепью, но они далеко не все среди bta16 такие, а только те что оканчиваются на W, мой такой маркировки не имеет
Потому что проще в разы, все ходы-выходы, экономия энергии, работа с таймерами и другие «подводные камни» давным-давно уже обсосаны и исследованы.
На все чихи написано ни по одной библиотеке, и качественных сред разработки — как минимум — 3.
Это Вам не STM, где камней на каждом повороте — ворох, мануал загадочен и малопонятен, а мощности и наворотов хватает, чтобы сделать автономный дрон с нейросетью и грабежом караванов.
Однако кол-во базовых примеров (как и библиотек) — так мало, что в большинстве случаев приходится ваять все самому.
По-этому для рапид-прототайпинга и для неболших проектов тиньки — самое оно.
Вы будете заниматься решением задачи, а не пытаться понять, какого х… в прерывании по DMA запортилась ячейка, которая вроде и портится не должна была, и вообще DMA в другой адрес писал :)
Для простых устройств атмеловские процы — отличное решение.
Для сложных — да, можно уже копать STM.
Других вариантов практически на рынке и нет (пик не в счет — сдох давным-давно).
ATMEL делает их своим коммьюнити и кол-вом готовых примеров — как я уже выше написал.
Ну и даже STM8 сложнее Тиньки :) И да — у него есть свои плюсы (энергопотребление и цена, например), но для обычного человека все это не упирается.
P.S. У младших тинек 8 ног, а минимальное кол-во ног у младших STM было 20 ЕМНИП — еще одна сложность. 8 ножный DIP куда проще в монтаже. Может сейчас что и поменялось у STM — не в курсе.
Мне тоже это интересно.
PIC10F200 стоит c доставкой столько же сколько и stm8s003 (за 10 штук). Attiny13 дороже.
Attiny85 вообще космос.
Что то я забыл, вроде он был китайский. Сейчас попробую поискать.
Уже получил красавцев. Сравнение с тини из обзора. При этом 20 ног, а не 8 как у тини. Только с такими уже не получится просто взять чужой ардуиновский код и состряпать платку. Придется думать ).
Вы только имейте в виду, что Atmel уже нет с нами. А насколько долго Microchip будет поддерживать линейку, прямо конкурирующую с его продукцией — тот еще вопросец…
— уже простота дорого стоит, а будет еще дороже. Такое впечатление что сремблирование пластины и корпусирование главные составляющие себестоимости ИС. :(
«для рапид-прототайпинга». Вспоминается анекдот «папа это ты сейчас с кем разговаривал».
Можно же по-русски понятно для всех сказать, например «для быстрой реализации основных функций».
Официально сообщаю Вам — УГУ. Решением ООН для защиты детей от поражения током, суицида и рекламы гомосексуализма переходим на низковольтное питание осветительных приборов 12В и не больше. :)
Как научиться делать такие приборы и другие всякие волшебные штуки?
Отвечаю без шуток.
Для начала:
1. Борисов В.Г. «Юный радиолюбитель»;
2. Сворень Р.А. «Электроника шаг за шагом»;
3. Хоровиц П., Хилл У. «Искусство схемотехники»;
Можно добавить ещё.
4. Е. Айсберг: «Радио — это очень просто» и «Транзистор — это очень просто»;
5. Р. Токхейм «Основы цифровой электроники»;
Потом (с накопленной базой знаний и пониманием) уже читать конкретно по микроконтроллерам, но там уже всё будет достаточно просто: и интернета будет хватать, со всеми форумами, конференциями, примерами и уроками.
Спасибо огромное! А то прям душа к этому тянется, а как подступиться к этой теме было не ясно. Теперь понятно как сделать первые шаги. Спасибо ещё раз!
К выше названным книгам добавлю ссылку на уроки от DiHalt'а. Очень просто и понятно. Читать с самых старых статей к новым. Лично мне очень сильно помогли в свое время.
Не соглашусь.
Если человек не очень понимает, когда говорят «ногу ардуины подтягиваем к плюсу внешним сопротивлением, а кнопкой её прижимаем к земле», если человек не знает, чем последовательное соединение светодиодов отличается от параллельного, что такое гасящий или токоограничивающий резистор, и как ключевым каскадом умощнить вывод ардуины, то всё-таки гораздо важнее сначала чуть-чуть окунуться в теорию.
Нет, я не призываю полностью сушить себе мозги, но понимание об элементарных вещах (хотя бы о n-p переходе или, скажем, о законе Ома для участка цепи) иметь-таки надо… Это тот багаж, который не тянет за плечами.
чем последовательное соединение светодиодов отличается от параллельного
— да, часто бывает и такое. Но это больше пробелы школьного образования или жизнерадостновосприимчивого (наплевательского) отношения к обучению. Когда с лекции вышел, а мозги такие чистые-чистые и свободные, дышится легко и ничего с этого маразма за прошлые полтора часа в твоих светлых мозгах и не осталось.
Конечно, если нет среднешкольного образования то надо это восполнить, а потом долбить ардуино.
Я это читал, когда мне было десять лет. А страна в очередной раз смотрела балет по первой программе из-за очередного генсека. Если не понимаете, о чём я, то не важно, — кому надо, тот поймёт.
И, да, любому, кто собирается оперировать словами «даташит», в десять-двенадцать лет я советую начинать читать Свореня и Борисова.
Видать-видать… Но, уже вижу по контексту, ориентир был не очень «ваш» и для вас совсем неинформативен. Ок, проехали и забыли.
А «даташитами» надо не оперировать, а использовать данные из них
Ой, спасибо за науку, добрый человек. Я действительно благодарен и признателен.
Но я стойко подозреваю ситуацию, когда ооциты с известковой оболочкой передают информацию и навыки банкивской джунглевой птице. Хотя орнитология довольно далека от электроники и темы разговора…
Это было в другом треде, но я понял, о чём речь. Там речь шла о том, что я по привычке TTL-логики к выходному пину микроконтроллера подходил как к выводу с открытым коллектором. Что, объективно, было не очень корректно с моей стороны, поскольку вывод современного контроллера более сложен, и в отдельных случаях надо учитывать ряд нюансов.
Спасибо за обзор! Очень ценная идея! ))) Еще одна от вас в копилку!
У меня до сих пор лежит трансформатор для точечной сварки, все никак времени не найду заняться им. Плата ваша нравится очень.
зачем заказывать изготовление плат в китае?
ладно бы оно было еслиб выходило дешевле чем самому вытравить но за два бакса…
да ещё ждать потом
а если не прийдёт
то снова ждать
Спасибо за труды. К сожалению, обзор совершенно не читается «по идагонали». Таким образом так и не смог понять, что конкретно делалось с помощью этих плат, и какой от этого практический прирост пользы.
Спасибо за идею и интересную реализацию. А я диммер на тиньке запилил.
Входы лучше диодами защитить от наводок. В SoftwareSerial пины вроде не надо дополнительно входом-выходом объявлять. В функции все есть.
Но я одного не пойму, зачем тут использовать несколько бистабильных выключателя с отдельным проводом для каждого? Не проще взять кнопки без фиксации и повесить параллельно на один шлейф и один пин? И проводов меньше надо и кнопок можно хоть 100 задействовать. А в коде логику триггера. Я бы так сделал.
О да, мы сделали в курятнике Sonoff с альтернативной прошивкой. Он свет сам по расписанию включает-выключает, но можно и кнопкой штатной. Нажал — включил, второй раз нажал — выключил. Если не нажал второй раз, то через 10 минут свет сам погас. Времени хватит чтоб ночью яйца собрать, а второй раз напрягаться нажимать не надо :)
Лень она такая!
В случае, если не предполагается контакта человека с оголенными частями схемы, то эту схему можно сделать проще. Несколько резисторов и конденсаторов с AVR и симистором. При этом будет автономное питание и будет так же детектор нуля, если нужно будет диммировать. Не буду вдаваться в подробности, и на ноги AVR можно так же сразу кидать 220В для управления. Достаточно одного резистора перед портом.
Еще из статьи я узнал как будет будет колючка по-английски :).
Я не очень понял вопроса. В данном случае moc нужна только для развязки от поражения эл. током. Если схема будет не доступна для касания, то, например, если взять BT137, понадобится только резистор на 150Ом от ноги тини на управляющий электрод симистора. Детектор нуля (при необходимости) — опять же один резистор на ногу тини. Питание тини через балластный кондер от 220В. Такие схемы применяются в массовых продуктах, тут даже не нужно изобретать велосипед.
— скорее применялись, и еще применяются. И если знаете примеры и схемы — дайте ссылки.
Сейчас развязка управляющих каналов и силовых блоков осуществляется по вайфай — пример соноф или в диапазоне 433М — пример www.noo.com.by/, www.noo.com.by/silovyie-bloki.html (но сейчас у них nooLite на пульты и силовые блоки идиотские цены — непонятно как они клиентов находят и собираются конкуировать).
Концептуально если такое делать с МК, то такое реле конечно должно б было подключаться к шине. Тоесть схема почти 1:1, но программно интерфейс с шиной подобно аппаратной реализации рс485.
В сравнении с этим STM32F103C8T6 STM32F103 STM32F LQFP48 новый… US $1.58 / шт. Ваша тинька должна бы не больше 20 центов стоить. Было бы приемливо. Но такого не будет. Разве что после снятия с производства и слива складов.
Прочитал вашу статью и сразу подумал, что вместо здорового конденсатора и резистора снаббера можно поставить обычное маленькое реле. нужно реле с контактами на маленькое напряжение и большой ток. реле решит проблему теплоотвода тиристора, поскольку совсем обычное реле имеет контактное сопротивление примерно 10мОм. при токе в 5А это всего 250мВт. тиристор решит проблему импульсной перегрузки в момент включения и выключения на разных реактивных нагрузках. реле нужно включать через 3-5 периодов 50Гц после замыкания тиристора, а размыкать примерно на тоже время раньше. дополнительно, кроме реле, потребуется один порт процессора, один транзистор типа BC817, один импульсный диод параллельно обмотке и один маломощный резистор в базу транзистора.
идею подсмотрел тут: Щелкаем реле правильно: коммутация мощных нагрузок
— раньше чего?
Надо бы сперва открыть тиристор, а как его открыть когда он шунтирован контактами реле. То есть, при размыкании контактов реле должен одновременно открываться симистор. Потом, после механической стабилизации контактов реле — выключить симистор.
Вы почитайте статью по ссылке. Там всё подробно объяснено. Идея в том, что тиристор хорошо переносит реактивные и импульсные нагрузки, но когда нагрузка уже подключена, то на нём выделяется много тепла (поскольку у тиристоров во включённом состоянии значительное падение напряжения). реле наоборот плохо переносит реактивные нагрузки и импульсные броски — обгорают или привариваются контакты. если реле включать когда тиристор уже включён и отключать, когда тиристор ещё не выключен, то на контакты будет приходиться только падение напряжения на включённом тиристоре, при том, что основной ток когда реле включено, будет проходить через его контакты. и снаббер будет к тому же не нужен.
в статье задержки включения и выключения формируются простыми RC цепочками, а вы можете их сделать на процессоре…
обратите внимание, что там автор испытывает на двухкиловатном пылесосе, а реле и тиристор самые простые и никаких теплоотводов не требуется. единственно, что в статье использован тиристор с большим dI/dt, гораздо больше вашего — это важно для реактивных нагрузок.
Я читал этот пост на гиктаймс в день его появления. Автор обещал продолжение. Вы много написали, но не по теме моего комментария. Если Вы понимаете, то опишите процесс при выключении нагрузки.
Прямо после подачи команды выключения нужно отключить реле, а через время Т выключить тиристор. Время Т складывается из времени дребезга контактов и хотя бы 2х периодов сетевой частоты.
а через время Т выключить тиристор. Время Т складывается из времени дребезга контактов и хотя бы 2х периодов сетевой частоты.
— это ерунда. Прочитайте еще раз мой коммент и постарайтесь понять процес выключения такой цепи. По сути размыкание происходит как в цепи просто с реле. При включенной нагрузе ток протекает только через реле. Тиристор и так закрыт, через него ток не протекает. Его закрывать не надо. И если вы просто разорвете цепь на контактах реле, то будет как обыкновеное разрывание цепи контактами реле. Все — тиристор при выключении абсолютно ни причем. Он и так выключен. На контактах реле произойдет дуга и на контактах реле освободится энергия реактивной составляющей нагрузки цепи.
вот посмотрите: www.st.com/resource/en/application_note/dm00356324.pdf
если модератор удалит ссылку, то ищите «AN4993: How to implement a SCR or a Triac in a hybride relay application»
проблема в русскоязычных терминах. то что вы пишите справедливо для SCR. Но BTA16 и BTA216 это 3х квадрантные Triac — они остаются включены, пока и если ток управляющего электрода выше тока спрямления, не зависимо от тока через канал.
Кстати, на сайте ST пишут что выбранный вами BTA16 не требует снаббера. Как бы его конкурентное преимущество.
Перед отключением реле надо бы включить тиристор, что б ток шел через него. Как это сделать — знаете??!! Нарисуйте схему. Я знаю. Но схема усложняется.
Эту статью, конечно же я видел
Она актуальна немного в иных случаях, когда нагрузка поедполагается более мощная и снаббер тут не при чем. А размеры будут намного больше
yurok, на сколько корректно прямое подключение светодиода оптопары к выводу PB3 контроллера без транзисторного ключа? Недавно этот же вопрос у меня возник при подключении такого же оптоуправления нагрузкой от управляющего выхода Q сенсорного датчика TTP223.
Уважаемые коллеги! Подскажите
1. Как верхний код переделать, чтоб считывать состояние на одном пине?
В планах использовать тини13, передатчик на 433, применив всё это на выходе схемы проходного выключателя. Т.е. хочу сделать счетчик включений. Если одно- то передать сигнал на декор подсветку, если два- зажечь люстру.
конкретно этот симистор коммутирует до 12А с радиатором, без радиатора до 0,5 А, можно поставить и помощнее. В обзоре это написал. На али можно найти детальки в любом количестве.
Например:
симисторы
конденсаторы
Входы контроллера необходимо защищать, т.к. помехи на длинные провода подключения вызовут пробой контроллера.
В большинстве случаев, будет отлично работать — входы контроллера достаточно устойчивы, а программное подавление дребезга не даст им повлиять на устройство. При длине порядка 10 метров у меня контроллеры трудятся уже несколько лет.
Набросал один из вариантов защиты питания и входа контроллера
И на века, чтобы больше вообще не парится.
Стоит копейки, и раз все равно планируешь разводить слаботочку — самое то чуть-чуть подумать перед этим.
Обвесить, конечно, контроллер можно — но это убивает на корню простоту всего этого дела.
Если заказывать все в сборе через гербер — то наверное да — пофиг, а если самому паять — то нет.
А кинуть кабель с экраном — проще и дешевле — один раз и на всегда.
Естественно, с усложнением конструкции, уменьшается ее надежность, но если сделано с головой — то это единицы процентов, а удобство пользования при этом вырастает в разы. Кроме того — важные (действительно важные) вещи имеют байпас на крайний случай — это как раз вытекает из «сделано с головой».
А так, если Вас послушать — до сих пор бы на лошадях волокуши тянули — во сколько раз машина сложнее волокуши-то? :D
Везде просто баланс надо соблюдать — в том числе и между сложностью.
И как раз заложить на слаботочку провода в экране проще, чем городить помехоустойчивую защиту на всех контроллерах потом — собственно об этом я выше и писал.
Что такое экран — в курсе?
Чего там внутри экрана ловится будет?
Барабульки из Америки? — не смешите меня.
Пара диодов? Где Вы пару диодов видите?
Если уж делать, то делать по нормальной схеме и ksiman действительно годную схему дал, только там стаб, кондер и сопротивление и никаких диодов — теперь умножьте на кол-во линий и ваше «сильно не увеличат» мягко говоря будет неверным. И дело не только в стоимости, но и в размерах и сложности сборки.
— Сомневаюсь что легко. Вы этим занимаетесь?
У меня вопрос, а почему не ESP и WiFi как средство гальванической развязки? Программируется в той же среде ардуино.
провода в большинстве случаев предпочтительней, если условия требуют защиту — то ее можно поставить
ESP с базовым скетчем на ардуино — не согласен.
Провода хорошо, но все меры по защите и меры по предотвращению ложных срабатываний делают решение дороже ESP по радио.
Помню как-то нужно было развязаться, я взял толстую рыболовную леску и засверлившись в ИК диод и фотодиод сделал оптоволоконную развязку. Может и тут так?
Для чего-то незначимого — можно, а для всего другого — нет.
И это точно плохой вариант для умного дома.
А то я приду и поуправляю вашим умным домом за Вас, ну, или, на худой конец, не дам Вам им управлять ;)
P.S. А уж про защищенность Wi-Fi (особенно в свете последней уязвимости) я вообще молчу.
А ведь до проводов-то внутри дома нужно еще как-то добраться, правда?
Замок смочь взломать, звонок отвинтить и т.д. — все, статья.
А тут просто рядышком встал в машинке, ноут включил — и все.
И цель то может быть просто напоганить — достали вы, например, соседей своей громкой музыкой :) И никакой статьи — следы добыть в такой ситуации крайне сложно.
Так что не о чем тут спорить — хотите быть незащищенным — будьте им — кто запрещает.
P.S. Причем для всего этого быть хакером абсолютно не обязательно — достаточно купить девайс на али (направленная wifi карта или антенна) и установить софт (лежит в открытом доступе, для пен-тестов, например). Мало того — можно для начала попробовать сделать все это со смартфона без спец-железа. Софт тоже есть и тоже в открытом доступе.
А в случае с глушилкой — все еще проще.
Окей, теперь о КРАК уязвимости. Она не дает пароль. Она лишь позволяет _возможно_ сбросить сессионный ключ для конкретного устройства и СЛУШАТЬ его трафик. Окей, ты слышишь к ESP что-то типа GET 192.168.1.2/turnonlight. Что ты с этим сможешь сделать? Кодовой фразы у тебя нету. Всё. Приехали.
Окей, допустим я идиот и поставил пароль из словаря. Ты отснифал мой хендшейк, поехал домой, прокрутил его по многотеррабайтному словарю и нашел таки мой пароль. Ну приехал ты назад, сидишь в машине. И что дальше?
Всё что ты знаешь, это то что можно сделать GET 192.168.1.2/turnonlight
Окей. Что мешает сделать целочисленный challenge-response, чтобы ESP аутентифицировала управляющий сервер и управляющий сервер аутентифицировал ESP?
Тогда сбросив сессионный ключ ты увидишь GET 192.168.1.2/turnonlight?challenge=1919191919 и ответ 345867. И всё. Ты приехал.
Глушилка? Ты имеешь ввиду deauth? Ну у меня на точке обновлено ПО и WPA2 предхендшейк и сам хендшейк уже не в OPEN режиме, так что ты лососнешь тунца даже в момент «ловли» моего хеншейка. И deauth мне и моим девайсам не грозит и не работает против них вообще. Проверял для надежности и с помощью Kali.
Ну и на последок, запрет OPEN режима закрывает вектор атаки КРАК.
Занавес
Совсем другой уровень правовой ответственности и последствия.
У соседа роутер от ТВ на два метра на котором он смотрит айпитиви. Через полкирпича мои комнаты. Несколько раз просил понизить мощность (есть такая возможность). Тупо игнорил. Теперь сосед постоянно дергает провайдера почему во время его футбола нет интернета. Приходят — все есть и работает. Он снова звонит. Его уже на обследование направляют. Я предлагаю ему решить проблемму — дам кусок обжатого кабеля. И вайфая не надо. Но лишнего провода еме не надо. Так и живем.
Выкройка была, как-то, в «Радио»
Все возможно в этом мире — не зарекайся. Вон блид в OpenVPN нашли — а сколько исходники до этого копали.
Челлендж можно тоже обойти как делают с автомобильными токенами — не всегда работает и не на всех реализациях, но вклинившись и глуша базу можно попробовать и такой вектор атаки.
Ну хрен с ним — предположим, руки у тебя из правильного места, как и голова — да, НА ДАННЫЙ момент ты можешь сделать все чтобы минимизировать точки и возможности атаки, но так как тема популярная — это постоянная точка ненадежности.
Понятно, что внутри TCP можно сделать свой протокол с шифрацией, феями и кабаре — но смешно заешь что? Что ты себе придумал проблем и теперь с ними борешься, вместо того, чтобы убрать узкое место с проблемами.
Рано или поздно откроют еще что-то про что ты можешь не сразу узнать, или не успеть пофиксить — и все, палка уже в твоей #пе. Адьё. Как раз твой занавес пригодится #пу бинтовать…
Причем ты сам это себе создал, а можно было сразу убрать этот вечный источник проблем.
Глушилка — это в прямом смысле глушилка — девайс такой, который направлено глушит радиоканал, в т.ч. WiFi,
Усе — сети у тебя не будет, пока эта радость работает.
Не, конечно можно клетку фарадея сварить и жить в ней…
Однако это еще большее извращенство и главное — ради чего?
Надеюсь, мысль я донес? :)
Спускаться на TCP нет смысла. Даже на HTTP уровне можно сделать адекватную защиту.
За глушняк в Канаде на годик присесть можно и получить криминальный рекорд, означающий волчьий билет на любую работу выше уборщика, по-этому должна быть ПРИЧИНА, желательно веская, почему какой-то идиот приедет под мой дом глушить 13 каналов wifi, только чтобы я не смог дистанционно выключить свет в туалете.
Прям все диванные психологи, которые возраст сквозь TCPIP определяют, ага :)))
Юноше давно уже за 30-ку перевалило, если что :D
И говорит это не максимализм, а простой и долгий опыт в ИТ безопасности.
Про серого гражданина — знаете, когда мне говорят «Мне скрывать нечего — кому я нужен вообще» (а Вы — не первый), я сразу вспоминаю страуса… И это грустно, что эта ошибка встречается так часто у вполне образованных людей.
Оставайтесь с Wi-Fi — я не против.
Ну и резюмируя все это — Вы сами себе создали проблемы и сами с стоически с ними боритесь — Вы назвали мои суждения максималистскими — так что я имею полное право назвать ваши — глупостью.
Ведь умный человек старается избежать лишних проблем (если только они не оправданы), не правда-ли? :)
Но да, можно быть Доном Кихотом и бороться с ветряными мельницами там, где все решает один единственно проложенный провод.
KRAK проходит мимо. Deauth проходит мимо. Получение доступа проходит мимо.
Глушак маловозможен, а если и возможен, то это не перехват управления.
А как начинал то красиво, сенсация, шок и т.п.
Пойду напишу нашим айтисекам, почему в AWS они еще используют этот «ненадежный» вайфай. Как думаешь, дадут премию?
Если мозга не хватает уловить — тут уж я беспомощен…
А попробуйте — премию может и дадут, но боюсь что только Дарвина ;)
Оффтоп закрываю — всего хорошего Вам и ваше вере в Wi-Fi.
Ну ведь сам смысл умного дома по-моему в том, чтобы управлять устройствами по wi fi со смартфона. По этому наверное для уязвимости не очень важно как подключено устройство, по wi fi или через провод, если устройством можно управлять по wi fi.
geektimes.ru/post/277380/
Использовал siglent ssa3032x. Устройство на базе killer 1535 и ТД unifi ac pro
Можно вообще генератор шума сделать. Довольно просто.
Бяка сильно зависит от логики точки. Точка инициирует смену канала. ac pro(не реклама) уже через пару секунд уходила от пораженного места, чем меня несказанно удивила.
P.S. Роутер asus rt-n56n с прошивкой Padavan
Не сомневайтесь.
Почему за столько десятков лет не сломана защита сим карт? Разве это никому неинтересно ??!!! Всем даже очень-очень нужно. Даже премиальный фонд был в 10 млн ё. Но никто эти денюжки получить не смог.
И пофиг сколько символов пароль и AES там или TKIP.
«Чтобы войти в деревянный дом, вовсе не обязательно пытаться ломать в нем железную дверь»
есть такая поговорка…
Этот оффтоп тут причем?
По секрету — через микросоту все прекрасно перехватывается — да это мидм (а не взлом защиты), но этого тоже вполне достаточно.
Взрослый же человек — идешь в гугл или на хабр / реддит и читаешь что за последняя уязвимость wWi-Fi и как она эксплуатируется.
Ну раз сам грамотный такой — думаю что это вполне посильно.
Сейчас в новых устройствах оно пофикшено, но есть фишка — если к роутеру подключено ХОТЯ-БЫ ОДНО СТАРОЕ устройство — уязвимость работает.
Вот после того, как прочтешь — будем дальше дискутировать.
Достаточно было бы и 0,1мкФ.
Пусть лучше срабатывает медленнее, чем ложно от помехи. IMHO
Единственное правильное (и необходимое) решение — это TVS на входе схемы. И не стабилитроны — их просто выбьет мощной помехой, а именно TVS. Они, правда, добавят емкости, но зато обеспечат необходимую помехоустойчивость. TVS есть, например, на 6.8 В. Что касается резистора (схема предложена ранее) — его необходимо ставить после TVS, он будет защищать вход от всплесков 6.8 В. Перед TVS резистор ставить смысла никакого не имеет — у smd рабочее напряжение 150 — 200 В, что такие резисторы сделают против 1 — 2 КВ?
У SMD 1206 рабочее напряжение 400V и они выдерживают короткие киловольтные импульсы
Если можно, ссылку, где это подтверждается. Обычно на 1206 указывается рабочее напряжение 200 В, а 400 — максимальное.
Импульсное напряжение для них не указывается :(
Более подробно защита на TVS описана, например, здесь:
Я лично видел как стабилитроны выгорают в цепях, связанных с импульсными помехами, поэтому вариант со стабилитроном допустимым не считаю. Для стабилитронов в даташитах не указывается максимальная импульсная мощность помехи, которую он может выдержать, да и вообще ничего про работу в импульсном режиме. Потому что это — не его задача. Для этой задачи есть другие полупроводниковые изделия.
Мой вариант правильный в данном случае, а со стабилитроном — нет. Применять стабилитроны для защиты от импульсных помех такого уровня нельзя.
О чем и речь. Т.е. проектировать таких схемных решений на них нельзя.
И, скорее всего, будет подавлена программно, как дребезг.
Там то уж точно никаких помех, а контроллер умер.
Так что… здесь уж точно лучше перестраховаться и сделать все по уму!
Но даже без видео плюс :)
тут уже почти готовая :)
но реально применить пока не успел
Из выключателя можно сделать что угодно, но мне так удобнее — возможно кому то тоже.
Устройство из обзора можно считать реле с программируемым поведением, в том числе и обратная связь
Ещё в детстве в прошлом веке наигрался с подобием умных домов и сделал выводы на тему целесообразности и надёжности. Занятно, прикольно, понтануться перед пацанами можно, но в остальном в жизни это часто неудобно и ненадёжно. А поскольку детство у меня давно прошло, то все подобные поделки были изъяты из домашней сети и заменены на банальные, но надёжные элементы.
я пользуюсь без проблем, очень удобно — и по количеству обратной связи — желающих что-то сделать немало
Китайские детали это кот в мешке, в совке они отбирались по параметрам и соответствовали маркировке, а какой кристалл китайцы сунули в корпус, они и сами часто не знают, задача у них другая, продать сделаное, а какие параметры конкретного изделия это тайна и когда полыхнёт тот же симистор, никто не знает.
Но съэкономить тут уже нет возможности.
а если так подходить к деталям, то лучше вообще никакую технику не использовать — там стоят точно такие же
Вот пожары от возгорания советских цветных транформаторных кинескопных телевизоров — вот это четко и конкретно.
Ну и насчёт всего включаемого тиристорами, может есть смысл матчасть поизучать, а не нести чушь?
Yurok, экономьте ресурсы микроконтроллеров, не перегружайте их
говнокодомнеуклюжими конструкциями. Всю эту кучу операторов можно заменить одной строкой digitalWrite(load_pin, load_on). У вас это постоянно.CodeVision умеет оптимизировать такие конструкции, которые привел klop — разницы не будет. Про AStudio не скажу — не экспериментировал.
Дает на выходе
Если память использована под завязку, а нужно пристроить новую фичу приходится оптимизировать. А так, в чем резон и выигрыш?
Ок. Поставил вместо -O3 опцию -Os (оптимизация размера, а не скорости)
Вариант 1 (стал короче):
Вариант 2 (все равно меньше и быстрее):
Т.е. именно
#define PINXXX 3
if (load_on)
digitalWriteFast(PINXXX, HIGH);
else
digitalWrite(PINXXX, LOW);
Попробуйте и будете приятно удивлены.
Результат компиляции будет одинаковым в данном случае, так что про ресурсы мимо, а про наглядность и удобство расширения — я писал…
Все же рекомендую проверить. Я проверил на своем компиляторе (чуть выше).
Автор, Вы можете описать как Вы прошиваете данный МК? У меня не получается прошить из Arduino IDE.
Подскажите еще пожалуйста, по Вашей статье сделал подсветку лестницы. но там не работает ШИМ. Так и должно быть?
Там яркость передается в качестве параметра, как вы определили что не работает?
По видимому дело в моей плате.
Этож надо — сделать изоляционный пропил, а потом насажать цепей с расстоянием меньше мм.
Занимайтесь вы лучше низковольтовыми схемами, а то убьет же.
не стану советовать чем вам заняться )
В высоковольтной части все расстояния допустимы, откройте любой блок питания и посмотрите расстояния там.
Допустимое расстояние без всякой обработки при худьших условиях и напряжении 310 Вольт 0,31 мм, если покрыть плату лаком, то пробивная прочность увеличится в разы.
можнонужно выкинуть. Это — опасно для жизни.Не умеете работать с опасными цепями — ваша проблема. Но, не выкладывайте это на всеобщее обозрение — кто-то повторит и он может пострадать. Из-за вас.
А про питание полностью согласен.
на 0.1 мм во всех правых измерениях ошибка кстати у вас
Развязка вторички должна выдерживать 1,5кВ, а это минимум 5мм зазор
МЭК 60065-2005
www.lygte-info.dk/info/indexUSB%20UK.html
Причём иногда даже на внешне приличном монтаже тест не проходит, например
lygte-info.dk/review/USBpower%20Valueline%20Micro%20USB%20AC%20charger%20VLMP60891B10%20UK.html
Зазор 2...2.5 мм прошел тест на 2830v
Впрочем, это еще не самое противное в плате. У автора между выводами сети (а не тиристора) расстояние 0.6(+0.6) мм. Малейший всплеск в сети и выгоревшая розетка.
по расстоянию — там вообще 0.9 — ниже скрины
youtu.be/euBpVr_XhuU?t=77
Ну или пусть в промышленном масштабе с китайцами соревнуется
все в пределах допусков, а если плату покрыть лаком, то вообще об этом и думать нечего
расстояния меньше, чем в моей платке, а напряжения выше. Для того чтоб контакты не замкнули — нарисованы полоски )
– А если все будут с кры… FATAL SYSTEM ERROR
расстояния на плате все в пределах допустимых — непонятна нервность народа :)
Если бы ты запитал всё от высоковольтной цепи и не делал бы саму возможность разницы потенциалов (вынос пинов проводами и внешнее низковольтное питание), то все претензии по расстояниям снялись бы моментально.
Конечно помехи приходят не только по вводу. Но это помехи уже другой интенсивности и мощности и ноуты не уходят в перезагрузку от выключения двигателя компрессора холодильника.
Дежурное питание на маленьком железном трансформаторе. Основное питание на импульсный БП включается с помощью реле. На входе стоит предохранитель, потом два разрядника, common mode choke, два X2 конденсатора на землю и два варистора параллельно им и один варистор в толстой силиконовой оболочке на питании. Дураки наверное, сэр
Как то получается все что сделано — сделано в китае.
И по печатке у вас управление идет с 4 ноги. И если уж занудствовать то и в схеме у вас не ваттный резюк указан в снаббере, а 0,25. В обвязке резюков симистра тоже не указана ватность 2 других, а они тоже не менее поувата должны быть. Эхххе.
И да по зазорам для управления маломощной нагрузки все в норме, для лампочек и меньше можно сделать.
а мощность указана в тексте к схеме
Но, боюсь, вынужден буду присоединиться к предыдущим ораторам: как в части защиты входов, так и в части топологии платы. 2мм расстояние между выводом контроллера (резистор R5) и выводом силового тиристора лично мне кажется не очень удачным решением. Фактически, только оно отделяет сетевое напряжение от всей остальной низковольтной части, включая то, что будет подключено к управляющим входам.
Лишней толщины это не добавит — резистор не сильно толще высоты пайки выводных компонентов.
Неизбежная пыль плюс не менее неизбежная влага рано или поздно способны одарить сюрпризом, тем более что здесь полноценного-то пробоя вовсе не надо ждать, достаточно нескольких ма утечки…
Есть у 3063 7.5 мм расстояния между рядами «горячих» и «холодных» ног — и хорошо, и не надо нигде делать меньше. Такое вот частное мнение.
Ну и цена конечно велика у attiny очень
Для полного счастья не хватает детектора ноля. С ним и диммировать можно было бы.
стабильности работы esp8266, к сожалению, далеко до тиньки. Я бы не стал его использовать в таких решениях
Конечно если стабильность (надежность) считать по количеству транзисторов то 8 битные микроконтроллеры выигрывают
но иногда перезагружаются
Ну скорее всего. Мои вот
m.geektimes.ru/post/289389/
Эх жаль я тогда про ESP8285 не знал.
Почему они вам нравятся?
Не понимаю.
На все чихи написано ни по одной библиотеке, и качественных сред разработки — как минимум — 3.
Это Вам не STM, где камней на каждом повороте — ворох, мануал загадочен и малопонятен, а мощности и наворотов хватает, чтобы сделать автономный дрон с нейросетью и грабежом караванов.
Однако кол-во базовых примеров (как и библиотек) — так мало, что в большинстве случаев приходится ваять все самому.
По-этому для рапид-прототайпинга и для неболших проектов тиньки — самое оно.
Вы будете заниматься решением задачи, а не пытаться понять, какого х… в прерывании по DMA запортилась ячейка, которая вроде и портится не должна была, и вообще DMA в другой адрес писал :)
Для простых устройств атмеловские процы — отличное решение.
Для сложных — да, можно уже копать STM.
Других вариантов практически на рынке и нет (пик не в счет — сдох давным-давно).
Например stm8s003 10 штук 250 рублей.
Ну и даже STM8 сложнее Тиньки :) И да — у него есть свои плюсы (энергопотребление и цена, например), но для обычного человека все это не упирается.
P.S. У младших тинек 8 ног, а минимальное кол-во ног у младших STM было 20 ЕМНИП — еще одна сложность. 8 ножный DIP куда проще в монтаже. Может сейчас что и поменялось у STM — не в курсе.
Недавно выпустили STM8S001 soic 8. Но пока не очень доступно. Мне больше всех нравится корпус qfn20 3x3мм.
Ног конечно там от этого больше не стало :).
Шаг 0,5 мм. И все 20 ног задействованы.
Примеров конечно в разы меньше чем для avr. Но мне это не мешает;)
Для меня единственный плюс АВР что v-usb на нём можно поднять.
По этому я предпочитаю использовать stm32 с аппаратным usb ;)
PIC10F200 стоит c доставкой столько же сколько и stm8s003 (за 10 штук). Attiny13 дороже.
Attiny85 вообще космос.
Что то я забыл, вроде он был китайский. Сейчас попробую поискать.
П.С. Не нашёл ;((
— сожрали б-дяди конкурента
Такое частенько случается в бизнесе.
Процы выпускаются, иде пилится, средства разработки продаются.
Юмора не понял.
Можно же по-русски понятно для всех сказать, например «для быстрой реализации основных функций».
Только STM32 не так плох, как мне кажется. Так же очень надежный камень, и очень мощный.
а снаббер при желании можно не ставить
если нужно диммировать — я делаю так :):
mySKU.me/blog/aliexpress/45432.html
Для начала:
1. Борисов В.Г. «Юный радиолюбитель»;
2. Сворень Р.А. «Электроника шаг за шагом»;
3. Хоровиц П., Хилл У. «Искусство схемотехники»;
Можно добавить ещё.
4. Е. Айсберг: «Радио — это очень просто» и «Транзистор — это очень просто»;
5. Р. Токхейм «Основы цифровой электроники»;
Потом (с накопленной базой знаний и пониманием) уже читать конкретно по микроконтроллерам, но там уже всё будет достаточно просто: и интернета будет хватать, со всеми форумами, конференциями, примерами и уроками.
mySKU.me/blog/aliexpress/59220.html#comment2434648
Если человек не очень понимает, когда говорят «ногу ардуины подтягиваем к плюсу внешним сопротивлением, а кнопкой её прижимаем к земле», если человек не знает, чем последовательное соединение светодиодов отличается от параллельного, что такое гасящий или токоограничивающий резистор, и как ключевым каскадом умощнить вывод ардуины, то всё-таки гораздо важнее сначала чуть-чуть окунуться в теорию.
Нет, я не призываю полностью сушить себе мозги, но понимание об элементарных вещах (хотя бы о n-p переходе или, скажем, о законе Ома для участка цепи) иметь-таки надо… Это тот багаж, который не тянет за плечами.
Конечно, если нет среднешкольного образования то надо это восполнить, а потом долбить ардуино.
Теперь стоит почитывать даташиты, иногда.
И, да, любому, кто собирается оперировать словами «даташит», в десять-двенадцать лет я советую начинать читать Свореня и Борисова.
А «даташитами» надо не оперировать, а использовать данные из них.
Ой, спасибо за науку, добрый человек. Я действительно благодарен и признателен.
Но я стойко подозреваю ситуацию, когда ооциты с известковой оболочкой передают информацию и навыки банкивской джунглевой птице. Хотя орнитология довольно далека от электроники и темы разговора…
Я про управление полевыми тр-рами с P-каналом.
Хотя это, видать, тоже не ваше.
У меня до сих пор лежит трансформатор для точечной сварки, все никак времени не найду заняться им. Плата ваша нравится очень.
Разве просто второй строки недостаточно для инициализации порта с подтяжкой к питанию?
в данном случае, первое можно убрать
просто изменить пины и будет работать!
ладно бы оно было еслиб выходило дешевле чем самому вытравить но за два бакса…
да ещё ждать потом
а если не прийдёт
то снова ждать
Входы лучше диодами защитить от наводок. В SoftwareSerial пины вроде не надо дополнительно входом-выходом объявлять. В функции все есть.
Но я одного не пойму, зачем тут использовать несколько бистабильных выключателя с отдельным проводом для каждого? Не проще взять кнопки без фиксации и повесить параллельно на один шлейф и один пин? И проводов меньше надо и кнопок можно хоть 100 задействовать. А в коде логику триггера. Я бы так сделал.
а еще можно, например, отключать автоматом свет через 5 часов использования — иногда и такое нужно
Лень она такая!
Еще из статьи я узнал как будет будет колючка по-английски :).
Сейчас развязка управляющих каналов и силовых блоков осуществляется по вайфай — пример соноф или в диапазоне 433М — пример www.noo.com.by/, www.noo.com.by/silovyie-bloki.html (но сейчас у них nooLite на пульты и силовые блоки идиотские цены — непонятно как они клиентов находят и собираются конкуировать).
идею подсмотрел тут: Щелкаем реле правильно: коммутация мощных нагрузок
Надо бы сперва открыть тиристор, а как его открыть когда он шунтирован контактами реле. То есть, при размыкании контактов реле должен одновременно открываться симистор. Потом, после механической стабилизации контактов реле — выключить симистор.
в статье задержки включения и выключения формируются простыми RC цепочками, а вы можете их сделать на процессоре…
обратите внимание, что там автор испытывает на двухкиловатном пылесосе, а реле и тиристор самые простые и никаких теплоотводов не требуется. единственно, что в статье использован тиристор с большим dI/dt, гораздо больше вашего — это важно для реактивных нагрузок.
если модератор удалит ссылку, то ищите «AN4993: How to implement a SCR or a Triac in a hybride relay application»
проблема в русскоязычных терминах. то что вы пишите справедливо для SCR. Но BTA16 и BTA216 это 3х квадрантные Triac — они остаются включены, пока и если ток управляющего электрода выше тока спрямления, не зависимо от тока через канал.
Кстати, на сайте ST пишут что выбранный вами BTA16 не требует снаббера. Как бы его конкурентное преимущество.
действительно, получается слишком сложно
Она актуальна немного в иных случаях, когда нагрузка поедполагается более мощная и снаббер тут не при чем. А размеры будут намного больше
для TTP223 совсем иная история, если вы его к реле хотите, там обязательно нужен транзистор, ток удержания реле приличный
1. Как верхний код переделать, чтоб считывать состояние на одном пине?
В планах использовать тини13, передатчик на 433, применив всё это на выходе схемы проходного выключателя. Т.е. хочу сделать счетчик включений. Если одно- то передать сигнал на декор подсветку, если два- зажечь люстру.