Опять Ардуино и МД???

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Опять Ардуино и МД???

Сообщение Jager » Сб фев 20, 2016 8:32 am

StryzhakA писал(а):попробовал так как вы говорите, но ничего не получилось
статус обьекта меняеться а само реле несрабатывает
Ищите ошибку или давайте скриншоты куда вы что пишите.
Если ваш скетч отрабатывает http://192.168.254.5/command?40=ON и http://192.168.254.5/command?40=OFF
то все должно работать.
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 8:43 am

Jager писал(а):
StryzhakA писал(а):попробовал так как вы говорите, но ничего не получилось
статус обьекта меняеться а само реле несрабатывает
Ищите ошибку или давайте скриншоты куда вы что пишите.
Если ваш скетч отрабатывает http://192.168.254.5/command?40=ON и http://192.168.254.5/command?40=OFF
то все должно работать.
спасибо -дельный совет!
Буду делать скриншоты, потому как действительно мой скетч на эти геты, введеные через браузер -срабатывает!
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 9:02 am

Jager писал(а):
StryzhakA писал(а):Извините за торможение, но мне трудно понять, может исправите:
кнопку я добавил как обьект к класу Relays
У класа есть 4 свойство "статус" и 4 метода
turnOn
turnOff
refresh
switch
я пробовал в каждом лепить код с гет-ссылкой -соответвственно значению метода, но добился лиш того что кнопки включает насос, а выключить невозможно
Вы рекомендуете создать новый сценарий в меню "сценарии"?
Все правильно делаете
В классе Relays создайте свой объект, например yourRelay в его методы пропишите
В turnOn пишите getUrl("http://192.168.254.5/command?40=ON",0);
В turnOff пишите getUrl("http://192.168.254.5/command?40=OFF",0);
refresh и switch не трогайте, там все прописано в родительском методе.
В выключателе используйте yourRelay.refresh, в других случаях можете управлять напрямую yourRelay.turnOn или yourRelay.turnOff
да большое спасибо, все таки заработало, нашел ошибку.
Но подскажите как теперь сделать так чтобы кнопка автоматом меняла значение, если я запускаю насос с пульта.
Как ее "запарсить по гету" ?
спасибо
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Опять Ардуино и МД???

Сообщение Jager » Сб фев 20, 2016 10:03 am

StryzhakA писал(а):да большое спасибо, все таки заработало, нашел ошибку.
Но подскажите как теперь сделать так чтобы кнопка автоматом меняла значение, если я запускаю насос с пульта.
Как ее "запарсить по гету" ?
спасибо
Можно попробовать добавить в скетч нечто подобное

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

//GARAGE GATES SENSOR
  Serial.println("G");
  int current_garage=digitalRead(4);
  //Serial.println(current_garage);
  if (current_garage!=(int)old_garage) {
    old_garage=(int)current_garage;
    sprintf(buf, "GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_garage);
    sendHTTPRequest();
  }
Код с примером лежит здесь http://majordomo.smartliving.ru/Main/ArduinoCode
Тогда при включении c пульта будет отправляться статус в ваш объект в классе Relays, соответственно в выключателе должен быть привязан этот статус
Изображение
В общем как то так.
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 10:19 am

Спасибо за помощь, но будет сложно интегрировать этот кусок кода со всем скетчем, потому, как в моем другие переменные.
Проще было б, если МД сам опрашывал через гет, состояние портов.
Как думаете, возможно такое?
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Опять Ардуино и МД???

Сообщение Jager » Сб фев 20, 2016 10:25 am

StryzhakA писал(а):Спасибо за помощь, но будет сложно интегрировать этот кусок кода со всем скетчем, потому, как в моем другие переменные.
Проще было б, если МД сам опрашывал через гет, состояние портов.
Как думаете, возможно такое?
Можно конечно, покажите что отдает ваш скетч на запрос состояния порта и сам запрос.
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 10:36 am

Jager писал(а):
StryzhakA писал(а):Спасибо за помощь, но будет сложно интегрировать этот кусок кода со всем скетчем, потому, как в моем другие переменные.
Проще было б, если МД сам опрашывал через гет, состояние портов.
Как думаете, возможно такое?
Можно конечно, покажите что отдает ваш скетч на запрос состояния порта и сам запрос.
пример запроса
http://192.168.254.5/command?39=STATUS
и выдает страницу
P39=1


1-в моем случае -значит ВЫКЛЮЧЕН
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 10:41 am

Но также можно модифицыровать строку

sprintf(buf, "GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0", (int)current_temp1, abs(temp1));

адаптирую ее под мой скетч, удаляя из нее все переменные которые я не использую в своем
(GET /objects/?object=sensorKotel&op=m&m=tempChanged&t=%0d.%d HTTP/1.0") эту строку я понимаю, это зам запрос
а вот что за переменные
buf
и что за команда
sprintf
???
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 10:42 am

у меня это моголо бы выглядеть так:

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

if (RelayPumpStatusNow != RelayPumpStatusOld && RelayPumpStatusNow == 1)
  {
    button1on();
    sprintf(buf, "GET /objects/?object=CirculationPump&op=m&m=statusChanged&status=%i HTTP/1.0");
    sendHTTPRequest();
  RelayPumpStatusOld = RelayPumpStatusNow;
}
else if (RelayPumpStatusNow != RelayPumpStatusOld && RelayPumpStatusNow == 0)
{
  button1off();
  sprintf(buf, "GET /objects/?object=CirculationPump&op=m&m=statusChanged&status=%i HTTP/1.0");
  sendHTTPRequest();
  RelayPumpStatusOld = RelayPumpStatusNow;
}
if (RelayConvStatusNow != RelayConvStatusOld && RelayConvStatusNow == 1)
  {
button2on();
sprintf(buf, "GET /objects/?object=ConvectionPump&op=m&m=statusChanged&status=%i HTTP/1.0");
    sendHTTPRequest();
RelayConvStatusOld = RelayConvStatusNow;
}
else if (RelayConvStatusNow != RelayConvStatusOld && RelayConvStatusNow == 0)
{
  button2off();
  sprintf(buf, "GET /objects/?object=ConvectionPump&op=m&m=statusChanged&status=%i HTTP/1.0");
    sendHTTPRequest();
  RelayConvStatusOld = RelayConvStatusNow;
}
} 
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Опять Ардуино и МД???

Сообщение StryzhakA » Сб фев 20, 2016 10:43 am

Но надо это подравить
Ответить