Мой дом.

1-Wire / Ethernet bridge

 

В сети встречается много описаний различных устройств, предназначенных для контроля и/или поддержания температуры на каком-то объекте, но ни одно из найденных мной не отвечает необходимым требованиям. В результате было разработано описываемое устройство.

 

Схема устройства не представляет ничего особенного, только типовые решения.

  

Из схемы видно, что устройство предназначено для работы по сети Ethernet. Подключив устройство к сети, и зайдя по адресу «http://192.168.3.14/sec/» мы попадем в интерфейс управления и начальной конфигурации устройства.

Более подробно о всех пунктах меню:

 

Net config

Пункт меню «Net config» содержит сетевые настройки устройства:

 

  • IP – Адрес устройства. По умолчанию 192.168.3.14
  • Password – Пароль, по умолчанию «sec». Максимальная длинна пароля 6 символов.
  • Server – Адрес сервера, которому сообщается о сработавшем входе.
  • Script – Имя скрипта на сервере, который вызывается для обработки сообщения о сработавшем входе. Максимальная длинна имени скрипта 15 символов. По умолчанию используется имя «test-http.php».
  • MAC-адрес автоматически генерируется из IP адреса.

 

Sensors

Пункт меню «Sensors» это список всех обнаруженных датчиков температуры с их текущими значениями. Адреса датчиков выводятся в формате всем известного пакета OWFS.

 

Для получения списка датчиков и текущих значений температуры сервером удобней использовать запрос «http://IP/password/?th=all». Формат вывода будет таким же, только без ссылки «Back» и заголовка «Sensors», это сделано для облегчения разбора списка стандартными средствами PHP.

            Для получения текущего значения температуры одного датчика можно использовать запрос «http://IP/password/?th=28.D40264020000», где «28.D40264020000» адрес датчика. В этом случае ответ устройства будет содержать только значение температуры выбранного датчика или «Error», если датчика с указанным адресом не существует.

 

Inputs

Пункт меню «Inputs» отображает текущее состояние всех входов устройства. «ON» означает, что вход притянут к земле (через контакты кнопки, реле или оптрон). Т.е., активный уровень входов – «0».

 

Для получения текущего состояния входа можно использовать запрос «http://IP/password/?get=in3». В ответ на этот запрос устройство сообщит серверу «0», «1» или «Error», если в написании имени входа допущена ошибка.

 

Outputs

Пункт меню «Outputs» » отображает текущее состояние выходов устройства.

 

Состояние «AUTO ON» говорит о том, что на выход назначена функция термостата, и он находится во включенном состоянии, а «AUTO OFF» в выключенном. «ON» и «OFF» это состояние выхода, которым можно управлять программно или из WEB-интерфейса.

Для получения текущего состояния выхода можно использовать запрос «http://IP/password/?get=out5» на который устройство ответит «0», «1» или «Error», в случае, если допущена ошибка в имени выхода. Важно отметить, что прочесть можно как простой выход, так и выход на который назначена функция термостата.

Для установки состояния выхода можно использовать запрос «http://IP/password/?set=out5&val=1», это означает включить выход 5.

  • val=0 – выключить
  • val=1 – включить
  • val=2 – инвертировать

Для подтверждения принятия команды устройство ответит:

  • «OK», если запрос выполнен успешно.
  • «Error», если в имени выхода допущена ошибка или значение val не равно 0, 1 или 2.
  • «Auto», если на выход назначена функция термостата.

 

Thermostat 

Пункт меню «Thermostat» позволяет назначить на выход устройства функции термостата и одновременно показывает, на какие выходы эта функция уже назначена.

 

При клике на ссылку рядом с именем выхода попадаем в меню конфигурации термостата:

 

Здесь все интуитивно понятно. На  первой строке «Thermostat ON» показывает, включена или выключена функция термостата, на  следующей строке написано предложение, вписав в которое свои значения, Вы сконфигурируете работу термостата. В случае, если допущена ошибка в адресе датчика, то после сохранения настроек адрес подсветиться красным цветом, если ошибка в значении уставки или гистерезиса то уставка станет равна 0.00, а гистерезис 0.5 °C соответственно.

В примере на скриншоте, выход 1 станет активным, когда значение температуры датчика 28.D40264020000 будет больше 27+0.2=27.2 °C и выключится, когда температура датчика станет меньше 27-0.2=26.8 °C.

Также доступна задача уставки с сервера. Для этого надо выполнить один из запросов:

  • «http://192.168.3.14/sec/?set=ts1&val=51.3» - Задать уставку термостата 1 равную 51.3°C.
  • «http://192.168.3.14/sec/?set=ts1&wr=1» - Сохранить текущую уставку термостата 1.
  • «http://192.168.3.14/sec/?set=ts1&val=51.3&wr=1» - Задать уставку термостата 1 равную 51.3°C и записать ее в EEPROM.

Ответ сервера на запрос будет «OK», если он выполнен успешно или «Error», если допущена какая либо ошибка.

Надо отметить, что ресурс EEPROM ограничен 100 000 циклами записи и при перезаписи уставки раз в пять минут, он будет исчерпан примерно через один год работы. Поэтому не стоит злоупотреблять параметром "wr" и сохранять значение уставки в EEPROM при каждом ее изменении.

Допустимые значения уставки термостата от -55 до 99.99 °C, а гистерезиса от 0 до 9 °C.

Для чтения значения уставки термостата надо выполнить запрос

«http://IP/password/?get=ts1»    - значение уставки термостата 1

Ответ на запрос сервер ответит

  • Значение уставки (например «27.00»)
  • «Off», если термостат на этом канале выключен
  • «Error», если допущена какая-либо ошибка

 

Reset CPU 

Пункт меню «Reset CPU» говорит сам за себя и позволяет перезагрузить устройство из WEB-интерфейса.

 

Схема устройства : https://www.dropbox.com/s/nbz4uc1exwxob9a/1-Wire_Ethernet_bridge.rar

Обновленная схема устройства (добавлен индикатор и клавиатура): https://www.dropbox.com/s/53qod0wk1wq7nsr/CPU_D4MG%20v0.0.5.rar

Версия 0.0.6

Подключен индикатор HD44780 (8х2) и клавиатура для управления сконфигурированными термостатами. Имеется  возможность просмотра состояния I/O на экране LCD. Для этого надо нажать и удерживать кнопку "SP-" около 1 секунды.

Внешний вид обновленного варианта устройства:     В первой строке - номер текущего канала термостата и текущая уставка.
Во второй строке - текущее состояние канала и текущая температура с датчика.

 В первой строке - символ "i" и номера активных входов (ни один из входов не сработал).
Во второй строке - символ "о" и номера активных выходов (как видно, выходной сигнал есть на втором выходе)

Версия 0.0.4

Версия 0.0.3

Версия 0.0.2

 

При прошивке фьюзы выставлял так:

LOW=0x3F, HIGH=0xDF

 

Обсуждение устройства идет по адресу: http://ab-log.ru/forum/viewtopic.php?f=1&t=259

Исходник:
Сделать бесплатный сайт с uCoz