Умный диммер. Вопросы реализации.
Модератор: immortal
-
- Сообщения: 9
- Зарегистрирован: Сб фев 04, 2017 11:37 pm
- Откуда: Московская область
- Благодарил (а): 6 раз
- Поблагодарили: 0
Умный диммер. Вопросы реализации.
Добрый день, друзья.
Подготовка к монтажу первых блоков умного дома идет полным ходом, понял, что хочу диммировать освещение в спальне. Озаботился соответствующим модулем.Хотелось бы иметь гибкий модуль работающий с MQTT. В принципе решил собирать схему на симисторе. Так как в оригинале используется Ардуино, а мне кажется жирноватым навешивать сверху еще и ESP8622 - думаю будет жирновато. Как мне кажется ESP сама способна порулить симистором. Но что -то я навскидку не могу понять есть ли у нее апаратные прерывания, которые смогут отрабатывать переход нуля в сети?
Я знаю, что некоторые льют Ардуиновский скетч в ЕСП, но это, имхо, не правильный путь, слишком много лишних прослоек. Думаю адаптировать скетч для ЕСП не составит труда.
Прошу сильно не пинать с такой электроникой только начинаю разбираться.
Подготовка к монтажу первых блоков умного дома идет полным ходом, понял, что хочу диммировать освещение в спальне. Озаботился соответствующим модулем.Хотелось бы иметь гибкий модуль работающий с MQTT. В принципе решил собирать схему на симисторе. Так как в оригинале используется Ардуино, а мне кажется жирноватым навешивать сверху еще и ESP8622 - думаю будет жирновато. Как мне кажется ESP сама способна порулить симистором. Но что -то я навскидку не могу понять есть ли у нее апаратные прерывания, которые смогут отрабатывать переход нуля в сети?
Я знаю, что некоторые льют Ардуиновский скетч в ЕСП, но это, имхо, не правильный путь, слишком много лишних прослоек. Думаю адаптировать скетч для ЕСП не составит труда.
Прошу сильно не пинать с такой электроникой только начинаю разбираться.
Последний раз редактировалось AndyE Ср июн 28, 2017 9:58 pm, всего редактировалось 1 раз.
- nightwind
- Сообщения: 333
- Зарегистрирован: Вс июн 26, 2016 4:42 pm
- Откуда: Барановичи
- Благодарил (а): 28 раз
- Поблагодарили: 52 раза
- Контактная информация:
Re: Умный диммер. Вопросы реализации.
Ардуиновский скетч - это название для домохозяек. на самом деле это обычный си + парочка ардуиновских библиотек. Для новичка самое простое - это писать именно эти ардуиновские скетчи в ихнем примитивном иде. Никаких прослоек там не будет. Оно все скомпилируется в нормальную прошивку именно для esp.
-
- Сообщения: 9
- Зарегистрирован: Сб фев 04, 2017 11:37 pm
- Откуда: Московская область
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Умный диммер. Вопросы реализации.
Что из себя представляет скетч - я понимаю. А под прослойкой я и имел ввиду что код Ардуино можно изобразить на С и работать он будет быстрее.nightwind писал(а):Ардуиновский скетч - это название для домохозяек. на самом деле это обычный си + парочка ардуиновских библиотек. Для новичка самое простое - это писать именно эти ардуиновские скетчи в ихнем примитивном иде. Никаких прослоек там не будет. Оно все скомпилируется в нормальную прошивку именно для esp.
Во первых хочется познакомиться с ESP. Так как в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.
- nightwind
- Сообщения: 333
- Зарегистрирован: Вс июн 26, 2016 4:42 pm
- Откуда: Барановичи
- Благодарил (а): 28 раз
- Поблагодарили: 52 раза
- Контактная информация:
Re: Умный диммер. Вопросы реализации.
код Ардуино - это и есть самый обычный си. колупай арлдуиновчкую билиотеку, там все просто
ничего тут супер не ускоришь, да и производительность esp настолько избыточна для ногодрыганий по вайфай, что тут как раз тот случай, что можно влепить 15 прослоек, и все будет работать)
ИМХО разбираться в низком уровне тут абсолютно не нужно, даже вредно. потратишь неделю, а профита никакого.
вот это "ардуиновское "digitalWriteПоказать
Код: Выделить всё
extern void ICACHE_RAM_ATTR __digitalWrite(uint8_t pin, uint8_t val) {
if(pin < 16){
if(val) GPOS = (1 << pin);
else GPOC = (1 << pin);
} else if(pin == 16){
if(val) GP16O |= 1;
else GP16O &= ~1;
}
}
ИМХО разбираться в низком уровне тут абсолютно не нужно, даже вредно. потратишь неделю, а профита никакого.
-
- Сообщения: 9
- Зарегистрирован: Сб фев 04, 2017 11:37 pm
- Откуда: Московская область
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Умный диммер. Вопросы реализации.
Тут даже не по вафле. Тут все локально работает. Извне получается только скважность импульсов.nightwind писал(а): ничего тут супер не ускоришь, да и производительность esp настолько избыточна для ногодрыганий по вайфай, что тут как раз тот случай, что можно влепить 15 прослоек, и все будет работать)
ИМХО разбираться в низком уровне тут абсолютно не нужно, даже вредно. потратишь неделю, а профита никакого.
-
- Сообщения: 40
- Зарегистрирован: Вт апр 18, 2017 11:25 am
- Благодарил (а): 0
- Поблагодарили: 8 раз
Re: Умный диммер. Вопросы реализации.
Дело не в "вычислительной мощности", а в том, как организовано исполнение программ. В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.AndyE писал(а): в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.
Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.
Управлять симистором при помощи такого устройства - это просто безумие.
-
- Сообщения: 9
- Зарегистрирован: Сб фев 04, 2017 11:37 pm
- Откуда: Московская область
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Умный диммер. Вопросы реализации.
Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?a_kouz писал(а):AndyE писал(а): в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.Управлять симистором при помощи такого устройства - это просто безумие.СпойлерПоказатьДело не в "вычислительной мощности", а в том, как организовано исполнение программ. В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.
Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.
-
- Сообщения: 40
- Зарегистрирован: Вт апр 18, 2017 11:25 am
- Благодарил (а): 0
- Поблагодарили: 8 раз
Re: Умный диммер. Вопросы реализации.
Чтобы свет не "моргал", диммер должен обеспечить стабильный угол отпирания симистора. Интервал времени от момента перехода сетевого напряжения через 0 до момента подачи импульса на симистор должен быть стабильным, допускаемая нестабильность - всего лишь десятки микросекунд. А на ESP8266 эта нестабильность будет доли секунды, что ни в какие ворота не лезет.AndyE писал(а): Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?
Однако если вас не волнует "моргающий" свет, то, конечно, делайте диммер на чем угодно, хоть вручную от кнопки симистором управляйте.
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Умный диммер. Вопросы реализации.
Неужели приоритет выше, чем у аппаратных прерываний? Вы ногой дергали из основного цикла или из прерывания таймера?a_kouz писал(а): В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.
Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.
Управлять симистором при помощи такого устройства - это просто безумие.
-
- Сообщения: 9
- Зарегистрирован: Сб фев 04, 2017 11:37 pm
- Откуда: Московская область
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Умный диммер. Вопросы реализации.
Спасибо за пояснения. Именно такая информация интересовала. В таком случае, наверное, лучше функцию ШИМ-управления симистром отдать на внешний МК, который будет тупо получать от ESP информацию.a_kouz писал(а):Чтобы свет не "моргал", диммер должен обеспечить стабильный угол отпирания симистора. Интервал времени от момента перехода сетевого напряжения через 0 до момента подачи импульса на симистор должен быть стабильным, допускаемая нестабильность - всего лишь десятки микросекунд. А на ESP8266 эта нестабильность будет доли секунды, что ни в какие ворота не лезет.AndyE писал(а): Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?
Однако если вас не волнует "моргающий" свет, то, конечно, делайте диммер на чем угодно, хоть вручную от кнопки симистором управляйте.