Nabuk Wireless Community
Apparati => Elettronica & AP => Topic aperto da: truthahn - Febbraio 03, 2010, 05:45:42 pm
-
Riporto sinteticamente l'avventura del modding di un linksys wrt54gl v1.1 per gestire riscaldamento, luci interne ed esterne pi? l'apriporta di un centro sociale via wireless. Il centro, utilizzato per molte attivit? con orari fissi e variabili, presentava molti problemi di gestione soprattutto per il riscaldamento che, seppur programmato tramite termostato, veniva talvolta posto su manuale scaldando anche quando il centro era chiuso. Anche le chiavi erano spesso un problema: troppe copie in giro o chiamate da persone che ne erano prive e dovevano entrare. L'illuminazione poi, quella esterna soprattutto, rimaneva spesso accesa tutta notte. L'idea ? stata quella di gestire il tutto dalla sede comunale tramite wireless, non disponendo il centro di una linea adsl, con un'interfaccia semplice da poter essere usata da una impiegata. Il primo esperimento ? stato con una fonera 2100 che con i suoi GPIO ben in vista ? facile da modificare. Per poter trasferire l'esperimento in pi? sedi (palestra, biblioteca, scuole...) sempre da gestite dalla sede comunale ho pensato di utilizzare i linksys wrt54gl che ho usato molte volte con tanta soddisfazione con openwrt. Son diventato matto con il trunk brcm47xx (8.09 kernel 2.6) come riportato qui http://www.nabuk.org/f/index.php?topic=2341.0 (http://www.nabuk.org/f/index.php?topic=2341.0), ma questo funziona solo se si utilizza il linksys come "centralina" essendo il wifi inutilizzabile per problemi di sviluppo del driver b43. Son passato quindi al brcm-2.4 (8.09.2 kernel 2.4) che ha l'wifi pienamente supportato. Pensavo ci fossero per? problemi per la gestione GPIO invece qui http://downloads.openwrt.org/utils/gpio-uclibc-0.9.29.tar.gz (http://downloads.openwrt.org/utils/gpio-uclibc-0.9.29.tar.gz) si trova nel tgz sia il sorgente che il prog "gpio" con il quale si gestiscono molto facilmente le gpio del linksys. Modificando quindi il codice inserendo il prog "gpio" e altri piccoli accorgimenti tutto ? andato a meraviglia.
Per i rel? necessari ho acquistato tre di questi http://www.futurlec.com/Opto_Relay_4.shtml (http://www.futurlec.com/Opto_Relay_4.shtml), che con le spese di spedizione e dogana (arrivati da Hong Kong dopo un mese dall'ordine) son costati circa 15 Euro all'uno contro i 35/37 trovati uguali in italia. Questa scheda va particolarmente bene in quanto chiude i rel? con logic 0 proprio come il wrt54gl (la fonera li chiude con logic 1 e quindi quando rebootta ti ritrovi con tutti i rel? chiusi). Quindi, con il prog "gpio", per accendere qualcosa bisogna disabilitare un GPIO (gpio disable x) e abilitarlo per spegnerlo (gpio abled x). L'altro vantaggio ? la presenza di tre connettori per il collegamento ai GPIO (5 volt, 1 2 3 4 , GRN: ai 5 volt va collegato un punto a 3,3 volt presente, ad esempio, sulla seriale del linksys), cos? mettendo in corto il GRN con un punto 1 2 3 4 si pu? attivare un rel? senza l'intervento dei GPIO. Questo per me sar? utilissimo per il riscaldamento in quanto per controllare l'antigelamento dell'ambiente installer? un semplice termostato che bypassa le GPIO e quando la temperatura scende sotto i 5 gradi attiva la pompa anche se fuori programma. Inoltre la scheda va alimentata a 12v, proprio come il linksys.
Sul wrt54gl si utilizzano i GPIO 2 3 (? molto pi? comodo girare la scheda e saldare nei punti corrispondenti... saldare sui led ? un casino)
(http://images2.fotoalbum.virgilio.it/v/www1-2/167/167932/285479/wrt54gl_gpio23-vi.jpg)
e 4 7
(http://images4.fotoalbum.virgilio.it/v/www1-4/167/167932/285479/wrt54gl_gpio47-vi.jpg)
servono poi i 12 V da prendere dal connettore principale e, come gi? detto i 3,3 dalla seriale.
(http://wiki.openwrt.org/_media/oldwiki/openwrtdocs/hardware/linksys/wrt54gl_v11_serialport___.jpg)
I 12 vanno ad alimentare la scheda e i 3,3 servono per la TTL
Riposto le immagini dell'interfaccia web realizzata. Si tratta di semplici script .sh posti in /www/cgi-bin/webif/centralina, ho creato poi una cartella in /etc nominandola "centralina" dove vengono registrati i log e le configurazioni, e la cartella /bin/centralina per i comandi.
Ho utilizzato abbastanza "sed" e "awk" che comunque sono gi? installati con openwrt.
La prima pagina serve per comandare direttamente i rel?, si accendono e spengono semplicemente tranne per l'apriporta che accende per 3 secondi e poi stacca.
(http://images2.fotoalbum.virgilio.it/v/www1-2/167/167932/285479/comandi-vi.png)
la seconda serve per programmare i comandi posti in /bin/centralina. Non fa altro che scrivere in /etc/crontab/root e riavviare il servizio ad ogni modifica. Oltre a cancellare un programma si pu? disabilitarlo e riabilitarlo (pone o toglie un # nella riga corrispondente.
(http://images3.fotoalbum.virgilio.it/v/www1-3/167/167932/285479/cron-vi.png)
La terza gestisce le chiamate telefoniche con pass da un asterisk e serve per aprire, per ora, la porta. Gli amministratori hanno pass "private" con le quali possono comandare tutti i rel? (riscaldamento, luci).
(http://images2.fotoalbum.virgilio.it/v/www1-2/167/167932/285479/telefono-vi.png)
la quarta gestisce i log
(http://images3.fotoalbum.virgilio.it/v/www1-3/167/167932/285479/log-vi.png)
ed ecco il pupo pronto. Ho gi? fatto un giorno di prove con un altro wrt54gl a 100 m di distanza con i suoi gommini... 1000 accensioni e spegnimenti e tutto va alla perfezione. Esiste un unico neo: il gpio7, quello del led DMZ, all'accensione resta acceso per circa mezzo minuto quindi nessun problema se il rel? corrispondente accende le luci o il riscaldamento in caso di mancata corrente e riavvio ma, naturalmente, non pu? essere associato all'apriporta che resterebbe aperta.
Ecco il pupo:
(http://images1.fotoalbum.virgilio.it/v/www1-1/167/167932/285479/linksys1-vi.jpg)
(http://images2.fotoalbum.virgilio.it/v/www1-2/167/167932/285479/linksys2-vi.jpg)
(http://images6.fotoalbum.virgilio.it/v/www1-6/167/167932/285479/linksys3-vi.jpg)
-
Veramente ottimo!!
Posteresti anche qualche esempio del codice?? Perch? non saprei proprio da dove partire se volessi fare qualcosa del genere!!
-
questa ? la pagina comandi, la pi? semplice ma con la quale si pu? comandare al volo i rel?.
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
# Descrizione:
# Controllo GPIO - Accendi - Spegni
# Questa pagina controlla lo stato dei Gpio 3 4 7 e se lo trova "0"
# abilita lo spegnimento altrimenti l'accensione.
#
# Per il GPIO 2 collegato all'apriporta propone solo apri.
#
# truthahn - Nabuk Family
#############################################################################
header "Info" "System" "<img src=\"/images/telecomando.jpg\" alt=\"@TR<<>>\"/>@TR<< Comandi >>"
periferica7="Luci Esterne"
periferica3="Riscaldamento"
periferica4="Luci Interne"
periferica2="Apriporta"
for n in 3 4 7;do
gpio=FORM_gpio$n
eval gpio=\$$gpio
if equal $gpio "ACCENDI" ; then
gpio disable $n > /dev/null
echo 0 > /etc/centralina/gpio$n
fi
if equal $gpio "SPEGNI" ; then
gpio enable $n > /dev/null
echo 1 > /etc/centralina/gpio$n
fi
done
if equal $FORM_gpio2 "APRI" ; then
gpio disable 2 > /dev/null
echo 0 > /etc/centralina/gpio2
sleep 4
gpio enable 2 > /dev/null
echo 1 > /etc/centralina/gpio2
fi
if equal $FORM_generale "SPEGNI_TUTTO" ; then
for n in 2 3 4 7;do
gpio enable $n > /dev/null
echo 1 > /etc/centralina/gpio$n
done
fi
display_form <<EOF
start_form|@TR<< >>
end_form
EOF
cat <<EOF
<form method="get" action="comandi.sh"><p><p><center>
<table width="60%">
<tr><td><strong>PERIFERICA</td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF
for n in 3 4 7;do
gp="$(cat /etc/centralina/gpio$n)"
per=periferica$n
eval per=\$$per
if equal $gp "0"; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=SPEGNI ></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=ACCENDI ></td></tr>
EOF
fi
done
cat <<EOF
<tr><td>$periferica2 :</td><td><center><center><img src="/images/chiave.jpg"></td>
<td><center><input type="submit" name="gpio2" value=APRI
onClick="javascript:return confirm('Vuoi veramente aprire la porta?');"></td></tr>
<tr><td>Generale :</td><td></td><td><center><input type="submit" name="generale" value="SPEGNI_TUTTO" ></td></tr>
</table></form>
<p> <p>
EOF
display_form <<EOF
start_form|@TR<< >>
end_form
EOF
footer
?>
-
ottimo,
appena ho finito gli esami ci do un'occhiata....volendo ? possibile fare una cosa simile sulla fonera??
-
Certo. Ne ho due in funzione su fonera 2100 con openwrt 7.09. Non ho provato con l'8.09 ma non penso ci siano problemi.
-
Certo. Ne ho due in funzione su fonera 2100 con openwrt 7.09. Non ho provato con l'8.09 ma non penso ci siano problemi.
interessante :evil: :evil:
-
Oggi ho preparato un altro wrt54gl, quello che andr? a lavorare sul serio quindi sul tetto del centro mentre la scheda con i rel? andr? all'entrata del centro dove sta il quadro generale dell'impianto elettrico. Avevo un dubbio sui 3,3 volt che dal linksys dovranno arrivare alla scheda da una distanza di circa 8 metri e come farli arrivare. Ho quindi fatto una prova decidendo di utilizzare un cavo di rete e di fissare, sia sul linksys che sulla scheda rel?, dei connettori rj45 femmina cos? da avere una maggior facilit? poi di connessione e di standardizzare il tutto. Quindi bianco/arancio Gpio2 - arancio gpio3 - bianco/verde gpio4 - verde gpio7 - marrone e bianco/marron 3.3V - azzurro e bianco/azzurro GRN. Allora con 12 metri di cavo il tutto funziona bene. Sto ora installando, con le opportune modifiche gli script su una fonera con openwrt 8.09.2... vediamo se funziona tutto... Vi tengo informati.
Ecco un paio di foto del linksys "da lavoro".
(http://82.186.215.122/linksys6.jpg)
(http://82.186.215.122/linksys7.jpg)
-
grandeee
continua cos?! ;)
-
I progetti artigianali cos? sono sempre i migliori... :wink:
-
Installati gli script anche su fonera 2100 e 2200 con kamikaze 8.09.2 - Xwrt (come gi? detto con il 7.09 l'avevo gi? sperimentato) e tutto funziona alla perfezione... si utilizza il comodo comando gpioctl presente nei packages. (con la 7.09 si utilizza il kmod-gpio e quindi il classico "echo 1> /proc/gpio1") L'unico problema, come gi? esposto e che bisogna costruire o acquistare una scheda rel? che chiuda con logic 1. Si pu? naturalmente mettere uno script in rc.local per aprire i rel? o in rd.d ma lo stesso un mezzo minuto all'accensione restano attivi. Pertanto per alcune applicazioni la scheda utilizzata non va bene (vedi l'apriporta). p
-
Eh no ragazzi... mica vero che va tutto bene.. Anche sulla fonera con l'8.09.2 il driver della radio ? egoista e si tiene ben stretto il gpio2. Con la 7.09, se vi ricordate, il led wifi della fon non si accende proprio e quindi ? sempre libero.
-
Eh no ragazzi... mica vero che va tutto bene.. Anche sulla fonera con l'8.09.2 il driver della radio ? egoista e si tiene ben stretto il gpio2. Con la 7.09, se vi ricordate, il led wifi della fon non si accende proprio e quindi ? sempre libero.
ma stai parlando della 2200?
-
Proprio quella. :-(
-
allora non ti so aiutare perch? non ho mai tentato di usare i GPIO della 2200 in quanto non ho mai capito bene dove andavano saldati e che modifiche andavano fatte :/
-
Poi vedo sulla 2100 sulla quale ho gi? installato tutto , ma non ho ancora fatto una prova "reale" con la scheda rel? attaccata... ma se il driver si comporta cos? sulla 2200 penso sia la stessa cosa, il firmware ? identico.
-
comunque per attivare i rel? con livello logico basso, ti basta usare delle porte NOT
GPIO-------NOT-------Rel?
quando il GPIO ? a 1 il rel? riceve 0Volt
quanto il GPIO ? a 0 il rel? riceve 3,3Volt (non ricordo se sono davvero 3.3 o cosa)
-
comunque per attivare i rel? con livello logico basso, ti basta usare delle porte NOT
GPIO-------NOT-------Rel?
Cio?... puoi spiegare pi? chiaramente...
-
Credo che intenda di utilizzare un integrato con le porte NOT che nega l'uscita logica. Quindi se l'uscita ? bassa (0v) lui la nega e la f? diventare alta (3.3v) e viceversa.
Nell'integrato serie 74xx credo ce ne siano 6 in un unico integrato, se non sbaglio...
-
esatto, il 7404 mi pare.
In pratica ? un integrato a 16 piedini che integra 6 porte NOT; ogni porta ha 2 piedini di accesso (ingresso e uscita) e poi ci sono 2 piedini per alimentare l'integrato (vcc e gnd).
Ogni porta lavora in modo indipendente dalle altre.
Esempio.
Sulla porta 1 all'ingresso colleghi 5V ---> sull'uscita della stessa porta avrai 0V e viceversa ;)
spero di essere stato utile
-
Chiarissimo... non avevo capito. Vedremo... ora son contento dei "miei" linksys"... quando avr? un po' di tempo andr? avanti con le fon. Forse questa settimana faccio un link con i wrt54gl preparati per un centro. Se il comune mi "presta" un elettricista... il materiale ? tutto pronto.
-
Chiarissimo... non avevo capito. Vedremo... ora son contento dei "miei" linksys"... quando avr? un po' di tempo andr? avanti con le fon. Forse questa settimana faccio un link con i wrt54gl preparati per un centro. Se il comune mi "presta" un elettricista... il materiale ? tutto pronto.
quando parti con le fon, se vuoi ti do una mano ;)
-
e poi ci sono 2 piedini per alimentare l'integrato (vcc e gnd).
a 3,3V?
-
no in teoria dovebbero essere a 5V
-
Acquistato sulla baia l'integrato... cos+ quando ho tempo e mi vien voglia ci provo.
Intanto ho preparato un opk del modulo per chi lo vuol provare....
eccolo qua: http://82.186.215.122/webif-gpio_0.1_all.opk (http://82.186.215.122/webif-gpio_0.11_all.opk)
si installa come qualsiasi pacchetto opk quindi tramite shell o webif.
Una volta installato puntare a http://ip-wrt54gl/cgi-bin/webif/centralina.sh
questo fa un po' di configurazioni ed esce ricaricando la webif e ci si trova, in modalit? "router", con un nuovo menu nell'header dal nome "centralina" dove si possono fare alcuni settaggi e a destra nell'elenco un
"Modo: router centralina" dove si pu? passare da un modo all'altro....
naturalamente i programmi installati per la centralina sono quelli che uso io e vanno adeguati alle proprie esigenze ( si trovano in /bin/centralina ).
Per le programmazioni: disabilitare l'auto start di crontab (/etc/init.d/crontab disable) altrimenti ad ogni boot scrive sul file. Non l'ho inserito nel modulo perch? magari vi serve cos? e non volevo cambiare configurazioni altrui.
Naturalmente se non avete eseguito il mod potete vedere solo il led (quello giallo e bianco dell'wifi e quello verde della dmz) che si accendono e spengono (il gpio4 che corrisponde al pulsante di swich non si vede perch? non ? collegato a nessun led)
IMPORTANTE
Per la rimozione del modulo:
si pu? usare "opkg remove webif-gpio" ma lascia alcuni file in giro generati dal modulo nell'uso.
Per una rimozione pulita utilizzare il comando "disinstalla" che si trova in fondo alla pagina nel modo router - centralina.
Naturalmente prima bisogna aver installato xwrt ( questo: http://downloads.x-wrt.org/xwrt/kamikaze/8.09.2/brcm-2.4/extra/openwrt-wrt54g-squashfs.bin) con il tema clubman (che poi ? quello di default)
Installato e disinstallato molte senza nessun problema su un linksys wrt54gl... ma lo stesso non mi prendo alcuna responsabilita.
Sulla fonera funziona ugualmente ma bisogna installare "gpioctl" come sostituto di "gpio".
-
Ottimo!
appena ho un attimo di tempo lo provo!
-
Ho inserito nella programmazione e nei comandi la possibilit? di abilitare o disabilitare l'accesso ad Internet del centro...
di default la vlan0 di openwrt ? fissata cosi:
root@nabuk:~# uci get network.eth0.vlan0
0 1 2 3 5*
quindi tutte e quattro le porte della lan in bridge
dal tetto io arrivo gi? con due cavi di rete uno (collegato alla porta 1 o 2 del wrt54gl) lo lascio volante dentro la scatola di derivazione con collegamenti sempre abilitati per controllo dell'AP. un altro va alla scatola con l'rj45 femmina dove si potr? collegare un altro AP per il centro o dei PC in rete.
Per disabilitare il collegamento alla rete dei PC (collegati alla porta 3 o 4 del wrt54gl) lo script di programmazione richiama
#!/bin/sh
uci set network.eth0.vlan0="2 3 5*"
/etc/init.d/network restart
e per abilitarlo
#!/bin/sh
uci set network.eth0.vlan0="0 1 2 3 5*"
/etc/init.d/network restart
Altri modi pi? eleganti?
Naturalmente si poteva farlo con il firewall, ma dovendolo programmare per giorno/giorni ora ecc mi sembra pi? facile cos?.
-
Ho preaparato il pacchetto opk anche per la fonera 2100 e 2200..
eccolo qua: http://82.186.215.122/webif-pio-fon_0.1_all.opk (http://82.186.215.122/webif-gpio-fon_0.11_all.opk)
Funziona allo stesso modo di quello per il wrt54gl, ho eliminato il controllo accesso internet e cambiato il comando "gpio" con "gpioctl" funzionante sulla fon con xwrt 8.09.2 che dev'essere naturalmente precedentemente installato. Anche qui, naturalmente, gli script dei comandi (posti in /bin/centralina/) devono essere adeguati alle proprie esigenze.
Anche qui per la rimozione del modulo:
si pu? usare "opkg remove webif-gpio-fon" ma lascia alcuni file in giro generati dal modulo nell'uso.
Per una rimozione pulita utilizzare il comando "disinstalla" che si trova in fondo alla pagina nel modo router - centralina.
Questa ? la versione per la 2100 (Gpio 2, 3, 4, 7 anche se il gpio 2 non ubbidisce ancora) mentre per la 2200 bisogna adattare gli script utilizzando i Gpio 2,7,6 .
C'? ancora inoltre qualche problema per il comandi gipioctl che non ho avuto tempo si sistemare. Appena posso termino. Si pu? comunque provare e magari sistemare. :wink:
quello per il linksys ? invece all'opera da giorni dentro il comune con attaccate 4 lampadine per un ultimo test prima dell'installazione. Naturalmente a basso consumo.
-
esatto, il 7404 mi pare.
In pratica ? un integrato a 16 piedini che integra 6 porte NOT; ogni porta ha 2 piedini di accesso (ingresso e uscita) e poi ci sono 2 piedini per alimentare l'integrato (vcc e gnd).
Arrivati.. sono 7404N della texas... ha 14 piedini e non 16 (ma credo che anche tu volevi dire questo: 6 porte Not + 2 per alimentazione). Quali piedini utilizzo per alimentarli. Sull'integrato non ci sta un fico... da un lato una tacca e dall'altra un cerchietto. non vorrei zopparli subito. :|
-
Trovato:
(http://82.186.215.122/7404N.png)
-
Devo aver sbagliato qualcosa o l'integrato non ? quello giusto :x
Non cambia nulla... la fonera come avevo gi? esposto, all'accensione ha i GPIO "attivi" e quindi ci si ritrova con tutti i rel? accesi. 'sto 7404N dovrebbe quindi "invertire" lo stato e risolvere il problema. L'ho alimentato con 5V prendendoli direttamente dal connettore della fon e quindi, per esempio, ho collegato il GPIO7 all'1A e dall'1Y sono andato alla scheda con i rel? ma non cambia nulla... che io colleghi direttamente i GPIO alla scheda o passi dal 7404N al boot mi ritrovo con tuttti i rel? accesi. Dov? il trucco, a parte la mia ignoranza fotonica?
-
si mi ero confuso con il numero degli integrati.
Molto strano che non funzioni, hai controllato che l'integrato sia alimentato correttamente? Prova a mettere le punte del tester direttamente sui 2 piedini di alimentazione e controlla se c'? tensione.
Se ? tutto ok prova a mettere a 5V anche il piedino 1A, dovresti avere 0V sul piedino 1Y. prova tutte le porte ;)
-
Provato e l'integrato funziona... ? la scheda con i rel? che fa le bizze o qualcosa d'altro che mi sfugge... appena ho tempo provo con un'altra che ho preso. Grazie.
-
ok facci sapere ;)
-
Scemo Scemo e scemo. Sto parlando di me ovviamente. Girando la scheda e saldando i fili all'integrato li ho semplicemente collegati inversamente. Ok ora funziona. Non per nulla mi chiamo Truthahn :-D
-
Meno male altrimenti dal nervoso ti saresti infilato nel forno con le patate :-D
-
Lo puoi dire!! Avevo gi? iniziato a spennarmi. :-D
-
Lo puoi dire!! Avevo gi? iniziato a spennarmi. :-D
LOL
quindi risolto tutto?
-
Si si, ora funziona bene anche con la piccola fonera. Grazie!!
-
ottimO!!!
-
Oggi ho installato la Centralina nel Centro comunale. Link buono (si tratta di 200 metri, niente di speciale) e funziona bene... mancano i collegamenti definitivi nel quadro principale per i quali deve venire l'elettricista. Appena ? tutto in ordine faccio 3 foto decenti. Intanto ho avuto un piccolo problema con il port forwarding in quanto avevo bisogno di reindirizzare l'ip pubblico del primo linksys (non si ? voluto condividere la rete del comune, neppure con un firewall, per sicurezza) al secondo linksys posto nel centro con ip privato. Comunque se pu? servire:
naturalmente si deve settare la WAN e la LAN del primo router sul quale si imposta poi il file /etc/config/firewall semplicemente con:
config 'redirect'
option 'src' 'wan'
option '_name' 'nome_assegnato'
option 'proto' 'tcp'
option 'src_dport' '2180'
option 'dest_ip' '192.168.1.140'
option 'dest_port' '80'
Chiaro vero? poi naturalmente va dato il solito riavvio del demone
/etc/init.d/firewall reload
Ho provato ad inserire in linguaggio "iptables" le regole in /etc/firewall.user richiamandole con un include nel file /etc/config/firewall come letto in giro ma non mi funzionava. Forse sbagliavo qualcosa. Cos? funziona.
-
Controllato il link e tutto va alla grande... tranne un particolare che non mi lascia tranquillo:
sul client, che ha installato la centralina, tutto ok mentre sull'Ap vedo nel grafico un uso della cpu sempre al 100 % :?
ecco Top
7020 602 root R 1944 14% 85% /usr/sbin/httpd -p 80 -h /www -r Open
22676 21811 root R 1924 13% 1% top
21775 599 root S 1932 13% 0% /usr/sbin/dropbear -p 22
100 1 root S 1936 13% 0% syslogd -C16
21811 21775 root S 1936 13% 0% -ash
78 1 root S 1936 13% 0% /sbin/syslogd -C16 -S
602 1 root S 1924 13% 0% /usr/sbin/httpd -p 80 -h /www -r Open
592 1 root S 1924 13% 0% crond -c /etc/crontabs -l 5
1 0 root S 1920 13% 0% init
80 1 root S 1920 13% 0% /sbin/klogd
102 1 root S 1920 13% 0% klogd
66 1 root S 1920 13% 0% init
599 1 root S 1872 13% 0% /usr/sbin/dropbear -p 22
7740 1 root S 1528 11% 0% /usr/sbin/nas -P /var/run/nas.wl0.pid
7768 1 root S 1316 9% 0% /usr/sbin/n
Guardate la prima riga: che cavolo sta facendo sto /usr/sbin/httpd? perche il server http consuma cos? tanto che non fa una mazza??
-
Risolto! :-D
Era il firewall, avevo creato per disattenzione un loop pauroso di chiamate alla porta 80. Cosa positiva: un giorno di lavoro con la cpu a stecca sempre al 100% e il prode wrt54gl ha fatto lo stesso il suo lavoro. Son sempre pi? convinto che si tratta di una macchinetta molto affidabile.
-
Oggi ho montato il tutto e provato. Tutto tutto bene!!! :-D Posto due foto.
Questa ? l'antenna netek. Alla fine ho deciso di mettere il wrt54gl dentro forando il muro (60 cm :-D).
(http://82.186.215.122/antenna.jpg)
Questo ? il quadro con la centralina.
(http://82.186.215.122/centrale.jpg)
E questa ? la centralina.
(http://82.186.215.122/centrale1.jpg)
Del linksys ci sono gi? alcune immagini in questo 3D.
Manca il collegamento solo sul primo rel? perch? non ? ancora arrivato l'apriporta.
Si vedono i due termostati, uno per la minima e uno per la massima. L'ethernet blu e quello che collega i gpio del linksys nel controsoffitto alla scheda, l'ethernet grigio quello che porta internet al centro.
Ho provato pi? volte anche i comandi telefonici e va alla grande. Peccato che l'inverno sia finito (scherzo eh!) e che non si possa testare intensamente la gestione del riscaldamento.
ed ecco qui un iwconfig
wl0 IEEE 802.11-DS ESSID:"nabukopenwrt"
Mode:Managed Frequency:2.412 GHz Access Point:xxxxxxxxxxxxxxxx
Bit Rate=54 Mb/s Tx-Power:32 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=5/5 Signal level=-47 dBm Noise level=-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Se riesco a collegare anche il tastierino numerico direi che srarebbe il top. Ora la porta si apre con il telefono. Tutti, direte voi, hanno un cellulare in tasca e quindi un "tastierino numerico portatile" ... invece no! I nonni che usano il centro alcuni giorni della settimana non l'hanno e volevamo proprio evitare di continuare a dare chiavi in giro. Vedremo se riesco. Prossimo lavoro: collegare, sullo stesso Ap, un clone della centralina alla palestra, poi...
Pu? essere interessante sapere la spesa del tutto (che naturalmente di diluir? condividendo lo stesso Ap nei prossimi collegamenti):
Due linksys wrt54gl: 105 Euro (pixmania)
due antenne pannello netek: 40 Euro con spedizione (prese con diverso altro materiale)
Scheda rel?: 15 Euro (futurlec)
Cavi: non saprei, ho preso dal mio magazzino
Scatola gewiss: 10 Euro
Canalina con scomparti: 6 Euro
Staffa per antenna: costruita da Paolo, l'operaio del comune sempre disponibile, che ha fatto anche il super foro nella pietra.
Quindi direi 180 Euro per avere un controllo completo, anche telefonico, del centro.
-
Ottimo lavoro!!! :-)
-
Montato anche l'apriporta con comando telefonico. Funziona benone! :-D
Ora direi che ? proprio finita : ? gi? andata in "produzione" luned? con il corso di teatro e ieri con il centro anziani. A dire il vero ero un po' in ansia... ma poi la centralina si ? comportata benissino. :-D
-
S-P-E-T-T-A-C-O-L-O-!!!
-
Seconda settimana di utilizzo e tutto ok!! oggi abbiamo cominciato a ritirare le chiavi e a far usare il comando telefonico! :-D
-
e quattro settimane :lol:
Direi che a sto punto ? promossa, non ha sbagliato neppure un'interrogazione! :-D
-
Intanto ho preparato un opk del modulo per chi lo vuol provare....
eccolo qua: http://82.186.215.122/webif-gpio_0.1_all.opk (http://82.186.215.122/webif-gpio_0.11_all.opk)
Il tuo progetto ? davvero interessante, potresti rendere nuovamente disponibili i file?
Grazie
-
Certo, l'avevo rimossa perch? in aggiornamento...
http://82.186.215.122/webif-gpio_0.9_all.opk (http://82.186.215.122/webif-gpio_0.9_all.opk)
Ci son alcuni cambiamenti nella pagina comandi che ora quindi ? diventata cos?... (controllo di accesso alla rete e dei fari del teatro interni)
(http://82.186.215.122/schermatauno.png)
e la pagina dellla configurazione della centralina che compare nel modo "Router"...
(http://82.186.215.122/controlli.png)...
Manca sempre il controllo tramite tastierino numerico... :|
-
Grazie per aver rimesso a disposizione il pacchetto.
Una domanda: cos'è il controllo tramite tastierino numerico?
-
Sto cercando di collegare, tramite seriale, al linksys un tastierino numerico in modo da poter gestire il tutto anche tramite lo stesso. Ora, ad esempio, la porta viene aperta tramite telefonata su un asterisk che chiede la pass ma non tutti hanno in tasca un cell e comunque c'? il costo della telefonata per gli utenti. Ma per ora non ci sono riuscito, non tanto per l'interfaccia hardware quanto per l'eseguibile che deve rimanere in ascolto. Provandolo su un pc funzionava ma poi portandolo sul linksys nisba perch? la busybox ha tutti i comandi "limitati" e al "read" mancano delle opzioni. Non si pu? neppure installare la bash per motivi di spazio.
qui cosa intanto ho fatto con l'aiuto del forum http://www.nabuk.org/f/index.php?topic=2376.0 (http://www.nabuk.org/f/index.php?topic=2376.0)
Intanto mi sono arenato ma non arreso... vedremo.
-
...e mettere in parallelo al contatto dell' apriporta una di queste?
http://www.futurashop.it/carrello_sql/prodotti.asp?cate=TASTIERE%20CODIFICATE&title=SICUREZZA#8220-HAA9523S.jpg (http://www.futurashop.it/carrello_sql/prodotti.asp?cate=TASTIERE%20CODIFICATE&title=SICUREZZA#8220-HAA9523S.jpg)
-
Ho l'esigenza di impostare le pass al volo e da altra sede... in pratica un utente fa domanda in comune per avere il centro per una serata o per una attivit? settimanale, l'impiegata imposta la pass per quel giorno o quei giorni e quindi negli altri periodi non ? attiva (quello che avviene ora ma con accesso telefonico). Con quelle che proponi tu ci si deve recare sul posto sia per attivarle che disattivarle e non credo sia possibile impostare giorni e orari. Penso sarebbe possibile interfacciare il tutto con una scheda i2c... ho visto che sono in vendita dei tastierini numerici gi? predisposti per i2c oppure utilizzare una vodafone station sulla quale, oltre al numero di led e quindi gpio disponibili, si potrebbe installare una bash non limitata. Resterebbe comunque il problema del baud della seriale. Altre idee??
Dimeticavo: Grazie per il suggerimento!
-
figurati!!
...mi ha incuriosito molto il tuo progetto ed ho provato a fare quello che hai fatto tu ma con un router AGPF, ho provato a integrare solo la pagina dei comandi copiando (o quasi) la tua, ho creato la cartella/etc/telecontrollo e ho inserito le immagini x le icone... ma non visualizzo la tabella con i comandi....
(http://i223.photobucket.com/albums/dd259/annanondorme/screen-capture-1.png)
questo ? il codice:
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
header "Telecontrollo" "Telecontrollo" "<img src=\"/images/telecomando.jpg\" alt=\"@TR<<Telecontrollo>>\"/>@TR<<Telecontrollo>>"
periferica23="Luci Esterne"
periferica27="Riscaldamento"
periferica30="Luci Interne"
periferica10="Apriporta"
for n in 27 30 23;do
gpio=FORM_gpio$n
eval gpio=\$$gpio
if equal $gpio "ACCENDI" ; then
gpioctl set $n > /dev/null
echo 0 > /etc/telecontrollo/gpio$n
fi
if equal $gpio "SPEGNI" ; then
gpioctl clear $n > /dev/null
echo 1 > /etc/telecontrollo/gpio$n
fi
done
if equal $FORM_gpio10 "APRI" ; then
gpioctl clear 10 > /dev/null
echo 0 > /etc/telecontrollo/gpio10
sleep 4
gpioctl set 10 > /dev/null
echo 1 > /etc/telecontrollo/gpio10
fi
if equal $FORM_generale "SPEGNI_TUTTO" ; then
for n in 10 27 30 23;do
gpioctl set $n > /dev/null
echo 1 > /etc/telecontrollo/gpio$n
done
fi
display_form <<EOF
start_form|@TR<< >>
end_form
EOF
cat <<EOF
<form method="get" action="telecontrollo.sh"><p><p><center>
<table width="60%">
<tr><td><strong>PERIFERICA</td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF
for n in 27 30 23;do
gp="$(cat /etc/telecontrollo/gpio$n)"
per=periferica$n
eval per=\$$per
if equal $gp "0"; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="gpio$n" value="SPEGNI"></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="gpio$n" value="ACCENDI"></td></tr>
EOF
fi
done
cat <<EOF
<tr><td>$periferica10 :</td><td><center><center><img src="/images/chiave.jpg"></td>
<td><center><input type="submit" name="gpio10" value=APRI
onClick="javascript:return confirm('Vuoi veramente aprire la porta?');"></td></tr>
<tr><td>Generale :</td><td></td><td><center><input type="submit" name="generale" value="SPEGNI_TUTTO"></td></tr>
</table></form>
<p> <p>
EOF
display_form <<EOF
start_form|@TR<< >>
end_form
EOF
footer
?>
<!--
##WEBIF:name:Telecontrollo:1:Telecontrollo
-->
L' agpf usa per i gpio il comando gpioctl.
-
Crea nella cartella /etc/telecontrollo questi files in questo modo:
echo "1" > /etc/telecontrollo/gpio10
echo "1" > /etc/telecontrollo/gpio27
echo "1" > /etc/telecontrollo/gpio30
echo "1" > /etc/telecontrollo/gpio23
io non so come funzionano i gpio sul tuo router, cio? se sono attivi con 0 (zero) o con "1". Quindi casomai cambia "1" con "0".
-
ho creato i files ma non riesco a visualizzare lo stesso i comandi....ho provato anche a mettere i permessi della cartella e dei files creati a 777...
la mia versione di OpenWrt ? la Backfire 10.03ci, ma non credo c'entri, ci dev' essere un problema nello script...io sono zero in materia, ? possibile magari partire da uno script pi? semplice solo x verificarne il funzionamento? ...tipo un pulsante che fa l' on/off di un gpio, da shell riesco a comandarli tranquilamente con "gpioctl set xx" e "gpioctl clear xx"
grazie mille x l 'aiuto...
-
Cos? al volo non vedo errori, talvolta ? nel copia incolla che succedono casini. Vedo che hai preso lo script pubblicato in questo 3D e non quelli dell'opk.
Comunque prova cosi intanto: elimina tutti gli spazi bianchi al'inizio delle righe tipo do ve si vede che da errore... quindi dopo
......
<tr><td><strong>PERIFERICA</td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF
for n in 27 30 23;do
gp="$(cat /etc/telecontrollo/gpio$n)"
per=periferica$n
eval per=\$$per
if equal $gp "0"; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="gpio$n" value="SPEGNI"></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="gpio$n" value="ACCENDI"></td></tr>
EOF
fi
done
e lascia il resto uguale e vediamo. :wink: Poi se funziona lo formatti.
-
:lol: ottimo! avevi proprio ragione, ho eliminato gli spazi di inizio riga in quasi tutto il file e si ? messo ad andare
...avevo provato a caricare l' opk che hai creato ma mi butta fuori il seguente errore:
Installing package...
Downloading http://82.186.215.122/webif-gpio_0.9_all.opk.
Downloading http://82.186.215.122/webif-gpio_0.9_all.opk.
Collected errors:
* pkg_parse_from_stream_nomalloc: Missing new line character at end of file!
vorrei anche provare ad interfacciare il sistema ad un asterisk per far partire una chiamata in seguito ad un allarme ricevuto su un gpio...che dici si pu? fare?
-
:roll: quell'opk l'ho preparato ma mai istallato... non vorrei aver fatto qualche pasticcio... magari lo controllo. :roll:
Per quanto riguarda asterisk: l'hai gi? installato sul router? quale versione?
-
ho un serverino con su asterisk 1.6.0.6
-
Intanto ho sistemato l'opk (era un problema del "control" tgzato) e sulla mia vs funziona... naturalemente i gpio non sono gli stessi e il controllo neppure (gpioctl ha il suo bel controllo "get" che manca a gpio e perci? l'ho aggirato con i file di controllo in etc)...
Magari cos? ho l'occasione si sistemarlo anche per la vs.
Spiega meglio quello che vuoi fare per l'asterisk...
quello che ho capito vorresti che al cambiamento di stato di un gpio (provocato da cosa?) il router mandasse un segnale al serverino il quale inoltra una chiamata?
-
in realtà pensavo che con il comando "gpioctl dirin" si potesse utilizzare il pin gpio come ingresso e quindi tramite un contatto esterno cambiare lo stato del gpio...che mi manda una chiamata tramite asterisk
+o- così:
(http://s4.hubimg.com/u/805415_f520.jpg)
ok grazie appena posso provo anch' io il tuo opk...
-
Ho preparato l'opk per la vodafone station che penso vada bene anche per il tuo router...
http://82.186.215.122/webif-gpio-vs_0.9_all.opk
(http://82.186.215.122/webif-gpio-vs_0.9_all.opk)
Se lo usi fammi sapere come va :wink:
-
dunque ho scaricato l' opk e in effetti ora l' installazione va a buon fine, solo che quando punto /cgi-bin/webif/centralina.sh per lanciare lo script che dovrebbe fare le config mi restituisce una pagina bianca con scritto "No such file or directory" ... che sia un problema di permessi? se non sbaglio dovrebbe creare una serie di files .old dei vecchi ma non ne crea nessuno....mentre le cartelle e gli altri files sembrano esserci tutti....
PS x l' asterisk che ne dici ? fattibile?
-
Hai caricato l'ultima postata qui sopra?
-
Provato e riprovato a eliminare e ricaricare sia l'ultimo che il precedente opk sulla vs e funziona perfettamente. Strano...
scusa ma punti naturalmente anche l'indirizzo ip del router vero?
http://ip/cgi-bin/webif/centralina.sh
-
si ho caricato l'ultima, e punto all' ip del router....
-
Strano...
ma nella cartella il file centralina.sh ci sta?
ls /www/cgi-bin/webif
-
si il file c'? ed anche tutti gli altri...ma sembra non venga eseguito
-
potrei provare a lanciare il centralina.sh da terminale come root...
-
ma il browser dice che non esiste...
controlla il contenuto che non sia vuoto oppure avevi gi? un file con quel nome e non lo ha sovrascritto.
L'hai installato da ssh o web?
Altrimenti prova ad eliminare il pacchetto e a reinstallarlo.
-
allora ho provato ad eliminare tutto e reinstallare da ssh, adesso mi ha aperto la pagina di config in modalit? router ma non riesco a switchare in mod centralina mi d? di nuovo quell errore di pagina non trovata...mi s? che mi conviene partire da un installazione pulita di openwrt....appena ho due min lo riflasho e provo a reinstallare il pacchetto, se funziona sulla VS non vedo perch? non dovrebbe funzionare qui...
-
Aspetta...
prova ora a puntare a
http://ip/cgi-bin/webif/centralina/comandi.sh
-
:-D funziona! allora era solo un problema di permessi, ho dovuto settare a 755 /www/cgi-bin/webif/centralina.sh e tutta la cartella /www/cgi-bin/webif/centralina
-
Bene! :-D
Ora in modo router nella pagina centralina puoi fare i settaggi dei gpio adattandoli al tuo router. Il Device 1 vedrai che serve per l'apriporta ed è poi gestito dagli script in modo particolare nel senso che attiva per 2 secondi e poi stacca. Magari a te non serve l'apriporta e quindi dovrai modificare lo script comandi.sh. in /bin/centralina troverai solo uno script di esempio e quindi dovrai scriverne altri adattandoli alle tue esigenze e gpio.
Per l'asterisk non so, nel senso che i gpio in entrata (dirin) li ho usati solo per collegare delle sd... ci pensiamo...
negli script usa "gpioctl dirin gpio" e "gpioctl dirout gpio"
-
Strana per? la storia dei permessi. :?
-
anche con le immagini stessa storia x i permessi...in pratica sono tutti settati a 700, se non li cambio non le visualizzo...boh
x i gpio come input bisognerebbe provare a settarne uno con "gpioctl dirin" mettere a massa il pin e vedere se cambia stato con "gpioctl get"...
-
Prova e facci sapere.
Intanto se vuoi provare la programmazione cancella il contenuto, lasciando il file, di /etc/crontabs/root
e scivi qualche script in /bin/centralina cos? compaiono nella pagina. Lo script apriporta non compare perch? non pu? essere programmabile: troppo rischioso.
-
allora confermo, settando con gpioctl dirin e mettendo a massa il pin cambia lo stato logico (che di default ? high e passa a low) verificabile tramite il comando gpioctl get
..adesso bisognerebbe solo interfacciarlo ad asterisk... :-D
-
Bene! Allora si potrebbe utilizzare uno script che stia in ascolto del gpio scelto e al cambiamento di stato attivi in asterisk (in locale o remoto) un dial-out. dai un occhio qua:
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out+deliver+message
(http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out+deliver+message)
-
ottimo, diventerebbe un sistema di allarme con combinatore telefonico!
-
e certo... guarda anche qui. Questo ? con telecamera ma naturalmente si pu? adattare..
http://blog.liberailvoip.it/2008/01/07/how-to-creare-un-semplice-sistema-allarme-utilizzando-asterisk-come-combinatore-telefonico/
(http://blog.liberailvoip.it/2008/01/07/how-to-creare-un-semplice-sistema-allarme-utilizzando-asterisk-come-combinatore-telefonico/)
-
e questo... http://it-tlc.confusenet.com/showthread.php?t=11655 (http://it-tlc.confusenet.com/showthread.php?t=11655)
...sarebbe figo fare un IVR che ti permette di comandare e conoscere lo stato dei contatti....
-
...allora ho messo in piedi l' ivr per comandare le uscite, l' ho configurato in un asterisk sul router che parla con il mio "asterisk principale" attraverso un trunk iax...mi sembrava una soluzione pi? flessibile e forse pi? semplice da realizzare. Ho fatto si che gli script di comando andassero anche ad aggiornare i files di controllo che va anche a cambiare l' interfaccia web cos? posso accendere da asterisk e spegnere da web...e viceversa. L' unica cosa che non s? come realizzare con asterisk ? fargli leggere quei files x avere un riscontro vocale dello stato delle uscite...
Bene! Allora si potrebbe utilizzare uno script che stia in ascolto del gpio scelto e al cambiamento di stato attivi in asterisk (in locale o remoto) un dial-out.
...anche su questo avrei bisogno di qualche aiutino...puoi farmi qualche esempio di script?
-
Allora serve qualcosa che legga lo stato ed esegua un comando...
se lo script lo vuoi eseguire anche da webif si potrebbe (senza controllare eh :roll:)
#!/usr/bin/webif-page
#prova.sh
<?
. /usr/lib/webif/webif.sh
stato="$(echo "$(gpioctl get 2)" | sed -n '/Pin/p'| awk '{ print $4 }')"
if equal $stato "LOW" ;then
echo " il gipio 2 si trova in stato LOW quindi eseguo questo comando";
fi
exit 0
?>
e lanciarlo da cron ogni tot tempo.
Naturalmente LOW lo puoi cambiare.p
-
...ho provato a giocare un p? con lo script che hai postato e il lavoro lo fa, il problema ? che essendo un alarme dovrebbe segnalare immediatamente la variazione di stato, cron ha una granularit? minima di 1 minuto, allora ho provato a modificare il codice mettendolo in un loop:
#! /bin/bash
while true;
do
stato="$(echo "$(gpioctl get 6)" | sed -n '/Pin/p'| awk '{ print $4 }')"
if [ $stato = "LOW" ]
then
echo "il gipio si trova in stato LOW quindi eseguo questo comando";
fi
sleep 1
done
in questo modo fa un controllo dello stato ogni secondo ma...quando il gpio passa a "LOW" esegue anche il comando specificato ogni secondo, quindi se volessi fargli lanciare una chiamata con asterisk mi chiamerebbe ogni secondo...
L' unica cosa che non s? come realizzare con asterisk ? fargli leggere quei files x avere un riscontro vocale dello stato delle uscite...
mi autocito perch? nn sono ancora riuscito ad implementare questa funzione nell' ivr, i files a cui mi riferivo sono quelli in /etc/telecontrollo/ che hai creato x l' interfaccia...hai idea di come si possa fare?
-
inserisci una variabile per lo sleep così quando esegue la prima volta lo rallenti a piacere. Poi lo fai ripartire quando il "pericolo" è passato.
#! /bin/bash
tempo=1
while true;
do
stato="$(echo "$(gpioctl get 6)" | sed -n '/Pin/p'| awk '{ print $4 }')"
if [ $stato = "LOW" ]
then
echo "il gipio si trova in stato LOW quindi eseguo questo comando";
tempo=i_secondi_che_vuoi
fi
sleep $tempo
done
Avevo pensato anch'io a un loop ma mi chiedevo quante risorse consuma.
Per il resto ci penso... ci pensiamo qui in famiglia. :wink:
-
Domanda:
il problema ? far leggere i files dall'asterisk locale o da remoto?
-
in locale, sia asterisk che i files sono sul router...
Avevo pensato anch'io a un loop ma mi chiedevo quante risorse consuma.
appena ho due min provo lo script cos? modificato e vedo quante risorse mi succhia...
-
Pu? andare... consuma praticamene nulla.
-
Ho risistemato l'opk per la vs... credo di aver risolto anche il discorso dei permessi... avevo alcuni file non di propriet? di root quando ho costruito l'opk. Inoltre c'era un problema con le categorie nei menu... la webif di questa versione ? diversa di quella per il linksys e le sottocategorie sparivano. Ora dovrebbe essere a posto. :roll:
-
Avevo esultato... quasi :roll: per aver creduto di aver trovato la soluzione per il tastierino numerico, infatti abilitando la seconda seriale presente (con setserial) sul wrt54gl ho visto che si abilitava a 9600 baud che erano perfetti per la scheda indicatami da silverfox... allora installo pyserial e python-mini e.... col cavolo!! anche se mini ? sempre 3,9 Mb e occuperebbe 10 volte lo spazio disponibile. :cry: :cry:
-
...e installarli su una memoria usb?
http://www.erriko.it/internet-co/fonera/la-fonera-2-0n-episodio-4-installare-i-programmi-su-memoria-usb-esterna/comment-page-1/ (http://www.erriko.it/internet-co/fonera/la-fonera-2-0n-episodio-4-installare-i-programmi-su-memoria-usb-esterna/comment-page-1/)
-
Non è possibile per l'uso che ne devo fare... se collego una sd (una usb non ci sta sul wrt54gl) devo utilizzare tutti i gpio già utilizzati per pilotare i relè. Sto smanettando con stty e setserial... con fatica intanto... stty è inserito nelle coreutils (altro package da 3 mb) ma scompattandolo e copiando solo stty sul linksys funziona quasi tutto: imposto il baud, definisco i tasti ma cavolaccio il tasto return non lo prende... proprio quello che mi serve. Stty definisce le impostazioni del terminale, il suo comportamento e la visualizzazione degli output....
ad esempio se in uno script si inserisce (l'esempio è sulla seriale 1 del wrt)
stty -F /dev/tts/1 erase 1
da quel punto il tasto '#' funziona da elimina (cancella indietro)
o
stty -F /dev/tts/1 19200
imposta il baud rate
ma, e dovrebbe farlo,
stty -F /dev/tts/1 eof #
non assegna a # il return...
La sfida continua :-D
-
Anche io tempo fa avevo pensato alla realizzazione di qualcosa di simile..
Ovviamente non faccio in tempo a pensare che gente come voi gia' l'ha pensato prima di me :-D
Comunque cerchero' di realizzare il tutto sul mio AGA della telecom... solo che purtroppo devo scrivermi da zero l'interfaccia web per la gestione dei GPIO. Ovviamente sia la gestione dei GPIO che anche OpenWRT non ci sono, ma con una ioctl si possono accendere i led quindi usero' tutti i pin dei led inutilizzati per collegarli ai rele' e poi una serie di script dovrei riuscire a creare la gestione...
Spero che il tutto funzioni :-D
Se vi fa piacere vi terro' aggiornati sulla questione..
-
Se vi fa piacere vi terro' aggiornati sulla questione..
devi !!! :-D
-
Eccome se devi!
Intanto la centralina al centro ha superato i 100 giorni di attivit? e non ha mai steccato. Unico neo, come descritto sopra, la mancanza di un tastierino numerico per aprire la porta al posto della chiamata con cellulare... per questo mi sto dedicando al bus i2c che ? molto facile da realizzare con openwrt e kernel 2.6. Vorrei riuscire a collegare 'sta stramaledetta keypad e, penso, usando un pcf8574 dovrei riuscirci... almeno spero.
-
Eccome se devi!
Intanto la centralina al centro ha superato i 100 giorni di attivit? e non ha mai steccato. Unico neo, come descritto sopra, la mancanza di un tastierino numerico per aprire la porta al posto della chiamata con cellulare... per questo mi sto dedicando al bus i2c che ? molto facile da realizzare con openwrt e kernel 2.6. Vorrei riuscire a collegare 'sta stramaledetta keypad e, penso, usando un pcf8574 dovrei riuscirci... almeno spero.
Premetto non capisco moltissimo di elettronica, pero' in linea teorica con un pic puoi risolvere e ti spiego come..
crei un circuito appunto con un pic che ha almeno 10 input. Ad ogni input gli fai corrispondere un valore numerico da 0 a 9 accumulandolo in un array. dopo di che non appena vengono inserite ad esempio 6 cifre (deciderai tu nel firmware) il pic sparera` l'arrwy sulla seriale ossia il numero formato dalla pressione dei tasti di input.. poi metti in ascolto sul router un demone che legge ogni 2 secondi (altrimenti succhi troppa cpu) la seriale e non appena la sequenza e' esatta corrisponde con il numero esatto lanci il comando per aprire la porta..
Ovviamente ci vogliono i controlli e molto altro e anche se e' un po fantasioso, credo che in linea di massima debba funzionare... solo che poi devi costruirti un tastierino in modo artigianale e non so se ti conviene :-D
quindi se riesci a far funzionare uno gia' bello e' pronto e' molto meglio.
P.S.
vi accorgerete presto che spesso scrivo cose assurde ma che probabilmente funzionano :mrgreen:
-
Grazie del suggerimento ma avendo 'sto bel bus i2c in funzione penso sia pi? facile con il pcf8574 che ? i/o...
esempio...
ora l'ho collegato al bus i2c-1...
root@OpenWrt:~# pcf8574 -d /dev/i2c-1 -a 0x38 -r -v
Testing
LSB MSB
1 1 1 1 1 1 1 1
root@OpenWrt:~#
collego a massa il pin 1 e...
root@OpenWrt:~# pcf8574 -d /dev/i2c-1 -a 0x38 -r -v
Testing
LSB MSB
0 1 1 1 1 1 1 1
root@OpenWrt:~#
con il pin 3 naturalmente...
root@OpenWrt:~# pcf8574 -d /dev/i2c-1 -a 0x38 -r -v
Testing
LSB MSB
1 1 0 1 1 1 1 1
root@OpenWrt:~#
bisogna "soltanto" scrivere lo script mappando il tastierino e mettendo i valori in un registro.
I tastierini sono divisi in colonne e righe:
1--> | 1 | 2 | 3 |
2--> | 4 | 5 | 6 |
3--> | 7 | 8 | 9 |
4--> | * | 0 | # |
| | |
5 6 7
quindi con 7 pin si pu? mappare una tastiera da 4X3 e aggiungendo una colonna ( pin 8 ) una 4x4.
Serve uno script che legga in continuazione i valori, li metta in una array e quando il pin 7 and 4 (#) sono a 0 esegua e resetti l'array,
-
Sono sempre del parere che la tastiera se la compri gi? pronta fai prima e viene meglio :|
Una tastiera blindata la trovi per 70? , non devi fare altro che montarla.
Ho montato qualcuna di queste e devo dire che vanno proprio benone.
La tastiera manda impulsi dtmf alla scheda elettronica che va montata in interno e questa
ha il rel? configurabile come nc/no, veloce da configurare e sicura.
http://www.ciatrading.it/Categorie.asp?CAMPO_CODCAT=CodCategoriaPadre_CAT&CHIAVE_CODCAT=001377001CIA&CAMPO_TIPOCAT=CodCategoriaTipo_CAT&CHIAVE_TIPOCAT=&CHIAVE_CODCATR=
-
Sicuramente va meglio ma non la puoi programmare stando in ufficio quando vengono a prenotare una sala dando un codice univoco (decine) ad ogni utilizzatore che valga dalle, per esempio, 20 alle 23 di una data precisa e che si disabiliti automaticamente.
intanto ho provato a scrivere due righe e funziona... mi manca la mappatura e vedere quanto ? esoso in risorse.
#!/bin/sh
while true;
do
valore="$(echo "$(pcf8574 -d /dev/i2c-1 -a 0x38 -r -v)" | sed -n '/ 1/p')"
for n in 1 2 3 4 5 6 7;do
stato="$(echo $valore | awk '{ print $'$n' }')"
if [ $stato == 0 ];then
pin=$n
eval pin$n=$stato
#echo pin$n $pin1
fi
qui ci va la mappatura
se $pin1 e $pin5 sono a 0 ? stato schiacciato il numero 1 ....registra
se $pin1 e $pin6 sono a 0 ? stato schiacciato il numero 2 ....registra
se $pin4 e $pin7 sono a 0 ? stato schiacciato # .... esegui, porta a 1 tutti i pin e riparti
done
done
-
Purtroppo le cose che ciclano all'infinito succhiano un bel po' di cpu..
Io ho scritto un fix al firmware basato sull'USRobotic per l'AGA che implementa il funzionamento del led ethernet e in pratica non fa altro che ciclare e controllare se e' avvenuto il plug e se passano byte su quella data interfaccia.. bhe appena scritto consumava fino al 5% di CPU, poi ottimizzandolo son arrivato al 1.6%...
Per ottimizzarlo ho semplicemente inserito uno sleep di 2 sec all'interno del ciclo infinito per rallentarlo.
Magari puoi fare anche tu un test e vediamo di quanto migliora...
-
Altro passo... funziona!!! :-D
Pronto da inserire in uno script della webif :wink:
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
while true;
do
valore="$(echo "$(pcf8574 -d /dev/i2c-1 -a 0x38 -r -v)" | sed -n '/ 1/p')"
for n in 1 2 3 4 5 6 7;do
stato="$(echo $valore | awk '{ print $'$n' }')"
if equal $stato "0" ;then
pin=$n
eval pin$n=$stato
somma=$somma$n
echo $somma
for cox in "15 1" "16 2" "17 3" "25 4" "26 5" "27 6" "35 7" "36 8" "37 9" "45 ast" "46 0" "47 fine";do
set -- $cox
if equal $somma "$1"; then
codice="$(echo "$codice $2")"
eval somma=""
if equal $2 "fine";then
echo "qui deve mandare il codice allo script"
for n in 1 2 3 4 5 6 7;do
pin=$n
eval pin$n=1
eval codice=""
done
fi
fi
done
fi
done
sleep 1
done
?>
"ast" e "fine" corrispondono ai tasti "*" e "#".
la mappatura ? arbitaria.
-
E si magia parecchio anche con lo sleep... ma non posso rallentarlo di pi?
siamo al 3-4% di CPU :|
-
Naturalmente, come sempre, se avete di meglio o correzioni ve ne sar? grato.
-
Allora ho pensato questo per risparmiare cpu...
Se non si "attiva" il tastierino ha uno sleep di 5 secondi e non va a leggere inutilmente tutti i valori per nulla.
Per attivarlo basta premere il tasto "*" per 5 secondi (il tempo massimo per superare lo sleep) e quindi poi lo sleep passa a 1 finch? non si preme #, cio? si finisce l'inserimento.
Consumo con sleep 5 praticamente 0.
ora per? devo pure inserire un tempo massimo di inserimento dopo di che stacca automaticamente...
-
Credo che quest'ultima e' la scelta piu' giusta...
Fai qualche test e facci sapere se tutto va.. io intando sto sistemando il mio piccolo Lab e ancora non ho iniziato il lavoro con il mio AGA
-
Rifatto un po' lo script mappando la mia tastiera che ? cos?:
2----->| 1 | 2 | 3 |
7----->| 4 | 5 | 6 |
6----->| 7 | 8 | 9 |
4----->| * | 0 | # |
| | |
3 1 5
Quindi per attivarla uso il tasto * (4 -3) e per leggere e resettare il tasto # (4 -5).
Ho messo un controllo che dopo circa 60 secondi si resetta se non ? stata completata l'operazione.
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
while true;
do
valore="$(echo "$(pcf8574 -d /dev/i2c-1 -a 0x38 -r -v)" | sed -n '/ 1/p')"
statoa="$(echo $valore | awk '{ print $4 }')"
statob="$(echo $valore | awk '{ print $3 }')"
if equal $statoa "0" && equal $statob "0" ;then
attiva="1"
fi
if equal $attiva "1";then
i=$((i+1))
if equal $i "60";then
for n in 1 2 3 4 5 6 7;do
pin=$n
eval pin$n="1"
eval codice=""
eval attiva="0"
eval numero=""
eval i="0"
done
fi
tempo=1
for c in 2 7 6 4;do
statoc="$(echo $valore | awk '{ print $'$c' }')"
if equal $statoc "0";then
for r in 3 1 5;do
stator="$(echo $valore | awk '{ print $'$r' }')"
if equal $stator "0";then
if equal $c "2" && equal $r "3";then
numero="1"
fi
tempo=1
for c in 2 7 6 4;do
statoc="$(echo $valore | awk '{ print $'$c' }')"
if equal $statoc "0";then
for r in 3 1 5;do
stator="$(echo $valore | awk '{ print $'$r' }')"
if equal $stator "0";then
if equal $c "2" && equal $r "3";then
numero="1"
fi
if equal $c "2" && equal $r "1";then
numero="2"
fi
if equal $c "2" && equal $r "5";then
numero="3"
fi
if equal $c "7" && equal $r "3";then
numero="4"
fi
if equal $c "7" && equal $r "1";then
numero="5"
fi
if equal $c "7" && equal $r "5";then
numero="6"
fi
if equal $c "6" && equal $r "3";then
numero="7"
fi
if equal $c "6" && equal $r "1";then
numero="8"
fi
if equal $c "6" && equal $r "5";then
numero="9"
fi
if equal $c "4" && equal $r "1";then
numero="0"
fi
if equal $c "4" && equal $r "5";then
numero="fine"
fi
fi
if equal $numero "fine";then
echo "qui deve mandare il codice $codice allo script"
for n in 1 2 3 4 5 6 7;do
pin=$n
eval pin$n="1"
eval codice=""
eval attiva="0"
eval numero=""
done
fi
codice="$codice$numero"
echo $codice
numero=""
done
fi
done
else
tempo=5
fi
sleep $tempo
done
?>
Funziona bene, a "riposo" consuma praticamente nulla e attiva circa 2-3% di CPU
Ora il mio problema ? un altro:
l'Ho testata mettendo a massa con dei cavetti i pin collegati al pcf8574 e va bene, legge, memorizza, resetta ecc...
ma con la tastierina come faccio a mettere a massa i pin? :?
La tastierina non fa altro che mettere in corto i vari collegamenti, esempio il 2 e il 3 che corrispondono al numero 1 ecc..
ma come faccio premendo il tasto a collegare a massa i pin del pcf? :? :?
Cosa devo mettere tra la tastiera e il pcf per farla funzionare?
-
Ragazzi su, datemi un'idea... aiutate 'sto povero tacchino spennacchiato!
-
(http://www.tormini.it/truthrepo/img/i2ckeypad.jpg)
Ho trovato da diverse parti questo schema per interfacciare un tastierino numerico al pcf8574 ma poi nessuna spiegazione su come gestire il tutto...
son giorni che faccio andare le poche sinapsi che mi son rimaste ma non sono riuscito a tirar fuori nulla e googlando neppure...
ora mi ? venuta questa... mi sembra possibile anche se devono essere messi in programma ulteriori loop dello script.
Vediamo di spiegare cosa m'? venuto:
Collego come in figura la key al pcf8574, le resistenze di pull-up sui pin delle colonne, e setto tutti i pin a 1
lo script, quando gira, fa questo:
setta il pin della prima riga a 0 (pin 2 della mia keyboard)
va a leggere i pin delle colonne, se un pin ? a 0 ? quello della colonna premuta.
altrimenti riporta il pin della prima riga a 1, setta il pin della seconda riga a zero
va a leggere i pin delle colonne, se un pin ? a 0 ? quello della colonna premuta....
fa tutte le righe e poi riprende la lettura dall'inizio.
loop su loop su loop. ma non vedo altro modo.
Ci sta o son completamente fuso?
Siate sinceri ditemi pure la verit?!! :-D
-
Funziona! :-D :-D :-D vediamo ora quanto consuma...
-
Lo script si mangia anche me se non sto attento. :-D
Devo pensare a qualche alternativa..
-
intanto ho preparato la scheda da interfacciare con il bus i2c..
(http://www.tormini.it/truthrepo/img/schedai2c.JPG)
(http://www.tormini.it/truthrepo/img/schedai2c1.JPG)
1. termometro ds1621
2. rtc ds1307
3. quarzo 32786HZ
4. pcf8574 per pilotare i rel?
5. pcf8574 per interfacciare la keyboard
6. pin per connettere 8 rel?
7. espansione bus
8. pin per connettere la keyboard
9. resistenze di pull-up per il bus i2c
10. resistenze di pull-up per la keyboard
11. 12 V
12. 5 V
13. seriale
14. 3,3 V
15. Batteria per il RTC
16. μA78L00 -regolatore di voltaggio (12 V -> 5V)
I 2 pcf8574 sono naturalmente su indirizzi diversi, uno per gestire la scheda rel? e uno per interfacciare la keyboard quando avr? trovato una soluzione "economica" per la cpu...
Per gestire gli indirizzi del pcf8574:
L' indirizzo del pcf8574 ? composto da un numero a 7 bit: i 3 bit inferiori sono dati da A0, A1, e A2 e i restanti 4 bit sono 0100 oppure 0111 per la versione PCF8574A.
Collegando a + o - A0, A1 e A2 si possono quindi dare indirizzi diversi in questo modo:
(http://www.tormini.it/truthrepo/img/table_01.gif)
si possono in questo modo, utilizzando pcf8574 e pcf8574A fino a 16 integrati sullo stesso bus. :-o :-o :-o :-o
Per una spiegazione pi? dettagliata sull'utilizzo di pi? integrati pcf8574:
http://www.tormini.it/index.php?dir=truthrepo/pdf/&file=scyb031.pdf
(http://www.tormini.it/index.php?dir=truthrepo/pdf/&file=scyb031.pdf)
-
:lol: wow ottimo lavoro!
-
ed eccoli qua...
root@OpenWrt:~# i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- 3b 3c -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@OpenWrt:~#
-
Ed ecco la pagina sulla webif che comanda il pcf8574
(http://www.tormini.it/truthrepo/img/a.jpg)
e questo ? il codice:
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
# Pagina comandi - centralina i2c
# truthahn - Nabuk Family
#############################################################################
header "Info" "System" "<img src=\"/images/telecomando.jpg\" alt=\"@TR<<>>\"/>@TR<< Comandi >>"
bus=1
indirizzo=0x3b
for n in $(seq 1 8);do
eval pin$n="$(cat /etc/centralina/device | sed -n '/Device'$n'/p'| awk '{ print $3 }')"
done
gradi="$(echo $(ds1621 -d /dev/i2c-1 -a 0x48))"
for n in $pin1 $pin2 $pin3 $pin4 $pin5 $pin6 $pin7 $pin8;do
eval stato$n="$(echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -r -v)" | sed -n '3p' | awk '{ print $('$n') }')"
done
for n in $pin1 $pin2 $pin3 $pin4 $pin5 $pin6 $pin7 $pin8;do
pin=FORM_npin$n
eval pin=\$$pin
statozero="0000"
if equal $pin "ACCENDI" ; then
eval stato$n="0"
fi
if equal $pin "SPEGNI" ; then
eval stato$n="1"
fi
stato="$stato8$stato7$stato6$stato5$stato4$stato3$stato2$stato1"
statopin2="$stato4$stato3$stato2$stato1"
statopin1="$stato8$stato7$Stato6$stato5"
if ! equal $pin " " ;then
if equal $statopin1 "0000" ;then
stato="$statopin2"
fi
if equal $statopin2 "0000" ;then
stato="$statopin1$statozero"
fi
codice="$(echo "ibase=2; $stato" | bc)"
codiceesa="$(echo "obase=16; $codice" | bc)"
echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -w 0x$codiceesa)"
fi
done
done
if equal $FORM_pin1 "APRI" ; then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto aprendo la porta..."
stato1="0"
statochiudi="1"
statoa="$stato8$stato7$stato6$stato5$stato4$stato3$stato2$stato1"
statob="$stato8$stato7$stato6$stato5$stato4$stato3$stato2$statochiudi"
statopin2="$stato1$stato2$stato3$stato4"
statopin1="$stato5$stato6$Stato7$stato8"
if equal $statopin1 "0000" ;then
statoa="$stato4$stato3$stato2$stato1"
statob="$stato4$stato3$stato2$statochiudi"
fi
if equal $statopin2 "0000" ;then
statoa="$statopin8$stato7$stato6$stato$statozero"
statob="$statopin8$stato7$stato6$stato$Stato1$stato1$stato1$statochiudi"
fi
codicea="$(echo "ibase=2; $statoa" | bc)"
codiceesaa="$(echo "obase=16; $codicea" | bc)"
codiceb="$(echo "ibase=2; $statob" | bc)"
codiceesab="$(echo "obase=16; $codiceb" | bc)"
echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -w 0x$codiceesaa)"
sleep 2
echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -w 0x$codiceesab)"
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi
if equal $FORM_internet "ABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto abilitando l'accesso a Internet"
uci set network.eth0.vlan0="0 1 2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi
if equal $FORM_internet "DISABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto disabilitando l'accesso a Internet"
uci set network.eth0.vlan0="2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi
if equal $FORM_generale "SPEGNI_TUTTO" ; then
echo "Attendi... sto chiudendo tutto..."
echo "<img src=\"../../../images/clessidra.gif\">"
echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -w 0xff)"
ocat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"300")
</script>
EOF
exit
fi
cat <<EOF
<form method="get" action="comandi.sh">
<p><p><center>
Temperatura interna: $gradi Gradi
<table width="40%">
<tr><td><strong></td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF
cat <<EOF
<tr><td>Apriporta :</td><td><center><center><img src="/images/chiave.jpg"></td>
<td><center><input type="submit" name="pin1" value=APRI
onClick="javascript:return confirm('Vuoi veramente aprire la porta?');"></td></tr>
EOF
for n in $pin2 $pin3 $pin4 $pin5 $pin6 $pin7 $pin8;do
stato="$(echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -r -v)" | sed -n '3p' | awk '{ print $('$n') }')"
per="$(cat /etc/centralina/device | sed -n '/ '$n'/p'| awk '{ print $2 }')"
per="$(echo "$per" | sed '/_/s// /g')"
if equal $stato "0" ; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="npin$n" value=SPEGNI ></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="npin$n" value=ACCENDI ></td></tr>
EOF
fi
done
accesso="$(echo "$(uci get network.eth0.vlan0)" | awk '{ print $1 }' )"
if equal $accesso "2";then
cat <<EOF
<tr><td>Internet :</td><td><center><img src="/images/internet1.jpg"></td>
<td><center><input type="submit" name="internet" value="ABILITA"
onClick="javascript:return confirm('Vuoi veramente abilitare Internet?');"><td></tr>
EOF
else
cat <<EOF
<tr><td>Internet :</td><td><center><img src="/images/internet.jpg"></td>
<td><center><input type="submit" name="internet" value="DISABILITA"
onClick="javascript:return confirm('Vuoi veramente dasabilitare Internet?');"></td></tr>
EOF
fi
cat <<EOF
<tr><td>Generale :</td><td></td><td><center><input type="submit" name="generale" value="SPEGNI_TUTTO" ></td></tr>
</table></form>
<p> <p>
EOF
display_form <<EOF
start_form|@TR<< >>
end_form
EOF
presenza="$(cat /etc/centralina/presenza)"
if ! equal $presenza "" ; then
echo "Il centro ? attualmente utilizzato da:<strong> $presenza </strong>"
fi
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"30000")
</script>
EOF
footer
?>
Bene questa ? andata :-) , vediamo ora 'sto cavolo di keyboard.
Come si vede nella pagina mi da anche la temperatura che servir? per gestire il riscaldamento... anche qui ho un piccolo problema, forse dovuto a qualche saldatura, il ds 1307 non mi tiene l'orario quando spengo il router. :-(
-
Io continuo a dire che tu sei un grande!!!!!!!!
Favoloso!!!
Non so se puo esserti utile!
http://www.gioblu.com/tutorials/comunicazione/73-tutorial-gpio-port-expander-e-arduino (http://www.gioblu.com/tutorials/comunicazione/73-tutorial-gpio-port-expander-e-arduino)
-
Grazie dei complimenti e del link anche se per l'arduino le cose son un po' diverse a quanto ho capito. Ora sono un po' in stallo... prima in vacanza e ora il lavoro con quello che comporta riprendere in mano un sacco di cose. Ma naturalmente si va avanti, tra un paio si settimane si riprende. :evil:
-
Cosa hai usato come apriporta? mdello,marca,e come hai interfacciato l'apriporta con le chiamate telefoniche?
Grazie mille! :-)
-
Ciao... Ho usato un semplice apriporta elettrico, robusto visto che deve chiudere un portone, me lo ha semplicemente procurato il falegname del comune. L'ho collegato al trasformatore a 12 volt gi? presente nel quadro elettrico (serve anche per il campanello) e collegato a un rel? pilotato dalla scheda collegata ai gpio. La schermata che vedi sopra non fa altro che chiudere il rel? per 2 secondi, il tempo che apra la porta, e poi stacca (nello script lo vedi).
Per il telefono invece ho fatto cos?:
il centro ? collegato al comune con un link con un altro wrt54gl che ha un ip fisso e il firewall che gira le chiamate al router del centro.
Questa schermata serve per impostare le pass per gli utenti.
(http://www.tormini.it/telefono.jpg)
e scrive in un fle le impostazioni.
su un server dove ho installato asterisk ho creato un context..
[nome context]
exten => s,1,Answer()
exten => s,n,Read(INPUT|agent-pass|0||3|10)
exten => s,n, SayDigits(${INPUT})
exten => s,n,AGI(nomefile.sh,${INPUT})
exten => s,n,Hanghup()
collegato naturalmente d un numero che quando riceve una chiamata chiede una pass seguita da # e passa il tutto a nomefile.sh
#!bin/sh
lynx http://ipfirewall:porta_che_viene_reindirizzata/cgi-bin/telefono.sh?pass=$1
exit
che chiama una pagina, telefono.sh, sul router del centro la quale controlla la pass e se ? valida per quel giorno apre la porta altrimente nisba.
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
#header
giornosett="$(date +%u)"
giorno="$(date +%d)"
mese="$(date +%m)"
anno="$(date +%Y)"
ora="$(date +%H:%M:%S)"
file=/etc/centralina/telefoni
righe=$(wc -l /etc/centralina/telefoni | awk '{print $1}')
for numero in $(seq 1 $righe); do
riga="$(cat $file | sed -n "${numero}p")"
pass="$(echo "$riga" | awk '{split ($0, a, " ");print a[5]}')"
abil="$(echo "$riga" | awk '{split ($0, a, " ");print a[6]}')"
gs="$(echo "$riga" | awk '{split ($0, a, " ");print a[1]}')"
if equal $gs "TUTTI";then
gs=$giornosett
fi
giorno1="$(echo "$riga" | awk '{split ($0, a, " ");print a[2]}')"
if equal $giorno1 "TUTTI";then
giorno1=$giorno
fi
mese1="$(echo "$riga" | awk '{split ($0, a, " ");print a[3]}')"
if equal $mese1 "TUTTI";then
mese1=$mese
fi
#utente apre la porta
if equal $FORM_pass "$pass" && equal $abil "abil" && equal $gs "$giornosett" && equal $giorno1 "$giorno" && equal $mese1 "$mese";then
echo "$giornosett $giorno $mese $anno $ora $pass " >> /etc/centralina/log/log_comandotelefono
gpio disable 2
echo 0 > /etc/centralina/gpio2
sleep 1
gpio enable 2
echo 1 > /etc/centralina/gpio2
exit
fi
done
for n in $(seq 1 6); do
passadmin="$(cat /etc/centralina/passadmin | sed -n '/pass'$n'/p'| awk '{ print $2 }')"
progadmin="$(cat /etc/centralina/passadmin | sed -n '/pass'$n'/p'| awk '{ print $3 }')"
if equal $FORM_pass "$passadmin";then
/bin/centralina/$progadmin
echo "$giornosett $giorno $mese $anno $ora $progadmin " >> /etc/centralina/log/log_comandotelefonoadmin
exit
fi
done
exit
?>
Semplice e funziona da sei mesi senza sbagliare un colpo. Naturalmente ha il limite che se cade internet non pu? funzionare ma fino ad oggi non ? mai successo. nello script c'? una parte che riguarda gli amministratori ai quali vengono assegnate pass, con un'altra pagina sulla webif, che valgono sempre con le quali hanno il controllo completo: luci, porta, riscaldamento...
Spero di essere stato chiaro. :wink:
-
Hey truthahn, percaso questa "centralina" ti legge pure i segnali analogici tipo la temperatura?
-
Cosa intendi per segnali analogici? Con degli integrati i2c, con pochi euro, puoi leggere temperatura, umidit?, prossimit? e chi pi? ne ha pi? ne metta. :-D
-
Cosa intendi per segnali analogici? Con degli integrati i2c, con pochi euro, puoi leggere temperatura, umidit?, prossimit? e chi pi? ne ha pi? ne metta. :-D
si intendevo quello che hai appena detto :-D
-
Buon giornon e buona domenica a tutti!
Truthahn tu sarai messo in "croce"
Vorrei fare una cosa del genere ma non saprei da dove partire, sono completamente "utonto" in merito.
Quindi vorrei fare con te un manuale passo passo per realizzare un semplice apparato per 3 carichi (Luce,ventola,porta)
Sicuramente utilissimo a moltissime persone!
Sempre se tu vuoi e hai pazienza!
Iniziamo con cosa serve,tutto l'hardware necessario!
Sicuramente un wrt54gl con openwrt "poi"
-
Buona domenica anche a te Kidy...
Non serve molto, per pilotare tre carichi senza termometri e altre "diavolerie" non serve un bus i2c, basta e avanza utilizzare i gpio collegati a una scheda con rel? quindi anche una fonera (2100 meglio) o una vodafone station vanno benissimo. Io a casa per 4 carichi (riscaldamento, pompa, antigelo pompa e irrigazione) uso da un anno una fon 2100 e va benissimo.
Per la scheda rel? dipende naturalmente da quale carico deve sopportare. Per il centro utilizzo questa:
http://www.futurlec.com/Opto_Relay_4.shtml
(http://www.futurlec.com/Opto_Relay_4.shtml)
Che costa 15 $ e che si alimenta a 12 volt (come i wrt54gl o la vs),
a casa una trovata alimentata a 5 volt come la fon 2100 (non ricordo dove l'avevo presa... sulla baia mi sembra, ma sul sito di prima ne esistono alimentate a 5 volt).
Per la porta un normale apriporta elettrico con il suo alimentatore.
Non serve altro oltre a openwrt e quattro saldature.
Altre domande?? :-)
-
Ok Truthahn io ho un wrt54gl dove devo mettere open.....
(Posso usare una fonera 2200?)
Mi passeresti gentilmente quello che hai montato sul tuo!(Magari un link o ftp)
Hai anche la guida per inserire open..velocemente per il wrt54gl...
Domani prendo anche io tre schede dal tuo sito (Ma non esistono le stesse in Italia?) magari sulla baya?(Certo non arriveranno presto....vabbe!)
-
Con la fon 2200 ho avuto sempre problemi con i gpio mentre con la 2100 tutto liscio.
Per openwrt:
La "centralina" del centro monta la 8.09 versione xwrt, non era ancora uscita la backfire sulla quale sto invece utilizzando il bus i2c, se non hai problemi particolari usa quella. Se sul wrt54gl hai il firm originale basta che lo carichi tramite gui da upgrade firmware utilizzando questo:
http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin
(http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin)
poi entri (192.168.1.1) e lo setti per la tua rete.
Carichi gli script per i gpio e le programmazioni...
opkg install http://82.186.215.122/index.php?dir=&file=webif-gpio_0.9_all.opk
e poi punti il browser all'indirizzo:
indirizzo_wrt54gl/cgi-bin/webif/centralina.sh
che configura il tutto, installa i file necessari ecc...
Le schede in Italia si trovano ma a tre volte il prezzo. :|
-
...ciao se ti pu? aiutare io ho comperato le schede rel? qui: http://www.denkovi.com/category/1/relay-boards.html (http://www.denkovi.com/category/1/relay-boards.html)
..sono in Bulgaria, nel giro di una decina di gg mi sono sempre arrivate col corriere, e il prezzo ? buono...
-
Per Truthahn
Ho un piccolo regalino per te se vuoi e ti serve!!!
Visto che vivi in posti freddini ho visto......
se pu? essere utile io ho questo che prende polvere in lab.....
in piu' ti regalo anche il termostatino (Nuovo) con il quale se la temp...sende sotto la tua impostazione avvia il carico!!
http://www.flickr.com/photos/27894223@N04/4982998389/#/photos/27894223@N04/4982998389/lightbox/
SONO 5 FOTO DA VEDERE
Praticamente e' un riscaldatore (Ottimo)
Se vuoi ti invio il tutto con le sole spese di spedizione,
Per marco1979
Grazie ,ora vado a dare un occhio!!
-
Gentilissimissimo Kidy... mi sarebbe veramente utile, stavo proprio pensando di prendere qualcosa per cambiare l'asciugacapelli usato lo scorso anno per il vano pompa dell'acqua del mio eremo. Ti mando un PM. Veramente grazie.
-
Gentilissimissimo Kidy... mi sarebbe veramente utile, stavo proprio pensando di prendere qualcosa per cambiare l'asciugacapelli usato lo scorso anno per il vano pompa dell'acqua del mio eremo. Ti mando un PM. Veramente grazie.
Ok mp!
-
Con la fon 2200 ho avuto sempre problemi con i gpio mentre con la 2100 tutto liscio.
Per openwrt:
La "centralina" del centro monta la 8.09 versione xwrt, non era ancora uscita la backfire sulla quale sto invece utilizzando il bus i2c, se non hai problemi particolari usa quella. Se sul wrt54gl hai il firm originale basta che lo carichi tramite gui da upgrade firmware utilizzando questo:
http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin
(http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin)
poi entri (192.168.1.1) e lo setti per la tua rete.
Carichi gli script per i gpio e le programmazioni...
opkg install http://82.186.215.122/index.php?dir=&file=webif-gpio_0.9_all.opk
e poi punti il browser all'indirizzo:
indirizzo_wrt54gl/cgi-bin/webif/centralina.sh
che configura il tutto, installa i file necessari ecc...
Le schede in Italia si trovano ma a tre volte il prezzo. :|
ok vorrei inserire la backfire perch? in futuro magari gestir? anche il bus 2ic,dove posso trovarla?per il wrt45gl?
Questa sera scendo in lab e vedo se il wrt54... ? funzionante (spero di si)altrimenti cerco di sbloccarlo!
-
Qui nel mio repo (http://www.tormini.it/index.php?dir=truthrepo/openwrt/wrt54g/) trovi le immagini compilate da me. *.bin (per caricarlo la prima volta se hai il firm originale o successivamente tramite sistema tftp) e l'immagine *.trx se devi riflasharlo successivamente tramite webif. Nella cartella package trovi anche i pacchetti gi? compilati.
Il pupo se ? in coma lo rianimiamo :-D
-
Buon giorno a tutti oggi ? una bellissima giornata a Roma!!
Ok sul router esiste gi? openwrt (kamikaze)
quale devo scaricare dal tuo sito'
con cosa lo carico?
grazie mille!
-
quello in formato trx e lo carichi semplicemente attraverso l'interfaccia web.
-
No! sono senza interfaccia!
posso caricarlo direttamente dal router con
wget http://www.tormini.it/index.php?dir=truthrepo/openwrt/wrt54g/&file=openwrt-brcm47xx-squashfs.trx
mtd write /tmp/openwrt-brcm47xx-squashfs.trx linux && reboot
mi sembra di si! vero?
:-)
-
No! non riesco!
come installo l'interfaccia?
magari devo solo attivarla!
-
Attualmente sta girando:
Linux OpenWrt 2.4.35.4 #5 Fri Jan 2 22:47:47 CET 2009 mips unknown
Dovrei aggiornarla con la tua giusto!
... stavo provando con ipkg upgrade ...
ma nulla ipkg not found...
-
Questo ? il contenuto
root@OpenWrt:~# opkg list_installed
base-files-brcm-2.4 - 13-r13822 -
bridge - 1.0.6-1 -
busybox - 1.11.3-3 -
dnsmasq - 2.46-1 -
dropbear - 0.51-2 -
firewall - 1-1 -
horst - 2.0-rc1-1 -
ip - 2.6.25-1 -
iptables - 1.3.8-4 -
iptables-mod-conntrack - 1.3.8-4 -
iptables-mod-nat - 1.3.8-4 -
kernel - 2.4.35.4-brcm-2.4-1 -
kmod-brcm-wl - 2.4.35.4+4.150.10.5.2-brcm-2.4-1 -
kmod-diag - 2.4.35.4-brcm-2.4-4 -
kmod-ipt-conntrack - 2.4.35.4-brcm-2.4-1 -
kmod-ipt-core - 2.4.35.4-brcm-2.4-1 -
kmod-ipt-nat - 2.4.35.4-brcm-2.4-1 -
kmod-ipt-nathelper - 2.4.35.4-brcm-2.4-1 -
kmod-ppp - 2.4.35.4-brcm-2.4-1 -
kmod-pppoe - 2.4.35.4-brcm-2.4-1 -
kmod-switch - 2.4.35.4-brcm-2.4-1 -
kmod-wlcompat - 2.4.35.4+4.150.10.5.2-brcm-2.4-1 -
libgcc - 3.4.6-13 -
libncurses - 5.6-1 -
libopenssl - 0.9.8i-3 -
libpcap - 0.9.8-1 -
libpthread - 0.9.29-13 -
libuci - 0.7.1-1 -
mtd - 8 -
nas - 4.150.10.5.2-1 -
nvram - 1 -
olsrd - 0.5.6-r3-2 -
olsrd-mod-dot-draw - 0.5.6-r3-2 -
olsrd-mod-txtinfo - 0.5.6-r3-2 -
opkg - 4564-2 -
ppp - 2.4.3-10 -
ppp-mod-pppoe - 2.4.3-10 -
tcpdump - 3.9.8-1 -
uci - 0.7.1-1 -
uclibc - 0.9.29-13 -
vim - 7.1-3 -
wget - 1.11.4-1 -
wireless-tools - 29-2 -
wlc - 4.150.10.5.2-1 -
zlib - 1.2.3-5 -
-
Intanto vedo che hai scoperto che al posto di ipkg ora ci sta opkg...
Per installare l'interfaccia web:
opkg install luci
-
oppure il metodo con wget ma usa questo indirizzo
http://www.tormini.it/truthrepo/openwrt/wrt54g/openwrt-brcm47xx-squashfs.trx
-
Aspetta che mi son ricordato una cosa...
con il kernel 2.4 non ? possibile utilizzare il bus i2c, del resto con il 2.6 il driver wifi (b43) ? ancora estremamente instabile per non dire inutilizzabile. Si pu? comunque utilizzare il driver proprietario che per? non ? presente ancora per backfire (o almeno non lo era quando ho compilato l'immagine). insomma da queste scatole cinesi si capisce che nel mio repo non ? presente una versione di backfire come erroneamente ti ho segnalato sopra, ma la versione kamikaze compilata da trunk. Scusa per l'inesatezza. :roll:
-
Scusa Truthahn ma......alla fine? :lol:
cosa devo scaricare?
Si si opkg (si ma ? da questa mattina che smanetto)
Altro che utonto :roll: :roll: sono!
Vorrei installare la webif ma non va!
--------------------------------------------------
root@OpenWrt:~# opkg install luci
Collected errors:
* Cannot find package luci.
--------------------------------------------------
-
prima
opkg update
-
prima
opkg update
Macche!!!!! non va!!
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/snapshots/brcm-2.4/packages/Packages.gz
--2000-01-01 01:08:28-- http://downloads.openwrt.org/snapshots/brcm-2.4/packages/Packages.gz
Resolving downloads.openwrt.org... 78.24.191.177
Connecting to downloads.openwrt.org|78.24.191.177|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2000-01-01 01:08:29 ERROR 404: Not Found.
Collected errors:
* opkg_download: ERROR: Command failed with return value 1: `wget --passive-ftp -P /tmp/opkg-CbaguX http://downloads.openwrt.org/snapshots/brcm-2.4/packages/Packages.gz'
root@OpenWrt:~#
Inizio a pensare che jtag...............sia la soluzione!!
-
Sono errati i reposit........
dovrei cambiarli!!
-
esatto!! hanno cambiato l'indirizzo da quando hai installato quella versione...
ora ?
http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages
edita /etc/opkg.conf
e cambia l'esistente con quello sopra.
-
Altrimenti usiamo il metodo tftp... io uso sempre quello :wink:
-
Ok ho aggiornato tutto ,ma ora devo caricare la webif giusto!
Come?
-
come sopra..
opkg update
e
opkg install luci
poi ti colleghi tramite http all'ip del wrt, scarichi sul tuo pc la mia immagine e la installi.
-
Grrrrrrrr!
mi dice che
Package were found but none compatible with the architeture configured!!!!!!!!!!!!!!!!!
-
ok dai... andiamo di tftp... hai un tftp installato?
-
si su una macchina winxp
tftpd32
-
emmm :roll: son anni che non uso winsoz...
con linux ? facile...
imposti il pc con ip 192.168.1.x (x diverso da 1 che ? del wrt all'accensione)
scarichi l'immagine bin e la metti nella cartella di tftp
fai partire tftp in questo modo...
tftp 192.168.1.1
poi dai questi comandi..
binary
trace
put openwrt-wrt54g-squashfs.bin
appena dato l'ultimo comando accendi il wrt54gl e fa tutto da solo, tu puoi vedere nella shell il caricamento del firmware. Aspetti 2 - 3 minuti. scolleghi e ricolleghi il wrt e tutto va a posto. Coraggio!
Con win, penso ci sia una interfaccia grafica che dovrebbe fare lo stesso.
Magari in una shell di xp fai un ping al 192.168.1.1 e esegui il comando appena da risposta.
-
si sto usando ubuntu ,ma avevo un portatile xp!
ok mi scarico la tua .bin e provo
-
Perdonami ho installato tftp ,ma dove metto il file .bin? in quale cartella?
-
Generalmente ? in
/var/lib/tftpboot
ma dipende dal file di configurazione.
-
Non riesco a trovarlo!!
ecoo cosa vedo:
root@deskwinlix:/etc# cd
root@deskwinlix:~# locate tftp
/lib/modules/2.6.32-21-generic/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.32-21-generic/kernel/net/netfilter/nf_conntrack_tftp.ko
/lib/modules/2.6.32-22-generic/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.32-22-generic/kernel/net/netfilter/nf_conntrack_tftp.ko
/lib/modules/2.6.32-23-generic/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.32-23-generic/kernel/net/netfilter/nf_conntrack_tftp.ko
/lib/modules/2.6.32-24-generic/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.32-24-generic/kernel/net/netfilter/nf_conntrack_tftp.ko
/usr/include/arpa/tftp.h
/usr/lib/erlang/lib/inets-5.2/ebin/tftp.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_binary.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_engine.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_file.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_lib.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_logger.beam
/usr/lib/erlang/lib/inets-5.2/ebin/tftp_sup.beam
/usr/share/doc/mrtg/examples/cisco_tftp
/usr/share/doc/mrtg/examples/cisco_tftp/scarfconf.pl
/usr/src/linux-headers-2.6.32-21/include/linux/netfilter/nf_conntrack_tftp.h
/usr/src/linux-headers-2.6.32-21-generic/include/config/nf/conntrack/tftp.h
/usr/src/linux-headers-2.6.32-21-generic/include/config/nf/nat/tftp.h
/usr/src/linux-headers-2.6.32-22/include/linux/netfilter/nf_conntrack_tftp.h
/usr/src/linux-headers-2.6.32-22-generic/include/config/nf/conntrack/tftp.h
/usr/src/linux-headers-2.6.32-22-generic/include/config/nf/nat/tftp.h
/usr/src/linux-headers-2.6.32-23/include/linux/netfilter/nf_conntrack_tftp.h
/usr/src/linux-headers-2.6.32-23-generic/include/config/nf/conntrack/tftp.h
/usr/src/linux-headers-2.6.32-23-generic/include/config/nf/nat/tftp.h
/usr/src/linux-headers-2.6.32-24/include/linux/netfilter/nf_conntrack_tftp.h
/usr/src/linux-headers-2.6.32-24-generic/include/config/nf/conntrack/tftp.h
/usr/src/linux-headers-2.6.32-24-generic/include/config/nf/nat/tftp.h
root@deskwinlix:~#
Nulla di tftpboot
-
penso che tu abbia instalalto solo il client...
devi installare il server e anche xinetd che lo gestisce...
sudo apt-get install xinetd tftpd tftp
-
Che idiota!! giusto!! :-Dvado uccido e torno!
-
poi crei il file
/etc/xinetd.d/tftp
e ci metti dentro...
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /var/lib/tftpboot
disable = no
}
verifichi se il la cartella /var/lib/tftpboot ? gi? stata creata altrimenti la crei e gli dai i giusti permessi...
sudo chmod -R 777 /var/lib/tftpboot
sudo chown -R nobody /var/lib/tftpboot
ci infili dentro il firmware e dai anche a lui tutti i permessi (777)
poi fai partire xinetd
sudo /etc/init.d/xinetd start
e che dio ce la mandi buona :-D ( e magari anche bella!)
-
tftp> put openwrt-wrt54g-squashfs.bin
tftp: openwrt-wrt54g-squashfs.bin: No such file or directory
Sembra non trovare il file,ma io ho messo dentro tutto come da descrizione
-
Buongiorno!
Controlla tutto... deve andare.
fai questa prova... dopo aver avviato xinetd
echo "gigi" > /var/lib/tftpboot/test.txt
tftp localhost
get test.txt
quit
cat test.txt
se compare la magica parola "gigi" funziona altrimenti c'? qualcosa che non va nelle config.
-
Buon giorno ! sembra proprio che non voglia partire!!
root@deskwinlix:~# sudo /etc/init.d/xinetd start
* Starting internet superserver xinetd [fail]
root@deskwinlix:~#
Uso Ubuntu 10.04
-
prova a stopparlo e farlo ripartire...
sudo etc/init.d/xinetd stop
sudo etc/init.d/xinetd start
-
* Starting internet superserver xinetd [ OK ]
root@deskwinlix:~# echo "gigi" > /var/lib/tftpboot/test.txt
root@deskwinlix:~# tftp localhost
tftp> get test.txt
Received 6 bytes in 0.1 seconds
tftp> quit
root@deskwinlix:~# cat test.txt
gigi
root@deskwinlix:~#
Ok sembra funzionare!!
-
Bene!!!! Ora devo proprio uscire... stasera voglio trovare un bel wrt54gl riflashato!!!!!!! :-D
-
Haha dai oggi provo con calma!!
a dopo buona giornata!|
-
Tutto ok!!
Per? devo confessarti che ho fatto con xp (al volo)! :|
Hhahaha
-
Alleluiaaaaaaaaaaaaaaaa!! Ok, andiamo avanti?
-
EEEEE certo!!
Haha
Pero' credo sia stata fortuna ,perche' ho provato la stessa procedura su di un wrt45gs V1.1 e non va' il ping al 192.168.1.1 parte il primo e poi si ferma ,poi ripartono un paio e poi si ferma!! con la procedura del tftp non ci sono riuscito!! Boo! domani riprovero'
Ok Andiamo avanti!
-
Non ho mai usato un wrt54gs ma mi sembra di ricordare che bisogna far aspettare il bootloader come di default ha il wrt54gl, altrimenti stacca subito e carica il firm senza permettere al tftp di mandare quello nuovo. per questo lo pinghi solo per poche volte. Googla wrt54gl boot-wait o qualcosa del genere.
-
Si! domani vedr? di fare un giretto!
-
guarda qua..
http://martybugs.net/wireless/openwrt/flash.cgi
(http://martybugs.net/wireless/openwrt/flash.cgi)
-
truthlan ma dal lato SW effettua un log dell'attivazione/disattivazione con relativa data? del tipo:
[01/01/01 00:00] Luce Accessa
[01/01/01 00:05] Luce Spente
per poterci entrare dal PC (o anche via web) e poterlo consultare in caso di problemi
-
guarda qua..
http://martybugs.net/wireless/openwrt/flash.cgi
(http://martybugs.net/wireless/openwrt/flash.cgi)
Buon giorno! :-)
si ho visto! per? dice di farlo da interfaccia! e io anche qui non ho interfaccia!? stao caricato gi? un firmware open....credo!
Ho visto sul wrt54gl appena fleshato che la ram in uso ? molta! Used: 11576 KiB (86%) anche il tuo
-
truthlan ma dal lato SW effettua un log dell'attivazione/disattivazione con relativa data? del tipo:
[01/01/01 00:00] Luce Accessa
[01/01/01 00:05] Luce Spente
per poterci entrare dal PC (o anche via web) e poterlo consultare in caso di problemi
Buon giorno Giuseppe!
io credo si possa fare ,ma bisogna farlo esternamente non sul wrt,credo ci sia poco spazio!
:-)
-
Eh si la ram del wrt54gl non ? molta ma basta, vedrai che basta.
Per i log.
Certo che ? possibile, l'interfaccia mia registra le ore di riscaldamento e l'apertura della porta tramite tel. Le luci non mi interessavano e quindi non le ho inserite. ? un semplice file di testo (quindi se non c'? un uso esagerato lo spazio ? minimo) delimitato e quindi scaricabile e utilizzabile con un foglio di calcolo. Naturalmente quando in comune viene scaricato per i controlli viene cancellato sul router.
-
(http://www.tormini.it/truthrepo/img/log.png)
-
Magnifico!!
Io cosa devo fare ora Truthahn?
:-)
-
Intanto ora funziona la webif? xwrt?
se si installi l'ipk della centralina...
opkg install http://82.186.215.122/webif-gpio_0.9_all.opk
poi punti il browser in
indirizzo_wrt54gl/cgi-bin/webif/centralina.sh
e configuri il tutto.
Io su questa versione di openwrt da me compilata non ho installato questo opk ma quello per l'i2c e quindi vediamo che non ci siano sorprese, altrimenti ti scarichi questa versione
http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin
(http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin)
ora che sei esperto la carichi e installi opk sopra.
-
Access to this resource is forbidden
Permessi?
-
ok...
chmod a+x /www/cgi-bin/webif/centralina.sh
chmod a+x /www/cgi-bin/telefono.sh
chmod -R a+x /www/cgi-bin/cwebif/centralina/
chmod -R a+x /bin/centralina/
chmod a+x /www/cgi-bin/centralina.sh
chmod -R a+rw /www/images/
-
scusa controlla sopra che li sistemo... a memoria ho sbagliato...
anzi cancella quello scaricato
opkg remove webif-gpio_0.9_all.opk
e ricaricalo da repo che forse ho sistemato i permessi.
opkg install http://82.186.215.122/webif-gpio_0.9_all.opk
-
root@OpenWrt:~# opkg remove webif-gpio_0.9_all.opk
No packages removed.
ho provato a ricaricare e smbra aver ricaricato
per?
link : http://192.168.2.190/wrt54gl/cgi-bin/webif/centralina.sh
No such file or directory
-
hai sbagliato l'indirizzo. Hai messo qualcosa di troppo :wink:
Punta a...
http://192.168.2.190/cgi-bin/webif/centralina.sh
-
OOOPSS!!
si vero ora va!!
-
Per? non accedo a tutto il resto
* COMANDI
* PROGRAMMAZIONE
* ABILITAZIONE TEL
* LOG
* BACKUP
* INFO
No such file or directory
-
Cio? non va in modalit? "centralina" (con il link in alto a destra---> modo Router Centralina) o ci va e non funzionano i link specifici?
-
Cio? non va in modalit? "centralina" (con il link in alto a destra---> modo Router Centralina) o ci va e non funzionano i link specifici?
Allora:
Adesso se io punto semplicemente al ip del router esce la pag... della centralina ma se clicco su (Router) # Modo: Centralina Router
quindi su router non va
No such file or directory
ma anche se clikko su
* COMANDI
* PROGRAMMAZIONE
* ABILITAZIONE TEL
* LOG
* BACKUP
non va nulla ,solo su INFO
-
http://192.168.2.190
Va direttamente su:
http://192.168.2.190/cgi-bin/webif/info.sh
-
forse questo versione di openwrt ? un po' cambiata.
prova a puntare a
http://192.168.2.190/cgi-bin/webif/centralina/swich.sh?swich=centralina
casomai installi l'openwrt che ti ho linkato prima che ? quello sul quale ho basato gli script.
-
Si puntando li funziona tutto!
Forse perch? non ho disinstallato la prima?
o perch
-
Bella domanda! :-D non saprei proprio. Comunque ora funzionano i vari link sulla pagina?
-
Si tutti!!
ora per? visto che sono masochista!! vorrei rifare tutta la procedura da capo,rifleshando tutto e aggiungendo
opkg install http://82.186.215.122/webif-gpio_0.9_all.opk
poi vado su
http://192.168.2.190/cgi-bin/webif/centralina/swich.sh?swich=centralina
e tutto dovrebbe funzionare!!
Ho visto questo:su Device Status
/rom
/dev/root
100%
2048KiB of 2048KiB
mini_fo:/overlay
100%
2048KiB of 2048KiB
Praticamente pieno?
-
no, prima devi puntare a
http://192.168.2.190/cgi-bin/webif/centralina.sh
perch? configuri il tutto e poi se si presenta il problema di prima (che magari cerchiamo di capire che cavolo ?) a
http://192.168.2.190/cgi-bin/webif/centralina/swich.sh?swich=centralina
-
... e poi prepara saldatore e stagno! :-D
per i file system..
root@xxxxx:~# df
Filesystem 1k-blocks Used Available Use% Mounted on
rootfs 2048 2048 0 100% /
/dev/root 2048 2048 0 100% /rom
tmpfs 7168 180 6988 3% /tmp
/dev/mtdblock/4 1216 648 568 53% /jffs
mini_fo:/jffs 2048 2048 0 100% /
root@xxxxx:~#
il file system in lettura e scrittura ? /jffs. Come vedi quello disponibile sulla centralina del centro ? esiguo, infatti ho provato in tutti i modi a installare un tastierino numerico sulla seriale ma senza riuscirci proprio per limiti di spazio. Per quello che fa ora comunque basta e avanza.
-
Si ok,questa sera con un p? di calma rifaccio tutto!
poi scrivo!
Bene bene per il saldatore !!!!! :-D
-
Ok! ho rifleshato senza problemi,ho scaricato e installato
opkg install http://82.186.215.122/webif-gpio_0.9_all.opk
ora se punto semplicemente a 192.168.2.190 mi porta su http://192.168.2.190/cgi-bin/webif/info.sh e non apre nulla
Se vado su http://192.168.2.190/cgi-bin/webif/centralina.sh
va su http://192.168.2.190/cgi-bin/webif/centralina.sh quindi ok
(http://farm5.static.flickr.com/4152/4993397409_cf7a7f46d2_b.jpg)
Sembra tutto ok ,anche se inizialmente sembrava aver digerito male la nuova impostazione!
-
Ho notato una cosa! la data e l'ora sono sballate!! anche dopo aver impostato come riferimento (Europa-Roma)
-
? normale che se prima non configuri la centralina con centralina.sh ti mandi direttamente a info.sh perch? ? la pagina di default di xwrt.
Devi settare il time setting su system...
io uso i server del galileo ferraris di torino:
ntp1.ien.it
e
ntp2.ien.it
-
No!!!
Ora non funziona piu ,se vado su:
http://192.168.2.190/cgi-bin/webif/centralina.sh
non funziona piu nulla ,mi apre la pag..e poi non posso fare altro mi dice sempre
No such file or directory
Mentre se vado su:
http://192.168.2.190/cgi-bin/webif/centralina/comandi.sh
tutto sembra funzionare bene
-
Scusa Kidy senza digitare http://192.168.2.190/cgi-bin/webif/centralina.sh, se clicchi sul link centralina che compare nella lista sotto il logo di xwrt non funziona?
-
Scusa ma non capisco bene quello che scrivi. Vabb?... ora sei sulla pagina comandi, se clicchi in alto su modo e scegli router ti porta al xwrt originale? e se poi clicchi su centralina ti riporta alla pagina comandi?
-
MP per link diretto ,almeno puoi vedere meglio!
-
il link non funziona!
-
Ora piu nulla ,sembra morto proprio morto,quindi link down!!
-
riprova! ora!
-
mandami la pass :-D
-
Ho capito cos'era il problema. Prova ora. Era che lo script nello swich preleva l'ip in automatico per il link dall'indirizzo della lan, ora l'ho sostituito conl'indirizzo pubblico e da me funziona. resta il fatto che in questa versione hanno cambiato il file awk in /usr/lib/webif e quindi non mostra i sotto menu nel modo router. Quindi ora provo a sistemarli. Intanto prova a vedere se da te funziona lo swich tra i modi.
-
infatti! hanno cambiato il file subcategories.awk e quindi non mostra i sottomenu.
Allora le scelte son due. O mi dai tempo domani che lo modifico e lo testo o installi openwrt che ti avevo linkato e non quello da me compilato.
-
Se entro da http:// 192.168.2.190/cgi-bin/webif/centralina/comandi.sh
passo da router a centralina e viceversa
tutto ok!
Ma devo entrare da li!
-
No, non digitando l'indirizzo ma in alto a destra non ci sta:
Modo: Router centralina
dove centralina ? un link?
poi quando sei in centralina router diventa un link.
-
infatti! hanno cambiato il file subcategories.awk e quindi non mostra i sottomenu.
Allora le scelte son due. O mi dai tempo domani che lo modifico e lo testo o installi openwrt che ti avevo linkato e non quello da me compilato.
Ma scherzi!! dimmi tu come vuoi fare ,volevo capire la differenza tra la tua (che usi tu sul tuo) e quella "nuova"
in quella nuova ci sono i moduli?
-
No, non digitando l'indirizzo ma in alto a destra non ci sta:
Modo: Router centralina
dove centralina ? un link?
poi quando sei in centralina router diventa un link.
Si si io parlo di clikkare in alto a destra ,passo da centralina a router!
ok
-
ok. Prova ad accendere e spegnere in comandi gli interruttori. Che fa?
Stiamo sperimentando in diretta eh! su questa versione di openwrt io non so ancora come si comporta!! :roll:
-
ho ia provato,sembra funzionare!!
se klicco su accendi si accendono le luci della mia camera!! che faccio??? HAHAHA :-D
si sembra funzionare si accende la lamp!!
-
Ma da remoto funziona bene?
Perch? se funza bene da remoto allora funza bene anche da locale iusto?
-
Da qui va bene tranne le sottocategorie. Ho impostato lo spript con l'indirizzo che mi hai dato... se poi lo usi in locale con un ip privato (192.168.2.x) bisogna cambiare lo script...
vai a sostituire
/www/cgi-bin/webif/centralina/swich.sh
modificando le due righe dove compare l'indirizzo pubblico con quello che assegni in locale.
Guarda i led a sx davanti a wrt54gl... io provo da qui e d?vresti vedere il led verde e quello giallo accendersi.
-
Per?
# Date: 1970-01-01
# Time: 01:58:08
Non cambia!
Oni tanto si inchioda e devo fare refresh della pa..
-
Ascolta fai anche la prova di installare l'altro firmware... non vorrei che ci fossero altri cambiamenti. Con quello vai sul sicuro. Poi ci metto mano anche a questo e lo testo.
-
Da qui va bene tranne le sottocategorie. Ho impostato lo spript con l'indirizzo che mi hai dato... se poi lo usi in locale con un ip privato (192.168.2.x) bisogna cambiare lo script...
vai a sostituire
/www/cgi-bin/webif/centralina/swich.sh
modificando le due righe dove compare l'indirizzo pubblico con quello che assegni in locale.
Guarda i led a sx davanti a wrt54gl... io provo da qui e d?vresti vedere il led verde e quello giallo accendersi.
Giallo??? :?
Attenzione io non ho collegato la porta internet ma solo una ethernet!
-
sotto il quadratino all'estrema dx del router.
-
Si provo con l'altro ,mi passeresti link per favore!
quali sono le differenze sostanziali?
-
sotto il quadratino all'estrema dx del router.
guardando il router estrema dx? o sx?
-
http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/default/openwrt-wrt54g-squashfs.bin
ha il kernel 2.4 e quindi non ? possibile il bus i2c. per il resto quasi nulla.
-
Quindi sul tuo non usi il bus i2c..che praticamente apre le porte a cosa?
-
in quello del centro no. per 4 interruttori e la gestione tel e internet basta. con l'i2c puoi gestire centinaia di interrutori, termometri e altro.
-
Ok capito!! nel frattempo ho rifleshato tutto !! :-D con il 2.4
-
ora devi installare il mio opk e in pi? il prog gpio che trovi dentro qui
http://downloads.openwrt.org/utils/gpio.tar.gz
lo metti in /bin o in /usr/sbin , gli dai i permessi di esecuzione e via...
-
Ma ho scaricato il bin dal link che mi hai passato e ho fleshato con quello!! ma continuo a non vedere i sotto menu?
Perche?
-
OpenWrt Kamikaze bleeding edge, r22312
-
no, dev'essere la 8.09
hai caricato quello di prima.
-
Azz..sono stanco...ho sbagliato??
riprovo!
-
Si ora ? giusto
-
root@OpenWrt:/usr/sbin#wget....?
No..wget no
cosa uso per scaricare?
-
wget http://www.tormini.it/truthrepo/Wrt54gl/gpio
chmod a+x gpio
-
Ma non mi avevi passato questo?
http://downloads.openwrt.org/utils/gpio.tar.gz
-
si ma l'ho scaricato e scompattato gi? nel mio repo... in quello ci stavano anche i sorgenti
-
ok
wget http://www.tormini.it/truthrepo/Wrt54gl/gpio
chmod a+x gpio
-
se mi mandi la nuova pass ci do un occhio
-
Mp
solo i numeri
-
Ora mi sembra ok!
-
ok tutto a posto... guarda i led che tra 3 secondi li accendo...
-
ok? ora li spengo
-
riprova che ero distratto!
-
ricordati di cambiare se cambi indirizzo pubblico il file swich.sh mettendo, se usi l'ip locale del router, al posto dell'indirizzo no-ip $indirizzo o se cambi indirizzo pubblico quello.
-
Ma da locale devo sempre entrare con
http://192.168.2.190/cgi-bin/webif/centralina/swich.sh?swich=centralina
-
no se la lasci collegata a questo indirizzo pubblico basta il link modo: router centralina, altrimenti cambia il file che ti ho detto.
-
Si ok! :-)
io vado a riposare,se ci sei domani mattina ci sentiamo!
-
ok prode kidy... direi che per oggi abbiamo fatto il nostro dovere. Ora ti serve la scheda rel?, quattro fili e poi finiamo. Buonanotte. :wink:
-
Buonanotte anche a te !
-
Buon giorno!
@Truthahn
Ma te devi fare un ordine per le scheda rel??
Se qualcuno ? interessato facciamo un ordine unico!
Buona giornata a tutti!! :-D
-
@Truthahn
LA SPEDIZIONE E' IN CONSEGNA PER QUESTA MATTINA!!!!! :-D
-
Buon giorno!
@Truthahn
Ma te devi fare un ordine per le scheda rel??
Se qualcuno ? interessato facciamo un ordine unico!
Buona giornata a tutti!! :-D
Buon giorno!
No, mi spiace ma ora non mi servono... e comunque poi tu dovresti rispedirle e non mi sembra che alla fine sarebbe economico. :wink:
-
OK!! si forse ? vero! per? magaricon la prioritaria...
ho visto che ci sono diverse cose carine sul sito ,come i sensori ,conviene prenderli per fare delle prove?
Cosi faccio un solo ordine!
-
ma! se parli di integrati i2c io alla fine ho preso tutto sulla baia e ho speso pochissimo.
-
Si ok! :-)
Possiamo saldare in attesa dei rel? o aspettiamo che arrivino?
Saluti a tutti! :-D
-
A questo punto dipende dove metti il wrt e dove la scheda... se vedi nella prima pagina del 3d ne ho da prima assemblato uno di prova con la scheda rel? avvitata sopra il wrt, poi quello che ho installato nel centro usando un cavo ethernet. Nel centro la distanza ? di circa 5 metri ma per prova avevo allungato il cavo a 10 metri e andava perfettamente. Ho usato il cavo ethernet per poterlo collegare e scollegare agevolmente. Nel cavo ethernet ho usato 4 fili per il comando dei rel? e due coppie per portare la 3,3 necessaria. I 12 volt, che servono per alimentare la scheda, li ho presi dallo stesso alimentatore del linksys.
Sulla scheda ho usato un connettore da seriale, presa da una vecchia scheda pc, visto che ha due femmine dello stesso tipo. Le femmine sulla scheda son uguali, una in verticale e una in orizzontale, per facilitare il collegamento in base alle proprie necessit?.
e sono entrambe cos? (viste da sopra):
rele 2
| rele 4 GRD
| | |
* * * * *
* * * * *
| | |
| Rele3 3.3 V
Rele 1
Quindi ti puoi gi? preparare i cavi in base alle tue necessit?.
Per dove saldarli vedi la prima pagina del 3d. :wink:
-
La centralina sulla vs si ? arricchita di due webcam e del sempre meraviglioso asterisk, intanto con un gateway gsm esterno in attesa di far andare quella maledettissima key...
(http://www.tormini.it/video.png)
Come si vede si possono attivare o disattivare e andare a vedere i filmati registrati in un server esterno... lo script va a leggere con elinks sul server esterno e lo formatta sotto... si pu? anche attivare o disattivare la chiamata telefonica in caso di movimento.
Qui invece ho integrato sulla pagina telefoni, dove si pu? programmare le chiamate apriporta, uno "sguardo" sullo stato dei peers se sono attivi oppure no.
Naturalmente ci sono anche anche nella pagina "asterisk" della webif ma volevo avere uno sguardo rapido sullo stato e poi, come sempre, dev'essere pilotato da una impiegata e quindi restare solo sulle pagine di gestione e non andare a cliccare dove ? meglio non toccare.
Come funziona: nel file /etc/asterisk/sip.conf dare un nome ad ogni peers a fianco della registrazione...
esempio
[100]
ecc. ecc
diventa
[100]; Studio
dove tra il ";" e il nome ci dev'essere uno spazio
e una cartella dove salvare le info ( nel mio caso /etc/centralina/)
Il codice della tabella dei peers, appena scritto e sicuramente da migliorare migliorare migliorare ? questo..
siptelefoni="$(cat /etc/asterisk/sip.conf | sed -n '/];/p' | awk '{ print $1 }')"
telefoni="$(cat /etc/asterisk/sip.conf | sed -n '/];/p' | awk '{ print $2 }')"
numerotel="$(echo $telefoni | wc -w )"
cat <<EOF
<center>
<table width="80%" border="1" bordercolor="#2542d7">
<tr>
EOF
for numero in $(seq 1 $numerotel); do
cat <<EOF
<td><center>
EOF
telefono="$(echo $telefoni | awk '{split ($0, a, " ");print a['$numero']}')"
echo $telefono
siptelefono="$(echo $siptelefoni | awk '{split ($0, a, " ");print a['$numero']}' | sed '/\[/s///g' | sed '/\];/s///g')"
sipshow="$(asterisk -r -x "sip show peers")"
echo $sipshow > /etc/centralina/sipshow
sed -i 's/Status/\n/g' /etc/centralina/sipshow
sed -i 's/ms)/\n/g' /etc/centralina/sipshow
sed -i 's/]/\n/g' /etc/centralina/sipshow
sed -i 's/Unmonitored/\n/g' /etc/centralina/sipshow
sed -i 's/UNKNOWN/\n/g' /etc/centralina/sipshow
sed -i 's/\// /g' /etc/centralina/sipshow
stato="$(cat /etc/centralina/sipshow | sed -n '/ '$siptelefono'/p' | awk '{ print $3 }')"
TEST=`echo "${stato}." | grep -E "([0-9]{1,3}\.){4}"`
if [ "$TEST" ]
then
echo "$stato" | awk -F. '{
if ( (($1>=0) && ($1<=255)) &&
(($2>=0) && ($2<=255)) &&
(($3>=0) && ($3<=255)) &&
(($4>=0) && ($4<=255)) ) {
print(echo "<img src=\"/images/lamp.jpg\">");
}
}'
else
cat<<EOF
<img src="/images/lamp1.jpg">
EOF
fi
###################
cat <<EOF
</td>
EOF
done
cat <<EOF
</tr></table>
EOF
cat<<EOF
<center>Rifai partire Asterik.<p>
<form method="get" action="permessitel.sh">
<input type="submit" name="asterisk" value=RESTART>
EOF
(http://www.tormini.it/telefoni.png)
PS: la riga visibile nell'immagine delle webcam ? dovuta alla sovrapposizione delle immagini con gimp. La differenza di tono ? dovuta alle webcam, una pi? sensibile dell'altra.
-
Veramente bello :-o
Complimenti sei bravissimo !!
-
Grazie!! :roll:
-
Complimenti. La parte relativa alle due webcam ? spettacolare!
Invece per la internet key che problema hai?
-
Farla funzionare come gateway gsm con asterisk. Ramponis aveva anche compilato il chan-sebi e il chan-datacard pi? volte e pi? volte ho provato pure io ma non funziona... a dire il vero ad un certo punto ho desistito. :roll:
Se qualcuno di buona volont? si tira su le maniche sarebbe una gran cosa...
-
Buona sera!!!
Dopo 30 giorni dal mio ordine ancora non ? arrivato nulla dalla Futurlec........mi devo preoccupare??
-
Ciao!
Io ho comperato diverse cose e per pi? volte e son sempre arrivate... di solito in 3 settimane. Magari manda un'email per vedere, verificato sul sito che il tuo materiale sia stato spedito? ti ? arrivata la conferma via email della spedizione?
-
Si si ! mi hanno inviato la conferma con il numero di riferimento!!
Mah!! nulla per il omento!!
Aspettiamo ancora!!
-
Buona sera a tutti, scusate per il mio italiano ma fa 20 anni che non o piu parlato (n? scritto) :-)
O provato il bus i2c con 2 fili ? pull-up da 1k, 2,2k ? 10k ma posso fare quel che voglio con "i2cdetect 0" non trova mai il mio pcf7574 o ds75 ? anch? mcp23009.
Con pull-up 2,2k:
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@OpenWrt:~#
Con Pull-up 1k
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@OpenWrt:~#
Con Pull-up 10k
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77
root@OpenWrt:~#
Sensa niente sul bus dopo un minuto di scan:
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@OpenWrt:~#
seguito queste spiegazioni: http://code.google.com/p/fonera-i2c/wiki/FoneraHacks (http://code.google.com/p/fonera-i2c/wiki/FoneraHacks)
Qualcuno a gia provato ? riuschito i2c con due fili?
Grazzie mille per il vostro aiuto :-)
-
hai settato il bus per utilizzare i gpio corrispondenti...
insmod i2c-gpio-custom bus0=0,4,7
dove in questo caso si setta il bus 0 per usare i gpio 4 e 7?
e hai poi dato un..
i2cdetect -l
per vedere se trova il bus?
-
Si o tutto fatto giusto ? il bus ci st? bene.
-
allora problemi nei collegamenti o negli integrati.
-
No, ho provato anche altri :-)
-
Aspettiamo ancora!!
Ciao Kidy... stai ancora aspettando??
-
Penso proprio che non arriva piu!!!
che dici se prendo questo?
http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=270565472445&ssPageName=STRK:MEWAX:IT (http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=270565472445&ssPageName=STRK:MEWAX:IT)
-
? lo stesso, proprio quello... ma cavolo scrivici un'email. io ho preso da loro cose almento 5/6 volte e non ho mai avuto prolemi.
-
truthahn, non capisco il motivo per cui bisogna utilizzare quelle schede, non basta avere semplicemente i relay?, a quanto ho capito il GPIO emana un segnale TTL, per cui (da quanto ho capito) il relay lo pu? decodificare tranquillamente
-
Per attivare i relay serve una corrente minima che non ? erogata dai gpio, infatti le schede sono alimentate autonomamente. Questa a 12 V, uguale a quella del linksys e quindi comoda per non avere ulteriori alimentatori.
-
ma se la volessi creare io, invece che ordinarla, che schema dovrei seguire?
-
se vai sul link proposto da kidy trovi lo schema o anche sul sito di futurlec mi sembra.
-
come hai collegato le webcam? via USB? e per farle riconoscere e avviare il flusso?
Inoltre la settimana prossima mi dovrebbe arrivare il router, percui vi chiedo se ho bisogno di qualcosa in particolare per il funzionamento, per il momento ho scaricato l'img .bin di openwrt: openwrt-ar71xx-tl-wr741nd-v1-squashfs-factory.bin
Per l'uso di un bus I2C serve qualcosa da installare o ? tutto gi? pre-installato?
-
via usb installando motion e i driver appositi per le webcam... ma non naturalmente sul wrt54gl ma sulla vs
vedi quahttp://www.nabuk.org/f/index.php?topic=2638.0 (http://www.nabuk.org/f/index.php?topic=2638.0)
Intanto installa il firmware e poi aggiungerai gli ipk che ti servono
per il bus i2c ci sono gli ipk appositi, vedi nei packages e vedrai che li trovi..
-
per la webcam si l'avevo visto, ma si pu? fare in un normale router con USB 1.x? e i driver per la webcam sono univoci o cambiano da webcam a webcam ?
-
vedi qua http://www.nabuk.org/f/index.php?topic=2626.0 (http://www.nabuk.org/f/index.php?topic=2626.0)
-
truthahn al posto del TL-WR741ND sarei intenzionato a prendere un TL-MR3220 poich? ha gi? l'USB e il prezzo ? buono, per? nel sito openwrt: http://wiki.openwrt.org/toh/tp-link/tl-mr3420
Non ? molto dettagliata la cosa, posso prendere in considerazione il wiki del wr741nd o dovr? testare, subendone i rischi ?
-
Pi? che poco dettagliata mi sembra che non sia ancora stabilmente supportato... nel forum di openwrt qualcuno la sta usando ma le info sono proprio scarse... io resto dell'idea che una bella vodafone station su ebay sia super per tutto.
-
il problema ? che costano assai :S
-
Allo stesso prezzo con un po' di pazienza la prendi sulla baia... o almeno io le ho prese...
-
Ciao Truthahn! Ho cercato sul tuo repository un .opkg ma con dei commandi per dispositivi i2c (so che a un certo punto hai aggiunto dei dispositivi i2c alla tua centralina). Potresti spiegare in dettaglio come fai a controllare tramite Asterisk l'accensione di una lampada per esempio, con l'inserimento di una password nella IVR?
Un'altra cosa interesante sarebbe spiegare come utilizzi il RTC 1307 nel caso in cui manca la connessione ad internet.
Nel frattempo mi studio un p? di Bash Scripting ... :)
-
Facciamo un esempio...
Asterisk con due numeri eutelia (uno come telefono "normale" e uno per gestire dei rel? con il pcf8574) e un interno.
Crei un file e lo chiami "pass" e lo metti in.. diciamo /etc
123456 1
234567 2
345678 5
456789 8
567890 9
678901 3
789012 7
dove il primo dato ? la pass e il secondo il pin del pcf che sar? comandato dalla chiamata telefonica
poi su asterisk...
sip.conf
[general]
port = 5060
bindaddr = 0.0.0.0
language = it
register => 1numeroeutelia:1pass@voip.eutelia.it:5060/1numeroeutelia
register => 2numeroeutelia:2pass@voip.eutelia.it:5060/2numeroeutelia
[1numeroeutelia]; Eutelia
localnet=127.0.0.1/255.255.255.0
externip=tuo_ip_esterno
nat = yes
username=1numeroeutelia
type=peer
secret=1pass
qualify=yes
port=5060
insecure=invite,port
host=voip.eutelia.it
fromuser=1numeroeutelia
dtmfmode=auto
disallow=all
context=from_eutelia
canreinvite=no
allow=gsm
allow=alaw
[2numeroeutelia]; per comandare i rel?
localnet=127.0.0.1/255.255.255.0
externip=tup_ip_esterno
nat = yes
username=2numeroeutelia
type=peer
secret=2pass
qualify=yes
port=5060
insecure=invite,port
host=voip.eutelia.it
fromuser=2numeroeutelia
dtmfmode=auto
disallow=all
context=from_eutelia
canreinvite=no
allow=gsm
allow=alaw
[100]; interno1
nat=no
context=100
type=friend
host=dynamic
username=100
secret=100
disallow=all
allow=ulaw
allow=alaw
canreinvite=no
extensions.conf
[general]
static = yes
writeprotect = no
clearglobalvars = yes
[globals]
FEATURES =
DIALOPTIONS =
RINGTIME = 20
;questa ? la macro che attiva lo script per il telefono passando le variabili
;chiama centralaina.sh e gli passa la password pi? il numero chiamato se vuoi memorizzarlo da qualche parte
[macro-centralina]
exten => s,1,Answer()
exten => s,n,Read(INPUT|agent-pass|0||3|10)
exten => s,n,SayDigits(${INPUT})
exten => s,n,AGI(rele.sh,${INPUT},${CALLERID(num)})
exten => s,n,Hangup()
;per far parlare tra loro gli interni
[macro-interni]
exten => s,1,Set(FROM_DID=${MACRO_EXTEN})
exten => s,2,Dial(SIP/${MACRO_EXTEN},60,Tt)
exten => s,n,Hangup
;per le chiamate verso l'esterno col voip su eutelia
[macro-pereutelia]
exten => s,1,Set(CALLERID(all)=${MACRO_CONTEXT})
exten => s,2,Dial(SIP/${MACRO_EXTEN}@${ARG1})
exten => s,n,Hangup
[from_eutelia]
exten => 1numeroeutelia,1,Dial(SIP/100,30,Tt)
exten => 1numeroeutelia,2,Hangup()
; questo comanda la scheda rel?
exten => 2numeroeutelia,1,Macro(centralina)
[101];
exten => _1XX,1,Macro(interni)
exten => *888,1,Macro(centralina)
exten => _X.,1,Macro(pereutelia,1numeroeutelia)
con *888 comandi i rel? dall'interno
in /usr/lib/asterisk/agi-bin metti crei il file rele.sh, lo rendi eseguibile, con all'interno.
#!/bin/sh
/usr/sbin/telefono.sh $1 $2
exit 0
che esegue telefono telefono.sh passando la pass e il numero di chi ha chiamato..
e ora vediano il file /usr/sbin/telefono.sh...
#!/bin/sh
#questa ? la pass passata dal telefono
password="$1"
#andiamo a legger il file delle pass
file=/etc/centralina/pass
righe=$(wc -l $file | awk '{print $1}')
for numero in $(seq 1 $righe); do
pass="$(echo "$riga" | awk '{ print $1 }' )"
pinpcf="$(echo "$riga" | awk '{ print $2 }')"
if [ $password == $pass ];then
#su quale bus e indirizzo ? fissato il pcf
bus=???
indirizzo=????
# qui leggiamo lo stato dei pin
for n in (seq 1 8);do
eval stato$n="$(echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -r -v)" | sed -n '3p' | awk '{ print $('$n') }')"
done
statozero="0000"
eval pin=stato$pinpcf
if equal $pin "1" ; then
eval stato$pinpcf="0"
else
eval stato$pinpcf="1"
fi
stato="$stato8$stato7$stato6$stato5$stato4$stato3$stato2$stato1"
statopin2="$stato1$stato2$stato3$stato4"
statopin1="$stato5$stato6$Stato7$stato8"
if equal $statopin1 "0000" ;then
stato="$stato4$stato3$stato2$stato1"
fi
if equal $statopin2 "0000" ;then
stato="$statopin8$stato7$stato6$stato5$statozero"
fi
codice="$(echo "ibase=2; $stato" | bc)"
codiceesa="$(echo "obase=16; $codice" | bc)"
echo "$(pcf8574 -d /dev/i2c-$bus -a $indirizzo -w 0x$codiceesa)"
Assolutamente non testato!!!! dovrebbe se acceso spegnerlo e se spento accenderlo.
Preso da questo http://www.nabuk.org/f/index.php?topic=1944.msg24064#msg24064 (http://www.nabuk.org/f/index.php?topic=1944.msg24064#msg24064) e modificato.
-
Per quanto riguarda il ds1307 c'erano dei problemi con l'applicativo postato sa silverfox...
comunque guarda qua..
http://www.nabuk.org/f/index.php?topic=1944.msg24015#msg24015 (http://www.nabuk.org/f/index.php?topic=1944.msg24015#msg24015)
-
Possibile creare un .opkg per la Vodafone Station con tutte le pagine aggiunte fino adesso? (Asterisk, Telecamera ... etc ...).
Per il momento ho installato sull'AGPF: webif-gpio_0.9_all.opk per? mancano alcune pagine rispetto alla versione che sei riuscito a "assemblare" sulla tua VS
-
Certo che ? possibile :-)
Forza fpaliuc al lavoro, con la passione che ci metti ce la fai di sicuro :wink:
-
Adesso stavo guardando il package che hai creato per x86 ... solo che quelo utilizza l'interfaccia seriale negli script. Ho visto nelle schermate un "bel" script per controlare il riscaldamento. Siccome ho presso anche 2 DS1621 ... potresti spiegare un p? anche come controllare tramite script la temperatura (suppongo tu abbia utilizzato il modulo ds1621 di SilverFox. Quindi fai l'interogazione sull'indirizzo del sensore ma poi come gestisci effettivamente tramite script?).
Spero che le domande che faccio siano utili anche per altri utenti del forum :-D
PS: La passione devo dire che c'? ... mi sono studiato anche un p? di Eagle CAD per poter creare le PCB delle eventuali schede :-D
-
per l'x86 uso un termometro usb e sono in attesa di uno 1-wire.
ho fatto cos?... imposto la temperatura minima (dopo la quale la pompa parte anche se il riscaldamento non ? programmato) e la massima (dopo la quale la pompa si ferma) e collegato ad un rel? la pompa.
La minima e la massima sono scritte in un file
/etc/centralina/temperatura
8 20
qui lo script che ? richiamato ogni 5 minuti da cron. questo funziona con la scheda rel? seriale o usb presa da kmtronic...
$temp ? la temperatura rilevata che in questo caso ? memorizzata in un file.
#!/bin/sh
pidrele="$(cat /etc/centralina/pidrele)"
while [ $pidrele == "1" ];do
sleep 1
pidrele="$(cat /etc/centralina/pidrele)"
done
echo "1" > /etc/centralina/pidrele
porta="$(cat /etc/centralina/portarele)"
temp="$(cat /etc/centralina/tempinterna)"
min="$(cat /etc/centralina/temperatura | awk '{ print $1 }')"
max="$(cat /etc/centralina/temperatura | awk '{ print $2 }')"
file="/etc/centralina/log/log_ore_Riscaldamento"
statorele="$(/usr/sbin/rele.py | hexdump | sed -n '/0000000/p')"
##########
for n in $(seq 2 8); do
dev="$(cat /etc/centralina/device | sed -n '/'$n'/p'| awk '{ print $2 }')"
if [ $dev == "Termostato" ] ; then
nt="$(cat /etc/centralina/device | sed -n '/'$n'/p'| awk '{ print $3 }')"
fi
if [ $dev == "Riscaldamento" ] ; then
nr="$(cat /etc/centralina/device | sed -n '/'$n'/p'| awk '{ print $3 }')"
fi
done
###############
campo=2
for n in 1 3 5 7;do
statorelex="$(echo $statorele | awk '{ print $'$campo' }')"
eval statorele$n="$(echo ${statorelex:3:1})"
m=$(($n+1))
eval statorele$m="$(echo ${statorelex:1:1})"
campo=$(($campo+1))
done
##########
statoter=statorele$nt
eval statoter=\$$statoter
statoris=statorele$nr
eval statoris=\$$statoris
if [ $1 ];then
if [ $1 == "comandi" ] || [ $1 == "killprog" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x00\"
# echo -e "\xFF\x0$nt\x00" > /dev/$porta
echo "0" > /etc/centralina/pidrele
exit 0
fi
fi
############## Antigelo #########################
if [ "$temp" -lt "$min" ];then
if [ "$statoter" != "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x01\"
#echo -e "\xFF\x0$nt\x01" > /dev/$porta
fi
if [ "$statoris" != "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nr\\x01\"
#echo -e "\xFF\x0$nr\x01" > /dev/$porta
echo "Start $(date +%u) $(date +%d) $(date +%m) $(date +%Y) $(date +%H) $(date +%M) Antigelo " >> $file
fi
echo "0" > /etc/centralina/pidrele
exit 0
fi
antigelo="$(cat $file | sed '$! d' | awk '{ print $8 }')"
start="$(cat "$file" | sed '$! d' | awk '{ print $1 }')"
if [ "$temp" -gt "$min" ] && [ "$antigelo" == "Antigelo" ] && [ "$start" == "Start" ];then
if [ "$statoter" == "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x00\"
#echo -e "\xFF\x0$nt\x00" > /dev/$porta
fi
if [ "$statoris" == "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nr\\x00\"
# echo -e "\xFF\x0$nr\x00" > /dev/$porta
echo "Stop $(date +%u) $(date +%d) $(date +%m) $(date +%Y) $(date +%H) $(date +%M) Antigelo" >> $file
fi
echo "0" > /etc/centralina/pidrele
exit 0
fi
########### spegne pompa alla temp raggiunta ############
if [ "$temp" -gt "$max" ];then
if [ $statoris == 1 ];then
if [ $statoter == "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x00\"
# echo -e "\xFF\x0$nt\x00" > /dev/$porta
fi
fi
echo "0" > /etc/centralina/pidrele
exit 0
fi
########### Accende la pompa se sotto alla temp impostata ############
if [ "$temp" -lt "$max" ];then
if [ $statoris == 1 ];then
if [ $statoter != "1" ];then
/usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x01\"
# echo -e "\xFF\x0$nt\x01" > /dev/$porta
fi
fi
echo "0" > /etc/centralina/pidrele
exit 0
fi
echo "0" > /etc/centralina/pidrele
exit 0
il comando pu? essere "diretto" ----> echo -e "\xFF\x0$nt\x01" > /dev/$porta
o gestito da python ---> /usr/sbin/comandarele.py \"\\xFF\\x0$nt\\x01\"
/usr/sbin/comandarele.py
#! /usr/bin/env python
import serial, sys, re, time
comando = sys.argv[1]
comando = eval(comando)
porta = open('/etc/centralina/portarele', 'r')
porta = "/dev/"+porta.read(7)
ser = serial.Serial(porta, 9600, timeout=1)
num = 0
while num == 0:
if ser.isOpen():
ser.write(comando)
num = 1
ser.close()
exit
il file /usr/sbin/rele.py legge lo stato della scheda
#! /usr/bin/env python
import serial, time
ser = serial.Serial('/dev/ttyUSB1', 9600, timeout=1)
#ser.open()
num = 0
while num == 0:
if ser.isOpen():
ser.write("\xFF\x09\x00")
num = ser.inWaiting()
time.sleep(.3)
statoser = ser.read(num)
print statoser
ser.close()
exit
-
Ho trovato un driver per ds1307 qui: http://lxr.free-electrons.com/source/drivers/rtc/rtc-ds1307.c
Secondo te, compilato per Broadcom potrebbe funzionare?
-
il driver c'? gi? in openwrt... ? l'applicativo che legge e setta i valori che aveva qualche problema... almeno se non ricordo male :roll:
-
Possibile creare un .opkg per la Vodafone Station con tutte le pagine aggiunte fino adesso? (Asterisk, Telecamera ... etc ...).
a quale livello era non ricordo ma avevo fatto anche un package proprio per la vs..
http://www.tormini.it/index.php?dir=&file=webif-gpio-vs_0.9_all.opk (http://www.tormini.it/index.php?dir=&file=webif-gpio-vs_0.9_all.opk)
-
Possibile creare un .opkg per la Vodafone Station con tutte le pagine aggiunte fino adesso? (Asterisk, Telecamera ... etc ...).
a quale livello era non ricordo ma avevo fatto anche un package proprio per la vs..
http://www.tormini.it/index.php?dir=&file=webif-gpio-vs_0.9_all.opk (http://www.tormini.it/index.php?dir=&file=webif-gpio-vs_0.9_all.opk)
Ho installato proprio questo package per? manca la parte relativa alla telecamera e le ultime modifiche fatte per controllo temperatura :-D
-
magari quando finisco 'sto lavoro su x86 riprendiamo pure quella! :wink:
-
Siccome sto provando sul mio AGPF (per il momento solo giocando con i LED :-D ) il package che avevi creato per VS, mi sono accorto di un problema:
1. Imposto i 4 device (on/off in base alle mie esigenze)
2. Si toglie la corrente (in seguito a un blackout dovuto a un albero che rompe un filo elettrico in Svizera :evil:)
3. Il modem si avvia da solo quando viene ripristinata la corrente
4. I GPIO sono tutti resettati e anche lo stato dei rel? (diciamo messi tutti a 0). Secondo me sarebbe utile creare uno script (col tuo aiuto magari) da eseguire all'avvio del modem che legga e assegni ai GPIO i valori che trova in /etc/centralina/device (in modo da impostare i rel? come erano prima che andasse via la corrente). Altrimenti mi legge lo stato dei rel? solo quando si carica la pagina comandi.sh:
...... for n in $ngpio2 $ngpio3 $ngpio4;do
gp="$(gpioctl get $n | sed -n '/Pin/p'| awk '{ print $4 }')" .....
Fammi sapere se mi sbaglio.
Grazie
-
il file /etc/centralina/device a ricordo imposta solo il nome dei device e li associa ai gpio...
per quello che vuoi io farei cos?... a spanne per ora.
in comandi.sh metterei..
for n in $ngpio2 $ngpio3 $ngpio4 ;do
gpio=FORM_gpio$n
eval gpio=\$$gpio
if equal $gpio "ACCENDI" ; then
gpioctl dirout $n > /dev/null
---------->echo "0" > /etc/centralina/statod$n<---------------------------
fi
if equal $gpio "SPEGNI" ; then
gpioctl dirin $n > /dev/null
------------>echo "1" > /etc/centralina/statod$n <-----------------------
fi
e le stesse righe le inserirei nei vari comandi in /bin/centralina.
poi farei uno script, /usr/src/restartgpio, pi? o meno cos?:
#!/bin/sh
for n in (seq 1 4);do
stato="$(cat /etc/centralina/statod"$( cat /etc/centralina/device | sed -n '/Device'$n'/p'| awk '{ print $3 }')")"
if [ stato == "1" ];then
gpioctl dirin "$( cat /etc/centralina/device | sed -n '/Device'$n'/p'| awk '{ print $3 }')" > /dev/null
else
gpioctl dirout "$( cat /etc/centralina/device | sed -n '/Device'$n'/p'| awk '{ print $3 }')" > /dev/null
fi
done
exit 0
farei un giro con comandi.sh per settare una volta i gpio cos? crea tutti i file
e poi inserirei lo script in /etc/rc.local cos? parte al boot e setta i gipio come li ha lasciati.
Non ho fatto nessuna prova...
-
Ma nel centro dove hai installato il WRT, non ti ? mai capitato questo problema? (la mancanza di corrente)
Un'altra cosa che volevo chiederti (vorrei togliermi un dubbio): utilizzando delle periferiche sul bus i2c, l'accensione dei LED del modem all'avvio non dovrebbe creare dei problemi, vero? (in quanto ogni periferica i2c communica tramite l'indirizzo in esadecimale e non pi? viene controllata tramite lo stato dei GPIO: HIGH, LOW)
-
ho usato un sistema simile ma non ricordo come di preciso... :roll:
se scarichi l'opk e lo scompatti lo vedi.
in effetti ? un problema reale in ogni caso. Ipotizza che la corrente sia tolta per 3 ore o 5 ore... ha senso poi che vi sia un ripristino?
per i led non saprei... devi provare.
-
ho usato un sistema simile ma non ricordo come di preciso... :roll:
se scarichi l'opk e lo scompatti lo vedi.
in effetti ? un problema reale in ogni caso. Ipotizza che la corrente sia tolta per 3 ore o 5 ore... ha senso poi che vi sia un ripristino?
per i led non saprei... devi provare.
Secondo me ha senso quando la corrente va via per un'istante.
Provo a capire che cosa succede se solo uno dei dispositivi perde la corrente per una frazione di secondo: o il modem, o la scheda dei relay.
-
ho controllato, ho fatto proprio cos?... con script diversi ma il senso ? quello.
-
Mi potresti spiegare cosa fa esattamente il comando: sed '/_/s// /g' ?
Ho appena iniziato a studiare un p? regexp ma questo pattern non riesco a capirlo :?
-
sostituisce da una stringa "_" con nulla
echo "nome_cognome" | sed '/_/s// /g'
da
nome cognome
-
Scusate per la domanda banale ma dove si trovano le uscite gpio sul pirelli agpf?
Posso usare quelle dei led? :?
-
Scusate per la domanda banale ma dove si trovano le uscite gpio sul pirelli agpf?
Posso usare quelle dei led? :?
Sembra che l'AGPF abbia 40 GPIO ... Fino adesso io ho utilizzato solo quelle relative ai LED:
LED GPIO
1 rosso 5
1 verde 4
2 rosso 23
2 verde 22
3 rosso 27
3 verde 26
4 rosso 30
4 verde 29
5 rosso 10
5 verde 9
6 rosso 24
6 verde 25
7 rosso 7
7 verde 6
pulsante reg 34
-
Scusate per la domanda banale ma dove si trovano le uscite gpio sul pirelli agpf?
Posso usare quelle dei led? :?
Sembra che l'AGPF abbia 40 GPIO ... Fino adesso io ho utilizzato solo quelle relative ai LED:
LED GPIO
1 rosso 5
1 verde 4
2 rosso 23
2 verde 22
3 rosso 27
3 verde 26
4 rosso 30
4 verde 29
5 rosso 10
5 verde 9
6 rosso 24
6 verde 25
7 rosso 7
7 verde 6
pulsante reg 34
Grazie mille, gentilissimo! :-D
Sarebbe utile scovare se ce ne sono di "libere" per lasciare i led inalterati.
Dove hai reperito queste informazioni?
Attualmente mi sto cimentando alla realizzazione della centralina (lavoro duro per chi è solo "curioso" e non esperto del settore :x) per poi passare alla parte software.
Comunque complimenti a tutti per la vostra voglia di conoscenza e il vostro lavoro!
-
Le informazioni le ho reperite, una parte qui su nabuk.org, altre su altri forum. Pure io ho cominciato da zero ... ma alla fine sono riuscito a mettere in funzione una centralina al livello "base".
-
Scusate per la domanda banale ma dove si trovano le uscite gpio sul pirelli agpf?
Posso usare quelle dei led? :?
Sembra che l'AGPF abbia 40 GPIO ... Fino adesso io ho utilizzato solo quelle relative ai LED:
LED GPIO
1 rosso 5
1 verde 4
2 rosso 23
2 verde 22
3 rosso 27
3 verde 26
4 rosso 30
4 verde 29
5 rosso 10
5 verde 9
6 rosso 24
6 verde 25
7 rosso 7
7 verde 6
pulsante reg 34
uhm riflettendoci, ogni singolo led essendo di tipo bicolore a 4 pin(dovrebbero essere questi: 20mA 4-pin 130? Power LED) mi permette d'impostare tre stati 0=off, 1=on_gpio1, 1=on_gpio2 e quindi di eccitare 2 rel? diversi della centralina gpio, o sbaglio?
-
esatto. :wink:
-
Truthahn, ti ? mai capitato che si impalli il bus i2c? Ho fatto il refresh pi? volte della pagina dove visualizzo la temperatura da 2 sensori ... e a un certo punto al posto della temperatura mi usciva un messaggio do errore (non trovava il device).
Mi sono collegato in SSH ... con i2cdetect 0 ... non mi trova alcun device ...(mi dovrebbe trovare 3 device)
Nessuno ha toccato qualcosa ... perch? sono al lavoro :-D
-
A quello che ricordo, son passati mesi, funzionava bene... d'altra parte anch'io mi impallo qualche volta e non mi trovo... sar? il bus?? :-D
l'12c ? comunque un bus "delicato, i cavi non devono essere lunghi e risentono di disturbi... forse ? meglio schermarli.
-
Allora ragazzi ho finito l'assemblaggio della centralina gpio seguendo quanto fatto da un utente per un impianto d'irrigazzione con una fonera (spero funzioni altrimenti me ne compro una bella e pronta :-D).Adesso vieni il bello e cio? installare opnwrt sul mio Alice Gate Wi-fi plus.(visto tutto il materiale che si trova qui sarei tentato di prendermi questo bellissimo linksys: comunque, ci provo.)
Truthahn ho letto tutti i problemi che hai avuto con il brcm47xx (8.09 kernel 2.6) che poi hai risolto con il brcm-2.4 (8.09.2 kernel 2.4) e installando le utility gpio con le quali si gestiscono "facilmente".
Ho trovato quello di Ramponis ottimizzato per l'AGPF ma come dovrei gestire le gpio visto che le utility sono per il linksys?
Quale firmware devo installare?
Confuso! :cry:
-
A quello che ricordo, son passati mesi, funzionava bene... d'altra parte anch'io mi impallo qualche volta e non mi trovo... sar? il bus?? :-D
l'12c ? comunque un bus "delicato, i cavi non devono essere lunghi e risentono di disturbi... forse ? meglio schermarli.
Ha ripreso a funzionare solo dopo che ho staccato un connettore e l'ho riattaccato. Prima avevo provato di tutto: riavviare il modem, disinstallare/reinstallare tutti gli ipk relativi all'i2c ... Spero fosse solo un contatto imperfetto ... altrimenti non ? molto affidabile la mia centralina :-D
Comunque i cavi sono da 20 cm max. Solo uno (del sensore esterno di temperatura) c'ha 5-6 metri, ed ? un cavo di rete CAT5 UTP
-
Ho trovato quello di Ramponis ottimizzato per l'AGPF ma come dovrei gestire le gpio visto che le utility sono per il linksys?
Quale firmware devo installare?
Confuso! :cry:
Ancora pi? facilmente, ci sta "gpioctl" con il quale puoi impostare lo stato dei gpio e anche andare a leggere lo stato.
Vedi sul 3d della vs e ci dovrebbe essere tutto.
-
Ancora più facilmente, ci sta "gpioctl" con il quale puoi impostare lo stato dei gpio e anche andare a leggere lo stato.
Vedi sul 3d della vs e ci dovrebbe essere tutto.
Grazie gentilissimo come sempre!!!!
Ci studierò sopra:ho letto già molte cose interessanti da leccarsi le dita :-D
Una domandina veloce.
Ho comprato un maxim3232 per la seriale che funziona a 3 e 5 volts e ho fatto così i collegamenti (router pirelli wi.fi gate plus 2):tx router collegato a rx 3232 e viceversa, collegata la gnd maxim a gnd router, infine, vcc router (3,3 volts) a vcc 3232.
Ho letto nel 3d vs che dicevi di non alimentare il chip. (come funziona?) :?
Ho sbagliato i collegamenti?
Non vorrei fare casini prima d'iniziare :roll:
Aspetto l'adattatore usb-seriale per effettuare il flash
Grazie
-
Intendevo il collegamento con la seriale sulla scheda del wrt54gl, io utilizzo un cavo gi? pronto, quello del siemens, che consiglio vivamente a tutti.
-
Intendevo il collegamento con la seriale sulla scheda del wrt54gl, io utilizzo un cavo già pronto, quello del siemens, che consiglio vivamente a tutti.
ah ok....mi era sfuggito ho letto tutto il 3d ed erano le 3 di notte :-D....grasias
-
Certo, l'avevo rimossa perch? in aggiornamento...
http://82.186.215.122/webif-gpio_0.9_all.opk (http://82.186.215.122/webif-gpio_0.9_all.opk)
Ci son alcuni cambiamenti nella pagina comandi che ora quindi ? diventata cos?... (controllo di accesso alla rete e dei fari del teatro interni)
(http://82.186.215.122/schermatauno.png)
e la pagina dellla configurazione della centralina che compare nel modo "Router"...
(http://82.186.215.122/controlli.png)...
Manca sempre il controllo tramite tastierino numerico... :|
Ciao truthahn grazie alle tue guide (e quelle di ramponis)ho caricato open wrt sul mio pirelli, configurato la rete, installata l'interfaccia web del tuo centralino (na figata :-D), modificati in minima (forse ? meglio minimissima :lol:) parte i tuoi script per avere il comando dei led con gpioctl e adesso mi ritrovo a fare le saldature per la scheda rel? e vorrei dei chiarimenti.
Se ho ben capito posso alimentare la scheda con l'alimentatore del router (il mio funziona a 15 V ma ho pensato di mettere un LM7812 http://cgi.ebay.it/LM7812CV-7812-LM7812-L7812-regolatore-12V-1-5A-10-pezzi-/230559304770 (http://cgi.ebay.it/LM7812CV-7812-LM7812-L7812-regolatore-12V-1-5A-10-pezzi-/230559304770)...funzioner??)
inoltre dovrei collegare positivo e massa della seriale (router) sempre sulla scheda rel?.
Infine, se ho capito bene, collegare il positivo dei led relativi alle uscite configurate nella centralina in out0, out1, out2, out3 sulla scheda rel? (ma perch? out se in realt? sono in :?)
Corretto?
-
Certo che funzioner?!! :wink:
Per quanto gli out0, 1... non capisco. Sta scritto sulla scheda?
-
Mi son accorto che la la centralina compie un anno... il primo anno.
Un anno ricco di soddisfazioni... ormai me la son dimenticata e va con le sue gambe, sempre attenta, vigile e precisa. Centinaia di comandi eseguiti alla grande!!
Allora TANTI TANTI AUGURI!!!
(http://www.tormini.it/truthrepo/img/wrt.jpeg)
-
Mi son accorto che la la centralina compie un anno... il primo anno.
Un anno ricco di soddisfazioni... ormai me la son dimenticata e va con le sue gambe, sempre attenta, vigile e precisa. Centinaia di comandi eseguiti alla grande!!
Allora TANTI TANTI AUGURI!!!
(http://www.tormini.it/truthrepo/img/wrt.jpeg)
Tanti auguri e soprattutto grazie del tuo contributo al forum.
La centralina è questa: http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=270565472445&ssPageName=STRK:MEWNX:IT (http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=270565472445&ssPageName=STRK:MEWNX:IT)
come vedi nel connettore a 6 pin di sopra abbiamo:+3v,out0,out1,out2,out3,gnd
Penso che agli outx devo collegare il POSITIVO del led.
Giusto?
A dire il vero ho già provato e sulla scheda relè non si accende nessun led nonostante si accenda corretamente quella del router tramite la tua web-if :cry:
Un'altra cosa dalla seriale del router escono 3.3 volt ma nella scheda relè l'ingresso è a 5 V; funziona ugualmente? :roll:
Help me :cry: :cry:
-
Grande Truthahn............... :-D
-
Si funziona con i 3V. Prova a collegare l'altro punto dei led.
-
Si funziona con i 3V. Prova a collegare l'altro punto dei led.
Grazie il + era quello giusto, avevo sbagliato a saldare il connettore a 10 pin, mi aveva ingannato il colore del rosso sulla piattina che non corrisponde al positivo. Centralina perfettamente funzionante :lol:
Grande truthahn
-
Io invece sto provando a riscrivere tutto il codice per farlo a mio piacimento, per? la guida su openwrt ? veramente scarna, percui chiedo alcune cose.
Dopo aver aggiunto la nuova categoria nel file .category e nel file aver aggiunto il riferimento a fondo pagina <!-- ##WEBIF:name:... --> non la visualizza nel men?, come mai?
e se volessi utilizzare il passaggio di parmetri basta fare un include( "source script.sh" ) ?
-
devi lavorare sul file /usr/lib/webif/categories.awk
-
ma in quel file non vedo nulla che indica le categorie
root@OpenWrt:~# cat /usr/lib/webif/categories.awk
$1 == "-" { print "<li class=\"separator\"> </li>"; next; }
$1 ~ "^" selected "$" { print "<li class=\"selected\"><a href=\"" $2 "?cat=" $1 "\">@TR<<" $1 ">></a></li>"; next; }
{ print "<li><a href=\"" $2 "?cat=" $1 "\">@TR<<" $1 ">></a></li>"; }
root@OpenWrt:~#
da quello che ho capito se le cerca
-
up! e aggiungo: come si fanno gli array? ho provato:
array[0]="test"
echo ${array[0]};
ma non va, help.
-
Manca il ";" dopo test.
-
no non ? quello il problema, anche perch? ho visto che il ; viene usato solo nell'echo.
-
Scusami... stai usando la Bourne shell che ? un po' "limitata", trova un'altra strada per memorizzare le variabili... in effetti con la sh non serve il ";" neppure nell'echo.
-
e per il fatto nel post sopra? quello riguardante le categorie?
-
Io ho seguito un'altra strada... comunque fai come hai fatto, poi dai un
rm /tmp/.webcache/*
e ricarica... :wink:
-
quello ? l'originale, io vorrei capire come aggiungere le categorie :D
ovviamente sono gi? presenti nel file .categories
-
no, quella non ? l'originale ? la cache, se la elimini si ricrea con quella nuova, altrimenti ti legger? sempre la precedente se non esegui un reboot.
-
ho svuotato le cache ma ho mi da Errore 324 (net::ERR_EMPTY_RESPONSE): Errore sconosciuto.
Ho provato anche a riavviare :x
-
Allora ? altro... A me, ho appena provato, funziona!
-
non c'? percaso una versione di openwrt pi? nuova, forse con un aggiornamento si risolve tutto
-
Se puoi posta il tuo file.sh e .categories che provo a vedere anch'io. :wink:
-
root@OpenWrt:/www/cgi-bin/webif/centralina# cat settings.sh
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
header "Centralina" "Impostazioni" "<img src=\"sdafa.jpg\" /> @TR<<Impostazioni>>"
conf_file="/bin/centralina/gpio.cfg"
query="$QUERY_STRING"
gpio0="$(echo "$query" | awk '{ split($query,x,"&"); print x[1] }')"
gpio1="$(echo "$query" | awk '{ split($query,x,"&"); print x[2] }')"
gpio2="$(echo "$query" | awk '{ split($query,x,"&"); print x[3] }')"
gpio3="$(echo "$query" | awk '{ split($query,x,"&"); print x[4] }')"
gpio4="$(echo "$query" | awk '{ split($query,x,"&"); print x[5] }')"
enable="$(cat $conf_file | sed -n '/Enable/p' | awk '{ print $3 }')"
a="$(cat $conf_file | sed -n '/A/p' | awk '{ print $3 }')"
b="$(cat $conf_file | sed -n '/B/p' | awk '{ print $3 }')"
c="$(cat $conf_file | sed -n '/C/p' | awk '{ print $3 }')"
d="$(cat $conf_file | sed -n '/D/p' | awk '{ print $3 }')"
if [ ! -z $gpio4 ]; then
echo "Testo tutto";
for i in $enable $a $b $c $d; do
$(gpioctl dirin $i)
done
echo "ok";
sleep 5
for i in $enable $a $b $c $d; do
$(gpioctl dirout $i)
done
echo "FATTO";
else
echo "Ok";
fi
cat <<EOF
<form method="get">
<table>
<tr><td>Uscita A</td><td><input type="text" name="A" maxlength=1 size=1 value=$a /></td></tr>
<tr><td>Uscita B</td><td><input type="text" name="B" maxlength=1 size=1 value=$b /></td></tr>
<tr><td>Uscita C</td><td><input type="text" name="C" maxlength=1 size=1 value=$c /></td></tr>
<tr><td>Uscita D</td><td><input type="text" name="D" maxlength=1 size=1 value=$d /></td></tr>
<tr><td><input type="submit" value="Send" /></td><td><input type="submit" name="test" value="Test" /></td></tr>
</table>
</form>
EOF
?>
<!--
##WEBIF:name:Centralina:1:Impostazioni
-->
root@OpenWrt:/www/cgi-bin/webif/centralina#
.categories
root@OpenWrt:/www/cgi-bin/webif# cat .categories
##WEBIF:category:Info
##WEBIF:category:Graphs
##WEBIF:category:Status
##WEBIF:category:Log
##WEBIF:category:-
##WEBIF:category:System
##WEBIF:category:Network
##WEBIF:category:HotSpot
##WEBIF:category:VPN
##WEBIF:category:-
##WEBIF:category:Centralina
##WEBIF:category:-
##WEBIF:category:Logout
root@OpenWrt:/www/cgi-bin/webif#
-
Funziona perfettamente!!
quindi... quindi non so!! :roll:
-
Qualcuno sa come va collegato il DS1621? va messo in parallelo al PCF8574? se s? il "Tout" dove va collegato?
-
Qualcuno sa come va collegato il DS1621? va messo in parallelo al PCF8574? se s? il "Tout" dove va collegato?
Si, il DS1621 va messo in parallelo. Il Tout no va collegato da nessuna parte.
-
ciao a tutti
c'? qualcuno che sta utilizzando il bus i2c con un agpf? perch? ne sto uscendo matto, a forza di flasch e compilare dovro buttare il modem e il portatile che scalda tantissimo.
la prima cosa che volevo capire ? se veniva utilizzato un 74hc05 e la seconda il maledettissimo messaggio:
root@OpenWrt:/# i2cdetect 0
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
root@OpenWrt:/#
come avete risolto?
sto utilizzando un ds1621 per? ho anche un pcf8574.
ciao
-
(http://images1.fotoalbum.virgilio.it/v/www1-1/167/167932/285479/linksys1-vi.jpg)
Mi domandavo se questa scheda: http://www.futurlec.com/DC_Opto_Input_8.shtml (http://www.futurlec.com/DC_Opto_Input_8.shtml)
mi permetterebbe di collegare dei sensori per allarme o interruttori magnetici alla centralina, ovvero facesse l'operazione inversa della scheda rel? di sopra.
-
Salve a tutti.. avendo a disposizione 3 AGPF ho pensato di mettermi all'opera per collegare l'agfp, tramite il led 7 ( GPIO 6,7 ) , all'expander. Inizio con comprare il tutto e mi fisso l'obbiettivo di pilotare led collegati all'uscita del PCF.
Allora sull'AGFP gira la Backfire 10.0.031rc5 con installato i pacchetti kmod-i2c-core,kmod-i2c-gpiok, mod-i2c-gpio-custom.. Appena installo i pacchetti configure il caricamento del modulo custom di caricarsi usando il bus0 con la linea 6,7 per SDA e SCL e fin qui tutto ok... Mi metto all'opera collego il PCF e assegno 27 come indirizzo faccio un I2Cdetect e lo rilevo tranquillamente...
Codice:
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Ora passo successivo impostare l'uscita P0 a 1 con il comando i2cset
Codice:
i2cset -y 0 0x27 0x0 1
controllo con il tester e in uscita ho 0V quando ? a 0 e a 5V quando la imposto a 1... Fin qui nulla di strano...
il problema ? quando collego un led non funziona... Il PCF ? quello della Texas che da datasheet dice di poter dare in uscita 25ma ma il led anche senza resistenza per fissare la corrente non ne vuole sapere...
Per cuoriosit? provo anche il PCF della NXP ma con lo stesso risultato.. A questo punto passo a vedere se riesco a impostare l'uscita P1 del PCF e verificare con il tester ma noto che non riesco a impostare nessuna uscita tranne la P0
Codice:
i2cset -y 0 0x27 0x0 1 -> funziona P0
i2cset -y 0 0x27 0x1 1 -> non funziona ne con la P1 fin a P7
Sapreste aiutarmi??
grazie mille anticipatemente..
-
Salve a tutti.. avendo a disposizione 3 AGPF ho pensato di mettermi all'opera per collegare l'agfp, tramite il led 7 ( GPIO 6,7 ) , all'expander. Inizio con comprare il tutto e mi fisso l'obbiettivo di pilotare led collegati all'uscita del PCF.
Allora sull'AGFP gira la Backfire 10.0.031rc5 con installato i pacchetti kmod-i2c-core,kmod-i2c-gpiok, mod-i2c-gpio-custom..
Appena installo i pacchetti configure il caricamento del modulo custom di caricarsi usando il bus0 con la linea 6,7 per SDA e SCL e fin qui tutto ok... Mi metto all'opera collego il PCF e assegno 27 come indirizzo faccio un I2Cdetect e lo rilevo tranquillamente...
Codice:
root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Ora passo successivo impostare l'uscita P0 a 1 con il comando i2cset
Codice:
i2cset -y 0 0x27 0x0 1
controllo con il tester e in uscita ho 0V quando ? a 0 e a 5V quando la imposto a 1... Fin qui nulla di strano...
il problema ? quando collego un led non funziona... Il PCF ? quello della Texas che da datasheet dice di poter dare in uscita 25ma ma il led anche senza resistenza per fissare la corrente non ne vuole sapere...
Per cuoriosit? provo anche il PCF della NXP ma con lo stesso risultato.. A questo punto passo a vedere se riesco a impostare l'uscita P1 del PCF e verificare con il tester ma noto che non riesco a impostare nessuna uscita tranne la P0
Codice:
i2cset -y 0 0x27 0x0 1 -> funziona P0
i2cset -y 0 0x27 0x1 1 -> non funziona ne con la P1 fin a P7
Sapreste aiutarmi??
grazie mille anticipatemente..
ciao
scusa il ritardo,ti avevo risposto nell'altro post, nono capisco come fai a configurare il modulo custom...come operi? perch? quando faccio i2cdetect non mi trova nemmeno il modulo i2c..
ciao
-
hai controllato che ti carica il moduolo i2c con lsmod?? Se te lo carica devi creare lo script in /etc/modules.d in modo da caricare il modulo custom prima del core con le linee che vuoi usare e il numero di bus in modo tale al riavvio ti crea il bus usando le linee specificate...
-
hai controllato che ti carica il moduolo i2c con lsmod?? Se te lo carica devi creare lo script in /etc/modules.d in modo da caricare il modulo custom prima del core con le linee che vuoi usare e il numero di bus in modo tale al riavvio ti crea il bus usando le linee specificate...
ummh sar? meglio ripartire da zero? intanto rinizio con la compilazione di openwrt.
-
la prode centralina compie due anni, eh si ? ancora l? che accende, spegne, programma, chiude, apre e non si ? ancora stancata e non ha ancora sbagliato un colpo. Buon complenno...
(http://truthahn.it/images/torta.jpg)
-
hohohohohohohohohohleeeeeeee!! Due anni!!! :-D :-D :-D :-D :-D :-D :-D
-
la prode centralina compie due anni, eh si ? ancora l? che accende, spegne, programma, chiude, apre e non si ? ancora stancata e non ha ancora sbagliato un colpo. Buon complenno...
(http://truthahn.it/images/torta.jpg)
Grande truthahn, grazie a te anch'io ho una bella centralina funzionante da un anno.
Ho fatto delle modifiche per adattarlo alle mie esigenze e ultimamente ho creato delle nuove pagine alle webif che mi visualizzano i grafici delle temperature (interno, esterno, boiler, freezer) . della potenza elettrica impiegata (kw) e del consumo (kwh).
Appena ho un po' di tempo posto qualcosa.
-
Molto molto interessante... :-o :-o.
Attendiamo con interesse.
A presto.
-
Per il momento non ho tanto tempo (devo fare un po di ordine)e vi posto solo le foto.
La mia esigenza era di monitorare alcune temperature e il consumo di corrente nella mia abitazione.
Molto brevemente, per realizzare il tutto ho utilizzato il bus 1-wire molto affidabile e con cui ? molto facile realizzare i collegamenti.
Per le temperature ho utilizzato i sensori della DALLAS DS18B20 collegati in modalit? parassita (senza alimentazione esterna).
Per monitorare il consumo di energia ho acquistato un contatore elettronico ad impulsi http://www.ebay.it/itm/Contatore-elettrico-elettronico-energia-no-enel-o-vimar-/180850920901?pt=Attrezzature_e_strumentazione&hash=item2a1b8e0dc5 (http://www.ebay.it/itm/Contatore-elettrico-elettronico-energia-no-enel-o-vimar-/180850920901?pt=Attrezzature_e_strumentazione&hash=item2a1b8e0dc5) al quale ho interfacciato un contatore d'impulsi che, come dice il nome, conta semplicemente gli impulsi emessi dal contatore di prima http://www.hobby-boards.com/catalog/product_info.php?cPath=24&products_id=42 (http://www.hobby-boards.com/catalog/product_info.php?cPath=24&products_id=42)
Quest'ultimo e i sensori di temperatura sono collegati alla porta usb del router tramite un adattatore della Dallas usb-1wire http://www.hobby-boards.com/catalog/product_info.php?products_id=1503 (http://www.hobby-boards.com/catalog/product_info.php?products_id=1503)
Ecco le foto:http://imageshack.us/photo/my-images/41/potenza.png/ (http://imageshack.us/photo/my-images/41/potenza.png/) (sono 4)
Appena posso posto il codice e pi? dettagli :wink:
-
Straordinario!! :-o :-o :-o
Con calma se puoi postare come hai realizzato i grafici e collegato i sensori alla presa RJ12 te ne sarei grato.
Complimenti ancora!
-
Straordinario!! :-o :-o :-o
Con calma se puoi postare come hai realizzato i grafici e collegato i sensori alla presa RJ12 te ne sarei grato.
Complimenti ancora!
Grazie mille detto da te è veramente un complimento anche se è nulla in confronto a quello che fai tu :|
Appena avrò un oretta posto tutto ora devo scappare
Comunque per i sensori guarda qua. http://www.hobby-boards.com/catalog/howto_wiring_diagram.php (http://www.hobby-boards.com/catalog/howto_wiring_diagram.php)
e qua[link] http://imageshack.us/photo/my-images/594/sensorib.png/[/link]
Puoi omettere la resistenza; questo è uno schema per Arduino
-
Per quanto riguarda la creazione dei grafici ho utilizzato il pacchetto di openwrt rrdtool.
Per prima cosa bisogna creare i database che anche se sono di tipo round robin (occupano poco spazio) ho preferito posizionarli su una partizione su chiave usb.
Ho voluto creare un database che che mi permettesse di visualizzare le temperature dell'ultima ora, ultime 6 ore, ultime 12 ore, ultime 24 ore, 1 settimana, 1 mese ed ultimo anno.
Per ottenere ciò ho creato il database con il seguente comando (nella partizione usb che ho chiamato "database_rrdtool"):
rrdtool create temperatura.rrd --start N --step 300 \
DS:temp_sensore1:GAUGE:900:U:U \
DS:temp_sensore2:GAUGE:900:U:U \
DS:temp_sensore3:GAUGE:900:U:U \
DS:temp_sensore4:GAUGE:900:U:U \
RRA:AVERAGE:0.5:1:12 \
RRA:AVERAGE:0.5:1:72 \
RRA:AVERAGE:0.5:1:144 \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:12:168 \
RRA:AVERAGE:0.5:12:720 \
RRA:MAX:0.5:1:12 \
RRA:MAX:0.5:1:72 \
RRA:MAX:0.5:1:144 \
RRA:MAX:0.5:1:288 \
RRA:MAX:0.5:12:168 \
RRA:MAX:0.5:12:720 \
RRA:MIN:0.5:1:12 \
RRA:MIN:0.5:1:72 \
RRA:MIN:0.5:1:144 \
RRA:MIN:0.5:1:288 \
RRA:MIN:0.5:12:168 \
RRA:MIN:0.5:12:720 \
RRA:LAST:0.5:1:12 \
RRA:LAST:0.5:1:72 \
RRA:LAST:0.5:1:144 \
RRA:LAST:0.5:1:288 \
RRA:LAST:0.5:12:168 \
RRA:LAST:0.5:12:720
Le temperature verranno immagazzinati ogni 5 minuti nel database temperatura.rrd (per maggiori chiarimenti http://oss.oetiker.ch/rrdtool/ (http://oss.oetiker.ch/rrdtool/)
I sensori saranno letti come accennato qualche post prima tramite bus 1-wire e con il pacchetto owfs che crea un filesytem che permette di leggerli con un semplice "cat /mnt/sda2/usb/1-wire/28.D6CF96030000/temperature" (x esempio nel mio caso).Sarà più chiaro nei prossimi script (spero).
Per popolare il database ho creato lo script in /usr/sbin/agg_generale.sh che legge le temperature e messo nel crontab per essere esguito ogni 5 minuti.
#!/bin/bash
if [ -f /mnt/sda2/usb/1-wire/1D.B6CC0F000000/counters.A ]; then
minute=`date +%M`
hour=`date +%H`
day=`date +%d`
week=`date +%u`
month=`date +%m`
year=`date +%y`
SOURCE="/mnt/sda2/usb/database_rrdtool"
WIRE_C=`cat /mnt/sda2/usb/1-wire/1D.B6CC0F000000/counters.A &`
wait
WIRE_S1=`cat /mnt/sda2/usb/1-wire/28.D6CF96030000/temperature &`
wait
WIRE_S2=`cat /mnt/sda2/usb/1-wire/28.CBDE96030000/temperature &`
wait
WIRE_S3=`cat /mnt/sda2/usb/1-wire/28.92AF96030000/temperature &`
wait
WIRE_S4=`cat /mnt/sda2/usb/1-wire/28.08A696030000/temperature &`
wait
DB_DAY="powerkw_day.rrd"
DB_WEEK="powerkw_week.rrd"
DB_MONTH="powerkw_month.rrd"
DB_YEAR="powerkw_year.rrd"
DB_5YEAR="powerkw_5years.rrd"
RRD_H_D_W_M_Y="/etc/centralina/rrd_h_w_m_y.ini"
MEMORY="/etc/centralina/lettura_pre_prova.ini"
cd $SOURCE
######### Aggiorno db sensori temperatura ########
temp_sensore1=$(printf "%1.1f" $WIRE_S1)
temp_sensore2=$(printf "%1.1f" $WIRE_S2)
temp_sensore3=$(printf "%1.1f" $WIRE_S3)
temp_sensore4=$(printf "%1.1f" $WIRE_S4)
rrdtool update temperatura.rrd N:$temp_sensore1:$temp_sensore2:$temp_sensore3:$temp_sensore4
if [ -e $MEMORY ] || [ -e $RRD_H_D_W_M_Y ]; then
########### Calcolo potenza e aggiorno db ###########
lettura_pre=$(sed -n '1p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
sed -i '1c\'"$lettura"'' $MEMORY
potenza=$(echo "scale=2; $impulsi_eff / 2" | bc | sed 's/^\./0./')
power=$(echo "scale=2; $potenza / 0.0833" | bc | sed 's/^\./0./')
rrdtool update powerw.rrd N:$power
############# Controllo se devo aggiornare db contatore kwh (h,m,w,y) ################
check_h=$(sed -n '1p' $RRD_H_D_W_M_Y)
#echo $check_h
check_d=$(sed -n '2p' $RRD_H_D_W_M_Y)
#echo $check_d
check_w=$(sed -n '3p' $RRD_H_D_W_M_Y)
#echo $check_w
check_m=$(sed -n '4p' $RRD_H_D_W_M_Y)
#echo $check_m
check_y=$(sed -n '5p' $RRD_H_D_W_M_Y)
#echo $check_y
if [ "$check_h" != "$hour" ]; then
lettura_pre=$(sed -n '2p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
consumo=$(echo "scale=2; $impulsi_eff / 2000" | bc | sed 's/^\./0./')
sed -i '1c\'"$hour"'' $RRD_H_D_W_M_Y
sed -i '2c\'"$lettura"'' $MEMORY
rrdtool update $DB_DAY N:$consumo
#echo "Aggiorno db contatore consumo giornaliero"
fi
if [ "$check_d" != "$day" ]; then
lettura_pre=$(sed -n '3p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
consumo=$(echo "scale=2; $impulsi_eff / 2000" | bc | sed 's/^\./0./')
sed -i '2c\'"$day"'' $RRD_H_D_W_M_Y
sed -i '3c\'"$lettura"'' $MEMORY
rrdtool update $DB_WEEK N:$consumo
#echo "Aggiorno db contatore potenza consumo settimanale"
fi
if [ "$check_w" != "$week" ]; then
lettura_pre=$(sed -n '4p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
potenza=$(echo "scale=2; $impulsi_eff / 2000" | bc | sed 's/^\./0./')
sed -i '3c\'"$week"'' $RRD_H_D_W_M_Y
sed -i '4c\'"$lettura"'' $MEMORY
rrdtool update $DB_MONTH N:$consumo
#echo "Aggiorno db contatore potenza consumo mensile"
fi
if [ "$check_m" != "$month" ]; then
lettura_pre=$(sed -n '5p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
consumo=$(echo "scale=2; $impulsi_eff / 2000" | bc | sed 's/^\./0./')
sed -i '4c\'"$month"'' $RRD_H_D_W_M_Y
sed -i '5c\'"$lettura"'' $MEMORY
rrdtool update $DB_YEAR N:$consumo
#echo "Aggiorno db contatore potenza consumo annuale"
fi
if [ "$check_y" != "$year" ]; then
lettura_pre=$(sed -n '6p' $MEMORY)
lettura=$WIRE_C
impulsi_eff=$((lettura-lettura_pre))
consumo=$(echo "scale=2; $impulsi_eff / 2000" | bc | sed 's/^\./0./')
sed -i '5c\'"$year"'' $RRD_H_D_W_M_Y
sed -i '6c\'"$lettura"'' $MEMORY
rrdtool $DB_5YEAR N:$consumo
#echo "Aggiorno db contatore potenza consumo 5 anni"
fi
else
#### Inizializzo impulsi e date ####
for i in 1 2 3 4 5 6; do
echo $WIRE_C >> $MEMORY
done
for i in $hour $day $week $month $year; do
echo $i >> $RRD_H_D_W_M_Y
done
fi
fi
exit 0
In realtà questo script aggiorna anche gli altri database (kw e kwh).
Per i soli sensori di temperature il codice è il seguente:
SOURCE="/mnt/sda2/usb/database_rrdtool"
WIRE_S1=`cat /mnt/sda2/usb/1-wire/28.D6CF96030000/temperature &`
wait
WIRE_S2=`cat /mnt/sda2/usb/1-wire/28.CBDE96030000/temperature &`
wait
WIRE_S3=`cat /mnt/sda2/usb/1-wire/28.92AF96030000/temperature &`
wait
WIRE_S4=`cat /mnt/sda2/usb/1-wire/28.08A696030000/temperature &`
wait
cd $SOURCE
######### Aggiorno db sensori temperatura ########
temp_sensore1=$(printf "%1.1f" $WIRE_S1)
temp_sensore2=$(printf "%1.1f" $WIRE_S2)
temp_sensore3=$(printf "%1.1f" $WIRE_S3)
temp_sensore4=$(printf "%1.1f" $WIRE_S4)
rrdtool update temperatura.rrd N:$temp_sensore1:$temp_sensore2:$temp_sensore3:$temp_sensore4
Nel crontab:
root@OpenWrt:/usr/sbin# crontab -l
*/5 * * * * /usr/sbin/agg_generale.sh
Ok adesso il database verrà popolato.
Per creare i grafici ho creato lo script "/usr/sbin/sensori.sh":
#!/bin/bash
#Pulisco la ram
ram_hot="$(free | grep "Mem" | awk '{ print $3 }')"
if [ $ram_hot -ge 25000 ];then
sync; echo 3 > /proc/sys/vm/drop_caches
fi
#Percorso su pendrive usb
data="/mnt/sda2/usb/database_rrdtool"
cd $data
start=$1
start1=$2
titolo[1]="Variazione ultima ora"
titolo[2]="Variazione ultime 6 ore"
titolo[3]="Variazione ultime 12 ore"
titolo[4]="Variazione ultime 24 ore"
titolo[5]="Variazione ultima settimana"
titolo[6]="Variazione ultimo mese"
titolo[7]="Variazione ultimo anno"
case $4 in
Tutti)
rrdtool graph temperature.png \
--start -$start$start1 --slope-mode \
-h 400 -w 700 \
--vertical-label "Temperatura [C°]" \
--y-grid 2:1 \
-t "${titolo[$3]}" \
-c "BACK#000000" \
-c "SHADEA#757373" \
-c "SHADEB#757373" \
-c "FONT#DDDDDD" \
-c "CANVAS#202020" \
-c "GRID#666666" \
-c "MGRID#AAAAAA" \
-c "FRAME#202020" \
-c "ARROW#FFFFFF" \
DEF:intMedia=temperatura.rrd:temp_sensore1:AVERAGE \
DEF:intMin=temperatura.rrd:temp_sensore1:MIN \
DEF:intMax=temperatura.rrd:temp_sensore1:MAX \
DEF:intCorrente=temperatura.rrd:temp_sensore1:LAST \
DEF:boilerMedia=temperatura.rrd:temp_sensore2:AVERAGE \
DEF:boilerMin=temperatura.rrd:temp_sensore2:MIN \
DEF:boilerMax=temperatura.rrd:temp_sensore2:MAX \
DEF:boilerCorrente=temperatura.rrd:temp_sensore2:LAST \
DEF:estMedia=temperatura.rrd:temp_sensore3:AVERAGE \
DEF:estMin=temperatura.rrd:temp_sensore3:MIN \
DEF:estMax=temperatura.rrd:temp_sensore3:MAX \
DEF:estCorrente=temperatura.rrd:temp_sensore3:LAST \
DEF:freMedia=temperatura.rrd:temp_sensore4:AVERAGE \
DEF:freMin=temperatura.rrd:temp_sensore4:MIN \
DEF:freMax=temperatura.rrd:temp_sensore4:MAX \
DEF:freCorrente=temperatura.rrd:temp_sensore4:LAST \
COMMENT:" \n" \
LINE2:intCorrente#0000FF:"Interno" \
GPRINT:intMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:intMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:intMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:intCorrente:LAST:" Ultima\: %5.2lf%s\t" \
COMMENT:" \n" \
LINE2:boilerCorrente#00BC14:"Boiler" \
GPRINT:boilerMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:boilerMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:boilerMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:boilerCorrente:LAST:" Ultima\: %5.2lf%s\t" \
COMMENT:" \n" \
LINE2:estCorrente#FF0000:"Esterno" \
GPRINT:estMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:estMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:estMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:estCorrente:LAST:" Ultima\: %5.2lf%s\t" \
COMMENT:" \n" \
LINE2:freCorrente#FFBC14:"Freezer" \
GPRINT:freMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:freMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:freMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:freCorrente:LAST:" Ultima\: %5.2lf%s\t"
;;
Boiler)
rrdtool graph temperature.png \
--start -$start$start1 --slope-mode \
--y-grid 1:1 \
-h 400 -w 700 \
--vertical-label "Temperatura [C°]" \
-t "${titolo[$3]}" \
-c "BACK#000000" \
-c "SHADEA#000000" \
-c "SHADEB#000000" \
-c "FONT#DDDDDD" \
-c "CANVAS#202020" \
-c "GRID#666666" \
-c "MGRID#AAAAAA" \
-c "FRAME#202020" \
-c "ARROW#FFFFFF" \
DEF:boilerMedia=temperatura.rrd:temp_sensore2:AVERAGE \
DEF:boilerMin=temperatura.rrd:temp_sensore2:MIN \
DEF:boilerMax=temperatura.rrd:temp_sensore2:MAX \
DEF:boilerCorrente=temperatura.rrd:temp_sensore2:LAST \
COMMENT:" \n" \
LINE2:boilerCorrente#FFBC14:"Boiler" \
GPRINT:boilerMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:boilerMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:boilerMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:boilerCorrente:LAST:" Ultima\: %5.2lf%s\t"
;;
Interno)
rrdtool graph temperature.png \
--start -$start$start1 --slope-mode \
-h 400 -w 700 \
--vertical-label "Temperatura [C°]" \
-t "${titolo[$3]}" \
-c "BACK#000000" \
-c "SHADEA#000000" \
-c "SHADEB#000000" \
-c "FONT#DDDDDD" \
-c "CANVAS#202020" \
-c "GRID#666666" \
-c "MGRID#AAAAAA" \
-c "FRAME#202020" \
-c "ARROW#FFFFFF" \
DEF:intMedia=temperatura.rrd:temp_sensore1:AVERAGE \
DEF:intMin=temperatura.rrd:temp_sensore1:MIN \
DEF:intMax=temperatura.rrd:temp_sensore1:MAX \
DEF:intCorrente=temperatura.rrd:temp_sensore1:LAST \
COMMENT:" \n" \
LINE2:intCorrente#FFBC14:"Interna" \
GPRINT:intMedia:AVERAGE:"Media\: %5.2lf%s\t" \
GPRINT:intMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:intMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:intCorrente:LAST:" Ultima\: %5.2lf%s\t"
;;
Esterno)
rrdtool graph temperature.png \
--start -$start$start1 --slope-mode \
-h 400 -w 700 \
--vertical-label "Temperatura [C°]" \
-t "${titolo[$3]}" \
-c "BACK#000000" \
-c "SHADEA#000000" \
-c "SHADEB#000000" \
-c "FONT#DDDDDD" \
-c "CANVAS#202020" \
-c "GRID#666666" \
-c "MGRID#AAAAAA" \
-c "FRAME#202020" \
-c "ARROW#FFFFFF" \
DEF:estMedia=temperatura.rrd:temp_sensore3:AVERAGE \
DEF:estMin=temperatura.rrd:temp_sensore3:MIN \
DEF:estMax=temperatura.rrd:temp_sensore3:MAX \
DEF:estCorrente=temperatura.rrd:temp_sensore3:LAST \
COMMENT:" \n" \
LINE2:estCorrente#FFBC14:"Esterno" \
PRINT:estMedia:AVERAGE:" Media\: %5.2lf%s\t" \
GPRINT:estMax:MAX:" Max\: %5.2lf%s\t" \
GPRINT:estMin:MIN:" Min\: %5.2lf%s\t" \
GPRINT:estCorrente:LAST:" Ultima\: %5.2lf%s\t" \
;;
Freezer)
rrdtool graph temperature.png \
--start -$start$start1 --slope-mode \
-h 400 -w 700 \
--vertical-label "Temperatura [C°]" \
-t "${titolo[$3]}" \
-c "BACK#000000" \
-c "SHADEA#000000" \
-c "SHADEB#000000" \
-c "FONT#DDDDDD" \
-c "CANVAS#202020" \
-c "GRID#666666" \
-c "MGRID#AAAAAA" \
-c "FRAME#202020" \
-c "ARROW#FFFFFF" \
DEF:freMedia=temperatura.rrd:temp_sensore4:AVERAGE \
DEF:freMin=temperatura.rrd:temp_sensore4:MIN \
DEF:freMax=temperatura.rrd:temp_sensore4:MAX \
DEF:freCorrente=temperatura.rrd:temp_sensore4:LAST \
COMMENT:" \n" \
LINE2:freCorrente#FFBC14:"Freezer" \
GPRINT:freMedia:AVERAGE:" Media\:%5.2lf%s\t" \
GPRINT:freMax:MAX:" Max\:%5.2lf%s\t" \
GPRINT:freMin:MIN:" Min\:%5.2lf%s\t" \
GPRINT:freCorrente:LAST:" Ultima\:%5.2lf%s\t"
esac
ram_hot="$(free | grep "Mem" | awk '{ print $3 }')"
if [ $ram_hot -ge 25000 ];then
sync; echo 3 > /proc/sys/vm/drop_caches
fi
exit
A questo punto ho creato la pagina per la webif (proseguo sotto perchè superato il limite di 20000 caratteri spero qualche admin riunisca tutto)
-
prosegue da sopra....
Quindi ho creato /www/cgi-bin/webif/centralina/temperature.sh
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
#
############################################################################
#
# Descrizione:
# Mostra i grafici delle temperature
#
#
# lupin73 --->Nabuk<----
#############################################################################
header "Info" "System" "<img src=\"/images/Temp.gif\">@TR<< Temperature >>"
indirizzo="$(uci get network.lan.ipaddr)"
#############################################################################
echo "temp" > /etc/centralina/storico_check.ini
img="/temperature.png"
pidowread=`pidof owread`
if equal $pidowread "";then
temp1=`/mnt/sda2/usb/usr/bin/owread /28.08A696030000/temperature`
temp1=$(printf "%1.1f" $temp1)
else
echo "<center><strong>Aggiornamento database in corso!</strong><br>Al termine verrà creato il grafico!"
while [ "$pidowread" != "" ]; do
sleep 1
pidowread=`pidof owread`
done
fi
pidowread=`pidof owread`
if equal $pidowread "";then
temp2=`/mnt/sda2/usb/usr/bin/owread /28.CBDE96030000/temperature`
temp2=$(printf "%1.1f" $temp2)
else
echo "<center><strong>Aggiornamento database in corso!</strong><br>Al termine verrà creato il grafico!"
while [ "$pidowread" != "" ]; do
sleep 1
pidowread=`pidof owread`
done
fi
pidowread=`pidof owread`
if equal $pidowread "";then
temp3=`/mnt/sda2/usb/usr/bin/owread /28.92AF96030000/temperature`
temp3=$(printf "%1.1f" $temp3)
else
echo "<center><strong>Aggiornamento database in corso!</strong><br>Al termine verrà creato il grafico!"
while [ "$pidowread" != "" ]; do
sleep 1
pidowread=`pidof owread`
done
fi
pidowread=`pidof owread`
if equal $pidowread "";then
temp4=`/mnt/sda2/usb/usr/bin/owread /28.D6CF96030000/temperature`
temp4=$(printf "%1.1f" $temp4)
else
echo "<center><strong>Aggiornamento database in corso!</strong><br>Al termine verrà creato il grafico!"
while [ "$pidowread" != "" ]; do
sleep 1
pidowread=`pidof owread`
done
fi
if equal $FORM_grafici "Seleziona_data" || equal $FORM_tipo_grafici "Seleziona_ambiente" ;then
echo "<center><strong>ATTENZIONE!</strong><br>Devi selezionare almeno una data e un tipo per generare il grafico!"
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"3000")
</script>
EOF
else
if equal $FORM_grafici "1_ora";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 1 h 1 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "6_ore";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 6 h 2 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "12_ore";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 12 h 3 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "24_ore";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/software/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 24 h 4 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "1_settimana";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 1 w 5 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "1_mese";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 1 m 6 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
if equal $FORM_grafici "1_anno";then
echo $FORM_grafici > /etc/storico.ini
rm /mnt/sda2/usb/database_rrdtool/temperature.png
echo "<center><img src=\"../../../images/clessidra.gif\">"
echo "<center>Attendi per favore sto creando il grafico!"
/usr/sbin/sensori.sh 1 y 7 $FORM_tipo_grafici > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/temperature.sh\"',"1500")
</script>
EOF
fi
cat <<EOF
<script type="text/javascript">
function show_confirm()
{
var r=confirm(" Questa operazione per intervalli superiori\n ad un mese può durare molti minuti!\n Vuoi continuare?");
if (r==true)
{
window.open('http://$indirizzo/cgi-bin/webif/centralina/storico.sh?id=`cat /etc/storico.ini`','finestra','width=600,height=400, scrollbars=yes,top=200,right=50');
}
else
{
alert("Se avevi altro da fare hai fatto una scelta saggia!\n:)");
}
}
</script>
<center><table>
<tr>
<td><a onclick="show_confirm()"><img src="$img" title="Fai click per visualizzare lo storico"></a></td>
</tr>
</table>
EOF
cat <<EOF
<form method="get" action="temperature.sh">
<select name="grafici" >
EOF
for n in 1_ora 6_ore 12_ore 24_ore 1_settimana 1_mese 1_anno Seleziona_data;do
cat <<EOF
<option value="$n" selected="selected">$n</option>
EOF
done
cat <<EOF
</select>
<select name="tipo_grafici">
EOF
for n in Tutti Interno Esterno Boiler Freezer Seleziona_ambiente;do
cat <<EOF
<option value="$n" selected="selected">$n</option>
EOF
done
cat <<EOF
<input type="submit" name="$n" value="Crea">
</select>
</form>
<br><br>
EOF
display_form <<EOF
start_form|@TR<<Lettura sensori>>
end_form
EOF
cat <<EOF
<tr><td><center><strong><font size="2">Interno=</td><font color="#0000FF">$temp4°</font><td>  Esterno=<font color="#FF4500">$temp3°</font>  Boiler=<font color="#00FF00">$temp2°</font>  Freezer=<font color="#FFBC14:">$temp1°</font></tr></td>
<br><br>
EOF
fi
footer
?>
che visualizza il grafico in base al tempo selezionato.
Volevo avere anche un controllo più particolareggiato dei dati del database e quindi ho creato una pagina html che mi visualizzi lo storico delle temperature cliccando sull'immagine del grafico e che potesse essere stampato.
Ho creato quindi /usr/sbin/crea_storico.sh che mi costruisce la tabella che verrà visualizzata nella webif (n.b. ho utilizzato bash per operare sugli array)
#!/bin/bash
#Pulisco la ram
ram_hot="$(free | grep "Mem" | awk '{ print $3 }')"
if [ $ram_hot -ge 25000 ];then
sync; echo 3 > /proc/sys/vm/drop_caches
fi
case $1 in
"1_ora")
R=5
S="-1h"
leg="ultima ora"
;;
"6_ore")
R=5
S="-6h"
leg="ultime 6 ore"
;;
"12_ore")
R=5
S="-12h"
leg="ultime 12 ore"
;;
"24_ore")
R=5
S="-24h"
leg="ultime 24 ore"
;;
"1_settimana")
R=60
S="-1w"
leg="ultima settimana"
;;
"1_mese")
R=60
S="-1m"
leg="ultimo mese"
;;
"1_anno")
R=60
S="-1y"
leg="ultimo anno"
esac
cal_exp ()
{
case $1 in
"+00")
S=$(echo "scale=3; $2*1.00" | bc)
;;
"+01")
S=$(echo "scale=3; $2*10.00" | bc)
;;
"+02")
S=$(echo "scale=3; $2*100.00" | bc)
;;
"+03")
S=$(echo "scale=3; $2*1000.00" | bc)
esac
return
}
case $2 in
"temp")
SOURCE="/mnt/sda2/usb/database_rrdtool/temperatura.rrd"
declare DATA=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $1 }' | sed -e 's/://' | cut -f 1 -de | tail -n +2`)
declare S1=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $2 }' | cut -f 1 -de | tail -n +2`)
declare S2=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $3 }' | cut -f 1 -de | tail -n +2`)
declare S3=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $4 }' | cut -f 1 -de | tail -n +2`)
declare S4=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $5 }' | cut -f 1 -de | tail -n +2`)
declare EXP1=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $2 }' | cut -f 2 -de | tail -n +2`)
declare EXP2=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $3 }' | cut -f 2 -de | tail -n +2`)
declare EXP3=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $4 }' | cut -f 2 -de | tail -n +2`)
declare EXP4=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $5 }' | cut -f 2 -de | tail -n +2`)
declare TESTA=(Data Interno Boiler Esterno Freezer)
ld=$((${#DATA[@]}-2))
start=0
end=5
echo "<TR>"
echo "<td colspan="5" align="center" valign="middle">"
echo "<b>Storico $leg</b>"
echo "</TR>"
echo "<TR>"
for n in $(seq 1 $end); do
echo "<TD><CENTER>${TESTA[$n-1]}</CENTER></TD>"
done
for i in $(seq $start $ld); do
if [ $n -eq $end ];then
echo "</TR>"
echo "<TR>"
fi
EPOCH=${DATA[$i]}
DATA=$(awk "BEGIN {print strftime(\"%c\",$EPOCH)}")
S1=$(printf "%1.3f" ${S1[$i]})
S2=$(printf "%1.3f" ${S2[$i]})
S3=$(printf "%1.3f" ${S3[$i]})
S4=$(printf "%1.3f" ${S4[$i]})
#for k in 1 2 3 4; do
# S[k]=$(printf "%1.3f" ${S[k][$i]})
#done
EX1=${EXP1[$i]}
EX2=${EXP2[$i]}
EX3=${EXP3[$i]}
EX4=${EXP4[$i]}
for n in $(seq 1 $end); do
if [ $n -eq 1 ] && [ "DATA" != "nan" ] && [ "$S1" != "nan" ] && [ "$S2" != "nan" ] && [ "$S3" != "nan" ] && [ "$S4" != "nan" ];then
echo "<TD><CENTER>$DATA</CENTER></TD>"
fi
if [ $n -eq 2 ] && [ "$S1" != "nan" ];then
S=$S1
cal_exp $EX1 $S
echo "<TD><CENTER>$S</CENTER></TD>"
fi
if [ $n -eq 3 ] && [ "$S2" != "nan" ];then
S=$S2
cal_exp $EX2 $S
echo "<TD><CENTER>$S</CENTER></TD>"
fi
if [ $n -eq 4 ] && [ "$S3" != "nan" ];then
S=$S3
cal_exp $EX3 $S
echo "<TD><CENTER>$S</CENTER></TD>"
fi
if [ $n -eq 5 ] && [ "$S4" != "nan" ];then
S=$S4
cal_exp $EX4 $S
echo "<TD><CENTER>$S</CENTER></TD>"
fi
done
if [ $i -eq $ld ];then
echo "</TR>"
fi
done
;;
"pot")
SOURCE="/mnt/sda2/usb/database_rrdtool/powerw.rrd"
declare DATA=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $1 }' | sed -e 's/://' | cut -f 1 -de | tail -n +2`)
declare S1=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $2 }' | cut -f 1 -de | tail -n +2`)
declare EXP1=(`rrdtool fetch $SOURCE AVERAGE -r $R -s $S | awk '{ print $2 }' | cut -f 2 -de | tail -n +2`)
declare TESTA=(Data Watt)
ld=$((${#DATA[@]}-2))
start=0
end=2
echo "<TR>"
echo "<td colspan="5" align="center" valign="middle">"
echo "<b>Storico $leg</b>"
echo "</TR>"
echo "<TR>"
for n in $(seq 1 $end); do
echo "<TD><CENTER>${TESTA[$n-1]}</CENTER></TD>"
done
for i in $(seq $start $ld); do
if [ $n -eq $end ];then
echo "</TR>"
echo "<TR>"
fi
EPOCH=${DATA[$i]}
DATA=$(awk "BEGIN {print strftime(\"%c\",$EPOCH)}")
S1=$(printf "%1.3f" ${S1[$i]})
EX1=${EXP1[$i]}
for n in $(seq 1 $end); do
if [ $n -eq 1 ] && [ "DATA" != "nan" ] && [ "$S1" != "nan" ] && [ "$S2" != "nan" ] && [ "$S3" != "nan" ] && [ "$S4" != "nan" ];then
echo "<TD><CENTER>$DATA</CENTER></TD>"
fi
if [ $n -eq 2 ] && [ "$S1" != "nan" ];then
S=$S1
cal_exp $EX1 $S
echo "<TD><CENTER>$S</CENTER></TD>"
fi
done
if [ $i -eq $ld ];then
echo "</TR>"
fi
done
esac
sync; echo 3 > /proc/sys/vm/drop_caches
exit 0
N.B Questo script mi crea anche lo storico dei kw ma questo lo vedremo prossimamente.
La pagina che visualizzerà lo storico:
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
cat <<EOF
Content-Type: text/html; charset=UTF-8
Pragma: no-cache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script type="text/javascript">
function load()
{
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/storico.sh\"',"0")
}
function alertMsg()
{
document.write("<center><img src=\"../../../images/clessidra_storico.gif\">");
document.write("<center>Attendi per favore sto leggendo i dati!");
document.write("<center>Per intervalli di tempo superiori ad 1 mese può richiedere circa 15 minuti!");
document.write("<center>NON CHIUDERE LA FINESTRA!")
}
function timeMsg()
{
var t=setTimeout("alertMsg()",0);
}
</script>
</head>
EOF
indirizzo_test="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"
if equal $indirizzo_test "127.0.0.1:12345" ; then
indirizzo="127.0.0.1"
else
indirizzo="$indirizzo_test"
fi
#check_s="`cat /etc/centralina/storico_check.ini`"
if equal $GET_id "1_ora"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
if equal $GET_id "6_ore"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
if equal $GET_id "12_ore"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
if equal $GET_id "24_ore"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
if equal $GET_id "1_settimana"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
/usr/sbin/crea_storico.sh $GET_id > /etc/tabella_storico
fi
if equal $GET_id "1_mese"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
if equal $GET_id "1_anno"; then
cat <<EOF
<script language="JavaScript" type="text/javascript">
alertMsg()
</script>
<body onload="load()">
EOF
check_s="`cat /etc/centralina/storico_check.ini`"
/usr/sbin/crea_storico.sh $GET_id $check_s > /etc/tabella_storico
fi
cat <<EOF
<script type="text/javascript">
function printpage()
{
window.print();
}
</script>
<input type="button" value="Stampa" onclick="printpage()" /><br><br>
EOF
echo "<CENTER><TABLE BORDER=1 BORDERCOLOR="#000000" CELLPADDING=2 CELLSPACING=0>"
echo "`cat /etc/tabella_storico`"
echo "</TABLE>"
echo "</body>"
echo "</html>"
?>
<!--
-->
</html>
Scusate eventuali errori ma sono andato di fretta e comunque il progetto è ancora in fase di sviluppo, quando troverò un altro po' di tempo posterò la parte relativa al contatore elettrico.
-
Grazie mille lupin73, appena ho tempo provo anch'io ad implementarlo nella centralina x86, intanto mi interessa solo la temperatura interna. A presto.
-
Perfetto lupin73, funziona a meraviglia. Io l'ho utilizzato solo per la temperatura interna ed esterna. Per altri, utilizzo del centro utenti, ho utilizzato i google chart tool anche loro veramente ottimi.
-
Perfetto lupin73, funziona a meraviglia. Io l'ho utilizzato solo per la temperatura interna ed esterna. Per altri, utilizzo del centro utenti, ho utilizzato i google chart tool anche loro veramente ottimi.
Bene sono contento :-D
-
Si potrebbe installare e farlo funzionare anche su dd-wrt v24sp2?
Se si con quali modifiche da apportare?
Ricordo che DD-wrt ha gi? installato gpio.
-
Ciao. Se intendi l'pk o ml'intero sistema la risposta ? no, il tutto ? stato scritto per openwrt.
-
Capito, ma dove posso trovare la 8.09.2 senza Luci ma o gi? con X-wrt oppure senza interfaccia?
-
Dimenticavo per fonera.
-
mmmm penso sia complicato, magari una botta di c...o su qualche mirror. Io partirei con una nuova compilazione e un adeguamento, se necessario, degli script.
-
Si potrebbe adattare l'interfaccia centralina con l'interfaccia Luci?
-
Altro progetto interessante sul controllo gpio ? questo: http://kernelhacks.blogspot.it/2012/04/fonera-plugstrip.html
non sono riuscito a farlo funzionare.
-
Avresti il file ipk per la versione 7.09? Ipkg mi da errore anche se il file l'ho rinominato .ipk
-
ciao ragazzi ho un piccolo problema. Da premettere che uso openwrt "no xwrt" su un alice gate voip che funziona correttamente, e leggendo questo topic ho pensato di creare anche io la mia centralina. Ho installato il pacchetto di truthahn sia la normale che quella della vodafone station ma in tutte e due i casi mi esce
Unable to launch the requested CGI program:
/www/cgi-bin/webif/centralina.sh: No such file or directory
? come se qualcosa bloccasse l'esecuzione dei file sh, per? nella seconda riga ? come se non trova il file. Potete darmi qualche dritta.
-
ciao ragazzi ho un piccolo problema. Da premettere che uso openwrt "no xwrt" su un alice gate voip che funziona correttamente, e leggendo questo topic ho pensato di creare anche io la mia centralina. Ho installato il pacchetto di truthahn sia la normale che quella della vodafone station ma in tutte e due i casi mi esce
Unable to launch the requested CGI program:
/www/cgi-bin/webif/centralina.sh: No such file or directory
è come se qualcosa bloccasse l'esecuzione dei file sh, però nella seconda riga è come se non trova il file. Potete darmi qualche dritta.
ciao controlla i permessi di tutti i file della centralina. (devono essere tutti di proprietà di root)
Ma che interfaccia grafica usi?
-
ho risolto installando la versione xwrt sulla mia alice gate voip.Adesso mi apre sia il settaggio che i comandi. Giusto per curiosit? adesso come faccio a capire dove sono le uscite gpio sulla scheda.
Perdonatemi ma di elettronica ne capisco poco.
-
ho risolto installando la versione xwrt sulla mia alice gate voip.Adesso mi apre sia il settaggio che i comandi. Giusto per curiosit? adesso come faccio a capire dove sono le uscite gpio sulla scheda.
Perdonatemi ma di elettronica ne capisco poco.
Puoi utilizzare i led :wink:
-
non funzionano o meglio non c'? controllo.
-
ciao antonio ho ricevuto la tua email con le foto sei un grande. Il problema che quando lancio comandi.sh mi appera la pagina dei comandi ma quando
clicco su spegni o accendi i led non vengono comandati.
-
ciao antonio ho ricevuto la tua email con le foto sei un grande. Il problema che quando lancio comandi.sh mi appera la pagina dei comandi ma quando
clicco su spegni o accendi i led non vengono comandati.
collegati tramite shell e digita:
gpioctl dirout 6
Vedi se si accende il led
-
siiiiiiiiiiiiiii funziona. il problema che non era installato il pacchetto gpioctl. Grazie per avermi fatto eccendere la lampadina hihihihihihihi. Adesso se volessi aggiungere a quei quattro altri comandi?????
-
hai controllato se il file centralina.sh esiste nella cartella /www/cgi-bin/webif
fai cos?:
prima vai alla cartellacon questo comando: cd /www/cgi-bin
poi per farti dare l'elenco dei file: ls
-
siiiiiiiiiiiiiii funziona. il problema che non era installato il pacchetto gpioctl. Grazie per avermi fatto eccendere la lampadina hihihihihihihi. Adesso se volessi aggiungere a quei quattro altri comandi?????
La centralina è stata progettata per gestire 4 relè. Devi chiederti prima cosa vuoi fare e di quanti relè hai bisogno, poi se dovessi avere bisogno di aggiungere "comandi" devi modificare la pagina centralina.sh o direttamente comandi.sh :wink:
-
ci sono riuscito. Ho modificato il file centralina.sh e comandi.sh e ho aggiunto altri comandi. :) Adesso dv comprare la scheda rel? . Dove posso comprarla in italia oppure posso costruirmela io con componeti elettronici e rel???
chiedo un'altra cosa. non s? se devo aprire un'altro post o chiedere direttamente qui. Nella mia versione di xwrt ? installato samba, inserendo una chiavetta usb
dove trovo le risorse di questa chiavetta??
-
Ciao, per la scheda certo che puoi costruirla ma penso ti convenga comperarla... su ebay ne trovi a iosa. Per la chiavetta devi avere i moduli usb installati e poi la monti normalmente come in qualunque sistema unix. cosa intendi con "? installato samba" riguardo la key?
-
vedo installato il pacchetto samba.in opewrt quando vado nell'interfaccia grafica in system/usb mi vede la chiavetta. come posso accedere ai contenuti della chiavetta "2 gb"
-
vedo installato il pacchetto samba.in opewrt quando vado nell'interfaccia grafica in system/usb mi vede la chiavetta. come posso accedere ai contenuti della chiavetta "2 gb"
Samba serve per condividere filesystem fra macchine diverse. Se tu vuoi leggere (o scrivere) la chiavetta devi installare i moduli:
kmod-usb-uhci
kmod-usb-storage
kmod-usb-storage-extras
kmod-usb2
kmod-fs-ext4
In questo caso, naturalmente, la chiavetta la devi formattare in ext4.
-
ma non c'? un modo per creare un nas? samba va bene oppure devo scaricare qualche altro pacchetto??