Re: Акваконтроллер на базе ESP8266 ===www.aquaforum.ua===
Цитата:
Допис від Arduino
Считываем время с часов - переводим в секунды. Заданное время тоже переводим в секунды + добавляем в секундах вашу кратковременную и запускаем в loop цикл сравнения, при совпадении выполняем необходимые действия.
уточните пожалуйста,
обычно для таймерной части ардуины предлагают следующий код, который в принципе описывает то что вы указали.
Цитата:
const long StartRelCn_1 = 25200; //Время срабатывания в ПЕРВОМ канале релейного модуля (в секундах от начала суток)
//в данном случае 25200 - это 7 часов 00 минут = ( 60секунд *60 минут *7 = 25200)
const long DurationCh_1 = 10; //ДЛИТЕЛЬНОСТЬ срабатывания реле в ПЕРВОМ канале (в секундах)
void loop() // ПРОГРАММЫй безусловный ЦИКЛ
{
DateTime myTime = RTC.now(); //Читаем данные времени из RTC при каждом выполнении цикла
//----------Раздел обработки реле по времени ----
long utime = myTime.unixtime(); //сохраняем в переменную - время в формате UNIX
utime %= 86400; //Сохраняем в этой же переменной остаток деления на кол-во секнд в сутках,
//Это дает количество секунд с начала текущих суток
//------------КАНАЛ 1------------------------------
if ((utime >= StartRelCn_1) &&
(utime < (StartRelCn_1+DurationCh_1)))
//Если секунд с начала суток больше, чем задано для включения
//Но, одновременно и меньше, чем задано для включения + длительность
{
digitalWrite(RelayChn1,LOW); //Устанавливаем на ПЕРВОМ входе релейного модуля НИЗКИЙ уровень - реле срабатывает
}
else //во всех остальных случаях
{
digitalWrite(RelayChn1,HIGH); //Устанавливаем на ПЕРВОМ входе релейного модуля ВЫСОКИЙ уровень - реле выключается
}
собственно 2 вопроса
1. сожрет ли ЕСП подобный код залитый из arduino IDE ( если поделитесь ссылкой, буду благодарен)
2.как в данный цикл вписать следующую функцию?
таймер включается с 8 до 20
Кнопка позволяющую включить свет на 10 минут в период когда в цикле задан выключенный свет
те нужно каким то образом приостановить выполнение цикла, на ум приходит задание второго условия проверки те
Цитата:
цикл
проверка времени
если время от 8-00 до 20, то включить реле
если время больше 20 - реле выключено
но если дополнительная_переменная = 1 ( значение 1 задавать кнопкой\веб мордой)
то включить реле и приостановить проверку на 10 минут, по завершению вернуть доп.переменной значение = 0
закрыть цикл