Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.
Модератор: immortal
-
StryzhakA
- Сообщения: 97
- Зарегистрирован: Сб янв 23, 2016 3:57 pm
-
Благодарил (а):
3 раза
-
Поблагодарили:
1 раз
Сообщение
StryzhakA » Сб фев 20, 2016 8:43 am
спасибо -дельный совет!
Буду делать скриншоты, потому как действительно мой скетч на эти геты, введеные через браузер -срабатывает!
-
StryzhakA
- Сообщения: 97
- Зарегистрирован: Сб янв 23, 2016 3:57 pm
-
Благодарил (а):
3 раза
-
Поблагодарили:
1 раз
Сообщение
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 раза
Сообщение
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 раз
Сообщение
StryzhakA » Сб фев 20, 2016 10:19 am
Спасибо за помощь, но будет сложно интегрировать этот кусок кода со всем скетчем, потому, как в моем другие переменные.
Проще было б, если МД сам опрашывал через гет, состояние портов.
Как думаете, возможно такое?
-
Jager
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
-
Благодарил (а):
26 раз
-
Поблагодарили:
183 раза
Сообщение
Jager » Сб фев 20, 2016 10:25 am
StryzhakA писал(а):Спасибо за помощь, но будет сложно интегрировать этот кусок кода со всем скетчем, потому, как в моем другие переменные.
Проще было б, если МД сам опрашывал через гет, состояние портов.
Как думаете, возможно такое?
Можно конечно, покажите что отдает ваш скетч на запрос состояния порта и сам запрос.
-
StryzhakA
- Сообщения: 97
- Зарегистрирован: Сб янв 23, 2016 3:57 pm
-
Благодарил (а):
3 раза
-
Поблагодарили:
1 раз
Сообщение
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 раз
Сообщение
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 раз
Сообщение
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;
}
}