Home › Forum › Discussioni su problematiche generali › Gestione comunicazione con telecamera IP
- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 5 mesi fa da
Roberto.
-
AutorePost
-
Aprile 9, 2025 alle 10:10 am #81281
Roberto
PartecipanteChiedevo se è possibile gestire la comunicazione con una telecamera IP e salvare l’immagine di ritorno su SDCars con i Vs sistemi SlimLine.
Mi spiego ho trovato esempi in rete con con Arduino che permettono di inviare dei comandi attraverso una connessione TCP che seguono determinate azioni come, spostare il punto se ptz ecc.. Il comando snapshot restituisce un flusso di byte che con arduino poi salvi su SDCard, vedi esempio di codice.
char kPath[] ="/snapshot.cgi?user=NOMEUTENTE&pwd=PASSWORD"; err = http.get(kHostname, 81, kPath); if (err == 0) { Serial.println("Connessione con la cam OK !"); err = http.responseStatusCode(); if (err >= 0) { Serial.print("Codice risposta http: "); // Usually you'd check that the response code is 200 or a // similar "success" code (200-299) before carrying on, // but we'll print out whatever response we get err = http.skipResponseHeaders(); if (err >= 0) { int bodyLen = http.contentLength(); file = SD.open("cam1.jpg", FILE_WRITE); file.seek(0);Aprile 9, 2025 alle 10:13 am #81286Sergio Bertana
Amministratore del forumIn teoria quello che chiedi è fattibile, bisogna fare dei test per verificarne l’effettiva fattibilità, quindi non ti resta che armarti di buona volontà e provare. Devi utilizzare il FB HTTPClient, ecco alcune dritte riferite a programma di esempio ST_HTTPClient_ToFile.
Per la connessione alla telecamera seguendo l’esempio di Arduino devi modificare:
TCPClient.PeerAdd:=ADR('IP TELECAMERA'); //Peer address TCPClient.PeerPort:=81; //Peer port HTTPRq.RMethod:=HTTP_REQUEST#HTTP_GET; //HTTP request method HTTPRq.Page:=ADR('snapshot.cgi'); //Web page HTTPRq.Request:=ADR('user=NOMEUTENTE&pwd=PASSWORD'); //Request stringSe la connessionew è Ok in HTTPStatus avrai di ritorno il codice 200. Nel codice Arduino non vedo la richiesta dell’immagine, quindi suppongo che alla connessione la telemera ti ritorni immediatamente un flusso dati binario che tu puoi salvare su file nello stesso modo in cui lo salva il programma di esempio.
La parte di esempio che esegue il salvataggio dell’header ricevuto dalla telecamera (riferimenti ad HFile) la puoi eliminare. L’header ritornato lo puoi analizzare comodamente dalla console di spionaggio.
Aprile 9, 2025 alle 11:01 am #81304Roberto
Partecipantegrazie
Il comando per chiedere immagine è
snapshot.cgi
-
AutorePost
- Devi essere connesso per rispondere a questo topic.