RS485 Термостат для теплого пола

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 27 дек 2016, 12:58

mihail_40 писал(а): ... но так и не нашел как прикрутить RS485 к MegaD-328.
Вероятно, для большинства не открою ничего нового, но давайте на всякий случай определимся:

Modbus - это протокол, к "железу" не относится. Легко реализуется в управляющей программе.

RS-485 - это стандарт физического уровня для асинхронного интерфейса, соответственно MAX485 - это драйвер физического уровня для асинхронного интерфейса.

Асинхронный интерфейс в простонародии называют UART - это выводы RX, TX с логическими уровнями от микроконтроллера. В случае с RS-485 как правило еще нужна линия управления режимом приема - передачи драйвера (RE/DE). Часто ее подключают к свободному GPIO выводу микроконтроллера и устанавливают его в единицу на время передачи данных.

Т.е. при использовании микроконтроллера со встроенным контроллером UART задача связи по RS-485 является достаточно тривиальной.

Касательно MegaD-328 - насколько я понимаю, в его основе лежит Atmega328, у которой есть USART (RX-PD0, TX-PD1). Дальше надо смотреть по схеме - если эти выводы не задействованы для какой-либо периферии и есть на интерфейсных разъемах, то к ним можно без проблем подключить MAX485, а управление прием-передачей завести от любого свободного GPIO.

Это аппаратная сторона вопроса. Касательно программной - насколько я понял (может, неправ), прошивка MegaD-328 не подразумевает управление устройствами по UART. Т.е. нужно будет дописывать самому эту часть (исходники доступны насколько я знаю).

Если это будет затруднительно, то можно предложить разные решения в виде переходника с UART в другие интерфейсы. Начиная от Ethernet (Lantronix XPort и подобные) заканчивая собственным решением на простейшем MCU (вроде Mega8) и парой десятков строк кода - и тут хоть на SPI, хоть на I2C, хоть на 1-wire ...

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 27 дек 2016, 15:06

P.S.

Могу дать рецепт как за ~1300р без навыков программирования и паяния управлять устройством по RS-485 (и делать многое другое) из Интернета. Проверено лично мной (правда, на USB2COM переходнике, но это непринципиально).

Берем любой роутер с USB, на который есть прошивка OpenWRT. Очень популярен TP-LINK MR3020 - на данный момент средняя стоимость ~1300р.
Прошиваем OpenWRT (https://wiki.openwrt.org/ru/toh/tp-link/tl-mr3020)

Из Web интерфейса роутера (а также из SSH консоли) теперь можно искать и устанавливать приложения для OpenWRT. Есть много и для умного дома, курите форумы.

Устанавливаем приложения, нужные для организации доступа к последовательному интерфейсу через заданный TCP порт:

kmod-usb-serial
kmod-usb-serial-option
kmod-usb-serial-wwan
coreutils-stty
ser2net


В USB роутера вставляем тот самый "свисток" USB->RS-485. Устанавливаем драйвер USB2UART чипа, который стоит в этом свистке. Например:

kmod-usb-serial-cp210x
или
kmod-usb-serial-pl2303

Настраиваем ser2net путем редактирования файла /etc/ser2net.conf (из SSH консоли например):

1000:raw:0:/dev/ttyUSB0:19200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

1000 - TCP порт, ttyUSB0 - порт нашего "свистка" (должен появляться в /dev/ при его подключении), остальное - параметры последовательного интерфейса.

Включаем ser2net в автозагрузку:

nano /etc/init.d/ser2net

Вставляем текст
#!/bin/sh /etc/rc.common
START=10
STOP=15
start(){
ser2net
}
stop(){
echo "nothing to do"
}

Устанавливаем права на файл и запускаем сервис:
chmod +x /etc/init.d/ser2net
/etc/init.d/ser2net enable
/etc/init.d/ser2net start

Все ! На порту роутера 1000 теперь прямой интерфейс с вашим устройством RS-485 ! При этом роутер остался роутером, т.е. у него можно настроить firewall (чтобы тот же наш порт был доступен извне или только в локальной сети), можно вставить в него USB GSM модем (правда, в MR3020 только один USB - придется поставить USB хаб) и роутер будет раздавать интернет в локальную сеть и через Wi-Fi.

Web интерфейс (в т.ч. по работе с UART) также может быть легко сделан на базе внутреннего web сервера роутера.

На мой взгляд, отличное решение, хорошо сочетающееся с приблудами вроде MegaD-328.

mihail_40
Сообщения: 29
Зарегистрирован: 26 дек 2016, 06:51

Re: RS485 Термостат для теплого пола

Сообщение mihail_40 » 31 дек 2016, 09:29

Andrew_A писал(а): нужно будет дописывать самому эту часть (исходники доступны насколько я знаю).
сам не проверял, но в другой ветке написали, что места в памяти уже нет, поэтому дописать не реально.
Выводы RX-TX не задействованы.
По поводу роутера буду изучать. Спасибо.

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 05 янв 2017, 01:24

Методом русского реверс-инжиниринга раскурил все команды термостата, допилил интерфейс - можно полностью управлять и читать все значения.

Кто надумает использовать такой же в своем проекте - в архиве все необходимое по интерфейсу и командам, ссылки на производителя и Тао и моё ПО интерфейса.
YKC_E52.zip
(355.55 КБ) 233 скачивания

Zoro
Сообщения: 8
Зарегистрирован: 17 янв 2017, 17:15

Re: RS485 Термостат для теплого пола

Сообщение Zoro » 22 мар 2017, 01:22

Подниму тему
1) У каких термостатов есть внутренний датчик температуры, по мимо внешнего(который в пол устанавливается)?
2) Встречали ли такие изделия с встроенным датчиком влажности?
3) У кого есть фото внутренностей термостатов? На каких контроллерах он собран? (если PIC Atmel то нет проблем вообще) Просто хочется купить сделать референс дизайн, прошить их не стандартными прошивками...

PS начал искать нашел- но дизайн и крепеление не ахти...
https://ru.aliexpress.com/item/Drug-tem ... a36051f35c

А тут кусается и цена...
https://ru.aliexpress.com/item/Room-Hum ... 47f070b842
Последний раз редактировалось Zoro 22 мар 2017, 01:41, всего редактировалось 1 раз.

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 22 мар 2017, 01:39

1) Подавляющее большинство имеет встроенный датчик.
2) Нет.
3) Теплолюкс на Атмеле (Mega168), даже 6-пиновый ISP на плату вроде бы выведен. Всякие китайские на малоизвестных MCU.
1.jpg
1.jpg (67.91 КБ) 4551 просмотр
2.jpg
2.jpg (143.37 КБ) 4551 просмотр

Zoro
Сообщения: 8
Зарегистрирован: 17 янв 2017, 17:15

Re: RS485 Термостат для теплого пола

Сообщение Zoro » 22 мар 2017, 01:53

Спасибо за потрашки Теплолюкса... Это да можно переделать... Но нет интерфейса 485, прийдется дотачивать и желеки...
Сейчас бы потрашки Китайские посмотреть- как в начале темы... там и драйвер 485, и цена не как у теплолюкса...

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 22 мар 2017, 02:21

А зачем переделывать ? Какая цель ?
У существующих с RS485 ИМХО все возможные и невозможные функции.

Zoro
Сообщения: 8
Зарегистрирован: 17 янв 2017, 17:15

Re: RS485 Термостат для теплого пола

Сообщение Zoro » 22 мар 2017, 12:09

Если знаешь схему(перересовывается в течении часа) И знаешь микроконтроллер, то можно попробовать подключить внешний датчик влажности, использовать датчик температуры внутренний и внешний(если есть)
Задача красивый терминал настройки температуры и (влажности-очень желательно) в комнате- с встроенными датчиками...
Управление на нагрев/охлаждение...
Вот в этом микроконтроллер STC это 8051 серия...
https://www.aliexpress.com/item-img/MOD ... 58805.html#

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 22 мар 2017, 12:59

Термостаты с RS485 практически всегда с внутренним датчиком, который можно читать через интерфейс (и даже калибровать). Т.е. переделка имеет смысл только если датчик влажности подключать. Тогда уж лучше брать с графическим LCD, чтобы свой интерфейс сделать.

Не поленился, сфоткал свой китайский с RS485:

Обращаю внимание на прилипшую к скотчу микросхему SO8 - благодаря высокой культуре производства китайцы получили возможность комплектовать изделия большим количеством компонентов, чем задумывалось разработчиками )))
1.jpg
1.jpg (116.69 КБ) 4524 просмотра
2.jpg
2.jpg (173.04 КБ) 4524 просмотра
MCU вроде бы Samsung, 8051-совместимый:
3.jpg
3.jpg (87.53 КБ) 4524 просмотра
Я считаю такие MCU экзотикой - в том плане, что если спалишь / запорешь при программировании (какой-нить фьюз неверно выставишь), то хрен потом достанешь.

Zoro
Сообщения: 8
Зарегистрирован: 17 янв 2017, 17:15

Re: RS485 Термостат для теплого пола

Сообщение Zoro » 23 мар 2017, 09:39

Большое Спасибо...
Прикольный китайский термостат...

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 01 ноя 2017, 06:03

Andrew_A писал(а):Методом русского реверс-инжиниринга раскурил все команды термостата, допилил интерфейс - можно полностью управлять и читать все значения.

Кто надумает использовать такой же в своем проекте - в архиве все необходимое по интерфейсу и командам, ссылки на производителя и Тао и моё ПО интерфейса.
YKC_E52.zip
Выглядит очень функционально! Впечатляет что даже гистерезис правится.

А другие термостаты пробовали? Почему именно эту модель?

https://ru.aliexpress.com/item/Touchscr ... 41068.html

Хоть и не люблю сенсор, но выглядит хорошо.

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 01 ноя 2017, 06:11

Andrew_A писал(а):Термостаты с RS485 практически всегда с внутренним датчиком
А почему "практически всегда" - эта модель лотерея?

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 01 ноя 2017, 06:21

mihail_40 писал(а):Если применять микросхему max485 можно подключить максимум 32 устройства
https://ru.aliexpress.com/item/Double-P ... 95507.html

Такой не советуете?

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 01 ноя 2017, 13:08

bnx писал(а): А другие термостаты пробовали? Почему именно эту модель?
Другие не пробовал. Как-то не хочется тратить деньги впустую ) Почему этот - описывал ранее:
Andrew_A писал(а): Помимо RS-485 для себя нашел такие плюсы модели:

- Нет блестящих и крашенных (читай - стирающихся) деталей, вменяемый дизайн
- Гуманный интерфейс
- Продвинутый функционал (программирование на неделю, работа от внутреннего и внешнего датчика и т.п.)
- Подсветка
- Батарейка на часы (время не сбивается при выключении питания)
- Много настроек (ограничение диапазона температур, гистерезис и многое другое)
- Конечная цена с доставкой <2 т.р. (в России за такие деньги пожалуй только механический)

Из недостатков:

- Немногочисленные (week, room, set) надписи на экране на двух языках: английском и китайском. Иероглифы выглядят эпично ...
- Силовой выход это не просто контакты от реле, а сразу нагрузка 220В - для котла не подойдет. Но переделывается за полчаса.
bnx писал(а):
Andrew_A писал(а):Термостаты с RS485 практически всегда с внутренним датчиком
А почему "практически всегда" - эта модель лотерея?
Не лотерея, если читать описание к термостату. Например, для локального нагрева пола внутренний датчик не нужен, соответственно, на ряде термостатов для теплого пола его нет. Но практически все термостаты с RS-485 для управления климатом во всем помещении, соответственно они с внутренним датчиком.

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 01 ноя 2017, 13:31

Спасибо!

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 25 дек 2017, 13:45

А как вы переделывали чтобы управлять котлом? Я думал про электро. Хочу просто еще промежуточное трех фазное реле поставить и им управлять с контроллера.

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 25 дек 2017, 15:17

У котла есть подключение сухих НО контактов от внешнего термостата. Замкнуты - греет, разомкнуты - нет. Поскольку у этого термостата выход 220В, а не НО контакты, поставил рядом с котлом реле. Вообще в термостате тоже реле, переделывается за 20 минут (режется дорожка и кидается перемычка), но не хотелось курочить термостат. Да и расстояние от котла до термостата приличное, а с промежуточным реле как-то спокойней.

bnx
Сообщения: 13
Зарегистрирован: 23 окт 2017, 13:21

Re: RS485 Термостат для теплого пола

Сообщение bnx » 08 июн 2018, 09:46

Andrew_A писал(а):
05 янв 2017, 01:24
Методом русского реверс-инжиниринга раскурил все команды термостата, допилил интерфейс - можно полностью управлять и читать все значения.

Кто надумает использовать такой же в своем проекте - в архиве все необходимое по интерфейсу и командам, ссылки на производителя и Тао и моё ПО интерфейса.

YKC_E52.zip
Спасибо за программу - а она у меня все значения устанавливает - а окошки у текущих всегда пустые - это нормально? или у меня не работает программа Delphi

Andrew_A
Сообщения: 47
Зарегистрирован: 25 дек 2016, 22:35

Re: RS485 Термостат для теплого пола

Сообщение Andrew_A » 08 июн 2018, 21:14

bnx писал(а):
08 июн 2018, 09:46
все значения устанавливает - а окошки у текущих всегда пустые - это нормально? или у меня не работает программа Delphi
Кнопку "Запросить статус" нажимаете ?
В окне лога ответов термостата (под кнопкой Clear) что-нибудь есть ?

Возможно, проблема аппаратная - отвалилась линия TX от термостата (а RX работает т.к. параметры устанавливаются).

Ответить