SmartLiving.ru

Обсуждение проекта
 
Текущее время: Пн окт 23, 2017 11:44 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Программирование
СообщениеДобавлено: Ср авг 22, 2012 11:25 pm 
Обсуждение страницы Программирование


Вернуться к началу
  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Ср сен 12, 2012 9:25 am 
Не в сети

Зарегистрирован: Ср июл 25, 2012 4:15 pm
Сообщения: 21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
sergejey, доброго времени суток.
В настоящий момент пытаюсь разобраться с контроллером-исполнителем. Код, который представлен у Вас (http://smartliving.ru/Main/ArduinoCode2, http://smartliving.ru/Main/ArduinoCode3), у меня не компилируется ни как. Решил переписать его используя некоторые библиотеки (для упрощения понимания).
Перерыл вроде весь сайт не нашел ответа на вопрос, какой формат команд используется для управления исполнительными устройствами.
Я бы хотел получить полностью совместимое с Вашим кодом устройство, по этому прошу описать этот формат. Какие параметры могут передаваться туда и нужно ли в ответ что-то отвечать.

Судя по коду есть несколько команд:
Код:
  {"HELP",    commandsHelp,}, // выдать список комманд
  {"LED",     commandsLed, }, // Установить яркость свечения светодиода на заранее заданном аналоговом порту
  {"ON",     commandsOn, },  // включить устройство на цифровом порту X
  {"OFF",     commandsOff, },  // выключить устройство на цифровом порту X
  {"STATE",     commandsState, }, // получить состояние порта (уровень на порту X)
  {"CLICK",     commandsClick, }, // кратковременно (1сек) подать высокий уровень на цифровой порт X
  {"LCLICK",     commandsLClick, } // кратковременно (3сек) подать высокий уровень на цифровой порт X

Они соответственно вызывают какие либо процедуры. Например, хочу включить лампочку, которая включается подачей высокого уровня на D3
На контроллер мы должны что отправить?
Код:
http://username:password@X.X.X.X/?3=ON

Так?

Какой метод используется для запроса данных GET или POST?

И еще, я правильно понимаю, что сделанный Вами код может использоваться в контроллере при подключенном контроллере через USB или через Ethernet?

Заранее спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Чт сен 13, 2012 11:21 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4100
Откуда: Минск, Беларусь
Благодарил (а): 66 раз.
Поблагодарили: 1091 раз.
Контроллер, который я использую для управления, запрограммирован достаточно просто.
Он принимает по http команды в виде GET-запроса, например такого: http://192.168.0.73/?CLICK,2

Вот полный код скрипта, который "кликает" по реле:

Код:
$url='http://192.168.0.73/?CLICK,2';
getURL($url,0);


Я здесь ответ от контроллера даже не обрабатываю, но вообще контроллер должен отвечать просто OK.

Вместо CLICK может быть другая команда (ON, OFF).

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Вт сен 18, 2012 11:08 am 
Не в сети

Зарегистрирован: Ср июл 25, 2012 4:15 pm
Сообщения: 21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Сергей, спасибо за ответ.

Я переписал Ваш код ArduinoCode3 так, что он теперь работает на IDE Arduino 1.0.1. В ближайшее время выложу в открытый доступ, может кому пригодится.
У меня правда получились вызовы немного по другому. Но думаю это не критично, т.к. все равно их руками прописывать в настройках системы.

Теперь, я хочу расширить код, который у меня получился.
На данный момент он умеет:

Код:
  {"ON",     commandsOn, }, // Устанавливает "1" на заданном цифровом порту (вызов http://xx.xx.xx.xx/?8=ON )
  {"OFF",     commandsOff, }, // Устанавливает "0" на заданном цифровом порту (вызов http://xx.xx.xx.xx/?8=OFF )
  {"STATE",     commandsState, }, // Получить состояние всех цифровых портов (вызов http://xx.xx.xx.xx/?8=STATE ) (Пример вывода P3=0;P4=0;P5=0;P6=0;P7=0;P8=1;P9=1;)
  {"STATUS",     commandsStatus, }, // Получить состояние цифрового порта (1 или 0) (вызов http://xx.xx.xx.xx/?8=STATUS )
  {"CLICK",     commandsClick, }, // Кратковременная "1" на порту 1сек (время настраивается) (вызов http://xx.xx.xx.xx/?8=CLICK )
  {"LCLICK",     commandsLClick, }, // Кратковременная "1" на порту 3сек (время настраивается) (вызов http://xx.xx.xx.xx/?8=LCLICK )


Для чего Вы используете {"LED", commandsLed, }, оно нужно реально где-то?

Еще, просматривая код ArduinoCode2 я увидел тут:
Код:
void commandsLed(void) {
  printLine("LED command received.");
  sendHTTPRequest("/objects/?object=ThisComputer&op=m&m=StartUp&");
  if (gParamValue >=0 && gParamValue <= 255) {
    analogWrite(ledPin, gParamValue);
  }
  else {
    printLine("wrong parameter value");
  }
}


что при включении светодиода, контроллер посылает на сервер еще запрос /objects/?object=ThisComputer&op=m&m=StartUp
для чего это делается?

Я пока не могу до конца разобраться с настройкой кода, выполняемого на сервере. И не могу понять некоторые вещи.
Например, если я делаю управление светом. В интерфейсе есть выключатель "ВКЛЮЧЕНИЕ СВЕТА".
В случае если контроллер подключен, то я нажимаю на эту кнопку, на контроллер посылается команда. На выходе контроллера получаем "1". Все правильно.
Но, я перегружаю контроллер. На заданном выходе я получаю "0". А в интерфейсе все равно отображается, что свет включен. Если я правильно понимаю для этого надо воспользоваться одним из 2-х способов, которые описаны тут http://smartliving.ru/Main/DevIpPower9223 . Но пока я не осилил привязку. Хотя состояние получаю.

Так вот, вопрос вот в чем. Не нужно сделать так, чтобы после каждого вызова команды на контроллере происходило примерно так:

1. Контроллер принял команду 5=ON
2. Делаем digitalWrite(5,HIGH);
3. Отсылаем на сервер что-то вроде /?P5=ON
В этом случае контроллер будет посылать подтверждение того, что он действительно включил "1" на 5 пине.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Сб сен 22, 2012 1:23 pm 
Не в сети

Зарегистрирован: Вт янв 17, 2012 12:31 pm
Сообщения: 834
Благодарил (а): 88 раз.
Поблагодарили: 64 раз.
код не компилируется....вываливаются ошибки....пробовал ide arduino 017,022,1.0.1

выложите кто нибудь переделанную код под одну из версий....

может какой библиотеки не хватает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Сб сен 22, 2012 10:02 pm 
Не в сети

Зарегистрирован: Ср июл 25, 2012 4:15 pm
Сообщения: 21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Vit писал(а):
код не компилируется....вываливаются ошибки....пробовал ide arduino 017,022,1.0.1

выложите кто нибудь переделанную код под одну из версий....

может какой библиотеки не хватает...


Vit, доброго времени суток. Я по той-же причине решил переписать "под себя" код написанный Сергеем. На данный момент сделано 2 рабочие прошивки. Информер и информер-исполнитель. Причем с несколько расширенным функционалом. Единственное, что я не стал делать поддержку подключения контроллера исполнителя через USB. В моем случае - только Ethernet.
IDE Arduino 1.0.1

код выложил тут https://github.com/sochkasov/majordomo-arduino


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Вс сен 23, 2012 2:10 pm 
Не в сети

Зарегистрирован: Вт янв 17, 2012 12:31 pm
Сообщения: 834
Благодарил (а): 88 раз.
Поблагодарили: 64 раз.
sochkasov писал(а):
Vit писал(а):
код не компилируется....вываливаются ошибки....пробовал ide arduino 017,022,1.0.1

выложите кто нибудь переделанную код под одну из версий....

может какой библиотеки не хватает...


Vit, доброго времени суток. Я по той-же причине решил переписать "под себя" код написанный Сергеем. На данный момент сделано 2 рабочие прошивки. Информер и информер-исполнитель. Причем с несколько расширенным функционалом. Единственное, что я не стал делать поддержку подключения контроллера исполнителя через USB. В моем случае - только Ethernet.
IDE Arduino 1.0.1

код выложил тут https://github.com/sochkasov/majordomo-arduino


спасибо, скачал , будем пробовать компилировать и эксперементировать))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Чт окт 04, 2012 9:22 am 
Не в сети

Зарегистрирован: Пн окт 01, 2012 1:12 pm
Сообщения: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Всем привет!
sochkasov, спасибо за прошивки. Жду свой клон ардуины, как придет, сразу попробую :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Вт ноя 20, 2012 7:17 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 13, 2012 9:55 am
Сообщения: 422
Благодарил (а): 3 раз.
Поблагодарили: 23 раз.
Я установил данную прошивку на Mega2560
Заработало.

Помоги дописать прошивку, чтобы были дискретные входа и по 1-wire передавались данные на сервер


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование
СообщениеДобавлено: Вт ноя 20, 2012 8:30 am 
Не в сети

Зарегистрирован: Сб июн 30, 2012 7:54 am
Сообщения: 107
Благодарил (а): 0 раз.
Поблагодарили: 10 раз.
я к стати тоже ищу прошивку к ардуино "эмулятор DS2450" или любого другого АЦП.
может у кого есть? Хочется обрабатывать данные ардуиной и отсылать их по 1-Wire


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB