Как отправить 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
в конец переменной сервера
, это не сработает.
Итак, как мне отправить этот запрос на определенный порт?
@Mason, 👍5
Обсуждение1 ответ
Вы можете найти определение порта на вашем 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
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- Как правильно отправлять данные через http с помощью sim908?
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- ESP8266 Ошибка неверного запроса 400
- GSM-модуль Sim800l не может подключить данные gprs
- Более быстрый способ анализа HTTP-ответа в Arduino
Скорее всего, вы не сможете, если " Чао " не позволит вам этого. Посмотрите на 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