РЕКЛАМА НА ФОРУМХАУС Вы плавно приходите к тому, что инсталляторы для себя уже давно открыли - для управления чем угодно нужны кнопочные выключатели. И кнопки должны быть с пиктограммами-иконочками, на которых нарисовано, чем они управляют. И пиктограмма должна быть подсвечена. Управление с планшетов-смартфонов - это здорово, но не удобно.
Я поддерживаю ТС, считаю, что эта тема вроде только про ардуино плюс некстион. У меня есть роутер прошитый род openwrt, на нем развернут вебсервер, управлять удобно, НО я так же хочу при выходе из дома глянуть на экран, на котором так же вся эта инфа есть. У некстиона есть классная возможность создавать меню и отлаживать отправку данных в ардуину, даже не подключая её. Я за этот экран. У меня есть пару экранов для дуни, но они занимают 36 портов, а здесь тока упарт.
Встречал только под уно шилд на дин рейку и боковые контакты выведены на клемные колодки. Есть еще площадки под дин рейку. Вот на нее и буду прикручивать мегу. А вообще пора прикупать 3d принтер.
Тут в личку задают вопросы, на которые я думаю надо ответить тут. Значить первое и одно из важных моментов с экраном, правильней всего не отсылать информацию на ардуино, а на оборот делать запросы с ардуино. Дело в том что на пример у меня в скетче каждые десять секунд обновляется показнание температур, и времени на экране. И если в этот момент отправлять информацию, то она до ардуино не доходит. По этому самым простым решение было реализовать так код, чтоб ардуино само делало запрос переменных и записывало их в епром. Самое интересное что сам скетч при этом уменьшился в разы, страница настроек температур и интервалов стала общей для двух этажей, просто при переходе на страницу ардуинка понимает куда сохранять переменные. В общем сейчас сделано по принципу, переменные полностью формируются по средствам самого экрана, а далее при нажатии кнопки сохранить, ардуина считывает эти переменные и сохраняет их в епроме .
Далее давайте рассмотрим простои пример работы с екраном, когда у нас объект цифры. На самом экране можно задать изменение объекта как угодно, с помощью кнопок, или таймера или слайдбар, или по формуле, или с определенными условиями, в экране есть переменные глобальные или локальные и так далее. Так что нам нужно просто отправить ID кнопки сохранения на дуню. Переходы между страницами обязательно лучше сделать тоже с помощью ардуино. Алгоритм у нас таков: Мы переходим на пример на страницу настроек (с помощью ардуино, это нужно чтобы поднять значение переменных из епрома и залить их в экран). Далее на экране мы меняем значение этих переменных любым способом, далее мы отправляем команду сохранить, при этом ардуино забирает уже измененные переменные заливает их в епром, и переходин на общий экран. Работа с экраном на ардуине происходит по принципу вызова циклов. вот примерчик который даст возможность понять: #include "Nextion.h" / декларируем библиотеки экрана Nextion void b0PopCallback (void *ptr); / обьявлем циклы, честно скажу и без этого работает. void b1PopCallback (void *ptr); / обьявлем циклы, честно скажу и без этого работает. NexButton b0 = NexButton (0, 1, "b0"); / обьявляем кнопку, у нас кнопка b0 (ID страници, ID самой кнопик, и название кнопки) NexButton b1 = NexButton (1, 3, "b1"); / обьявляем кнопку "сохранить", у нас кнопка b1 (ID страници, ID самой кнопик, и название кнопки) NexNumber n0 = NexNumber (1, 1, "n1"); / говорим что есть переменная в экране n1 NexPage page0 = NexPage (0, 0, "page0"); / обьявляем о сраницах, у нас их 2 в данном примере NexPage page1 = NexPage (1, 0, "page1"); / вторая страница NexTouch *nex_listen_list[] = { &n0, &b0, &b1, &page0, &page1, NULL }; / тут мы обьявляем что надо будет реагировать при получения ID с экрана long loopTime = 10000; / переменная таймера void b0PopCallback (void *ptr) / цикл в котором пишем любые действия при нажатии на кнопку b0 { page1.show(); / переход на сраницу 1 uint32_t number; / обьявляем переменную number number = EEPROM. read (1); / считываем из епрома ячейка 1, и присваиваем значение переменной number n0.setValue (number); / отправляем на экран } / закончили с этим циклом, тут у нас получается что при нажатии на кнопку b0 мы перейдем на страницу page 1, подтянем из памяти (1) значение переменной и обновим на экране n0 значение переменной. Далее как помните я говорил что на странице page 1 у нас есть кнопки (они кстате не заявлены в скетче и это не надо) которые меняют значение переменной n0, это может быть что угодно и не только кнопки, далее по завершению надо сохранить и опять перейти на страницу page 0/ void b1PopCallback (void *ptr) / цикл кнопки b1 { uint32_t number; / объявляем временную переменную number n0.getValue(&number); / читаем окончательное значение переменной n0 EEPROM. write (1,number); / и записываем ее в ячейку (1) епрома page0.show(); / переходим на страницу page 0 } / все цикл получения и записи переменной закончен void setup (void) / далее цикл setup { nexInit(); b0.attachPop (b0PopCallback, &b0); / тут мы должны заявить что при получение ID надо запускать цикл b1.attachPop (b1PopCallback, &b1); Serial2.begin (9600); / указываем на какой скорости общаемся с экраном (по умолчанию 9600 и этого хватает) void loop (void) { unsigned long nowtime = millis(); if (nowtime >= loopTime) {тут мы прописываем циклы работы с датчиками, которые будут обновлятся каждые 10 секунд и на пример посылать информацию на экран; loopTime+=10000; } nexLoop (nex_listen_list); } Ну вот както так .
Про собаку Вачдог, я специально ее здесь не показываю, а почему ? Дело в том что по умолчанию в меге собака не работает, точнее работает но не правильно, уходит в постоянный ребут. Я перепрошивал просто загрузчик. Загрузчик шьется легко с помощью другой платы ардуино ну или специального spi перепрошивальщика. Так что свои ардуинки я перепрошил и на них собака отлично отрабатывается. В дальнейшем я буду выкладывать код с собакой, и если у вас она не работает то уж извеняйте.
Да, у меня тоже сложилось впечатление, что эта тема исключительно про Ардуино и немного про Некстион. Хотя в названии темы заявлено про управление котельной. Но про собственно котельную ТС почти не пишет, сообщил только что в ней установлены два параллельно подключенных котла (газовый и электрический) и некий "кольцевой коллектор". И никаких схем или фото котельной не выложено, даже не написаны конкретные модели установленных в котельной котлов!
Ну смотрите, трехходовой клапан нужен для подмеса, при том что насос тоже нужен и гоняет он по кругу своему. Тут если заморочится, что радиаторы будут постоянно горячими, и температура в радиаторах будет той которая нужна в данный момент для поддержания нужной температуры в помещении тогда может и нужен этот клапан. Клапана эти тоже должны быть с приводами, и эти приводы должны управляться. Просто в ручную регулировать пропадает весь смысл этих клапанов. Да и в общем с клапанами система усложняется сильно. Представьте на пример у меня СК, чтоб не закипел при превышении температуры в БКН выше 65, включается насос БКН и 1 Этажа, и отдает тепло в систему, у меня 1 этаж и так частично ТП, и их даже летом немного надо подогревать. И как тогда все это соеденить и запустить так чтоб СО работала сама в любом режиме в зависимости от температур разных датчиков ?
Вот схема отопления Одна из страниц Экрана Прошу сразу заметить что верхний контур БКН Подключен снизу вверх, а не как в инструкции с верху в низ. Я согласен что эффективность прогрева бойлера от СО ниже, но скажу честно и так замечательно работает, НО зато когда надо на оборот забрать излишнее тепло от бойлера и СК, то так более эффективнее работает схема. Электро колет у меня Интойс Оптима 18киловат с модулем GSM, кольцевой коллектор италия из нержавейки на 40 киловат, насосы на каждую ветку и бойлер Grundfos upso 15-65 130. На циркуляцию ГВС стоит Вило спец из бронзы для ГВС. На циркуляцию электро котла стоит Grundfos серии Альфа. Вот фотки на нем отопление запущено пока только 1 этажа и БКН, второй этаж выключен. В систему залит антифриз на основе глицерина. Блин текущий зараза, пришлось перебирать систему, изначально делал на тангит унелок, по техонечку капал, перекрутил на анаеробный гел (именно красный, остальные цвета долго ждать пока затвердеет). Теперь все сухо и отлично (тфу три раза). Да и еще насосы у меня стоят в начале перед контуром, а не после. В принципе по правилам должен стоят после, типа уже охлажденную прокачавать, но у меня насосы от СК, и они спокойно до +130 работают, а в СО у меня ограничение 75, далее срабатывает защита и отключает котлы. Скажу что в морозы около - 30 максиму грел систему до 65, чтоб в доме было +22. А поставил по тому что по другому не установить мне компактно их и гидрострелку. На второй скорости разница между подачей и обраткой около 8 градусов. Вся бойлерная (кроме газкотла, он на кухне будет стоять) у меня занимает 1 на 1.2 метра .
Вот немного видео На доп экране показываются только те сегменты которые включены, если 2 этаж отопление не включено то его и не отображает, или бойлер в начале выключен потом я его включил. На основном если температура красным цветом, то включен насос, если синим то выключен. Я тут пробовал на какой длине кабеля будет работать экран, 10 метров отлично по витой паре работает, единственное питание надо давать отдельным блоком питания и через DC-DC, а то от самой ардуины не хватает мощности на такое расстояние по витухе .
Тут заказывал я новую Ардуино Keyestudio MEGA 2560 R3, с Алиэкспреса, пришла быстро, качество хорошее, цена хорошая, собака сразу работает с коробки. Тут я вот чего подумал ... Сейчас у меня все датчики температур подключены на один пин, Определяются они с помощью адреса, каждый цифровой датчик DS18B20 имеет свой уникальный адрес. Если чисто делать для себя и не усложнять код, использовать библиотеку DallasTemperature, то все отлично, прописал в самом скетче строчку типа DeviceAddress Thermometer1 = { 0x28, 0xFF, 0x7C, 0xAB, 0x91, 0x15, 0x04, 0xC8 }; для каждого датчика (адрес за раннее надо считать, у каждого свой) и все, конкретно потом для Thermometer1 мы получим температуру. Но если делать проект с взглядом на коммерческий продукт, плату потом можно изготовить. До термометры надо вешать на разные пины. Так как если сломался термометр, то мало кто потом его заменит просто так, а тут просто подключил новый к порту и все. А теперь вопрос ? может сразу переделать на разные порты, вдруг кто потом комерцией займется ) ?