Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Софт:обсуждение программного обеспечения для умного дома

ТЕМА: Термостат

Термостат 03 Июнь 2017 03:12 #18881

  • Dmitry77
  • Dmitry77 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 39
  • Репутация: 11
Форматируйте код , правильно расставляя пробелы и отступы будете понимать как он должен работать.
D77
Администратор запретил публиковать записи гостям.

Термостат 03 Июнь 2017 03:37 #18882

  • Dmitry77
  • Dmitry77 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 39
  • Репутация: 11
Блин ,ночь,все работает,условие не снес .Макс сори,форум не дает поправить код ,чтоб и с тернарной все было ок
D77
Администратор запретил публиковать записи гостям.

Термостат 03 Июнь 2017 03:42 #18883

  • Dmitry77
  • Dmitry77 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 39
  • Репутация: 11
//собирая в конструкторе выбирать : Количество настроек - 2 настройки. Глобальные переменные - 2 . В Des code option модуля вводить настройки значений температуры умноженными на 10 !!!
int32_t znTer,znGis; // значение термостата, значение гистерезиса 
bool flag = 0; // параметр изменения состояния
void ICACHE_FLASH_ATTR
startfunc()
{
    digitalWrite(12,0); //установка состояния выхода 12 esp8266 на старте
    znTer = valdes[0] = sensors_param.cfgdes[0];
    znGis = valdes[1] = sensors_param.cfgdes[1];
}
void ICACHE_FLASH_ATTR
timerfunc(uint32_t  timersrc)
{
    if (sensors_param.cfgdes[0] != znTer)
	{ 
        valdes[0] = sensors_param.cfgdes[0];
	} 
	else 
	{
        if (sensors_param.cfgdes[0] !=valdes[0])
		{ 
	        flag = 1; // проверка наличия изменений
            sensors_param.cfgdes[0] = valdes[0];
	    }  //значения термостата по мктт (значения температуры умножены на 10)
    }
    znTer=sensors_param.cfgdes[0];
    if (sensors_param.cfgdes[1] != znGis)
	{ 
        valdes[1] = sensors_param.cfgdes[1];
	} 
	else 
	{ 
        sensors_param.cfgdes[1] = valdes[1];
	}  //значения гистерезиса по мктт (значения температуры умножены на 10)
    znGis=sensors_param.cfgdes[1];
    if (flag) 
	{
		SAVEOPT;
        flag = 0;
    }        
    if(data1wire[0]< (znTer - znGis) ) 
		digitalWrite(12,1); //нижняя граница термостата , включение гпио - значение уставки минус гестерезис
    if(data1wire[0]> znTer ) 
		digitalWrite(12,0); //верхняя граница термостата , выключение гпио - значение уставки
}
void webfunc(char *pbuf) 
{
    os_sprintf(HTTPBUFF," термостат -  <b><font color=%s </font></b>,",digitalRead(12)?"'green'> ON":"'red'> OFF");
    os_sprintf(HTTPBUFF+os_strlen(HTTPBUFF)," целевая <b>%s</b> ,", fltostr(valdes[0]));
    os_sprintf(HTTPBUFF+os_strlen(HTTPBUFF)," гистерезис <b>%s</b> ", fltostr(valdes[1]));
}
D77
Администратор запретил публиковать записи гостям.
Спасибо сказали: Roofcat

Термостат 05 Июнь 2017 20:55 #18897

  • Dmitry77
  • Dmitry77 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 39
  • Репутация: 11
Если я правильно понял ,сейчас почитав,там валдисы почему-то на старте не принимают значения настроек И задав фпкт в ноль,он еще раз уже в таймере еще раз пишет в валдис из настроек.Иначе тогда в настройки пишется после рестарта то что в валдисе,а это может быть любое значение,смотря что оно там по мктт получит или на старте в нем твориться.Так что в опубликованном ubuser коде поправка актуальна и верна.
D77
Администратор запретил публиковать записи гостям.

Термостат 05 Июнь 2017 21:01 #18898

  • Dmitry77
  • Dmitry77 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 39
  • Репутация: 11
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
D77
Последнее редактирование: 05 Июнь 2017 21:02 от Dmitry77.
Администратор запретил публиковать записи гостям.

Термостат 21 Авг 2017 21:40 #19492

  • velozoom
  • velozoom аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 30
  • Спасибо получено: 5
  • Репутация: 0
Здравствуйте! Как можно задать гистерезис, например, 0.4 градуса ? Меньше 1 градуса не получается.
И есть ли возможность в конструкторе кода прописать виртуальный датчик(ds18b20) на другой плате?

Спасибо.
Последнее редактирование: 21 Авг 2017 21:41 от velozoom. Причина: Dsw1
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter, Dolfik
Время создания страницы: 0.142 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.