Как отправить HTTP-запрос на определенный порт с помощью Ciao?

В настоящее время у меня есть REST клиент для работы на ардуино, но запросы всегда поступают на порт 80, как я могу заставить его отправить запрос на определенный порт?

Это мой текущий код: /* Файл: RestClient.ino В этом примере через 10 секунд выполняется HTTP-запрос и отображается результат как в последовательном мониторе, так и в wifi-консоли Arduino Uno WiFi.

Примечание: работает только с Arduino Uno WiFi Developer Edition.

http://www.arduino.org/learning/tutorials/boards-tutorials/restserver-and-restclient

#include <Wire.h>
#include <UnoWiFiDevEd.h>

void setup() {

    const char* connector = "rest";
    const char* server = "download.arduino.org";
    const char* method = "GET";
    const char* resource = "/latest.txt";

    Serial.begin(9600);
    Ciao.begin();

    pinMode(2, INPUT);

    delay(10000);
    doRequest(connector, server, resource, method);
}

void loop() {

}

void doRequest(const char* conn, const char* server, const char* command, const char* method){
    CiaoData data = Ciao.write(conn, server, command, method);
    if (!data.isEmpty()){
        Ciao.println( "State: " + String (data.get(1)) );
        Ciao.println( "Response: " + String (data.get(2)) );
        Serial.println( "State: " + String (data.get(1)) );
        Serial.println( "Response: " + String (data.get(2)) );
    }
    else{
        Ciao.println ("Ошибка записи");
        Serial.println ("Ошибка записи");
    }
}

Если я добавлю, например :8080 в конец переменной сервера, это не сработает.

Итак, как мне отправить этот запрос на определенный порт?

, 👍5

Обсуждение

Скорее всего, вы не сможете, если " Чао " не позволит вам этого. Посмотрите на PAT, переадресацию портов или прокси-серверы. В зависимости от вашей топологии, один из них может помочь., @Code Gorilla

измените прошивку на Wi-Fi Link https://github.com/jandrassy/UnoWiFiDevEdSerial1#uno-wifi-with-wifi-link-firmware, @Juraj

обновление 2022. Поместите прошивку 1.7.5 AT в esp8266 и используйте мою библиотеку WiFiEspAT, @Juraj


1 ответ


0

Вы можете найти определение порта на вашем arduino по следующему пути:

/usr/lib/python2.7/ciao/разъемы/restserver/restserver.json.conf

{
 "name" : "restserver",
 "description" : "REST server connector for the Ciao Core",
 "authors": ["Arduino Team <[email protected]>;"],
 "repository" : "https://github.com/arduino-org/Ciao",
 "version" : "0.0.2",
 "params" : {
            "port" : 80
             },
 "log" : {
         "level" : "info"
         }
}

Запутанная часть заключается в том, что у вашего Arduino есть подключение к серверу-клиенту от сервера cpu/linino к клиенту mcu/arduino.

https://www.arduino.cc/en/Reference/CiaoRestServer

,

У OP есть Wi-Fi Uno, а не Yun. В библиотеке UnoWiFiDevEd есть объект, похожий на чао, но Wi-Fi обслуживается esp8266, @Juraj