предложите Термостат (serial, ip ,rs-485...)

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение shemnik69 » Чт апр 09, 2015 3:56 pm

:D .... если вопрос ко мне? то у меня данная идея работает уже 2 сезона.
Более того я ее подробно уже расписывал и на ab-log и ее детали косвенно на Нашем форуме.
Вопрос стоит не в том на чем ее изготовить, как вариант ее можно даже создать на уже отработанной основе:http://smartliving.ru/forum/viewtopic.p ... 1&start=10
т.е плата уже содержит 2 реле а значит максимально приспособлена к данной системе. Прошить сам мк .....это вся задача.
также на плате уже разведено релейное переключение просто допаять один проводник и все.
На мой взгляд, отчасти следует предлагать саму концепцию т.е. подробный процесс с описанием и возможные варианты его решения, а заинтересованные в его использовании, уже сами выберут вариант на чем его выполнить т.е ту материальную основу которая максимально удобна и приемлема потому как сама концепция описывает саму технологию т.е. материальная база тут второстепенна.
Ведь тоже самое работает на связке два реле (см схема) которые управляются 1-ware (ну тут тоже вариант: http://smartliving.ru/forum/viewtopic.p ... lit=DS2413 ..завалялся... :D либо аналог) а сам алгоритм написан в скрипте на МД ..что не одно и тоже?
Ведь исполнение самого процесса происходит. Именно такой вариант управления насосом и применяю.
Просто если его выполнить на МК он будет автономен и независим. Но меня устраивает и тот который работает.
Аватара пользователя
Kod.Begemot
Сообщения: 358
Зарегистрирован: Чт июн 20, 2013 5:53 pm
Благодарил (а): 32 раза
Поблагодарили: 42 раза

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение Kod.Begemot » Чт апр 09, 2015 4:59 pm

Вопрос был к ТС - топик стартеру, который искал термостат для дома :) Я писал о том варианте термостата, который использую сам - пока без вмешательства в котел, просто "запрос тепла", ну и управление электромагнитными клапанами теплых полов.
Чем мне нравится связка МК+ENC - тем что это просто Ethernet, простая витая пара - по которой и питание дать можно, и протянуть куда угодно (в пределах разумного), и даже через оптику запустить (это ж tcp-ip, http :) ) и можно на удалённом объекте поставить, и через инет управлять.. и то, что можно реализовать простейшую логику, без жесткой завязки на сервер.
А вам я писал о управлении насосом - заинтересовало меня, буду пробовать. Сейчас у меня котёл управляется через "запрос тепла" + подключен уличный термодатчик, задающий температуру в контуре отопления. К этому датчику тоже буду подключаться, чтобы можно было регулировать скорость набора температуры. В редких случаях "дать газу" - к примеру едем домой, где небыли несколько дней. Дом остыл, отопление было выставлено на +18 (к примеру), но вспомнил о прогреве я не за 3-4 часа, а за час. Вот чтобы приехать в тёплый дом хочется иметь возможность "наболтать" принудительно. Но это пока планы :)
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение Geban » Пн апр 13, 2015 7:52 am

Просто оставлю это здесь. Может кому нить пригодится.
Купил я 5 штук термостатов китайского производства для управления клапанами теплого пола.
вот такие http://ru.aliexpress.com/item/BHT-1000- ... dVersion=1
В описании написано RS-485/MODBUS. Ура, подумал я, но нифига подобного ) ! Никаким модбасом там и не пахнет. протокол отдаленно похож,но не модбас. Что бы общаться с устройством ему надо отправить строку типа CMD ID0 ID1 DATA0 DATA1 DATA2 DATA3 CHACKSUM. У производителя был добыт документ( во вложении) и написан скрипт на питоне, затем программа демон на С под линукс, и на конец на PHP для совместимости с MDM. Концепция следующая: все термостаты соединены шиной (RS-485) и воткнуты в малинку которая занимается кое чем, для наших целей на ней поднят ser2net который просто пробрасывает порт переходника USB <--> RS-485 в сеть. МДМ стоит на кубиборд 3 она же кубитрэк и и там крутиться вот это :

Код: Выделить всё

$addr = '192.168.0.250';    // ser2net address
$port =  5331;             // ser2net port


$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, $addr, $port);


$temp = 45;           // Значение температуры которое требуется установить (заменить на переменную)
$address = 16;       // Десятичный адрес термостата
$mode =  0;           // Режим:  0 - получить все данные с устройства. 1 - вкл (data = 10) и выкл (data = 0). 2 - Установка времени дня недели. 3 - Установить желаемую температуру
$data = 10;

// время и день недели для установки
$s = 00;
$m = 15;
$h = 16;
$w = 7;
//

$sec = sprintf("%02X",$s);
$min = sprintf("%02X",$m);
$hour = sprintf("%02X",$h);
$week = sprintf("%02X",$w);


$set_temp = dechex($temp);
$dev_addr = dechex($address);

$cda = '0x'.$dev_addr;


/*
0xA0 - Read all data     160
0xA4 - On/Off device     164
0xA9 - Temp setting     169
0xAA - Clock setting     170 CMD,DEV_ID0,DEV_ID1,DATA0,DATA1,DATA2,DATA3,CHKSUM
*/

if($mode == 3) {$cmd = '0xA9'; $data0 = '0x00'; $data1 = '0x00'; $data2 = '0x00'; $data3 = '0x'.$set_temp;}
if($mode == 2) {$cmd = '0xAA'; $data0 = '0x'.$sec; $data1 = '0x'.$min; $data2 = '0x'.$hour; $data3 = '0x'.$week;}

$checksum = dechex(($cmd + $cda + 0x00 + $data0 + $data1 + $data2 + $data3) & 0xFF ^ 0xA5);

if($mode == 0) { $str = "A0".$dev_addr."000000000015"; }  // Get all data
if($mode == 1 && $data == 10) { $str = "A4".$dev_addr."001000000061"; }  //turn on device
if($mode == 1 && $data == 0) { $str = "A4".$dev_addr."000000000011"; }  //turn off device
if($mode == 2) { $str = "AA".$dev_addr."00".$sec.$min.$hour.$week.$checksum;} // Set clock
if($mode == 3) { $str = "A9".$dev_addr."00000000".$set_temp.$checksum; } // Set temp


$t = pack("H*",$str);

socket_write($socket, $t, strlen($t));

usleep(200 * 1000);

$line = socket_read($socket,64);

$hex = (string)join("", unpack("H*", $line));
$res = str_split($hex,2); 

setGlobal('Badroom.cur_temp',hexdec($res[9]));  // Текущая температура в помещении

socket_close($socket);

 
При запросе всех данных у устройства получаем массив из 12 элементов в hex виде, что значит каждый элемент можно посмотреть в приложенном документе, в описании команды 0xA0

Надеюсь кому то пригодится. Для работы с устройством напрямую можно выкинуть работу с сетью и работать напрямую с портом использую fopen fread fwrite или поднять ser2net на том же компе где и MDM.

Спасибо за внимание.
Вложения
RS485 protocol for heating.pdf.zip
(124.84 КБ) 222 скачивания
Последний раз редактировалось Geban Пн апр 13, 2015 10:50 am, всего редактировалось 1 раз.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение shemnik69 » Пн апр 13, 2015 8:37 am

Выкладываю свой вариант платы на основе ds2413, где реализовано максимально все выполнено именно по алгоритму переключения т.е. соединения клемм реле выполнено в соответствии с ранее проведений схемой, т.е двигатель просто присоединяется своими проводниками к плате и всё, остальное плата делает сама.
Управляется плата от сервера 1-ware (самый простой и функциональный вариант это сервер отдельной Raspberyy Pi +DS2490R) причем можно даже организовать команды управления с планшетов на Tasker т.е. например по времени или другим условиям.
Короче работает и все.
Детали самые распространенные: реле 12-24 в (питание реле отдельная средняя клемма)
Транзисторы любые распространенные например КТ3102. КТ503. либо импорт. аналоги.
Оптроны 4N25. 4N35 или аналоги.
DS2413 на "адаптере" для простоты пайки (маленькая заводская платка).
Сама схема это по сути аналог релейной схемы можно посмотреть вот тут: http://smartliving.ru/Main/Library (https://dl.dropboxusercontent.com/u/322 ... ctions.pdf)

И еще, она была описана подробно ранее.
Вложения
плата реле DS2413.zip
(17.08 КБ) 216 скачиваний
Последний раз редактировалось shemnik69 Вт апр 14, 2015 8:42 am, всего редактировалось 1 раз.
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение Geban » Пн апр 13, 2015 10:48 am

shemnik69 писал(а): 1-ware
1-WIRE :D
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение shemnik69 » Пн апр 13, 2015 11:34 am

А что? Работает ведь... :D
(описание приведено ранее).
Реле в купе с термо датчиком типа DS18d20 особенно если таких датчиков несколько то результаты отличные.
А вот что управляет самим реле. это не имеет большого значения. микро контролер ли это. или DS2413... :lol:
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение Geban » Пн апр 13, 2015 4:54 pm

Сам до недавнего времени пользовался чем-то похожим. ардуина, дисплей от нокии, энкодер с кнопкой, твердотельное реле и пара DS1820. Рулило теплым полом. Потом нашел у кетайцев термостат о котором писал выше, теперь во всех комнатах стоят они. плюсы: красивее(для жены оч важно :) ), есть управление из вне,быстрее устанавливать, освободилась куча ардуин ) Минусы: не стандартный протокол обмена.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение shemnik69 » Вт апр 14, 2015 8:30 am

Понимаете в чем дело!
Для многих главное во всех этих делах то чтобы была красивая лицевая панель.
Если же вся эта "структура управления" спрятана в шкаф, имеет удаленный доступ и по сути самодостаточная то ее вариант исполнения ни имеет никакого дизайнерского смысла.
Такие системы, точнее их управляющие элементы как термостат.(как пример на электро бойлерах) автоматика давления. (на компрессорах) влажности (на вентиляторе вытяжки) или подобные, т.е. не должны быть сложными, а главное не выпячиваться в виде " покрути меня, поиграй со мною" ну или как то так.
Концепция таких систем тихая работа, и конечно если это будет промышленный узел только хорошо, в тоже время промышленная конструкция строится на тех же самых элементах что и та которую можно изготовить дома.
Да еще момент, та плата что приложена ранее, это не термостат, это плата управления много скоростным циркуляционным насосным агрегатом котла.
karlismoto
Сообщения: 39
Зарегистрирован: Чт окт 16, 2014 11:12 pm
Благодарил (а): 5 раз
Поблагодарили: 0
Контактная информация:

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение karlismoto » Вт апр 14, 2015 9:14 pm

To Geban:

Исходя из Вашего опыта следует вопрос- стоит ли покупать это термостат с rs485 адаптер?
немного не понимаю из описания , управления с MD ето возможно?
Может быть, вы можете описать тоньше как управлять дистанционно етот термостат.
Это тема меня очень заинтриговало :)
Windows7 + MajorDoMo.
HP laptop, MegaD modules, Arduino Megas, DS18B20, DHT-11 and other sensors.
DSC Alarm + envisalink 3
Connect
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

Re: предложите Термостат (serial, ip ,rs-485...)

Сообщение Geban » Ср апр 15, 2015 9:04 am

Я бы сказал что стоит.Управляется он довольно просто,выглядит хорошо.с работой вполне справляется. кстати к нему можно подключить выносной датчик температуры.
Управлять через MDM возможно. Тот код что я оставил как раз позволяет это делать. НА компе с MDM поднимаем ser2net (не знаю есть ли аналог под винду,да и вообще кто троит автоматику под виндой..), настраиваем её на порт переходника USB<->RS-485,берем скрипт который я выкладывал выше и меняем там порт и IP на те которые у Вас имеет ser2net. Дальше все зависит от Вашей фантазии.Как интегрировать его в МДМ... можно наверно оформить в виде метода класса, я не очень силен в этом. У меня последовательно вызываются 5 скриптов,по одному для каждого термостата.
Допилить пока некогда
Ответить