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

Умный диммер. Вопросы реализации.

Добавлено: Ср июн 28, 2017 9:30 pm
AndyE
Добрый день, друзья.

Подготовка к монтажу первых блоков умного дома идет полным ходом, понял, что хочу диммировать освещение в спальне. Озаботился соответствующим модулем.Хотелось бы иметь гибкий модуль работающий с MQTT. В принципе решил собирать схему на симисторе. Так как в оригинале используется Ардуино, а мне кажется жирноватым навешивать сверху еще и ESP8622 - думаю будет жирновато. Как мне кажется ESP сама способна порулить симистором. Но что -то я навскидку не могу понять есть ли у нее апаратные прерывания, которые смогут отрабатывать переход нуля в сети?
Я знаю, что некоторые льют Ардуиновский скетч в ЕСП, но это, имхо, не правильный путь, слишком много лишних прослоек. Думаю адаптировать скетч для ЕСП не составит труда.
Прошу сильно не пинать с такой электроникой только начинаю разбираться. :roll:

Re: Умный диммер. Вопросы реализации.

Добавлено: Ср июн 28, 2017 9:45 pm
nightwind
Ардуиновский скетч - это название для домохозяек. на самом деле это обычный си + парочка ардуиновских библиотек. Для новичка самое простое - это писать именно эти ардуиновские скетчи в ихнем примитивном иде. Никаких прослоек там не будет. Оно все скомпилируется в нормальную прошивку именно для esp.

Re: Умный диммер. Вопросы реализации.

Добавлено: Ср июн 28, 2017 9:53 pm
AndyE
nightwind писал(а):Ардуиновский скетч - это название для домохозяек. на самом деле это обычный си + парочка ардуиновских библиотек. Для новичка самое простое - это писать именно эти ардуиновские скетчи в ихнем примитивном иде. Никаких прослоек там не будет. Оно все скомпилируется в нормальную прошивку именно для esp.
Что из себя представляет скетч - я понимаю. А под прослойкой я и имел ввиду что код Ардуино можно изобразить на С и работать он будет быстрее.
Во первых хочется познакомиться с ESP. Так как в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.

Re: Умный диммер. Вопросы реализации.

Добавлено: Ср июн 28, 2017 11:33 pm
nightwind
код Ардуино - это и есть самый обычный си. колупай арлдуиновчкую билиотеку, там все просто
вот это "ардуиновское "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;
  }
} 
ничего тут супер не ускоришь, да и производительность esp настолько избыточна для ногодрыганий по вайфай, что тут как раз тот случай, что можно влепить 15 прослоек, и все будет работать)
ИМХО разбираться в низком уровне тут абсолютно не нужно, даже вредно. потратишь неделю, а профита никакого.

Re: Умный диммер. Вопросы реализации.

Добавлено: Чт июн 29, 2017 2:02 pm
AndyE
nightwind писал(а): ничего тут супер не ускоришь, да и производительность esp настолько избыточна для ногодрыганий по вайфай, что тут как раз тот случай, что можно влепить 15 прослоек, и все будет работать)
ИМХО разбираться в низком уровне тут абсолютно не нужно, даже вредно. потратишь неделю, а профита никакого.
Тут даже не по вафле. Тут все локально работает. Извне получается только скважность импульсов.

Re: Умный диммер. Вопросы реализации.

Добавлено: Вс июл 02, 2017 1:03 pm
a_kouz
AndyE писал(а): в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.
Дело не в "вычислительной мощности", а в том, как организовано исполнение программ. В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.

Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.

Управлять симистором при помощи такого устройства - это просто безумие.

Re: Умный диммер. Вопросы реализации.

Добавлено: Сб июл 08, 2017 7:48 pm
AndyE
a_kouz писал(а):
AndyE писал(а): в большинстве задач автоматизации не требуется бешеной вычислительной мощности - думаю мне его будет удобно применять.
А во вторых скетч из темы по ссылке имеет проблемы при заливке в ESP так как использует специфичную для Ардуино библиотеку.
СпойлерПоказать
Дело не в "вычислительной мощности", а в том, как организовано исполнение программ. В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.

Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.
Управлять симистором при помощи такого устройства - это просто безумие.
Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?

Re: Умный диммер. Вопросы реализации.

Добавлено: Пн июл 10, 2017 7:55 am
a_kouz
AndyE писал(а): Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?
Чтобы свет не "моргал", диммер должен обеспечить стабильный угол отпирания симистора. Интервал времени от момента перехода сетевого напряжения через 0 до момента подачи импульса на симистор должен быть стабильным, допускаемая нестабильность - всего лишь десятки микросекунд. А на ESP8266 эта нестабильность будет доли секунды, что ни в какие ворота не лезет.

Однако если вас не волнует "моргающий" свет, то, конечно, делайте диммер на чем угодно, хоть вручную от кнопки симистором управляйте.

Re: Умный диммер. Вопросы реализации.

Добавлено: Пн июл 10, 2017 9:18 am
olehs
a_kouz писал(а): В ESP8266 c Ардуино наивысший приоритет имеют функции обработки TCP/IP. Когда обрабатыается принимаемое или отправляемое сообщение, ESP8266 надолго "вырубается" и не обрабатывает пользовательскую парограмму, т.е. скетч.

Насколько "надолго"? Я видел паузы до 0.7 сек. Чтобы это увидеть, я в главной петле дрыгал ногой ESP с интервалом 1 мс. Соответственно, на осциллографе виден непрерывный меандр с периодом 2 мс. Однако иногда в нем видны паузы длительностью в доли секунды.

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

Re: Умный диммер. Вопросы реализации.

Добавлено: Пн июл 10, 2017 1:18 pm
AndyE
a_kouz писал(а):
AndyE писал(а): Извините, не совсем понял. Безумие из-за приоритетов обработки или есть еще какие-то причины?
Чтобы свет не "моргал", диммер должен обеспечить стабильный угол отпирания симистора. Интервал времени от момента перехода сетевого напряжения через 0 до момента подачи импульса на симистор должен быть стабильным, допускаемая нестабильность - всего лишь десятки микросекунд. А на ESP8266 эта нестабильность будет доли секунды, что ни в какие ворота не лезет.

Однако если вас не волнует "моргающий" свет, то, конечно, делайте диммер на чем угодно, хоть вручную от кнопки симистором управляйте.
Спасибо за пояснения. Именно такая информация интересовала. В таком случае, наверное, лучше функцию ШИМ-управления симистром отдать на внешний МК, который будет тупо получать от ESP информацию.