Страница 36 из 125

Re: Умный Дом по Ethernet

Добавлено: 30 апр 2012, 02:23
Segador
vgolinsky средняя ссылка - ответ на заданный вопрос.

Re: Умный Дом по Ethernet

Добавлено: 30 апр 2012, 03:31
alexsis_76
и еще вопрос, у меня распайка выходов не в том порядке, если в исходниках поменять в main.c *aio[IO_SIZE] местами виходы, это поможет? я пробовал и после прошивки запорол Атмегу
а в каком порядке, продемонстрируйте пожалуйста Вашу схему и то что вы исправили

Re: Умный Дом по Ethernet

Добавлено: 30 апр 2012, 10:25
vgolinsky
alexsis_76 писал(а):
и еще вопрос, у меня распайка выходов не в том порядке, если в исходниках поменять в main.c *aio[IO_SIZE] местами виходы, это поможет? я пробовал и после прошивки запорол Атмегу
а в каком порядке, продемонстрируйте пожалуйста Вашу схему и то что вы исправили
схема рабочая, на стандартной прошивке все работает, исправил последовательность выходов.
Было :
char *aio[IO_SIZE] = {"B1", "D7", "D6", "D5", "C0", "D4", "C1", "C5", "D0", "C4", "D1", "C3", "C2", "D3"};
Изменил:
char *aio[IO_SIZE] = {"B1", "C0", "D7", "C1", "D6", "C2", "D5", "C3", "D4", "C4", "D3", "C5", "D1", "D0"};
Скомпилировал, Во время прошивки ошибка (фьюзы не трогал), и потом не видит Атмегу...

Re: Умный Дом по Ethernet

Добавлено: 30 апр 2012, 11:41
dmt
Повторил устройство. В качестве сетевого контроллера использовал кетайский модуль от LC-STUDIO(ENC+RJ45+обвязка) брал на Ebay за $6,5. Под него и развел печатку для Atmega328P в TQFOP корпусе. Получилось компактно, дешево и сердито.

Как обычно, сразу не завелось. Мега видится, шьется, считывается, светодиоды на RJ-45 работают как положено, но само устройство не пингуется. В процессе танцев с бубном, курения даташитов и ковыряния в исходниках выяснил, что программно не пишется EPROM. Если в исходнике запись и считывание IP адреса делать не через через EPROM, а прописать myip mymac прямо в коде, то все чудненько пингуется и отвечает. Естественно, без EPROM что либо поменять и сконфигурить через вебморду не получается.

Как выяснилось грабли были в питании. В даташите написано - During periods of low VCC, the EEPROM data can be corrupted because the supply voltage is too low for the CPU and the EEPROM to operate properly. и enabling the internal Brown-out Detector (BOD).

BOD включать не стал - поднял напряжение с 3,26 до 3,32 - все завелось. Век живи-век учись :D

Re: Умный Дом по Ethernet

Добавлено: 02 май 2012, 17:07
andvas
Кто нибудь пробовал передавать скрипту megad.php

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

<?php
if ( $_GET['pt'] == "1" )
{
echo "13:2";
}
?>
описанному Andrey_B в своих статьях , от устройства к WEB-серверу, для последующего приема устройством команды по включению нагрузки на порту?

Если кто не читал статьи, напоминаю
"Если сработал порт 1, включаем нагрузку, подключенную к порту 13.
Первая цифра - номер порта
Вторая цифра после двоеточия - действие (0 - выключить, 1 - включить, 2 - переключить, изменить состояние на противоположное)."
Порты были выбраны случайно.
Прошивка залита последняя 3.00 MegaD

screen1.jpg
screen1.jpg (21.46 КБ) 18822 просмотра
screen2.jpg
screen2.jpg (21.11 КБ) 18822 просмотра
При срабатывание на 1 порту, 13 порт не включается.
Лезу в логи(у меня установлен lighttpd).
Вижу:

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

2012-05-02 16:47:23: (request.c.304) fd: 6 request-len: 100
GET /megad.php?pt=1 HTTP/1.1
Host:
User-Agent: tgr/1.1
Accept: text/html
Connection: close


2012-05-02 16:47:23: (request.c.1086) HTTP/1.1 but Host missing -> 400
2012-05-02 16:47:23: (request.c.1087) request-header:
GET /megad.php?pt=1 HTTP/1.1
Host:
User-Agent: tgr/1.1
Accept: text/html
Connection: close


2012-05-02 16:47:23: (response.c.128) Response-Header:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Content-Length: 349
Connection: close
Date: Wed, 02 May 2012 12:47:23 GMT
Server: lighttpd/1.4.28
Возможно я ошибаюсь, но мне не понятно почему "Host:" пустой? И сервер ругается как я понимаю на то что IP хоста(в данном случае устройства) отсутствует.

Отпишитесь кто пробовал данный функционал. Работает или нет? Если можно и логи приведите.

Re: Умный Дом по Ethernet

Добавлено: 02 май 2012, 17:27
Andrey_B
andvas, такая проблема, по всей видимости, действительно есть.
Apache, который я использую, на эту ситуацию в отличие от lighttpd, вероятно, смотрит сквозь пальцы, поэтому проблема не была замечена.
Вечером выложу исправленную версию прошивки.

Re: Умный Дом по Ethernet

Добавлено: 03 май 2012, 01:09
Andrey_B
Версия 3.01 (2012-05-03)
- Исправлена ошибка в работе HTTP-протокола (спасибо andvas)

SRC: http://ab-log.ru/files/File/ip_manager3 ... 28_301.zip
HEX: http://ab-log.ru/files/File/ip_manager3 ... 01_hex.zip

Re: Умный Дом по Ethernet

Добавлено: 03 май 2012, 17:49
vgolinsky
Segador писал(а):
vgolinsky средняя ссылка - ответ на заданный вопрос.
Большое спасибо за ссылку. собрал устройство, востановил две атмеги 328

Re: Умный Дом по Ethernet

Добавлено: 04 май 2012, 19:08
andvas
Andrey_B , странности все равно продолжаются. Смотрю у себя tcpdump-ом вижу и запрос от устройства к серверу, и ответ сервера к устройству, в котором присутствует команда на включение порта "13:2", но все равно включение порта не происходит. Можете проверить работу данного функционала в рамках новой прошивки?

Лог tcpdump:

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

[# tcpdump -X -ni eth0:0 host 192.168.0.14
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0:0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:54:41.311296 IP 192.168.0.14.2980 > 192.168.0.111.http: Flags [S], seq 4864, win 768, options [mss 750], length 0
        0x0000:  4500 002c 0004 4000 4006 b8fa c0a8 000e  E..,..@.@.......
        0x0010:  c0a8 006f 0ba4 0050 0000 1300 0000 0000  ...o...P........
        0x0020:  6002 0300 f72a 0000 0204 02ee 0000       `....*........
18:54:41.311760 ARP, Request who-has 192.168.0.14 tell 192.168.0.111, length 28
        0x0000:  0001 0800 0604 0001 3860 771b 9f2d c0a8  ........8`w..-..
        0x0010:  006f 0000 0000 0000 c0a8 000e            .o..........
18:54:41.312442 ARP, Reply 192.168.0.14 is-at 54:55:c0:a8:00:0e, length 46
        0x0000:  0001 0800 0604 0002 5455 c0a8 000e c0a8  ........TU......
        0x0010:  000e 3860 771b 9f2d c0a8 006f 0000 0000  ..8`w..-...o....
        0x0020:  0000 0000 0000 0000 0000 0000 0000       ..............
18:54:41.312454 IP 192.168.0.111.http > 192.168.0.14.2980: Flags [S.], seq 4045812089, ack 4865, win 5840, options [mss 1460], length 0
        0x0000:  4500 002c 0000 4000 4006 b8fe c0a8 006f  E..,..@.@......o
        0x0010:  c0a8 000e 0050 0ba4 f126 3179 0000 1301  .....P...&1y....
        0x0020:  6012 16d0 bde3 0000 0204 05b4            `...........
18:54:41.313334 IP 192.168.0.14.2980 > 192.168.0.111.http: Flags [.], ack 1, win 1024, length 0
        0x0000:  4500 0028 0000 4000 4006 b902 c0a8 000e  E..(..@.@.......
        0x0010:  c0a8 006f 0ba4 0050 0000 1301 f126 317a  ...o...P.....&1z
        0x0020:  5010 0400 e870 0000 0000 0000 0000       P....p........
18:54:41.314487 IP 192.168.0.14.2980 > 192.168.0.111.http: Flags [P.], seq 1:113, ack 1, win 1024, length 112
        0x0000:  4500 0098 0000 4000 4006 b892 c0a8 000e  E.....@.@.......
        0x0010:  c0a8 006f 0ba4 0050 0000 1301 f126 317a  ...o...P.....&1z
        0x0020:  5018 0400 f777 0000 4745 5420 2f6d 6567  P....w..GET./meg
        0x0030:  6164 2e70 6870 3f70 743d 3120 4854 5450  ad.php?pt=1.HTTP
        0x0040:  2f31 2e31 0d0a 486f 7374 3a20 3139 322e  /1.1..Host:.192.
        0x0050:  3136 382e 302e 3131 310d 0a55 7365 722d  168.0.111..User-
        0x0060:  4167 656e 743a 2074 6772 2f31 2e31 0d0a  Agent:.tgr/1.1..
        0x0070:  4163 6365 7074 3a20 7465 7874 2f68 746d  Accept:.text/htm
        0x0080:  6c0d 0a43 6f6e 6e65 6374 696f 6e3a 2063  l..Connection:.c
        0x0090:  6c6f 7365 0d0a 0d0a                      lose....
18:54:41.314554 IP 192.168.0.111.http > 192.168.0.14.2980: Flags [.], ack 113, win 5840, length 0
        0x0000:  4500 0028 2ef9 4000 4006 8a09 c0a8 006f  E..(..@.@......o
        0x0010:  c0a8 000e 0050 0ba4 f126 317a 0000 1371  .....P...&1z...q
        0x0020:  5010 16d0 d530 0000                      P....0..
18:54:41.317653 IP 192.168.0.111.http > 192.168.0.14.2980: Flags [P.], seq 1:194, ack 113, win 5840, length 193
        0x0000:  4500 00e9 2efa 4000 4006 8947 c0a8 006f  E.....@.@..G...o
        0x0010:  c0a8 000e 0050 0ba4 f126 317a 0000 1371  .....P...&1z...q
        0x0020:  5018 16d0 3aee 0000 4854 5450 2f31 2e31  P...:...HTTP/1.1
        0x0030:  2032 3030 204f 4b0d 0a58 2d50 6f77 6572  .200.OK..X-Power
        0x0040:  6564 2d42 793a 2050 4850 2f35 2e33 2e31  ed-By:.PHP/5.3.1
        0x0050:  300d 0a43 6f6e 7465 6e74 2d74 7970 653a  0..Content-type:
        0x0060:  2074 6578 742f 6874 6d6c 0d0a 436f 6e6e  .text/html..Conn
        0x0070:  6563 7469 6f6e 3a20 636c 6f73 650d 0a54  ection:.close..T
        0x0080:  7261 6e73 6665 722d 456e 636f 6469 6e67  ransfer-Encoding
        0x0090:  3a20 6368 756e 6b65 640d 0a44 6174 653a  :.chunked..Date:
        0x00a0:  2046 7269 2c20 3034 204d 6179 2032 3031  .Fri,.04.May.201
        0x00b0:  3220 3134 3a35 343a 3431 2047 4d54 0d0a  2.14:54:41.GMT..
        0x00c0:  5365 7276 6572 3a20 6c69 6768 7474 7064  Server:.lighttpd
        0x00d0:  2f31 2e34 2e32 380d 0a0d 0a34 0d0a 3133  /1.4.28....4..13
        0x00e0:  3a32 0d0a 300d 0a0d 0a                   :2..0....
18:54:41.317701 IP 192.168.0.111.http > 192.168.0.14.2980: Flags [F.], seq 194, ack 113, win 5840, length 0
        0x0000:  4500 0028 2efb 4000 4006 8a07 c0a8 006f  E..(..@.@......o
        0x0010:  c0a8 000e 0050 0ba4 f126 323b 0000 1371  .....P...&2;...q
        0x0020:  5011 16d0 d46e 0000                      P....n..
18:54:41.319589 IP 192.168.0.14.2980 > 192.168.0.111.http: Flags [.], ack 194, win 1024, length 0
        0x0000:  4500 0028 2efa 4000 4006 8a08 c0a8 000e  E..(..@.@.......
        0x0010:  c0a8 006f 0ba4 0050 0000 1371 f126 323b  ...o...P...q.&2;
        0x0020:  5010 0400 e73f 0000 0000 0000 0000       P....?........
18:54:41.321146 IP 192.168.0.14.2980 > 192.168.0.111.http: Flags [FP.], seq 113, ack 195, win 1024, length 0
        0x0000:  4500 0028 2efb 4000 4006 8a07 c0a8 000e  E..(..@.@.......
        0x0010:  c0a8 006f 0ba4 0050 0000 1371 f126 323c  ...o...P...q.&2<
        0x0020:  5019 0400 e735 0000 0000 0000 0000       P....5........
18:54:41.321182 IP 192.168.0.111.http > 192.168.0.14.2980: Flags [.], ack 114, win 5840, length 0
        0x0000:  4500 0028 2efc 4000 4006 8a06 c0a8 006f  E..(..@.@......o
        0x0010:  c0a8 000e 0050 0ba4 f126 323c 0000 1372  .....P...&2<...r
        0x0020:  5010 16d0 d46d 0000                      P....m..

Re: Умный Дом по Ethernet

Добавлено: 04 май 2012, 20:08
Andrey_B
andvas, все правильно.
Вы же прописываете NetAction. Это сетевой сценарий по умолчанию. При обработке этого сценария ответ противоположной стороны никак не обрабатывается. Это своего рода "пожарный случай", когда требуется, например, выплюнуть в сеть какую-нибудь команду аналогичному Ethernet-устройству (независимо от работоспособности сервера). Мало ли что такое устройство может послать в ответ, поэтому любой его вывод игнорируется.
Для работы с сервером нужно настроить IP-адрес сервера и имя скрипта на странице Net config. Ответы сервера обрабатываются как положено.

Re: Умный Дом по Ethernet

Добавлено: 04 май 2012, 22:26
andvas
Andrey_B писал(а):andvas, все правильно.
Вы же прописываете NetAction. Это сетевой сценарий по умолчанию. При обработке этого сценария ответ противоположной стороны никак не обрабатывается. Это своего рода "пожарный случай", когда требуется, например, выплюнуть в сеть какую-нибудь команду аналогичному Ethernet-устройству (независимо от работоспособности сервера). Мало ли что такое устройство может послать в ответ, поэтому любой его вывод игнорируется.
Для работы с сервером нужно настроить IP-адрес сервера и имя скрипта на странице Net config. Ответы сервера обрабатываются как положено.
Andrey_B т.е. насколько я понял, для того чтобы сработавший IN повлек за собой выполнение скрипта на сервере, необходимо чтобы было прописано в "Net config" Server и Script? И если мы знаем что сейчас сервер точно доступен, тогда можно на порту IN не прописывать Action и NetAction? Скрипт должен ответить соответствующей командой например 13:2 на изменение состояния порта, и порт должен изменить своё состояние?

Сейчас у меня в логах:

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

2012-05-04 22:23:12: (request.c.304) fd: 6 request-len: 113
GET /megad.php?pt=1 HTTP/1.1
Host: 192.168.0.111
User-Agent: tgr/1.1
Accept: text/html
Connection: close

2012-05-04 22:23:12: (response.c.128) Response-Header:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.10
Content-type: text/html
Connection: close
Transfer-Encoding: chunked
Date: Fri, 04 May 2012 18:23:12 GMT
Server: lighttpd/1.4.28
а включение порта так и не происходит, и на ум уже ничего не приходит :( вроде все правильно и должно работать

Re: Умный Дом по Ethernet

Добавлено: 05 май 2012, 00:35
Andrey_B
andvas, поскольку у меня со всеми вариантами Мегадевайса эта функция работает, следует разобраться.
Что касается настроек сервера и поведения устройства.
Action выполняет действия с локальными портами в случае, если сервер в Net Config не указан или сервер указан, но не отвечает в течение 2-3 секунд.
NetAction обращается по настроенному URL (который, к слову, может быть любым) независимо от того, настроен сервер или нет, ответил он или нет. Фактически, это HTTP GET-запрос. Ответ противоположной стороны не парсится.
Если сервер настроен, при каждом срабатывании любого входа Мегадевайс будет обращаться к указанному скрипту. Ответ сервера парсится в обязательном порядке.

Проверьте, действительно ли у вас 13 порт является выходом и он настроен как выход (OUT). Обратите внимание, что вся нумерация портов начинается с 0.
Проверьте, как ваше устройство реагирует на команду
http://192.168.0.14/sec/?cmd=13:2
Срабатывает ли в этом случае выход?
Проверьте содержимое скрипта megad.php
В простейшем варианте он должен содержать (в вашем случае)
<? echo "13:2"; ?>

И, наконец, попробуйте Apache вместо lighttpd. Хотя, полагаю, причина не в этом.

Re: Умный Дом по Ethernet

Добавлено: 05 май 2012, 14:10
andvas
Andrey_B писал(а): Проверьте, действительно ли у вас 13 порт является выходом и он настроен как выход (OUT). Обратите внимание, что вся нумерация портов начинается с 0.
Да порт точно тот, я его вручную включаю в web интерфейсе устройства "P13 - OUT"
Проверьте, как ваше устройство реагирует на команду
http://192.168.0.14/sec/?cmd=13:2
Срабатывает ли в этом случае выход?
устройство срабатывает, и переключает светодиод туда, сюда.
Проверьте содержимое скрипта megad.php
В простейшем варианте он должен содержать (в вашем случае)
<? echo "13:2"; ?>
И, наконец, попробуйте Apache вместо lighttpd. Хотя, полагаю, причина не в этом.
Скорее всего в этом ,позавчера пробовал apache не заработало, но сегодня еще раз установил, и заработало. Посмотрел пакеты tcpdump, конечно в точно я не понимаю , но видно lighttpd шлет пакеты немного отличные от apache , а устройство возможно неправильно его парсит.

Re: Умный Дом по Ethernet

Добавлено: 05 май 2012, 15:29
Andrey_B
andvas, спасибо за информацию.
Я установлю у себя lighttpd и попробую повторить вашу проблему, а, если она обнаружится, разобраться в причине несовместимости.

Re: Умный Дом по Ethernet

Добавлено: 06 май 2012, 01:57
Andrey_B
andvas, причина действительно в lighttpd. Точнее не в нем самом, а в механизме передачи HTTP данных, который он использует.
lighttpd + fastcgi использует "Chunked transfer encoding", тогда как Apache по умолчанию работает стандартным образом.
Парсер, а точнее его зачатки, в прошивке естественно не учитывает такого рода загогулины.
Но в хозяйстве есть напильник, а точнее рашпиль, поэтому вот, попробуйте:
http://ab-log.ru/files/File/ip_manager3 ... 02_hex.zip
Здесь нет полноценной обработки chunked, ведь нормальная реализация съест большую часть памяти, но парсер теперь, в некотором роде, индифферентен к механизму передачи данных. Наверное, с этим вполне можно жить, если тестирование покажет нормальную работу.

Re: Умный Дом по Ethernet

Добавлено: 06 май 2012, 18:50
andvas
Andrey_B писал(а):andvas, причина действительно в lighttpd. Точнее не в нем самом, а в механизме передачи HTTP данных, который он использует.
lighttpd + fastcgi использует "Chunked transfer encoding", тогда как Apache по умолчанию работает стандартным образом.
Парсер, а точнее его зачатки, в прошивке естественно не учитывает такого рода загогулины.
Но в хозяйстве есть напильник, а точнее рашпиль, поэтому вот, попробуйте:
http://ab-log.ru/files/File/ip_manager3 ... 02_hex.zip
Здесь нет полноценной обработки chunked, ведь нормальная реализация съест большую часть памяти, но парсер теперь, в некотором роде, индифферентен к механизму передачи данных. Наверное, с этим вполне можно жить, если тестирование покажет нормальную работу.
Andrey_B, теперь все работает как надо!!! а вы выложите исходники?,а то хочется под себя переделать массив aio .

Re: Умный Дом по Ethernet

Добавлено: 09 май 2012, 20:36
vgolinsky
Есть идея подключить к Мегадевайсу вот такой модуль - http://www.ebay.com/itm/110857979699?ss ... 3809wt_905
Что б можно было и дистанционно кнопки нажимать))) например автоматизировать ворота и т.д.

Re: Умный Дом по Ethernet

Добавлено: 10 май 2012, 00:04
ipf
Я считаю с таким модулем незачем использовать мегадевайс. Взять релюшки на выходы и питание. Вот и готовая управлялка на 4 выхода

Re: Умный Дом по Ethernet

Добавлено: 10 май 2012, 09:01
vgolinsky
ipf писал(а):Я считаю с таким модулем незачем использовать мегадевайс. Взять релюшки на выходы и питание. Вот и готовая управлялка на 4 выхода
Но тогда как управлять с помощью сервера? планирую просто с помощью этого модуля дублировать кнопки - тогда можно будет и с сервера управлять и дистанционно...

Re: Умный Дом по Ethernet

Добавлено: 10 май 2012, 18:20
Andrey_B
vgolinsky, подключить к Мегадевайсу, по большому счету, можно все, что угодно.
Но, если есть возможность, лучше минимизировать количество промежуточных звеньев. Так, к примеру, в приводе моих гаражных ворот Came есть специальная клеммная колодка, где есть вход для подключения внешней кнопки. Вот ее и можно подключить к Мегадевайсу через реле. Не исключено, что такое соединение предусмотрено и в вашей автоматике для ворот. Ну а там, где такой опции нет, можно использовать и предложенный вами вариант.