Умный Дом по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
dimonix
Сообщения: 353
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

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

Сообщение dimonix » 20 июн 2013, 11:26

alexsis_76 писал(а):
сам стэк находится в памяти программ"
а где он находится


взято отсюда "http://ru.wikipedia.org/wiki/Стек"

стек — непрерывная область памяти, адресуемая специальными регистрами [..]. До использования стека он должен быть инициализирован так, чтобы регистры [...] указывали на область реальной оперативной памяти (стек в ПЗУ, естественно, работать не может).

alexsis_76
Сообщения: 1009
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 20 июн 2013, 12:28

все что Вы говорите верно для больших компьютеров для микроконтроллеров все немного по другому оперативки там мало 2K Bytes Internal SRAM (ATmega48PA/88PA/168PA/328P) atmega328 имеет всего 2к поэтому инструкции загружаются из памяти программ и сразу выполняются
В процессе выполнения одной инструкции следующая предварительно считывается из памяти программ.позволяет
подумайте хватит ли 2к для одновременной загрузки програмного кода и переменных вот
http://www.gaw.ru/html.cgi/txt/doc/micr ... 28/1_2.htm
стек в ПЗУ, естественно, работать не может
я и не говорил что он там работает я говорил что он там находится(хранится)

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

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

Сообщение Dron » 27 июн 2013, 12:22

Помогите, пожалуйста! Мозг уже взрывается, понять не могу.

Собрал мегадевайс из готовых блоков, как у Рика: viewtopic.php?f=1&t=6&start=1220#p7540
Скомпилировал, прошил (поменял только IP по умолчанию), всё работает, кроме... запроса к серверу.

Логи сервера пустые, сам девайс явно пытается достучаться, поскольку все команды выполняет с задержкой в пару секунд.
С компа девайс тоже управляется полноценно.
Сервер из сети видно, проверил.

В чём может быть причина? Возможно ли, что какая-нибудь сопля или наоборот непропай могли привести к такому эффекту?
Возможно ли, что причина во фьюзах? (ничего не менял)

подскажите, куда копать?

plusQ
Сообщения: 102
Зарегистрирован: 01 фев 2013, 15:29
Контактная информация:

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

Сообщение plusQ » 27 июн 2013, 12:59

Dron писал(а):Помогите, пожалуйста! Мозг уже взрывается, понять не могу.

Собрал мегадевайс из готовых блоков, как у Рика: viewtopic.php?f=1&t=6&start=1220#p7540
Скомпилировал, прошил (поменял только IP по умолчанию), всё работает, кроме... запроса к серверу.

Логи сервера пустые, сам девайс явно пытается достучаться, поскольку все команды выполняет с задержкой в пару секунд.
С компа девайс тоже управляется полноценно.
Сервер из сети видно, проверил.

В чём может быть причина? Возможно ли, что какая-нибудь сопля или наоборот непропай могли привести к такому эффекту?
Возможно ли, что причина во фьюзах? (ничего не менял)

подскажите, куда копать?


путь к скрипту указывал? там все верно? проверь

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

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

Сообщение Dron » 27 июн 2013, 13:34

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

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

<?
if ( $_GET['pt'] == "0" || $_GET['pt'] == "1" || $_GET['pt'] == "2" || $_GET['pt'] == "3" || $_GET['pt'] == "4" || $_GET['pt'] == "5" ||  $_GET['pt'] == "6" )
echo "8:0;11:1;12:2";
?>

сервер добросовестно отдаёт 8:0;11:1;12:2
реакции никакой. я правильно отдаю данные?
1.png
работа снифера
1.png (45.13 КБ) 17946 просмотров

ps порты верные и настроенные, перепроверил

------------------------------------
upd:
после продолжительных поисков выяснил, что...
дело было не в бобине =-)

оказывается, ответ с сервера должен идти в любой кодировке, кроме UTF
может, кому-то пригодится

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 27 июн 2013, 14:49

Дело, конечно, не в самой UTF-8, а в так называемом BOM (Byte order mark), который редакторы вставляют в начало файла (EFBBBF).
Скрипт можно сохранить и в UTF-8, но в редакторе указать кодировку UTF-8 без BOM.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

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

Сообщение Dron » 27 июн 2013, 15:34

Andrey_B писал(а):Дело, конечно, не в самой UTF-8, а в так называемом BOM (Byte order mark), который редакторы вставляют в начало файла (EFBBBF).
Скрипт можно сохранить и в UTF-8, но в редакторе указать кодировку UTF-8 без BOM.

спасибо за развёрнутый ответ! было бы классно, если бы Вы добавили короткую ремарку в статье, что бы другие не наступали на мои грабли

RVS
Сообщения: 3
Зарегистрирован: 15 янв 2013, 15:49

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

Сообщение RVS » 28 июн 2013, 18:43

2 Andrey_B
Андрей, а подскажите, как должны срабатывать счетчики на In входах в последней бете прошивки.
У меня сколько я не пытаюсь поставить разный режим входа, счетчик все время либо ноль либо единицу выдает в зависимости от режима, сколько бы я раз не замыкал вход.

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 28 июн 2013, 21:06

На моих модулях с прошивкой 3.05b счетчики работают нормально.
Счетчик всегда сбрасывается после ресета модуля, который всегда происходит после сохранения любой из настроек.
Значения счетчика хранится не в EEPROM, а в оперативной памяти.

alexsis_76
Сообщения: 1009
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

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

Сообщение alexsis_76 » 01 июл 2013, 09:54

извините за оффтоп нарыл устройство очень понравилось , решил модернизировать под свои нужды, сейчас разбираюсь, благо автор любезно предоставил исходники http://www.avislab.com/blog/enc28j60/#more-378

andvas
Сообщения: 177
Зарегистрирован: 07 ноя 2011, 23:04
Откуда: Россия, Самара
Контактная информация:

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

Сообщение andvas » 02 июл 2013, 15:19

alexsis_76 писал(а):извините за оффтоп нарыл устройство очень понравилось , решил модернизировать под свои нужды, сейчас разбираюсь, благо автор любезно предоставил исходники http://www.avislab.com/blog/enc28j60/#more-378

Да, устройство неплохое, пользуюсь около года, сначала была проблема с датчиками ds18b20, но после просьбы автор любезно все подправил

kID
Сообщения: 63
Зарегистрирован: 29 май 2013, 19:36
Откуда: Новосибирск

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

Сообщение kID » 19 июл 2013, 13:51

Решил опробовать работу устройства с датчиками DHT. Заказал DHT-22, сегодня пришли.
Стал пробовать, подключение согластно даташиту, прошивка 3,05b.
В меню выбора датчика нет DHT-22. При этом значения возвращаемые датчиком всегда равны 1.
Бегло просмотрел прошивку, кажется все упоминания о DHT-22 закоментированы.
Мне казалось, что здесь на форуме уже отписывались о работе этих датчиков.
Andrey_B подскажите существует ли прошивка которая потдерживает DHT-22?

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 19 июл 2013, 16:21

В библиотеке, которую я использую, есть поддержка DHT-22, но она заблокирована (закомментирована) по той простой причине, что у меня нет в наличии DHT-22 и я не могу проверить ее работу. Просто так раскомментировать код нельзя, требуется внести некоторые дополнительные изменения. У кого есть рабочий датчик и возможность выслать по почте - готов купить. В последнее время посылки из Китая ходят уж очень долго: 2-3 месяца.

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 20 июл 2013, 00:48

cyb650 писал(а):Сейчас пытаюсь разбираться с прошивкой - если гружу скомпилированную автором, то все работает, а если компилирую из исходников сам (AVR Studio 4.19), то сервер выдает ошибку авторизации (401 Unauthorized) :(


Если еще актуально. Столкнулся с аналогичной проблемой при переходе avr-libc 1.8 и gcc-avr 4.7. Вместе с этим вылезли варнинги на предмет deprecated prog_char.
Если нужно, выложу подправленные исходники. Но пока не тестировал. Совсем.

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 21 июл 2013, 02:13

В новой версии прошивки: 3.06 beta1 реализовано кое-что новое.

megad-adc-act.jpg
megad-adc-act.jpg (19.3 КБ) 16169 просмотров


Теперь любые АЦП-порты (в том числе два дополнительных) имею поля Action и NetAction и также могут инициировать отправку сообщений на сервер.
У порта в режиме АЦП есть настройка режима (Mode)
Norm - Порт не проверяется автоматически, сообщения на сервер не генерируются
> - В случае превышения значения, указанного в поле Val срабатывает стандартная процедура (отрабатывают сценарии, отправляются сообщение)
< - Аналогично в случае, если текущее значение меньше указанного в поле Val

Порты проверяются по таймеру приблизительно каждые 5 секунд. (Можно настроить в исходниках)
Отработка сценариев и отправка сообщений происходит один раз при переходе через Val. То есть, если задано >700 и текущее значение сохраняется более 700, то новые сообщения не отправляются. И только если значение упадет ниже этого порога, а затем снова превысит указанное в поле Val, произойдет новая отправка.

На сервер также отправляется текущее значение АЦП (параметр 'v')

/megad.php?pt=14&v=940

http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta1.zip
http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta1_hex.zip

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

Это очень простой алгоритм. Если вдуматься, существует гигантское количество вариантов, условий, дополнений и т.д., которые можно было бы здесь использовать. Но не уверен, что все возможно уместить в рамках данного устройства.

Простой пример, в случае отсутствия сервера, мы с помощью датчика освещенности, подключенного к АЦП-порту можем легко включить свет, но не сможем его выключить... Чтобы его выключить, мы должны либо дополнительно сделать настройку, которая бы позволяла отрабатывать сценарий как в случае прохождения в одну сторону (относительно указанного в поле Val значения), так и в другую. Или же мы должны будем добавить еще одно поле со вторым крайним значением. Но даже в этом случае существует несколько вариантов развития событий. Например, одна ситуация потребует переключение выхода при любом превышении крайнего значения, а другая - только в случае, если сначала текущее значение упадет ниже одного крайнего, а затем превысит второе крайнее. И таких ситуаций можно придумать десятки. Поэтому я пока не стал ничего усложнять. Думаю все же это задача сервера.

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

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

Сообщение Urbas81 » 21 июл 2013, 13:53

Andrey_B а с чем связан переход на новый компилятор, если я захочу добавить данный функционал в предыдущую версию на старом компиляторе она не заведется, просто не хочется еще что-то устанавливать и натыкаться на грабли :D

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 21 июл 2013, 15:35

Urbas81, в Debian 7 (Wheezy) используется новые вресии arv-libc и avr-gcc
С этим и связан т.н. "переход". Прошивка должна нормально компилироваться и на более ранних версиях.

По поводу АЦП. Дабы расширить сферу применения описанной выше "фичи", добавлю еще один режим под кодовым названием "<>".
Тогда устройство будет генерировать событие при проходе значения в обоих направлениях. Тогда при установке Action "13:2" (то есть переключить выходной порт) можно будет включать и выключать свет при определенном значении датчика освещенности. На сервер же будет отправляться параметр, отвечающий за то - в какую сторону произошел переход через пороговое значение.
Изменения сделаю в ближайшее время.

Virtus-pro
Сообщения: 98
Зарегистрирован: 04 фев 2013, 15:47

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

Сообщение Virtus-pro » 21 июл 2013, 20:19

Andrey_B писал(а):Urbas81, в Debian 7 (Wheezy) используется новые вресии arv-libc и avr-gcc
С этим и связан т.н. "переход". Прошивка должна нормально компилироваться и на более ранних версиях.

По поводу АЦП. Дабы расширить сферу применения описанной выше "фичи", добавлю еще один режим под кодовым названием "<>".
Тогда устройство будет генерировать событие при проходе значения в обоих направлениях. Тогда при установке Action "13:2" (то есть переключить выходной порт) можно будет включать и выключать свет при определенном значении датчика освещенности. На сервер же будет отправляться параметр, отвечающий за то - в какую сторону произошел переход через пороговое значение.
Изменения сделаю в ближайшее время.



А в прошивке новых модулей которые будут готовы ориентировочно 12.08 вы уже включите эти дополнения ?

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 21 июл 2013, 21:55

Добавлен режим "<>".
На сервер передается параметр "dir", значения которого "1" - порог пройдет в сторону увеличения, 0 - в сторону уменьшения показаний АЦП.

http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta2.zip
http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta2_hex.zip

Virtus-pro, пока решение по поводу версии прошивки в новых модулях не принималось. Версия 3.06 beta еще не протестирована.

Andrey_B
Администратор
Сообщения: 2961
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 21 июл 2013, 23:11

Добавлена поддержка пресетов, а точнее сказать пресета исполнительного модуля MegaD-7I7O

megad-preset1.jpg
megad-preset1.jpg (22.37 КБ) 16074 просмотра


При выборе "7I7O", устройство автоматически настраивает порты согласно аппаратной конфигурации исполнительного модуля MegaD-7I7O. (согласно той последовательности портов, которая принята в готовых модулях проекта MegaD)

megad-preset2.jpg
megad-preset2.jpg (18.48 КБ) 16074 просмотра


При включенном пресете, настройка портов недоступна. Вместо выбора (In/Out/ADC/etc), указывается его текущий тип. Также недоступен выбор SW/PWM для портов типа Out.

Данная мера призвана помочь начинающим и предотвратить возможные ошибки в использовании готового комплекта MegaD Kit.

http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta3.zip
http://ab-log.ru/files/File/ip_manager3/megad-328_306_beta3_hex.zip

Еще хотелось бы сказать несколько слов относительно работы нового функционала АЦП. Не все возможно реализовать в тех рамках, которые предлагает микроконтроллер. Но есть интересный вариант в случае работы MegaD совместно с сервером. Чтобы серверу не опрашивать постоянно АЦП в каких-то нестандартных ситуациях, он может сам (то есть без участия человека), настраивать параметры АЦП.
Например, надо чтобы свет включился при значении АЦП 500. Сервер настраивает модуль < 500, затем, получив сообщение от модуля (и посмотрев на часы), он самостоятельно настраивает другой порог > 700, чтобы модуль сообщил ему, когда станет достаточно светло. Таким образом сервер может не только получать сообщения от мегадевайса, но и управлять его поведением. Благо делается это очень просто, так как команды на конфигурирование порта передаются в виде GET, то есть параметров URL-запроса.
Например:
http://192.168.0.14/sec/?pn=14&m=0&misc=700


Вернуться в «Умный Дом своими руками»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], xsash и 7 гостей