@5diezov

Как с помощью ардуино положить данные на удаленный сервер по URL?

Задача:
Класть данные в базу данных на сервере, передача идет методом get.
Но дело в том, что на домашнем сервере все работает замечательно, обращение к серверу по ip,
И вручную, типа: 192.168.10.21/get.php?data1ard=1.00&data2ard=2.00&...
И ардуина нормально подключается, и передает данные.
К удаленному серверу доступ только по URL
Вручную все работает: site.com.ua/get.php?data1ard=1.00&data2ard=2.00&da...
А ардуино никак не может достучаться.
В чем может быть проблема?
#include <Ethernet.h>
float a=1, b=2, c=3; 
String msg = "GET /get.php?data1ard="+ String(a) + "&data2ard="+String(b) + "&data3ard="+String(c);

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
IPAddress ip(192, 168, 10, 22);
byte server[] = { 192, 168, 10, 21 };
//char server[] = "www.site.com.ua";

void setup()
{
}

void loop()
{
EthernetClient client;
  Ethernet.begin(mac, ip);
    delay(1000);  
      client.connect(server, 80);
      client.println(msg);
      client.println(" HTTP/1.1");
      client.println("Connection: close");
      client.println();
      client.println();
    delay (2000);   
client.stop();   
}
  • Вопрос задан
  • 306 просмотров
Решения вопроса 1
@vanyamba-electronics
Скорее всего дело в этом:
client.println(msg);
client.println(" HTTP/1.1");
client.println("Connection: close");

Попробуйте так:
client.print("GET ");
client.print(msg);
client.println(" HTTP/1.1");
client.println("Host: 192.168.10.21");
client.println("Connection: close");
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ghostiam
На Go писатель, серверов пинатель.
Вы пытаетесь подключиться к серверу по домену, но соединение нельзя установить на домен, можно только на IP.
Для решения этой проблемы, существуют сервисы DNS которые преобразуют доменное имя в IP адрес.
Вам нужно или найти библиотеку для работы с DNS или написать запросы вручную.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы