Webcam
Come costruire una Webcam wireless senza bisogno di un pc acceso (Parte 3) - VECCHIA VERSIONE Ed. 2010 Stampa
Valutazione attuale: / 16
ScarsoOttimo 
Scritto da I Magnati della Lomellina   
Giovedì 29 Dicembre 2011 21:59

 

Dopo aver installato il nuovo firmware ed aver impostato la connessione wireless, ora possiamo dedicarci all'installazione dei pacchetti necessari per far funzionare il tutto come Webcam wireless e configurare gphoto2.

(N.B. Per permettere una corretta visione dell'articolo agli utenti con tutti i tipi di definizione e di schermo, ho dovuto rimpicciolire le immagini! Per vederle ingrandite cliccate su di esse con il tasto destro del mouse e poi su "Visualizza Immagine")

Innanzitutto andiamo nella pagina iniziale del nostro router Asus, digitando l'indirizzo 192.168.1.1 (ora potreste anche staccare il vostro Wl-500gP dalla connessione diretta con il PC e accedere a lui via wireless digitando l'indirizzo IP che gli avete assegnato, ad es. 192.168.0.20... ATTENZIONE: Se non si dovesse connettere via wifi, ma solo via ethernet, controllate che in Administration --> Network --> Firewall e qui controllate che in basso, in wan, le prime due voci siano su accept!).

Andate poi in Administration --> System ---> Software

updatepackages

Cliccate su "Update package lists" e aspettato qualche minuto che il router faccia l'update dei pacchetti disponibili e via dia l'OK del processo. Se vedete comparire un errore nell'Update, vuol dire che il vostro router non è connesso correttamente ad internet o che non è corretta l'impostazione del DNS-server, per questo riguardate la Parte 2 di questa guida!

Una volta fatto l'update controllate, cliccando CTRL+F nel browser, che ci siano i seguenti pacchetti: kmod-usb-core, kmod-usb-ohci, kmod-usb-uhci, kmod-usb2, gphoto2, libgphoto2, libgphoto2-drivers e curl.

Ora possiamo passare all'installazione dei pacchetti. Per far questo aprite Putty, che avevamo già scaricato all'inizio: vi si aprirà questa pagina

putty

Inserite in "Host Name" l'ndirizzo IP che avete assegnato al Wl-500gP, che sarà 192.168.0.20 se state lavorando in wireless o 192.168.1.1 se siete ancora in locale. Controllate che la "Connection type" sia su SSH e poi cliccate Open. Si aprirà l'interfaccia di Putty per comunicare con il router:

loginputty

Inserite prima "root" come login e poi "admin" come password. Non vi preoccupate se mentre inserite la password non viene visualizzato nulla, è normale! ;)

(ATTENZIONE: ho notato che può succedere che la prima volta non si riesca ad accedere tramite SSH perchè rifiuta la password... Ho risolto collegandomi prima tramite telnet, digitando il comando passwd ed impostando una nuova password, ad esempio administrator... Dopo di che ho chiuso la sessione telnet, ho aperto quella SSH e con la nuova password tutto OK)

 

 

Ora possiamo installare i pacchetti, per far ciò dovete dare il comando "opkg install gphoto2" per installare gphoto2, come vedete qui sotto, cliccando poi invio:

opkginstall

Il router scaricherà e installerà automaticamente gphoto2. Quando vi darà la possibilità di inserire un nuovo comando, inserite uno per volta tutti gli altri pacchetti, facendo sempre "opkg install *nome pacchetto*". Dobbiamo installare kmod-usb-core, kmod-usb-ohci, kmod-usb-uhci, kmod-usb2, gphoto2, libgphoto2, libgphoto2-drivers e curl. Se installando uno dei pacchetti usb vi dice che quel pacchetto c'è già, non vi preoccupate, può darsi che esso fosse già contenuto in un altro pacchetto. Ad esempio kmod-usb-core dovrebbe esser già contenuto in kmod-usb2.

Installati tutti i pacchetti possiamo vedere se il nostro router riconosce la nostra fotocamera Canon Powershot A70! Dobbiamo quindi connettere la Canon alla porta USB del Wl-500gP, accenderla, e metterla nella modalità di visione foto sullo schermo LCD, routando la rotellina posta sopra lo schermo LCD dalla modalità "prendere foto"(quella con la macchinina in rosso) alla modalità "play" (con il simbolo play in verde): questo è fondamentale perchè la macchina sia riconosciuta, e, non vi preoccupate, ci permetterà comunque di scattare le foto dando il comando via Putty. Fatto ciò inserite il comando gphoto2 --auto-detect e cliccate su invio. Dovrebbe, dopo alcuni secondi, darvi questa risposta:

auto-detect

Siamo quindi pronti per mandare il comando per scattare le foto in modo automatico e per mandarle su un sito web che supporta FTP e di cui abbiamo username e password!

Prima create nel vostro account FTP una cartella dove metterete la foto scattata dalla webcam! Se volete che sotto compaia una riga con la città dove si trova la webcam, la data di acquisizione e altre informazioni utili scaricate il file Scritta1Riga (cliccate sopra) e scompattatelo (l'ho preso da meteo-barcellonapozzodigotto.it)! Modificate il file testo.txt con ciò che volete che appaia (exif serve per la data e l'ora di aquisizione) e modificare anche webcam.php se volete ingrandire la scritta o lo spazio blu! Ora uploadate (tramite il vostro client FTP preferito, es. FileZilla) i files nella cartella dove verrà uploadata l'immagine della webcam!

Ora scaricate dai qui i files (cliccate sopra ai primi due per salvarli) capture.shhook.shcapture (per quest'ultimo cliccate con il destro e poi Salva destinazione con nome)...

Ora modifichiamo (con Blocco Note) i parametri che ci interessano:

-capture non dev'essere modificato!

-in capture.sh potete modificare l'intervallo in secondi tra uno scatto e l'altro modificando il valore che compare dopo -I (è bene non mettere un valore sotto i 60 secondi perchè potrebbe non funzionare). I numero dopo imgsize indica quanto sarà grande la foto che verrà spedita sul web... Io vi consiglio imgsize=2 (1024x768px), perchè mi sembra un buon compromesso tra il una buona risoluzione e la leggerezza dell'immagine!

-in hook.sh modificate i parametri che trovate nella riga "curl --connect-timeout 5 --retry 3 --retry-delay 10 --max-time 180 --user "user:psw" -T "$work" "ftp://ftp.xxxxxxx.xx/webcam/webcam.jpg", ossia mettetel'user e la psw del vostro account FTP in user:psw e la cartella dove metterete l'immagine della webcamal posto di ftp://ftp.xxxxxxx.xx/webcam/, mentre lasciate webcam.jpg alla fine.

 

 

Ora installate WinScp e poi configuratelo come vedete nelle due immagini qui sotto, ossia inserite l'indirizzo IP del Wl-500gP, con user e psw (di default root e admin), modificare il Protocollo File in SCP e poi sulla sinistra andate in SCP e impostate come vedete nella seconda immagine:

winscplogin

winscplogin2

Cliccate su Accedi e vi si aprirà una schermata come sotto, dove a sinistra avrete le cartelle e i files sul vostro PC e a destra quelle sul router. Nella schermata a sinistra andate nella cartelle dove avete salvato i files appena scaricati, e prima di tutto rinominate il file capture.txt togliendo il suffisso .txt, lasciando solo il nome capture. In seguito trasferite i files in questo modo: capture.sh nella cartelle /root/ (quella che vi si apre al login di winscp), hook.sh in /usr/bin/ (la troverete salendo di un livello, poi aprendo usr e poi bin), e capture mettetelo in /etc/init.d

winscpschermata

Ora chiudete WinSCP!

Aprite Putty e connettetivi al router, ora dovremo fare in modo che siano sincronizzati gli orari del Router e quello di gphoto2, per fare questo date il comando "opkg install ntpclient", il router installerà ntpclient che sincronizza la sua ora (per controllare digitate 192.168.0.20 nel browser, andando così nella pagina di configurazione del router, andate in System>General, impostate TimeZone su UTC e cliccate su Save): controllate che l'ora sia giusta (non corrisponde a quella italiana, ma è un'ora o due indietro.

Ora in Putty date il comando gphoto2 --set-config /main/settings/synctime=1 in modo che venga sincronizzata l'ora di gphoto2.

Ora controlliamo che lo script funzioni, digitate: sh /root/capture.sh

Dopo qualche secondo il sistema dovrebbe funzionare! Se invece Putty restituisce degli errori, provate a chiudere Putty, scollegate dalla corrente il router e la Canon e poi riattacateli, ora riaprite Putty e riprovate!

Ora dobbiamo fare in modo che il nostro script venga avviato all'avvio del router, diamo quindi il comando: /etc/init.d/capture enable

Il router dovrebbe restiruirvi la classica riga: [email protected]:-#

Ora date il comando: ps | grep capture.sh

Il router dovrebbe restiruirvi di nuovo la classica riga: [email protected]:-#

Ora date il comando: ls /etc/rc.d/

e controllate che nei risultati ci sia il file S99capture, questo vuol dire che lo script verrà inizializzato all'avvio!

Ora, prima di riavviare il router, dobbiamo controllare che tutto funzioni correttamente, e non ci siano errori! Quindi digitiamo: /etc/init.d/capture start

Lo script dovrebbe partire: Perfetto!

Ora possiamo chiudere Putty, staccare router e Canon dalla corrente e, una volta collegati insieme dopo qualche secondo il sistema funzionerà regolarmente! Tutto questo fa sì che lo script funzioni da solo e, nel caso di un calo di tensione, al riavvio tutto riparta come prima! BEN FATTO!

P.s. Ho notato che la Webcam si incatasta dopo circa 24ore... Ho ovviato al problema inserendo un timer a monte delle spine in modo che spenga tutto il sistema alle ore 03.30 e lo riaccenda alle ore 04.00.

 

Ringraziamenti: per la parte software un ringraziamento speciale ad Alessio Sangalli, senza il cui aiuto non sarebbe stato possibile realizzare tutto questo!

Un ringraziamento anche alla comunità di IRC #openwrt e#gphoto, un sistema di chat dove utenti esperti potranno darvi le dritte del caso, in inglese, e scaricabile da qui: http://xchat.org/

In particolare un grazie a _Marcus_ di #gphoto e s-taylo di #openwrt...

 

PER VEDETE LA WEBCAM IN TEMPO REALE ANDATE QUI: http://www.imagnatidellalomellina.it/webcam/109-webcam-meteo-robbio.html