Буду признателен, если поможете понять проблему. Я не силён в сетевых протоколах, скорее всего с этим связаны неудачи.
Задача (для освоения и понимания возможностей Majordomo, исходя из имеющегося оборудования):
1. Мигание светодиодом на плате, с помощью выключателя в Mojordomo.
Железо в наличии: Ноутбук на Win10, Arduino Mega 2560, USB-кабель для соединения.
На сайте нашёл статью о подключении Arduino без Ethernet, через USB-шнурок - http://majordomo.smartliving.ru/Main/ArduinoDirect
По инструкции установил Arduino HTTP gateway.
Затем, для эксперимента, решил попробовать отправлять запрос с Arduino в Majordomo, чтобы менять состояние выключателя (на этом и завис). Для этого создал объект "СветодиодАрдуино" класса Relays:
Далее скопировал ссылку-метод, которая переключает состояние выключателя:
И добавил её (ссылку на переключение) в код, исправив пример из статьи выше (видимо в нём, в моём коде, и есть ошибка). Код отправляет запрос на переключение выключателя, через Arduino HTTP Gateway. Ниже код:
Код: Выделить всё
int cycle_counter=0;
char buf[300];
char arSv = LOW;
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}
void setup()
{
pinMode(13, OUTPUT); // Светодиод ардуино
digitalWrite(13, arSv);
Serial.begin(115200); // Скорость консольного порта 115200 (пригодится для отладки)
}
void loop()
{
delay(100); // задержка в 0.1 сек.
cycle_counter++;
if (cycle_counter>600) {
cycle_counter=0;
}
Serial.println("Switch Arduino Light");
sprintf(buf, "GET http://127.0.0.1:80/objects/?object=%D0%A1%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4%D0%90%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE&op=m&m=switch&");
sendHTTPRequest();
delay(2000);
Serial.println("Switch Arduino Light");
sprintf(buf, "GET http://127.0.0.1:80/objects/?object=%D0%A1%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4%D0%90%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE&op=m&m=switch&");
sendHTTPRequest();
delay (2000);
}
Помогите разобраться, в чём проблема. И огромное спасибо!