Controllo rele e temperatura da pagina web su router OpenWrt

Tutto sull'Arduino e la sua grande famiglia... Atmel AVR, Microchip PIC, ecc...

Moderatori: ragno, tapino, alez, zulu, davidea

Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Comandi su seriale da shell

Messaggio da alez »

Grazie, bel sistemino :ok:
Ciao alez
cybor
Messaggi: 85
Iscritto il: 04 apr 2009, 11:50

Re: Comandi su seriale da shell

Messaggio da cybor »

@ ragno @ alez

Grazie per per tutto.

Lo sketch legge da seriale quindi in teoria dovrebbe andar bene con qualsiasi apparato che la usi, oggi mi è arrivato un adattatore BT/USB e volevo provare con quello, il modulino per Arduino l'avevo gia.

Adesso sto riscrivendo completamente l'interfaccia web, quella che ho postato è estremamente grezza oltre ad avermi fatto impazzire dal momento che era non funzionante.. non capisco perchè la gente pubblichi sui propri blog roba presa in giro senza manco pigliarsi la briga di fare uno straccio di prova.. mah....

Vi tengo aggiornati, magari metto tutto nel primo messaggio modificando il titolo.

P.S. Incredibile a dirsi, ma in questo momento la cosa che non mi fa andare avanti non sono JS, Ajax, php e compagnia bella, ma Arch che non ne vuol sapere di montare la directory di OpenWRT che contiene la pagina.
al mio # mount.cifs \\\\192.168.0.254\\www /media/www -o guest
ho : mount error(13): Permission denied

Ovviamente Windows XP SP3 vi accede senza fare una piega e vi scrive edita e quant'altro :fuoco:

P.P.S. Ho risolto con un # mount -t cifs //192.168.0.254/www /media/www/ -o guest,sec=ntlmv2 .... vabbeh...
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da alez »

Provato con le barre /// invece di \\\ anche nel caso precedent? Secondo me era la barra il problema
Ciao alez
cybor
Messaggi: 85
Iscritto il: 04 apr 2009, 11:50

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da cybor »

Grazie ma era un altra cosa, non so perchè sotto Arch per collegarsi al smb di OpenWrt devo dare "sec=ntlmv2" nelle opzioni del mount.
cybor
Messaggi: 85
Iscritto il: 04 apr 2009, 11:50

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da cybor »

Ci sto impazzendo... non capisco perchè il php legga il log dei relè ma non legga quello della temperatura.

Ho collegato l'USB di Arduino al PC, il router usa il PL2303, in sola lettura e vedo il traffico da Arduino verso il router ed è completo, compresa la temperatura letta, ma il PHP non riesce a tirarla fuori... probabilmente a questo punto è un problema di php.... boh...

Edit: Il problema sembra risedere nella libreria DallasTemperature.h, dopo un sensors.requestTemperatures(); il Serial.write spedisce i dati sulla seriale come se non lancio la sensor.... ma per qualche motivo il php non lo riceve correttamente.... sempre più boh...

Se può interessare ho riscritto completamente il codice lato webserver e l'ho messo nel primo messaggio.
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da ragno »

@cybor: la cosa e' molto strana: hai provato a salvare i dati dall'arduino su semplice file di testo?

Per tirare fuori i dati dal dg834g utilizzavo questo script che potresti adattare al tuo scopo...

Codice: Seleziona tutto

#!/usr/bin/perl

use Net::Telnet;

$host = '192.168.1.1';

$t = new Net::Telnet ( Timeout => 10,
			Errmode => 'die');

$t->open($host);
#$t->login($user, $pass);

open(STATS,">currentstats.txt");
#my @reply = $t->cmd('');
my @reply = $t->cmd('cat /proc/avalanche/avsar_modem_stats');
print STATS @reply;
@reply = $t->cmd('');
@reply = $t->cmd('cat /proc/uptime');
print STATS "Uptime: ";
print STATS @reply;

@reply = $t->cmd('');
@reply = $t->cmd('cat /tmp/wan_uptime');
print STATS "Wan Uptime: ";
print STATS @reply;

@reply = $t->cmd('');
@reply = $t->cmd('cat /proc/loadavg');
print STATS "Loadavg: ";
print STATS @reply;

@reply = $t->cmd('');
@reply = $t->cmd('cat /proc/net/dev');
print STATS "Netstat: ";
print STATS @reply;

@reply = $t->cmd('');
@reply = $t->cmd('wc -l </proc/net/ip_conntrack');
print STATS "Conntrack: ";
print STATS @reply;

close(STATS);
$t->close();

#close(STATS);
:ciao:
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da alez »

@cybor

potrebbe essere una questione di permessi? Con che utente gira lo script PHP? Tutto come user root?
Ciao alez
cybor
Messaggi: 85
Iscritto il: 04 apr 2009, 11:50

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da cybor »

Ringrazio entrambi per le risposte.. ma picchia e mena sono arrivato in fondo, ho scoperto a mie spese quanto sia difficile sviluppare nel mondo reale :-) era tutto una questione di temporizzazioni.

In pratica la commutazione dei relè è più veloce e il php faceva in tempo a leggere, mentre OneWire mi ritarda il risultato, è bastato uno sleep(3); prima del $read = $serial->readPort(); per risolvere i miei problemi.

Adesso anche l'aggiornamento del div con il valore della temperatura è quasi risolto, a breve aggiorno i sorgenti al messaggio iniziale.

Boh, adesso posso passare a sbattere la testa sui sensori Dallas aggiuntivi ed all'autorefresh della temperatura :-)
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da ragno »

cybor ha scritto:Ringrazio entrambi per le risposte.. ma picchia e mena sono arrivato in fondo, ho scoperto a mie spese quanto sia difficile sviluppare nel mondo reale :-) era tutto una questione di temporizzazioni./
Come si suol dire tra il dire ed il fare... :lol:

cybor ha scritto: In pratica la commutazione dei relè è più veloce e il php faceva in tempo a leggere, mentre OneWire mi ritarda il risultato, è bastato uno sleep(3); prima del $read = $serial->readPort(); per risolvere i miei problemi.

Adesso anche l'aggiornamento del div con il valore della temperatura è quasi risolto, a breve aggiorno i sorgenti al messaggio iniziale.

Boh, adesso posso passare a sbattere la testa sui sensori Dallas aggiuntivi ed all'autorefresh della temperatura :-)

I Dallas non sono velocissimi anche per via del bus (1Wire). Per i sensori aggiuntivi, basta realizzare la parte che effettua lo scan dei sensori: ci sono in rete diversi sketch all'uopo, ne ho usato uno per il TEMPerino (viewtopic.php?f=24&t=1991) e funziona senza problemi. Poi va tutto in automatico sia che tu abbia uno o piu' sensori.

:ciao:
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Controllo rele e temperatura da pagina web su router Ope

Messaggio da alez »

A proposito di pagine web che controllano Arduino, beccatevi questa:

viewtopic.php?f=24&t=2055

cliccate sul secondo link, è abbastanza autoesplicativo
Ciao alez
Rispondi