LAN Control V2

Обновление №1 (19.03.2013). Обновил описание.

Более функциональное устройство, рекомендую посмотреть XControl

Итак, сделал вторую версию LAN Control, о первой можно почитать здесь.

Судя по комментам, пользователям очень не хватает двух функций — пароля и гистерезиса, в этой версии они добавлены. И самое приятное — схема и плата не изменилась.

Гистерезис

Здесь появилась новая опция — Гистерезис. Он является одинаковым для верхнего и нижнего пределов.

Пароль

Для входа в режим администрирования, нужно установить перемычку Bootloader при включенном устройстве. Устанавливаем и переходим по адресу адрес/admin (у меня http://192.168.1.170/admin).

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

В поле «Пароль» нужно вести, собственно, пароль. Его длина может быть от 1 до 5 латинских буков, если поле оставить пустым, то пароль будет отключенным. Итак, установим пароль, к примеру, «pas». Теперь, чтобы получить доступ к устройству, нужно в адресной строке после адреса написать /pass/, к примеру, для открытия главной страницы: http://192.168.1.170/pas/ (в конце ОБЯЗАТЕЛЬНО «/»). Страница нормально загрузится, если пароль будет не верный, то страница будет долго грузится, пока браузер не покажет ошибку.

XMLHTTPRequest

Некоторые пользователи хотели сделать управление устройством со своего сайта, в основном, чтобы на сайте отображалась температура в доме. Для этого им приходилось запрашивать страничку с устройства, а затем мучительно расшифровывать данные, чтобы можно было как то втыкнуть в свой код. В этой версии я сильно упростил эту задачу, добавив XMLHTTPRequest.

Для XMLHTTPRequest запроса нужно открыть ссылку по таком адресу: адрес/пароль/cgi/параметры. Параметры могут быть такими: «t» — получить температуру, i — получить входы, o — получить/установить выходы.

Получаем температуру. У меня подключено 2 датчика с именами Home и out. Для этого оправляем адрес/пароль/cgi/t, у меня это 192.168.1.170/pas/cgi/t . В ответ придут данные в таком виде: «Home:28.5|out:1.2». Тоесть, формат такой: «имя_датчика:температура|», как видите, термодатчики разделены вертикальной чертой, а имя датчика и температура разделены двоеточием. В PHP и JavaScripts для разделения данных можно использовать стандартную функцию split.

Получаем входы. Почти то же самое, что и для температуры, отправляем адрес/пароль/cgi/i . В ответ приходит текст в таком формате: one:0|two:0|three:1|four:0 . Здесь имя:состояние. Если состояние равно 0 — значит, вход не замкнут (не активен), если 1 — активен.

Получаем выходы. Почти то же самое, что и для температуры, отправляем адрес/пароль/cgi/o . В ответ приходит текст в таком формате: first:0|two:0|three:0|four:0|five:0|six:0|seven:0 . Здесь так само — имя:состояние. Если состояние равно 0 — выход не активен, 1 — активен. Так же, выходами можно управлять, формат такой адрес/пароль/cgi/o+выход+состояние . К примеру: 192.168.1.170/pas/cgi/o21 — установить выход 2 в 1 (активировать), для отключения нужно вместо 1 отправить 0. В ответ приходит тот же текст, что и при запросе.

Пример получения температуры на JavaScripts:

// Функция для создания объекта XMLHttpRequest. Подходит для любого браузера
function getXmlHttp()
{
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}
 
// А вот так делается сам запрос
var xmlhttp = getXmlHttp();
xmlhttp.open('GET', "192.168.1.170/pas/cgi/t", true);
xmlhttp.onreadystatechange = function() {
	if (xmlhttp.readyState == 4) {
		if(xmlhttp.status == 200) {
			var text = xmlhttp.responseText;
			// здесь обрабатываем принятые данные, они находятся в переменной text
		}
	}
}
xmlhttp.send(null);

ИК-приемник

Чего то часто стали меня спрашивать, зачем он тут))).
Он предназначен для приема команд с пульта с кодировкой RC5. При нажатии кнопки на ПДУ в цифрами 1-7 изменяется состояние соответствующего выхода (1-7), термостат для данного выхода должен быть отключен. При получении команды с пульта зажигается красный светодиод.

Корпус

Плату на заводе сделал, теперь нужно сделать красивый корпус)). Для этого отлично подошел корпус Z-29.

Ставим плату на нижнюю часть корпуса и как можно ближе USB разъемом к краю, так как коннектор Ethernet достаточно большой.

 На плате имеется 4 крепежных отверстия, вот ориентируясь по ним сверлим в корпусе отверстия:

Теперь прикручиваем болтами с гайками


Убедившись, что плата встала  нормально, отпаиваем ИК-приемник и светодиоды и устанавливаем их на корпус

Соединяем проводами

Теперь сверлим на краях корпуса отверстия для кабелей. Так как разъем ethernet находится очень близко к краю корпуса, нужно будет загнуть провод прямо на начале разъема в обратную сторону, поэтому при обжиме разъема оставляем без изоляции примерно 3см кабеля.Подключаем остальные провода:

 И крепим на стену:

Исходники будут закрытыми.

Приобрести устройство можно в нашем интернет-магазине.

Скачать прошивку и бутлоадер

83 комментария LAN Control V2

Leave a Reply