От Arduino Ethernet к потоку камеры
У меня есть проект, в котором мне нужно отправить какой-то текст в поток камеры, к которому вы можете получить доступ, написав IP-адрес в строке ссылок в браузере, а затем написав пароль и имя пользователя, я использую arduino Ethernet Защитите мой код на данный момент следующим образом. Я в правильном направлении и как ввести пароль и символы администратора, чтобы Arduino мог получить доступ к потоку, я новичок во всем этом. Мне нужна такая же аутентификация
#include <Ethernet.h>
#include <SPI.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 177 };
byte server[] = { 192,168, 0, 64}; // Google
String big_string="<?xml version='1.0' encoding='UTF-8'?>-<TextOverlay xmlns='http://www.hikvision.com/ver10/XMLSchema' version='1.0'> ;<id>1</id><enabled>true</enabled><posX>0</posX><posY>96</posY><message>AAAAAA</message></TextOverlay> ;";
EthernetClient client;
void setup()
{
Ethernet.begin(ip);
Serial.begin(9600);
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 80)) {
Serial.println("connected");
client.println("PUT /Video/inputs/channels/1/overlays/text/1 HTTP/1.0");
client.println("Host: 192.168.0.64");
client.println("Authorization: Basic YWRtaW46MTIzNDVxd2VydHk=");
client.print("content-length: 232");
client.println("<?xml version='1.0' encoding='UTF-8'?>-<TextOverlay xmlns='http://www.hikvision.com/ver10/XMLSchema' version='1.0' ><id>1</id><enabled>true</enabled><posX>0</posX><posY>96</posY><message>iuhinjkjn</message></ TextOverlay>");
// client.println("888");
client.println();
client.print(big_string);
} else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;)
;
}
}
@Ivanh23, 👍-1
Обсуждение1 ответ
client.println("POST /Video/inputs/channels/1/overlays/text/1 HTTP/1.0");
client.println("Host: 192.168.0.64");
client.println("Authorization: Basic YWRtaW46MTIzNDVxd2VydHk=");
client.print("Content-lenght: ");
client.println(big_string.length()); // size of the request body (after the empty line)
client.println(); // mandatory empty line to end headers
client.println(big_string);
Нет, это все еще не работает, спасибо за комментарий, есть ли у вас еще какие-нибудь предложения?, @Ivanh23
у вас был PUT. почему? попробуй PUT, @Juraj
Я попробовал и все равно ничего :/, @Ivanh23
удалите - между первыми двумя ><, @Juraj
Я отредактировал свой код, туда должен идти текст, ссылка xml,, @Ivanh23
эта строка client.println("<?xml version='1.0'coding='UTF-8'?>-<TextOverlay xmlns='http://www.hikvision.com/ver10/XMLSchema' version='1.0'> <id>1</id><enabled>true</enabled><posX>0</posX><posY>96</posY><message>iuhinjkjn</message></TextOverlay>");, @Ivanh23
удалите - между первыми двумя ><, @Juraj
это то, что я получаю при подключении последовательного монитора... связанный HTTP/1.0 403 Запрещено Дата: четверг, 22 ноября 2018 г., 13:21:23 по Гринвичу Сервер: App-webs/ Длина контента: 277 Соединение: закрыть Тип контента: приложение/xml <?xml версия="1.0" кодировка="UTF-8"?> <ResponseStatus version="1.0" xmlns="http://www.hikvision.com/ver10/XMLSchema"> <requestURL>/Video/inputs/channels/1/overlays/text/1</requestURL> <statusCode>4</statusCode> <statusString>Недопустимая операция</statusString> </ResponseStatus> отключение., @Ivanh23
попробуйте POST сейчас после удаления -, @Juraj
Еще ничего :/, @Ivanh23
попробуйте перейти на HTTP/1.1. попробуйте добавить «Тип контента: приложение/xml». прочитайте документы., @Juraj
Большое спасибо за вашу помощь, я попробую все, если вы думаете о чем-то еще, пожалуйста, прокомментируйте, еще раз спасибо, @Ivanh23
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
какая аутентификация требуется камере?, @Juraj
Позвольте мне сказать прямо: вы хотите, чтобы Arduino получал (и, таким образом, обрабатывал) видеопоток с IP-камеры?, @Majenko
Нет-нет, в потоке камеры есть пустая строка, в которой я могу отобразить текст, отправленный с Arduino. Ардуино просто отправляет, а не получает, @Ivanh23
Ну, это просто проход и имя пользователя, ничего особенного, если это ваш вопрос, @Ivanh23
Сначала вам нужно знать, какой тип аутентификации он использует. Использует ли он [базовую аутентификацию HTTP](https://en.wikipedia.org/wiki/Basic_access_authentication) или какую-то специальную аутентификацию на основе форм?, @Majenko
Прежде чем думать об аутентификации, вам необходимо выяснить, как на самом деле подключиться к IP-камере и отправить правильный HTTP-запрос., @gre_gor
Мне удалось подключиться к камере, с подключением теперь все в порядке и с паролем и с логином, теперь следующий шаг - отправить текст на камеру. Камера hikvision, сбоку от картинки есть место для текста, и теперь моя задача - отправить текст с ардуино на камеру, есть какие-нибудь предложения?, @Ivanh23
Я отредактировал код, пока это моя работа, теперь я застрял на сообщении или отправил запрос на текст, @Ivanh23