Получил с чипадипа SSR реле. Подключил на нагрузку 2,3кВт. За час без радиатора реле нагрелось до 87 градусов (задняя металлическая платформа, само реле едва теплое).
В даташите черным по белому написано: при токе свыше 10А использовать радиатор, при токе свыше 80А использовать радиатор с вентилятором или водяным охлаждением. 2,3 кВт это 10,5 А.
У меня токи 5-7А максимум, при чем обычные, не реактивные. Так что реле можно смело использовать и без радиатора. Поставлю их на медную шину, в качестве теплоотвода будет заглаза. Как-то так. Выбором доволен.
Подключил SSR реле. В качестве теплоотвода взял алюминиевую шину толщиной 6 мм, шириной 80мм. В ширину шкафа получилось 7 реле. В принципе, мне больше пока и не надо, 7-е осталось не задействовано.
На шину прицепил датчик температуры, в коде прописал при нагреве пластины выше 70 градусов реле отключатся. Вряд ли такая температура может получиться, но автоматизировать - так автоматизировать.
Максимальная нагрузка на реле у меня только на одном -это как раз 2,3 кВт водонагреватель на 100л. За три часа нагрева от 20 до 90 градусов шина с реле нагрелась до темп +45 градусов.
Заодно переписал и оптимизировал код для работы с дисплеем. Устранил ошибки, которые слал дисплей и в результате вызывал зависание обмена. Изменил скорость передачи данных между GSM модулем и контроллером.
Добавил несколько дополнительных предустановленных температурных режимов.
Подвисонов не стало, обмен между всеми модулями работает как часы.
Как нибудь сниму ролик, как работает контроллер с дисплеем и командами по смс.
Теперь можно приступать к организации автоматического полива :)
Неделю шарюсь в инете по поводу получения текста и значения с nextion на ардуину и все безрезультатно. Возможно вы подскажете в чем проблема то, видел вы с этим сталкивались...
int value=myNextion.getComponentValue("page0.n0");
Serial.println(value);
Вот как я пытаюсь получить значение, по итому имею -1 в порте...
Неделю шарюсь в инете по поводу получения текста и значения с nextion на ардуину и все безрезультатно. Возможно вы подскажете в чем проблема то, видел вы с этим сталкивались...
int value=myNextion.getComponentValue("page0.n0");
Serial.println(value);
Вот как я пытаюсь получить значение, по итому имею -1 в порте...
Посмотрел код внимательно..
Не понимаю, зачем loop () строка "Serial.print(n);"? Что вы этой строкой хотите сделать?
Так же непонятно зачем в дисплее строка "get n0.val"? Она не нужна.
n0.val - так правильно.
В дисплее уберите из кнопки get n0.val
Запустите процедуру чтения в loop
myNextion.listen ();
Для вывода в монитор напишите Serial.print(String (n));
Итак, на сегодня переработал скетч по управлению GSM модулем. Отказался от GSM библиотеки в пользу АТ команд. В целом библиотека во всем устраивала, но потребовалась оптимизация с точки зрения доступной свободной памяти. В результате выяснилось, что библиотека отъедает почти 20% оперативки.
Заодно почти избавился от глобальных переменных, по максимуму использую получение и передачу данных через функции и массивы.
Так же отказался от модуля SIM 900 в пользу SIM800 (с него начинал, но потом перешел на сим900, т.к. модуль имел стабилизацию по питанию).
Поводом же послужило то,что 900 модуль не умеет складывать смс, размер которых больше 160 символов.
На дисплей добавил передачу уровня сигнала GSM, т.к. связь не всегда устойчивая.
Добавил контроль активности GSM модуля по пину DTR, и контроль входящего звонка по пину RING.
Добавил контроль нагрева по ночному тарифу. Т.е. когда дом на охране, нагрев включается ночью по времени, когда действует низкий тариф, утром нагрев отключается, и дом остывает по инерции, не используя энергию дневного тарифа.
Так же на дисплее организован функционал постановки на охрану с задержкой 1 мин и выключение охраны по вводу пароля.
Касательно дисплея: хотел ради экономии памяти так же отказаться от библиотеки, но выяснил, что разницы по занимаемому месту нет. В итоге библиотеку оставил.
Так что весь функционал управления, который я планировал использовать в доме, можно считать законченным.
Тогда радиатор рассчитывать. Ну как вариант кто мешает собрать твердотельное реле самостоятельно?
Тут вот внутренности FOTEK показаны. http://3dtoday.ru/blogs/eta4ever/fans-potentential/
Я почемуто всегда думал что в них стоит тиристор, а оказывается высоковольтный MOSFET.
Просто в omron202 как раз колассическая схема с оптопарой и тиристором.
P.S. Хотя вот тут http://3dtoday.ru/blogs/deviator2x/solid-state-relay-and-heat-table/ ниже в комментах пишут и фотки выкладывают что с тиристором. Да надо тему поизучать.
С фотеком вопрос закрыт :)
Получил с чипадипа SSR реле. Подключил на нагрузку 2,3кВт. За час без радиатора реле нагрелось до 87 градусов (задняя металлическая платформа, само реле едва теплое).
В даташите черным по белому написано: при токе свыше 10А использовать радиатор, при токе свыше 80А использовать радиатор с вентилятором или водяным охлаждением. 2,3 кВт это 10,5 А.
У меня токи 5-7А максимум, при чем обычные, не реактивные. Так что реле можно смело использовать и без радиатора. Поставлю их на медную шину, в качестве теплоотвода будет заглаза. Как-то так. Выбором доволен.
Напомните пожалуйста, что за нагрузка у Вас в 2,3 кВт?
2,3 кВт это просто для теста я подключил обычный нагреватель.
А реле будут управлять тоже нагревателями от 0,5 до 1,5 кВт.
Подключил SSR реле. В качестве теплоотвода взял алюминиевую шину толщиной 6 мм, шириной 80мм. В ширину шкафа получилось 7 реле. В принципе, мне больше пока и не надо, 7-е осталось не задействовано.
На шину прицепил датчик температуры, в коде прописал при нагреве пластины выше 70 градусов реле отключатся. Вряд ли такая температура может получиться, но автоматизировать - так автоматизировать.
Максимальная нагрузка на реле у меня только на одном -это как раз 2,3 кВт водонагреватель на 100л. За три часа нагрева от 20 до 90 градусов шина с реле нагрелась до темп +45 градусов.
Заодно переписал и оптимизировал код для работы с дисплеем. Устранил ошибки, которые слал дисплей и в результате вызывал зависание обмена. Изменил скорость передачи данных между GSM модулем и контроллером.
Добавил несколько дополнительных предустановленных температурных режимов.
Подвисонов не стало, обмен между всеми модулями работает как часы.
Как нибудь сниму ролик, как работает контроллер с дисплеем и командами по смс.
Теперь можно приступать к организации автоматического полива :)
Неделю шарюсь в инете по поводу получения текста и значения с nextion на ардуину и все безрезультатно. Возможно вы подскажете в чем проблема то, видел вы с этим сталкивались...
Вот как я пытаюсь получить значение, по итому имею -1 в порте...
https://ru.aliexpress.com/store/product/DC-5A-LED-Drive-Lithium-Battery-...
https://ru.aliexpress.com/item/Lithium-Charger-Step-Down-Power-Supply-Mo...
Неделю шарюсь в инете по поводу получения текста и значения с nextion на ардуину и все безрезультатно. Возможно вы подскажете в чем проблема то, видел вы с этим сталкивались...
Вот как я пытаюсь получить значение, по итому имею -1 в порте...
Неправильно делаете.
Что такое n0?
Приложите скрин свойств данного поля из nextion editor.
Предполагаю (т.к. не знаю, что у вас там в дисплее), что код должен выглядеть так:
int value=myNextion.getComponentValue("n0.val");
Serial.println(value)
Где n0 - параметр на странице, val -значение этого параметра.
Добрый день!
Извиняюсь за долгий ответ.
Вот мой текст в компеляторе:
На дисплее Nextion он просто:
Кнопка с кодом:
n0.val=n0.val+1
get n0.val
А кроме этого кода на дисплей какая-то информация отправляется? Или не понятно, работает дисплей с ардуино или нет?
Замените строку " int n = myNextion.getComponentValue("n0");"
На строку " int n = myNextion.getComponentValue("n0.val");
Посмотрел код внимательно..
Не понимаю, зачем loop () строка "Serial.print(n);"? Что вы этой строкой хотите сделать?
Так же непонятно зачем в дисплее строка "get n0.val"? Она не нужна.
Спасибо за быстрый ответ!
Передачу данных с ардуино на дисплей я проверял, все работает отлично!
Вот обратно получить- проблема.
Менял значения n0 на n0.val, все без изменений показывает -1,
print(n); - хочу увидеть что значение пришло на ардуино
n0.val - так правильно.
В дисплее уберите из кнопки get n0.val
Запустите процедуру чтения в loop
myNextion.listen ();
Для вывода в монитор напишите Serial.print(String (n));
Посмотрите примеры из библиотеки, у вас не все процедуры чтения данных из дисплея задействованы, поэтому ничего с него вы получить и не можете.
Итак, на сегодня переработал скетч по управлению GSM модулем. Отказался от GSM библиотеки в пользу АТ команд. В целом библиотека во всем устраивала, но потребовалась оптимизация с точки зрения доступной свободной памяти. В результате выяснилось, что библиотека отъедает почти 20% оперативки.
Заодно почти избавился от глобальных переменных, по максимуму использую получение и передачу данных через функции и массивы.
Так же отказался от модуля SIM 900 в пользу SIM800 (с него начинал, но потом перешел на сим900, т.к. модуль имел стабилизацию по питанию).
Поводом же послужило то,что 900 модуль не умеет складывать смс, размер которых больше 160 символов.
На дисплей добавил передачу уровня сигнала GSM, т.к. связь не всегда устойчивая.
Добавил контроль активности GSM модуля по пину DTR, и контроль входящего звонка по пину RING.
Добавил контроль нагрева по ночному тарифу. Т.е. когда дом на охране, нагрев включается ночью по времени, когда действует низкий тариф, утром нагрев отключается, и дом остывает по инерции, не используя энергию дневного тарифа.
Так же на дисплее организован функционал постановки на охрану с задержкой 1 мин и выключение охраны по вводу пароля.
Касательно дисплея: хотел ради экономии памяти так же отказаться от библиотеки, но выяснил, что разницы по занимаемому месту нет. В итоге библиотеку оставил.
Так что весь функционал управления, который я планировал использовать в доме, можно считать законченным.