Nabuk Wireless Community

Apparati => Elettronica & AP => Topic aperto da: truthahn - Febbraio 03, 2010, 05:45:42 pm

Titolo: Centralina controllo GPIO con wrt54gl e openwrt
Inserito 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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 04, 2010, 01:00:05 am
Veramente ottimo!!
Posteresti anche qualche esempio del codice?? Perch? non saprei proprio da dove partire se volessi fare qualcosa del genere!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 04, 2010, 11:06:55 am
questa ? la pagina comandi, la pi? semplice ma con la quale si pu? comandare al volo i rel?.

Codice: [Seleziona]
#!/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<<&nbsp;>>
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>
&nbsp;<p>&nbsp;<p>
EOF

display_form <<EOF
start_form|@TR<<&nbsp;>>
end_form
EOF

footer
 
?>
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 04, 2010, 07:40:56 pm
ottimo,
appena ho finito gli esami ci do un'occhiata....volendo ? possibile fare una cosa simile sulla fonera??
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 04, 2010, 08:15:19 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 04, 2010, 08:29:45 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 05, 2010, 06:42:19 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 05, 2010, 06:54:51 pm
grandeee

continua cos?! ;)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Fabietto_DJ - Febbraio 05, 2010, 07:31:57 pm
I progetti artigianali cos? sono sempre i migliori... :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 06, 2010, 03:36:02 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 06, 2010, 09:25:22 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 07, 2010, 12:56:52 am
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 07, 2010, 10:40:23 am
Proprio quella.  :-(
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 07, 2010, 12:14:16 pm
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 :/
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 07, 2010, 12:24:10 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 07, 2010, 01:23:07 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 07, 2010, 05:35:56 pm
comunque per attivare i rel? con livello logico basso, ti basta usare delle porte NOT

GPIO-------NOT-------Rel?


Cio?... puoi spiegare pi? chiaramente...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Fabietto_DJ - Febbraio 07, 2010, 06:44:39 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 07, 2010, 07:20:02 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 07, 2010, 07:49:27 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 07, 2010, 08:09:53 pm
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 ;)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 08, 2010, 01:03:10 pm
e poi ci sono 2 piedini per alimentare l'integrato (vcc e gnd).
a 3,3V?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 09, 2010, 11:46:36 am
no in teoria dovebbero essere a 5V
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 09, 2010, 02:49:43 pm
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".
 
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 10, 2010, 11:27:03 am
Ottimo!
appena ho un attimo di tempo lo provo!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 10, 2010, 08:47:54 pm
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:

Codice: [Seleziona]
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

Codice: [Seleziona]
#!/bin/sh
uci set network.eth0.vlan0="2 3 5*"
/etc/init.d/network restart
e per abilitarlo

Codice: [Seleziona]
#!/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?.

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 22, 2010, 11:55:26 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 22, 2010, 02:57:00 pm
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. :|
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 22, 2010, 03:16:45 pm
Trovato:

(http://82.186.215.122/7404N.png)

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 22, 2010, 08:21:34 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 23, 2010, 01:28:06 pm
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 ;)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Febbraio 23, 2010, 07:57:37 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Febbraio 25, 2010, 12:43:23 am
ok facci sapere ;)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 03, 2010, 05:49:15 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Max - Marzo 03, 2010, 06:52:36 pm
Meno male altrimenti dal nervoso ti saresti infilato nel forno con le patate  :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 03, 2010, 08:15:53 pm
Lo puoi dire!! Avevo gi? iniziato a spennarmi.  :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Marzo 04, 2010, 01:15:44 am
Lo puoi dire!! Avevo gi? iniziato a spennarmi.  :-D
LOL

quindi risolto tutto?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 04, 2010, 09:21:24 am
Si si, ora funziona bene anche con la piccola fonera. Grazie!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Marzo 04, 2010, 06:59:29 pm
ottimO!!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 23, 2010, 09:16:47 pm
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:

Codice: [Seleziona]
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
Codice: [Seleziona]
/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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 24, 2010, 07:31:04 pm
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
Codice: [Seleziona]
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??
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 24, 2010, 11:30:37 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 27, 2010, 08:35:02 pm
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
Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Fabietto_DJ - Marzo 28, 2010, 01:29:52 pm
Ottimo lavoro!!!  :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 31, 2010, 09:18:44 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: TechBek - Aprile 08, 2010, 11:41:43 pm
S-P-E-T-T-A-C-O-L-O-!!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 08, 2010, 11:53:48 pm
Seconda settimana di utilizzo e tutto ok!! oggi abbiamo cominciato a ritirare le chiavi e a far usare il comando telefonico! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 21, 2010, 06:54:15 pm
e quattro settimane  :lol:
Direi che a sto punto ? promossa, non ha sbagliato neppure un'interrogazione! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rino77 - Aprile 30, 2010, 07:25:24 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 30, 2010, 04:17:46 pm
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... :|
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rino77 - Maggio 01, 2010, 07:35:33 pm
Grazie per aver rimesso a disposizione il pacchetto.
Una domanda: cos'è il controllo tramite tastierino numerico?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 01, 2010, 07:55:57 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 02, 2010, 03:04:07 am
...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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 02, 2010, 04:21:28 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 06, 2010, 12:53:46 am
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:
Codice: [Seleziona]
#!/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<<&nbsp;>>
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>
&nbsp;<p>&nbsp;<p>
EOF

display_form <<EOF
start_form|@TR<<&nbsp;>>
end_form
EOF

footer
 
?>
<!--
##WEBIF:name:Telecontrollo:1:Telecontrollo
-->
L' agpf usa per i gpio il comando gpioctl.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 06, 2010, 07:39:27 am
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".

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 06, 2010, 09:15:35 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 06, 2010, 11:44:49 pm
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
Codice: [Seleziona]
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.


Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 07, 2010, 06:21:31 pm
 :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:
Codice: [Seleziona]
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 07, 2010, 08:00:11 pm
 :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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 07, 2010, 08:39:43 pm
ho un serverino con su asterisk 1.6.0.6
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 07, 2010, 09:02:39 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 07, 2010, 09:39:35 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 10:48:07 am
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 02:50:17 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 04:36:56 pm
Hai caricato l'ultima postata qui sopra?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 04:49:23 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 06:54:38 pm
si ho caricato l'ultima, e punto all' ip del router....
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 06:59:36 pm
Strano...
ma nella cartella il file centralina.sh ci sta?

ls /www/cgi-bin/webif
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 07:01:46 pm
si il file c'? ed anche tutti gli altri...ma sembra non venga eseguito
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 07:08:43 pm
potrei provare a lanciare il centralina.sh da terminale come root...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 07:10:36 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 07:33:32 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 07:35:24 pm
Aspetta...
prova ora a puntare a

http://ip/cgi-bin/webif/centralina/comandi.sh
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 07:48:24 pm
 :-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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 07:56:28 pm
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"
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 07:58:32 pm
Strana per? la storia dei permessi. :?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 08, 2010, 08:06:07 pm
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"...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 08, 2010, 08:09:34 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 09, 2010, 02:29:24 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 09, 2010, 04:04:31 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 09, 2010, 05:56:09 pm
ottimo, diventerebbe un sistema di allarme con combinatore telefonico!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 09, 2010, 06:41:15 pm
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/)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 10, 2010, 03:42:22 pm
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....
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 13, 2010, 07:49:44 pm
...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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 13, 2010, 11:05:05 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 18, 2010, 05:18:09 pm
...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:
Codice: [Seleziona]
#! /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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 18, 2010, 06:34:15 pm
inserisci una variabile per lo sleep così quando esegue la prima volta lo rallenti a piacere. Poi lo fai ripartire quando il "pericolo" è passato.
Codice: [Seleziona]
#! /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:
 
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 18, 2010, 06:39:50 pm
Domanda:
il problema ? far leggere i files dall'asterisk locale o da remoto?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 18, 2010, 06:48:56 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 18, 2010, 08:34:09 pm
Pu? andare... consuma praticamene nulla.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 18, 2010, 10:36:47 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 21, 2010, 07:49:40 pm
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:  
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Maggio 22, 2010, 02:04:05 pm
...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/)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 22, 2010, 04:50:00 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Esteban Sannin - Luglio 23, 2010, 06:01:38 pm
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..
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Avatar - Luglio 23, 2010, 09:37:50 pm
Citazione da: Esteban Sannin
Se vi fa piacere vi terro' aggiornati sulla questione..

devi !!!   :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 23, 2010, 09:55:35 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Esteban Sannin - Luglio 24, 2010, 12:14:44 am
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 02:10:35 pm
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...

Codice: [Seleziona]
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...

Codice: [Seleziona]
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...

Codice: [Seleziona]
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,


          
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Avatar - Luglio 24, 2010, 04:20:20 pm
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=
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 06:00:00 pm
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.

Codice: [Seleziona]
#!/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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Esteban Sannin - Luglio 24, 2010, 08:57:53 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 09:13:29 pm
Altro passo... funziona!!! :-D
Pronto da inserire in uno script della webif :wink:
Codice: [Seleziona]
#!/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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 09:16:59 pm
E si magia parecchio anche con lo sleep... ma non posso rallentarlo di pi?
siamo al 3-4% di CPU  :|
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 09:19:54 pm
Naturalmente, come sempre, se avete di meglio o correzioni ve ne sar? grato.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 24, 2010, 11:07:16 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Esteban Sannin - Luglio 25, 2010, 12:21:26 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 25, 2010, 04:32:50 pm
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.

Codice: [Seleziona]
#!/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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 27, 2010, 05:39:16 pm
Ragazzi su, datemi un'idea... aiutate 'sto povero tacchino spennacchiato!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 29, 2010, 01:45:23 pm
(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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 29, 2010, 03:54:51 pm
Funziona! :-D :-D :-D vediamo ora quanto consuma...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 30, 2010, 07:03:50 pm
Lo script si mangia anche me se non sto attento. :-D
Devo pensare a qualche alternativa..
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 30, 2010, 07:19:12 pm
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)

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Luglio 30, 2010, 07:59:58 pm
 :lol: wow ottimo lavoro!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Luglio 31, 2010, 12:21:30 am
ed eccoli qua...
Codice: [Seleziona]
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:~#

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Agosto 02, 2010, 08:30:59 pm
Ed ecco la pagina sulla webif che comanda il pcf8574
(http://www.tormini.it/truthrepo/img/a.jpg)

e questo ? il codice:

Codice: [Seleziona]
#!/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>
&nbsp;<p>&nbsp;<p>
EOF

display_form <<EOF
start_form|@TR<<&nbsp;>>
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. :-(
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Agosto 31, 2010, 08:53:55 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Agosto 31, 2010, 10:35:37 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 01, 2010, 04:03:48 pm
Cosa hai usato come apriporta? mdello,marca,e come hai interfacciato l'apriporta con le chiamate telefoniche?
Grazie mille! :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 01, 2010, 08:15:48 pm
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..

Codice: [Seleziona]
[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

Codice: [Seleziona]
#!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.

Codice: [Seleziona]
#!/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:

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Settembre 10, 2010, 02:36:49 pm
Hey  truthahn, percaso questa "centralina" ti legge pure i segnali analogici tipo la temperatura?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 10, 2010, 08:33:18 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Settembre 10, 2010, 08:47:02 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 12, 2010, 02:26:22 pm
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"
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 12, 2010, 05:34:54 pm
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?? :-)


Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 12, 2010, 07:09:32 pm
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!)



Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 12, 2010, 07:39:33 pm
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...
Codice: [Seleziona]
opkg install http://82.186.215.122/index.php?dir=&file=webif-gpio_0.9_all.opk

e poi punti il browser all'indirizzo:
Codice: [Seleziona]
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. :|






Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: marco1979 - Settembre 12, 2010, 07:47:03 pm
...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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 12, 2010, 08:08:54 pm
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!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 12, 2010, 08:19:36 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 12, 2010, 08:54:09 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 12, 2010, 08:59:00 pm
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...
Codice: [Seleziona]
opkg install http://82.186.215.122/index.php?dir=&file=webif-gpio_0.9_all.opk

e poi punti il browser all'indirizzo:
Codice: [Seleziona]
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!








Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 12, 2010, 09:08:32 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 12:00:57 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 04:06:44 pm
quello in formato trx e lo carichi semplicemente attraverso l'interfaccia web.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 04:10:29 pm
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?
 :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 04:33:11 pm
No! non riesco!
come installo l'interfaccia?
magari devo solo attivarla!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 05:51:50 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 07:05:34 pm
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 -
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 07:58:31 pm
Intanto vedo che hai scoperto che al posto di ipkg ora ci sta opkg...
Per installare l'interfaccia web:

Codice: [Seleziona]
opkg install luci
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 08:10:07 pm
oppure il metodo con wget  ma usa questo indirizzo

http://www.tormini.it/truthrepo/openwrt/wrt54g/openwrt-brcm47xx-squashfs.trx
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 08:28:37 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 08:39:55 pm
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.
--------------------------------------------------
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 09:02:34 pm
prima
opkg update
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 09:13:26 pm
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!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 09:18:31 pm
Sono errati i reposit........
dovrei cambiarli!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 09:22:47 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 09:25:04 pm
Altrimenti usiamo il metodo tftp... io uso sempre quello :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 09:36:20 pm
Ok ho aggiornato tutto ,ma ora devo caricare la webif giusto!
Come?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 09:41:30 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:03:25 pm
Grrrrrrrr!
mi dice che
Package were found but none compatible with the architeture configured!!!!!!!!!!!!!!!!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 10:05:30 pm
ok dai... andiamo di tftp... hai un tftp installato?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:07:35 pm
si su una macchina winxp
tftpd32
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 10:15:29 pm
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...

Codice: [Seleziona]
tftp 192.168.1.1

poi dai questi comandi..
Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:29:08 pm
si sto usando ubuntu ,ma avevo un portatile xp!
ok mi scarico la tua .bin e provo
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:34:32 pm
Perdonami ho installato tftp ,ma dove metto il file .bin? in quale cartella?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 10:37:11 pm
Generalmente ? in
/var/lib/tftpboot
 ma dipende dal file di configurazione.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:45:20 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 10:50:58 pm
penso che tu abbia instalalto solo il client...

devi installare il server e anche xinetd che lo gestisce...

Codice: [Seleziona]
sudo apt-get install xinetd tftpd tftp
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 10:53:51 pm
Che idiota!! giusto!! :-Dvado uccido e torno!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 13, 2010, 10:58:25 pm
poi crei il file
/etc/xinetd.d/tftp
e ci metti dentro...
Codice: [Seleziona]
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...

Codice: [Seleziona]
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

Codice: [Seleziona]
sudo /etc/init.d/xinetd start

e che dio ce la mandi buona :-D ( e magari anche bella!)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 13, 2010, 11:28:33 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 08:11:23 am
Buongiorno!

Controlla tutto... deve andare.

fai questa prova... dopo aver avviato xinetd

Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 10:35:16 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 01:37:33 pm
prova a stopparlo e farlo ripartire...
sudo etc/init.d/xinetd stop
sudo etc/init.d/xinetd start
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 02:06:08 pm
 * 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!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 02:08:09 pm
Bene!!!! Ora devo proprio uscire... stasera voglio trovare un bel wrt54gl riflashato!!!!!!! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 02:36:42 pm
Haha dai oggi provo con calma!!
a dopo buona giornata!|
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 05:56:52 pm
Tutto ok!!
Per? devo confessarti che ho fatto con xp (al volo)! :|

Hhahaha
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 06:19:30 pm
Alleluiaaaaaaaaaaaaaaaa!! Ok, andiamo avanti?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 09:10:51 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 09:27:04 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 14, 2010, 09:46:41 pm
Si! domani vedr? di fare un giretto!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 14, 2010, 11:12:40 pm
guarda qua..

http://martybugs.net/wireless/openwrt/flash.cgi
 (http://martybugs.net/wireless/openwrt/flash.cgi)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Settembre 15, 2010, 08:29:31 am
truthlan ma dal lato SW effettua un log dell'attivazione/disattivazione con relativa data? del tipo:

Codice: [Seleziona]
[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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 08:37:12 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 09:05:21 am
truthlan ma dal lato SW effettua un log dell'attivazione/disattivazione con relativa data? del tipo:

Codice: [Seleziona]
[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!
 :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 09:45:19 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 09:51:48 am
(http://www.tormini.it/truthrepo/img/log.png)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:24:55 am
Magnifico!!
Io cosa devo fare ora Truthahn?
 :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:43:25 am
Intanto ora funziona la webif? xwrt?

se si installi l'ipk della centralina...

Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:58:26 am
Access to this resource is forbidden
Permessi?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:17:37 am
ok...
 
Codice: [Seleziona]
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/
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:23:43 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 01:02:21 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 01:36:21 pm
hai sbagliato l'indirizzo. Hai messo qualcosa di troppo :wink:
Punta a...

http://192.168.2.190/cgi-bin/webif/centralina.sh
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 01:51:00 pm
OOOPSS!!
si vero ora va!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 03:09:12 pm
Per? non accedo a tutto il resto     
    *  COMANDI
    * PROGRAMMAZIONE
    * ABILITAZIONE TEL
    * LOG
    * BACKUP
    * INFO
No such file or directory

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 03:13:10 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 03:19:45 pm
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

 
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 03:23:57 pm
http://192.168.2.190
Va direttamente su:
http://192.168.2.190/cgi-bin/webif/info.sh
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 03:24:15 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 03:33:53 pm
Si puntando li funziona tutto!
Forse perch? non ho disinstallato la prima?
o perch
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 03:35:56 pm
Bella domanda! :-D non saprei proprio. Comunque ora funzionano i vari link sulla pagina?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 03:47:18 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 04:17:17 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 04:18:36 pm
... e poi prepara saldatore e stagno! :-D

per i file system..
Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 05:18:44 pm
Si ok,questa sera con un p? di calma rifaccio tutto!
poi scrivo!
Bene bene per il saldatore !!!!! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 09:36:33 pm
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!



Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 09:37:39 pm
Ho notato una cosa! la data e l'ora sono sballate!! anche dopo aver impostato come riferimento (Europa-Roma)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 09:49:41 pm
? 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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 09:52:19 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 09:53:34 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 09:57:10 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:04:03 pm
MP per link diretto ,almeno puoi vedere meglio!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:09:15 pm
il link non funziona!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:10:44 pm
Ora piu nulla ,sembra morto proprio morto,quindi link down!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:11:24 pm
riprova! ora!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:12:40 pm
mandami la pass :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:29:59 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:42:01 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:42:54 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:48:18 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:50:35 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:52:52 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 10:56:45 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 10:59:31 pm
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!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:02:02 pm
Ma da remoto funziona bene?
Perch? se funza bene da remoto allora funza bene anche da locale iusto?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:09:11 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:10:14 pm
Per?
# Date: 1970-01-01
# Time: 01:58:08
Non cambia!
Oni tanto si inchioda e devo fare refresh della pa..
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:11:53 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:12:36 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:13:57 pm
sotto il quadratino all'estrema dx del router.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:14:19 pm
Si provo con l'altro ,mi passeresti link per favore!
quali sono le differenze sostanziali?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:16:31 pm
sotto il quadratino all'estrema dx del router.
guardando il router estrema dx? o sx?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:19:40 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:22:58 pm
Quindi sul tuo  non usi il bus i2c..che praticamente apre le porte a cosa?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:30:41 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:35:05 pm
Ok capito!! nel frattempo ho rifleshato tutto !! :-D con il 2.4
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:41:56 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:46:35 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:47:23 pm
OpenWrt Kamikaze bleeding edge, r22312
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 15, 2010, 11:50:52 pm
no, dev'essere la 8.09
hai caricato quello di prima.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 15, 2010, 11:52:25 pm
Azz..sono stanco...ho sbagliato??
riprovo!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:00:08 am
Si ora ? giusto
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:10:26 am
root@OpenWrt:/usr/sbin#wget....?
No..wget no
cosa uso per scaricare?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:15:23 am
wget http://www.tormini.it/truthrepo/Wrt54gl/gpio

chmod a+x gpio
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:16:16 am
Ma non mi avevi passato questo?
http://downloads.openwrt.org/utils/gpio.tar.gz
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:18:05 am
si ma l'ho scaricato e scompattato gi? nel mio repo... in quello ci stavano anche i sorgenti
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:21:59 am
ok
wget http://www.tormini.it/truthrepo/Wrt54gl/gpio
chmod a+x gpio
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:23:11 am
se mi mandi la nuova pass ci do un occhio
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:24:51 am
Mp
solo i numeri
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:26:22 am
Ora mi sembra ok!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:29:49 am
ok tutto a posto... guarda i led che tra 3 secondi li accendo...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:30:53 am
ok? ora li spengo
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:33:13 am
riprova che ero distratto!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:33:44 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:41:12 am
Ma da locale devo sempre entrare con
http://192.168.2.190/cgi-bin/webif/centralina/swich.sh?swich=centralina
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:44:21 am
no se la lasci collegata a questo indirizzo pubblico basta il link modo: router centralina, altrimenti cambia il file che ti ho detto.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:48:58 am
Si ok! :-)
io vado a riposare,se ci sei domani mattina ci sentiamo!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 12:49:30 am
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:55:17 am
Buonanotte anche a te !
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 08:09:24 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 08:17:57 am
@Truthahn
LA SPEDIZIONE E' IN CONSEGNA PER QUESTA MATTINA!!!!! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 10:25:04 am
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 16, 2010, 12:49:32 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 16, 2010, 04:08:08 pm
ma! se parli di integrati i2c io alla fine ho preso tutto sulla baia e ho speso pochissimo.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Settembre 17, 2010, 05:48:03 pm
Si ok! :-)
Possiamo saldare in attesa dei rel? o aspettiamo che arrivino?
Saluti a tutti! :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Settembre 17, 2010, 06:59:52 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Ottobre 23, 2010, 06:40:00 pm
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..
Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Max - Ottobre 24, 2010, 05:01:22 pm
Veramente bello  :-o
Complimenti sei bravissimo !!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Ottobre 24, 2010, 11:15:14 pm
Grazie!! :roll:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rino77 - Novembre 11, 2010, 08:29:01 pm
Complimenti. La parte relativa alle due webcam ? spettacolare!
Invece per la internet key che problema hai?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Novembre 11, 2010, 08:51:25 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Novembre 24, 2010, 08:59:27 pm
Buona sera!!!
Dopo 30 giorni dal mio ordine ancora non ? arrivato nulla dalla Futurlec........mi devo preoccupare??
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Novembre 25, 2010, 12:07:31 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Novembre 28, 2010, 12:17:17 pm
Si si ! mi hanno inviato la conferma con il numero di riferimento!!
Mah!! nulla per il omento!!
Aspettiamo ancora!!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: djsmoye - Dicembre 23, 2010, 11:32:55 pm
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:

Codice: [Seleziona]
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
Codice: [Seleziona]
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
Codice: [Seleziona]
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:
Codice: [Seleziona]
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 :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Dicembre 24, 2010, 07:19:53 pm
hai settato il bus per utilizzare i gpio corrispondenti...

Codice: [Seleziona]
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..

Codice: [Seleziona]
i2cdetect -l

per vedere se trova il bus?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: djsmoye - Dicembre 24, 2010, 09:13:16 pm
Si o tutto fatto giusto ? il bus ci st? bene.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Dicembre 25, 2010, 11:42:41 am
allora problemi nei collegamenti o negli integrati.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: djsmoye - Dicembre 25, 2010, 05:36:53 pm
No, ho provato anche altri :-)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Dicembre 31, 2010, 05:12:02 pm
Aspettiamo ancora!!

Ciao Kidy... stai ancora aspettando??
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Dicembre 31, 2010, 07:17:07 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Dicembre 31, 2010, 07:27:58 pm
? 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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 01, 2011, 12:07:04 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 02, 2011, 12:16:50 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 02, 2011, 02:18:56 pm
ma se la volessi creare io, invece che ordinarla, che schema dovrei seguire?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 02, 2011, 03:27:16 pm
se vai sul link proposto da kidy trovi lo schema o anche sul sito di futurlec mi sembra.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 12, 2011, 05:25:01 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 12, 2011, 06:10:16 pm
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..

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 12, 2011, 10:02:55 pm
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 ?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 12, 2011, 10:22:41 pm
vedi qua http://www.nabuk.org/f/index.php?topic=2626.0 (http://www.nabuk.org/f/index.php?topic=2626.0)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 26, 2011, 04:17:57 pm
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 ?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 26, 2011, 08:06:44 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Gennaio 26, 2011, 10:14:58 pm
il problema ? che costano assai :S
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 26, 2011, 10:38:15 pm
Allo stesso prezzo con un po' di pazienza la prendi sulla baia... o almeno io le ho prese...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 27, 2011, 01:59:51 pm
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 ... :)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 27, 2011, 10:58:49 pm
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
Codice: [Seleziona]
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
Codice: [Seleziona]
[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
Codice: [Seleziona]
[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.
Codice: [Seleziona]
#!/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...

Codice: [Seleziona]
#!/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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 27, 2011, 11:04:36 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 27, 2011, 11:43:40 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 27, 2011, 11:49:48 pm
Certo che ? possibile  :-)
Forza fpaliuc al lavoro, con la passione che ci metti ce la fai di sicuro :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 27, 2011, 11:57:40 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 28, 2011, 12:18:33 am
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
Codice: [Seleziona]
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.
Codice: [Seleziona]
#!/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
Codice: [Seleziona]
#! /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
Codice: [Seleziona]
#! /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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 28, 2011, 12:48:34 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 28, 2011, 12:59:58 pm
il driver c'? gi? in openwrt... ? l'applicativo che legge e setta i valori che aveva qualche problema... almeno se non ricordo male :roll:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 28, 2011, 02:03:22 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 28, 2011, 02:24:09 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 29, 2011, 07:38:29 pm
magari quando finisco 'sto lavoro su x86 riprendiamo pure quella! :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 30, 2011, 11:34:15 pm
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

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 31, 2011, 01:32:05 pm
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..
Codice: [Seleziona]
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?:

Codice: [Seleziona]
#!/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...

Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 31, 2011, 01:51:06 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 31, 2011, 02:14:22 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 31, 2011, 02:33:31 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 31, 2011, 04:20:54 pm
ho controllato, ho fatto proprio cos?... con script diversi ma il senso ? quello.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Gennaio 31, 2011, 05:33:40 pm
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  :?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Gennaio 31, 2011, 06:37:05 pm
sostituisce da una stringa "_" con nulla

echo "nome_cognome" | sed '/_/s// /g'
da
nome cognome
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 03, 2011, 02:24:51 pm
Scusate per la domanda banale ma dove si trovano le uscite gpio sul pirelli agpf?
Posso usare quelle dei led?  :?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Marzo 03, 2011, 02:32:48 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 03, 2011, 04:26:55 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Marzo 03, 2011, 04:48:16 pm
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".
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 04, 2011, 02:13:25 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 04, 2011, 05:43:06 pm
esatto. :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Marzo 04, 2011, 05:55:57 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 04, 2011, 06:16:35 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 04, 2011, 07:38:42 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Marzo 04, 2011, 08:26:00 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 04, 2011, 10:08:43 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 06, 2011, 12:09:31 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 08, 2011, 05:15:19 pm
Intendevo il collegamento con la seriale sulla scheda del wrt54gl, io utilizzo un cavo gi? pronto, quello del siemens, che consiglio vivamente a tutti.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 09, 2011, 12:48:04 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 24, 2011, 06:37:49 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 25, 2011, 07:29:10 pm
Certo che funzioner?!! :wink:

Per quanto gli out0, 1... non capisco. Sta scritto sulla scheda?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 25, 2011, 09:09:29 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 25, 2011, 10:40:43 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Marzo 25, 2011, 10:41:56 pm
Grande Truthahn............... :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 25, 2011, 11:50:04 pm
Si funziona con i 3V. Prova a collegare l'altro punto dei led.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 31, 2011, 02:50:39 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 19, 2011, 06:02:47 pm
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" ) ?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 19, 2011, 06:46:28 pm
devi lavorare sul file /usr/lib/webif/categories.awk
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 19, 2011, 06:54:12 pm
ma in quel file non vedo nulla che indica le categorie

root@OpenWrt:~# cat /usr/lib/webif/categories.awk
$1 == "-"               { print "<li class=\"separator\">&nbsp;</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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 23, 2011, 08:09:31 pm
up! e aggiungo: come si fanno gli array? ho provato:
Codice: [Seleziona]
array[0]="test"
echo ${array[0]};
ma non va, help.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 23, 2011, 08:15:35 pm
Manca il ";" dopo test.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 23, 2011, 09:51:09 pm
no non ? quello il problema, anche perch? ho visto che il ; viene usato solo nell'echo.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 23, 2011, 11:24:18 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 23, 2011, 11:56:25 pm
e per il fatto nel post sopra? quello riguardante le categorie?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 24, 2011, 11:14:46 am
Io ho seguito un'altra strada... comunque fai come hai fatto, poi dai un

rm /tmp/.webcache/*

e ricarica... :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 24, 2011, 11:46:20 am
quello ? l'originale, io vorrei capire come aggiungere le categorie :D

ovviamente sono gi? presenti nel file .categories
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 24, 2011, 03:26:31 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 24, 2011, 03:40:20 pm
ho svuotato le cache ma ho mi da Errore 324 (net::ERR_EMPTY_RESPONSE): Errore sconosciuto.
Ho provato anche a riavviare   :x
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 24, 2011, 04:30:37 pm
Allora ? altro... A me, ho appena provato, funziona!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 24, 2011, 04:31:29 pm
non c'? percaso una versione di openwrt pi? nuova, forse con un aggiornamento si risolve tutto
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 24, 2011, 04:35:42 pm
Se puoi posta il tuo file.sh e .categories che provo a vedere anch'io. :wink:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Aprile 24, 2011, 04:39:10 pm
Codice: [Seleziona]
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
Codice: [Seleziona]
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#
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 24, 2011, 04:47:55 pm
Funziona perfettamente!!
quindi... quindi non so!! :roll:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: GiuseppeP - Giugno 07, 2011, 09:37:04 am
Qualcuno sa come va collegato il DS1621? va messo in parallelo al PCF8574? se s? il "Tout" dove va collegato?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: fpaliuc - Giugno 07, 2011, 11:11:48 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rgbsystem - Luglio 25, 2011, 10:07:28 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Agosto 04, 2011, 04:07:51 pm
(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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: loopin3 - Ottobre 26, 2011, 07:19:08 pm
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..
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rgbsystem - Novembre 01, 2011, 09:54:11 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: loopin3 - Novembre 03, 2011, 09:45:48 pm
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...
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: rgbsystem - Novembre 03, 2011, 10:39:19 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 22, 2012, 10:46:15 pm
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)
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: kidy - Marzo 23, 2012, 07:26:29 am
hohohohohohohohohohleeeeeeee!! Due anni!!! :-D :-D :-D :-D :-D :-D :-D
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 25, 2012, 01:07:08 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 25, 2012, 10:51:30 pm
Molto molto interessante... :-o :-o.
Attendiamo con interesse.
A presto.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 26, 2012, 02:35:40 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 26, 2012, 02:57:05 pm
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!
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 26, 2012, 03:01:54 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 26, 2012, 05:51:45 pm
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"):
Codice: [Seleziona]
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.
Codice: [Seleziona]
#!/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:
Codice: [Seleziona]
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:
Codice: [Seleziona]
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":
Codice: [Seleziona]
#!/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)




Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Marzo 26, 2012, 06:08:22 pm
prosegue da sopra....
Quindi ho creato /www/cgi-bin/webif/centralina/temperature.sh
Codice: [Seleziona]
#!/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>&nbsp&nbspEsterno=<font color="#FF4500">$temp3°</font>&nbsp&nbspBoiler=<font color="#00FF00">$temp2°</font>&nbsp&nbspFreezer=<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)
Codice: [Seleziona]
#!/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:
Codice: [Seleziona]
#!/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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Marzo 26, 2012, 09:57:31 pm
Grazie mille lupin73, appena ho tempo provo anch'io ad implementarlo nella centralina x86, intanto mi interessa solo la temperatura interna. A presto.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Aprile 09, 2012, 11:14:15 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Aprile 10, 2012, 11:37:09 am
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 05:26:33 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 15, 2012, 09:52:26 pm
Ciao. Se intendi l'pk o ml'intero sistema la risposta ? no, il tutto ? stato scritto per openwrt.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 09:58:59 pm
Capito, ma dove posso trovare la 8.09.2 senza Luci ma o gi? con X-wrt oppure senza interfaccia?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 10:01:06 pm
Dimenticavo per fonera.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Maggio 15, 2012, 10:11:35 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 10:15:11 pm
Si potrebbe adattare l'interfaccia centralina con l'interfaccia Luci?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 10:19:45 pm
Altro progetto interessante sul controllo gpio ? questo: http://kernelhacks.blogspot.it/2012/04/fonera-plugstrip.html
non sono riuscito a farlo funzionare.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: ciao87 - Maggio 15, 2012, 10:52:31 pm
Avresti il file ipk per la versione 7.09? Ipkg mi da errore anche se il file l'ho rinominato .ipk
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 06, 2012, 02:15:52 am
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
Codice: [Seleziona]
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Giugno 06, 2012, 08:31:15 am
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
Codice: [Seleziona]
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 06, 2012, 12:38:16 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Giugno 06, 2012, 12:46:01 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 06, 2012, 01:35:20 pm
non funzionano o meglio non c'? controllo.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 06, 2012, 02:37:24 pm
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Giugno 06, 2012, 04:16:20 pm
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:
Codice: [Seleziona]
gpioctl dirout 6
Vedi se si accende il led
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 06, 2012, 04:48:21 pm
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?????
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: Avatar - Giugno 06, 2012, 09:33:42 pm
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
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Giugno 06, 2012, 09:40:52 pm
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:
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 07, 2012, 09:09:00 am
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??
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: truthahn - Giugno 07, 2012, 09:27:34 pm
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?
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 07, 2012, 10:24:42 pm
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"
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: lupin73 - Giugno 09, 2012, 08:59:21 am
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.
Titolo: Re: Centralina controllo GPIO con wrt54gl e openwrt
Inserito da: salvodj - Giugno 12, 2012, 12:43:33 pm
ma non c'? un modo per creare un nas? samba va bene oppure devo scaricare qualche altro pacchetto??