Управление котлом при двухтарифном счетчике на ардуино
- Войдите на сайт для отправки комментариев
Пт, 28/08/2020 - 16:15
Здравствуйте.
Вот уже который год я пытаюсь освоить ардуино...
Хотел сделать отопление котлом при двухтарифном счетчике, но с часами реального времени так и не разобрался, по-этому котел управляется в итоге ардуино по температуре и реле времени (попалось на работе на глаза....). Сейчас встала проблема подобного же, только уже с гаражем.
Слепив код для моргания диода с измерением температуры при помощи LM35 получилась прога, которая будет включать-выключать по температуре, а вот со временем опять затык... Как проще сделать таймер, чтоб он включал в 23:00 и выключал в 07:00?
Заранее спасибо за советы.
[code]
int led = 13;
int raw = 0;
float temp = 0;
#include <iarduino_RTC.h> // Подключаем библиотеку iarduino_RTC для работы с модулями реального времени.
iarduino_RTC watch(RTC_DS1302, 2, 3, 4);
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
pinMode( A0, INPUT );
delay(1000); // Ждем готовности модуля отвечать на запросы
watch.begin();
}
void loop() {
raw = analogRead(A0);
temp = ( raw/1023.0 )*5.0*1000/10;
if (temp<25) digitalWrite(led, HIGH);
if (temp>26) digitalWrite(led, LOW);
if(millis()%1000==0) // Если прошла 1 секунда.
Serial.println(watch.gettime("d-m-Y, H:i:s, D")); // Выводим время.
delay(1000);
}
[/code]
Пока я только могу посмотреть время (благо теперь оно не стартует с одного и того же значения! :))) А вот как задать условие, чтоб светодиод ( в будущем реле) включался/выключался не только по времени, но и по температуре, если она ниже определенной уставки.
В сети есть уже готовые решения под контроллер с кнопками и дисплеем. Я же хочу ограничиться просто платой ,которая настраивается прям с компьютера, это должно быть даже проще, но пока вычленить нужные строчки не получается :(
Пока я только могу посмотреть время (благо теперь оно не стартует с одного и того же значения! :))) А вот как задать условие, чтоб светодиод ( в будущем реле) включался/выключался не только по времени, но и по температуре, если она ниже определенной уставки.
С библиотекой которую вы используете идут примеры. Вы их изучали?
ВЫ про библиотеку времени?
Там я понял как ставить время, как его получать, как моргать временем, когда устанавливаем.
Пропустил что-то?
Там я понял как ставить время, как его получать,
И что так сложно сравнить полученное время с требуемым и если оно совпало то выполнить необходимое действие?
Я на часы время установил и теперь могу их посмотреть в мониторе, но вот как их использовать, чтоб в 23 включить и в 07 выключить светодиод я пока не понимаю...
Знаю, что это должно быть очень просто, но пока не нашел....
Надо объявить переменную "Часы" и к ней уже условие выставлять, но пока не получилось :)
Он хочет программировать не учась программировать. Дохлый номер.
if ((Hour>=23)||(Hour<7)) Включить!!!();
Если уметь, то не сложно :)
Но как это время сравнить? ввести переменную "часы"?
Типа такого я уже пытался писать - не работает :)))
Это потому, что ты мало пьёшь. У меня - работает.
Типа такого я уже пытался писать - не работает :)))
Нет, не типа такого. Если бы типа такого, то работало бы.
Кстати, из всех RTC библиотек, которые я видел, Вы выбрали самую неудачную.
У меня не работает, потому как жалуется, что либо "Houts" не объявлены, либо еще что - но я на верном пути :)
Я только с этой библиотекой наоборот часы подключить смог, до этого либо ничего не получалось, либо каждый раз время начинало отсчет заново, спасибо на этом форуме подсказали, что нужно // настройку отделить,чтоб больше не перезапускались или вообще удалить.
Спасибо за простые подсказки - все начинали когда-то :)
У меня не работает, потому как жалуется, что либо "Houts" не объявлены, либо еще что
Так объявите
Всем привет.
Очередная попытка "задекларировать" текущее время провалилась...
Почему у меня при компеляции ошибка: "Current_time' was not declared in this scope"?
Ведь я же задекларировал...
Спасибо огромное!
Я думал вы пошутили и просто такая строчка работать не будет :)) Думал надо программу "писать" :))
Заработало!!!
Спасибо еще раз!
Всем привет!
Оказывается "программа" (без кавычек на данном форуме ее называть некорректно), работавшая на столе при изменении времени или температуры отказывается работать "в железе"....
Мои потуги создать два условия, чтоб ночью включались тены (LED) вне зависимости от температуры с 23 до 7, а в остальное время поддерживали диапазон между 10 и 12 градусами пока не дали положительного результата. Прошу помощи указать ошибку, потому как племянница, закончившая физ-мат и работающая преподавателем информатики (ну вы в курсе про тех, кто учит и что умеет))) помочь не с смогла...
Вчера например обогрев после 23 не включился, но стоило только подключить кабель к компьютеру, то он включился и остался включенным после 7... Если подключаю комп и меняю заданные уставки, то все работает... ничего не пойму :(
И еще один вопрос:
с удивлением обнаружил, что часы RTC_DS1302 убегают КАЖДЫЙ день на 2 мин! Это нормально для них или косяк какой-то? Я понимаю, что точности швейцарских часов грешно требовать от игрушки в наборе ардуино, но все же:) Как с точностью у других часов реального времени?
Спасибо за ответ.
Ну не удивительно - вы ж часы читаете один раз - в сетапе при старте скетча.
а в ЛУП кто за вас будет переменную Hours обновлять - Пушкин?
То есть я попытался указать, что брать из часов
Hours =(watch.Hours);
Но это неверно?
Это нужно в лупе указать?
То есть я попытался указать, что брать из часов
Hours =(watch.Hours);
Вы это делаете только один раз - в сетапе. Поэтому после старта все работет, а потом нет.
Или вы думали. что в лупе оно само обновляться будет? :))))
Hours =(watch.Hours);
Это так не работает, нельзя связать переменную Hours и watch.Hours, так чтобы Hours обновлялась отоматически. Читать и присваиватьчасы надо именно там, где используются часы
Вчера например обогрев после 23 не включился, но стоило только подключить кабель к компьютеру, то он включился и остался включенным после 7... Если подключаю комп и меняю заданные уставки, то все работает... ничего не пойму :(
Дайте угадаю: к компьютеру вы подключили ардуино уже после 23 часов и не отключали до 7 утра. Можно было просто включить/выключить - результат был бы таким же. Переменную Hours Вы получаете в setup(), который выполняется один раз, при старте устройства.
Спасибо, перенес в луп, тогда понятно почему на столе при изменении времени все работало после заливки при тестах :)
Угадали, вечером только подключил комп - программа сработала, утром же смотрю греет не выключаясь - просто выключил питание (от старой нокиа) и прога сработала.
То есть либо каждый день в 23 и в 7 включать -выключать, либо... сделать прогу рабочей :)) Перенес в луп, посмотрим как это скажется ночью - менять уставку времени смысла нет, я так эту прогу уже "отладил" :)))
Перенес в луп, посмотрим как это скажется ночью - менять уставку времени смысла нет, я так эту прогу уже "отладил" :)))
Вы не пробовали хоть чуть-чуть научиться понимать. что написано в коде? Или так и будете отлаживать - перенес одну строчку, "попробовал" - не прокатило, перенес другую...
так это и есть мой долгий тернистый путь понимания - методом проб и ошибок...
Ты в течение 3х с половиной лет так через тернии и не пробился.
так это и есть мой долгий тернистый путь понимания - методом проб и ошибок...
"понимания" ? - ты себе льстишь
Короче, ждем еще через пару месяцев новую серию постов "опять не работает".
Мужик, бросай это дело. С таким "пониманием" ты дом спалишь
Спасибо, за советы.
Перенес эту строчку в луп, поставил время с 23 до 16 и платка сама выключила :) Есть надежда, что прога все же рабочая :)
Дунул фреоном на датчик и она включила пол и выключила после отогрева датчика :)
Не беспокойтесь, дом не спалю - это отопление гаража в стяжке бетонного пола, проводка надежная, я электрик.
Посмотрим как будет работать :)
Перенес эту строчку в луп, поставил время с 23 до 16 и платка сама выключила :) Есть надежда, что прога все же рабочая :)
покажи код, что получился
Я просто ее перенес.... компеляция прошла, проверил - работает (вроде как :)