Post più popolari

lunedì 20 febbraio 2012

Come costruire una Webcam wireless senza bisogno di un pc acceso (Parte 1-2-3) - VECCHIA VERSIONE Ed.

Eccoci qui per una guida su come costruire una Webcam wireless (o wifi che dir si voglia) che mandi in rete le foto senza bisogno di un pc acceso, usando una vecchia fotocamera!

(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")

Per fare questo avremo bisogno:

-Un router Asus Wl-500gP (ossia versione Premium) reperibile abbastanza facilmente usato, per 20-30 euro, su eBay (vi consiglio di guardare anche su eBay.de, eBay.fr, eBay.co.uk e eBay.es)

-Una fotocamera CanonPowerShot A70 reperibile anch'essa usata per 20-30 euro su eBay (potete trovarne anche qualcuno con qualche difetto a noi inifluente, come problemi dello schermo LCD o graffi: l'importante è che funzioni!)

-Un PC Windows

-Un sito internet che supporti l'FTP per caricarci la foto scattata

-I seguenti software:

-Putty (reperibile da qui: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

Nei download cliccate su Putty.exe



ScaricaPutty



-Openwrt Kamikaze (reperibile da qui: http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/)

Da questa pagina che vedete qui sotto, cliccate su openwrt-brmc-2.4-squashfs.trx (e' la versione con il kernel 2.4, e non il 2.6, perchè quest'ultimo ha problemi con il Wireless su questo router)



scaricarekamikaze



-il Software di ripristino Firmware della ASUS (reperibile da qui: http://support.asus.com/download/download.aspx?SLanguage=en-us , selezionate la versione del vostro Router, per sapere qual'è guardate l'etichetta sotto di esso, e il S.O. da voi usato)... Si aprirà questa pagina, cliccate su Global e scaricate!

Utility Asus

- WinScp, che ci servirà per trasferire gli script nelle cartelle del router e reperibile da qui: http://winscp.net/eng/download.php#download2

winscpdownload





Affinchè il sistema sia wireless, e quindi possa essere installato ovunque (nel raggio della vostra rete con necessità solo di una presa di corrente nelle vicinanze, o di adeguata prolunga naturalmente) dobbiamo avere una rete wireless in casa, con un router che gestisce la connessione ADSL... Nel nostro caso si tratta di un NETGEAR DG834G con indirizzo 192.168.0.1 (ci tornerà utile nei passaggi successivi).





Innanzitutto dobbiamo connettere il Wl-500g al PC: per far questo prendete un cavo Ethernet e attaccate un'estremità al PC el'altra estremità ad una porta LAN del router (non alla porta WAN mi raccomando)... Prima di accendere il router dovete impostare un IP statico sul vostro PC... Per far ciò andate in Connessioni di Rete dal Pannello di Controllo, disattivate le altre connessioni di rete esclusa quella alla rete locale (LAN) e cliccate col destro su di essa e poi su Proprietà... Nella finestra che si aprirà scorrete in basso su "Protocollo Internet (TCP/IP)", cliccate su di esso e poi su Proprietà... Nella finestra che si aprirà impostate come vedete nella figura sotto (per ingrandire cliccate con il destro e poi visualizza immagine) e poi cliccate su OK e poi su Chiudi...





impostaipstatico





Ora attaccate il Router alla corrente... Aspettate qualche secondo, e poi digitando nel vostro Browser 192.168.1.1 dovreste avere la pagina di login del router, con username admin e password admin... Se così non fosse (a Router acceso) tenete premuto per 10 secondi il tastino nero Reset (non quello EZsteup) così che vengano reimpostate le impostazioni di fabbrica e riprovate!



Se riuscite a connettervi con il router potete passare alla PARTE 2!
parte 2
Ora passiamo alla Parte 2: ossia come installare il firmware desiderato (OpenWrt Kamikaze) nell'Asus Wl-500gP e impostarlo come client della vostra rete wireless.

(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")

Per prima cosa, dopo aver installato l'utility della Asus che abbiamo scaricato prima, staccate il Router dalla corrente. Schiacciate il tasto Reset (quello nero) posto sul retro e, sempre tenendo schiacciato il tasto reset, riattacateloalla corrente, e lasciate il tasto solo quando il led di accensione avrà incominciato a lampeggiare (occorreranno circa 3 secondi). In questo modo il vostro router si trova nell modalità Recovery.

Ora aprite l'utility della Asus "Firmware Restoration"



firmwarerestoration





sfogliate fino a trovare il firmware "openwrt-brmc-2.4-squashfs.trx" che avevate scaricato e selezionatelo, poi cliccate su Caricamento. Aspettate che il router installi il nuovo firmware e che si riavvii (per questa operazione sono neccessari diversi minuti).

Una volta finito il processo, digitate nel vostro browser web l'indirizzo IP del router 192.168.1.1, e si aprirà la pagina inziale del Router, con il nuovo firmware



luci





Cliccate su Login, e accederete ai settaggi del nuovo firmware.Ora dobbiamo impostare il nostro Wl-500gP in modo che dialogi in modalità wireless con il nostro router che gestisce la connessione ADSL (nel nostro caso è un Netgear DG834G con indirizzo IP 192.168.0.1, ma può essere fatto con tutti i router in commercio).

Per prima cosa, nella pagina di connessione wireless del vostro router principale (non del Wl-500gP) dovrete abilitare, se non l'avete già attiva, la modalità WDS (Wireless Distribution System) in modo che accetti altri router o AP come client: con il Netgear andate nella pagina "Impostazione Wireless Avanzate" e impostate come segue:



wds





Nel mio caso vedete due indirizzi MAC impostati, oltre a quello del DG834G che è il primo (parlo della modalità "Ripetitore con associazione client wireless", questo perchè nella mia rete vi è un AP aggiuntivo (Indirizzo MAC remoto 1). Se per voi il Wl-500gP è l'unico client oltre al vostro router principale, inserite in Indirizzo MAC remoto 1 il suo numero MAC, che trovate stampato nell'etichetta sotto di esso. Cliccate su Applica.





Andate poi nella pagina "Impostazioni IP LAN" e assegnate un IP al vostro Wl-500gP: dalla pagina Impostazioni IP LAN, cliccate su "Aggiungi". Vi si aprirà una pagina come questa:



impostaIPLAN





Inserite l'indirizzo IP che volete assegnare, ad esempio 192.168.0.20, l'indirizzo MAC del Wl-500gP e il nome "Wl-500gP". Cliccate su Aggiungi e poi su Applica nella pagina che si aprirà dopo. Finita questa configurazione chiudete la pagina di configurazione del Router principale.

Ritorniamo nella pagina di configurazione dell'Asus, e andate in "Wifi" del menù a tendina network, nella modalità Essentials. Impostate come sotto (cliccate con il dx e poi Visualizza Immagine per ingrandirla):



impostawifi



Ossia abilitando la casellina "enable", mettendo la modalità client, e inserendo il nome della vostra rete e la modalità di "Encryption" che usate nella vostra rete con la Key nello spazio sotto. Cliccate su Save e attendete che il Router salvi le vostre impostazioni e si colleghi alla rete.

Dopo di che andate in Administration --> Network --> Interfaces e assicuratevi che entrambe le caselline (wan e lan) abbiano la spunta, come sotto:



Network



Se così non fosse spuntatele entrambe e poi cliccate su "Save & Apply).

Poi andate, sempre dal pannello Administration, in Network --> Interfaces --> WAN e impostate come vedete sotto:



impostawan



Ossia inserite in IPv4-Address l'indirizzo IP che gli avevate attribuito dal vostro router principale (ad es. 192.168.0.20), in IPv4-Netmask 255.255.255.0, in IPv4-Gateway l'indirizzo del vostro router principale e in DNS-Server (se non vedete questa casella cliccate su Additional Field, selezionatela dal menù a tendina e cliccate su Add) l'indirizzo del vostro router principale (ad es. 192.168.0.1) che corrisponde con il vostro Gateway. Quest'ultimo passaggio, quello del DNS server, è molto importante affinchè possiate installare i pacchettia aggiuntivi che ci servono. Cliccate su Save & Apply e attendete che il Router salvi le impostazioni.

Ora andate in Administrator -> Network -> Firewall e mettete tutti accept al posto dei reject, quindi salvate su Save & Apply... Questo è fondamentale affinchè possiate accedere via wireless al router!

Ora avete settato il router in modo che dialoghi wifi con il vostro Router principale, e potete passare alla parte 3, ossia come installare i pacchetti nel router e far funzionare la Canon PowerShot A70 come Webcam Wireless.
procedete alla parte 3...
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.sh, hook.sh e capture (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: root@OpenWrt:-#

Ora date il comando: ps | grep capture.sh

Il router dovrebbe restiruirvi di nuovo la classica riga: root@OpenWrt:-#

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
ciao da ROBOZERI BLOG .post.com

Nessun commento:

Posta un commento

Powered By Blogger