Go Down

Topic: Presentazione di ThermoWeb - Domotica IP - c/php/js/sql (Read 11754 times) previous topic - next topic

andrea86


Ciao, bel progetto, io sto realizzando qualcosa di molto simile, con la possibilità di salvare la temperatura sul db per fare una piccola statistica
Quello che non ho capito dal progetto è un if, nel particolare:
Code: [Select]

        int x1 = 0
        ...
        ...
        if (x1 > 5 && x1 < 24)
        {         
          get[x1 - 6] = c & 15;
        } 
       
        x1++;
       


nell'array get vai a salvare la stringa "c" partendo dal 6 carattere che nel caso in esempio sarebbe 7 e poi 6121, quindi il get[0] è 7 e non 1 che servirebbe per il controllo (1234)


No Fabio, hai capito bene. E' che tra il primo post e gli altri è cambiato il codice. Il controllo è stato inserito dopo. Ciao

Testato

un consiglio, quando aggiorni qualcosa al progetto aggiorna sempre il primo post, perche' resta di riferimento e non obbliga ad andarsi a leggere tutte le pagine  ;)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

veseo

Ciao Andrea,

mi accodo ai complimenti per il lavoro, anche l'interfaccia è molto pulita e rende bene. Se hai voglia, avremo bisogno di una persona che sviluppi e curi l'interfaccia HTML per il progetto Souliss. E' sempre un progetto di domotica basato su arduino ed ovviamente opensource.

Saluti,
Dario.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

fabix68

Ma il progetto è stato abbandonato?
Ero interessato a realizzare qualcosa del genere, ho provato ad utilizzare i file allegati ma non capisco come creare il database mysql (struttura dei campi) .
Qualcuno mi "illumina"??

lesto

cerca qualche guida SQL, è un linguaggio molto semplice
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

fabix68

Scusa lesto, ma qualcosa mi sfugge.
Ok per la parte sql, leggendo il codice si riesce a capire le strutture che dovrà avere il database, ma sempre nel codice trovo riferimenti ad immagini (es. mOn.png) che non trovo tra quanto presente nel post.
C'era qualche allegato andato perso o non sono mai state postate ?
Grazie

lesto

credo non siamo mai state postate. fattele date,tanto un immagine valel'altra, devi solo fare in modo cheti piaccia il risultato finale
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

fabix68

Sto "cercando" di capire il funzionamento del sistema.
Tutto ok per quanto concerne la parte hardware e lo  sketch,  dopo una giornata di analisi sono riuscito a capirlo tutto, mi areno sulla parte WEB.
1° problema - > File Show.php  il file viene eseguito regolarmente ma analizzando la console di Explorer trovo un sulla seguente riga

Code: [Select]
var json=eval("(" + xmlhttp.responseText + ")");
Errore
Code: [Select]
SCRIPT1006: Previsto ')'
show.php, Riga 21 Carattere 5


2° problema, se ho capito bene il funzionamento della parte web, il file Show.php invia la richiesta (ip,porta,richiesta) al file Get.php che a sua volta dovrebbe inviarla al micro.
Questo 'purtroppo' non avviene. Ho provato a richiamare anche manualmente (da indirizzo web) il file get.php http://xxx.altervista.org/get.php?192.168.1.234&80&1234911000 ma non ho ottenuto nessun risultato. Se digito invece manualmente la stringa sul Browser (es. 192.168.1.234:80/?1234911000) tutto funziona regolarmente, il comando viene accettato e cambiato il modo di funzionamento.
Non riesco in sintesi a capire cosa fa questo codice
get.php
Code: [Select]
<?php

echo 
file_get_contents("http://".$_GET['addr'].":".$_GET['proto']."/?".$_GET['rqst']);

?>

lesto

1. il debug fallo con firefox e/o chrome. quado funziona si aggiunge il supporto con IE, purtroppo IE è una brutta bestia perchè fa le cose a modo suo. Prima di tutto dobbiamo capire se l'errore è nel codice o se è di IE

2.
echo = stampa nella pagina
file_get_contents = da http://it2.php.net/function.file-get-contents " file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.

    Note:

    If you're opening a URI with special characters, such as spaces, you need to encode the URI with urlencode(). "
quindi stai "sbagliando" perchè manca l'urlencode

"http://".$_GET['addr'].":".$_GET['proto']."/?".$_GET['rqst'] = prende i parametri get e chrea l'uri.

corretto dvrebbe essere

echo file_get_contents( urlencode("http://".$_GET['addr'].":".$_GET['proto']."/?".$_GET['rqst']) );
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

fabix68

#39
May 27, 2014, 08:17 pm Last Edit: May 27, 2014, 08:20 pm by fabix68 Reason: 1
Purtroppo anche con la tua correzione il problema permane.

Puoi verificare anche tu.
Chiamando il file get.php con i seguenti parametri

Code: [Select]
http://fabix68.altervista.org/get.php?addr=79.27.114.175&proto=88&rqst=12349100

raggiungo il file ma questo non inoltra la richiesta al mio arduino.

Inserendo invece direttamente la stringa che la GET  dovrebbe evocare il sistema restituisce correttamente i valori

Code: [Select]
http://79.27.114.175:88/?12349100



lesto

ahhh ok sembra che la funzione sia bloccata per questioni di sucerezza, posto la discussiopne che anche se vecchiota linka delle alternative

http://forum.it.altervista.org/php-mysql-e-apache-htaccess/97080-aprire-file-di-un-altro-sito.html
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

fabix68

Lesto, sei un GRANDE, il problema era proprio il blocco imposto da Altavista.
Per la risoluzione ho dovuto modificare le impostazioni di protezione del sito e modificare il file che, per chi come me è ospite di Altervista, allego.
Vi ricordo che in ogni caso Altervista permette l'utilizzo solo delle porte 80 0 443.
File get.php
Code: [Select]

<?php
    $ch 
curl_init();
    
curl_setopt($chCURLOPT_URL"http://".$_GET['addr'].":".$_GET['proto']."/?".$_GET['rqst']);
    
curl_setopt($chCURLOPT_HEADERfalse);
    
$out curl_exec($ch);
    
curl_close($ch);
?>


permane l'errore del punto 1  "(var json=eval("(" + xmlhttp.responseText + ")");" nel file Show.php ma sembra non influire sul funzionamento del programma.

Lesto se vuoi dare un'occhiata

fabix68.altervista.org
User chiara
password 123456

ps non guardare le icone, sono state messe a caso giusto per evitare la generazione di errori

Grazie

lesto

in teoria dice cheogni secondo parte una richiesta ajax.. però non ti so aiutare, lato JS e in particolare ajax e robacia simile non ne so quasi nulla :P

poi vedo che ogni tot fa una richiesta get, ma questa ci mette ben 15 secondi a rispondere...

imho c'èp qualche delay lato arduino che impalla tutto (oppure è il timeout perchè non vede arduino?), in ogni caso limiterei a 500/1000ms, e aumenterei di conseuenza il dealy del reaload ajax (che, non modificato, è il seguente):

Code: [Select]
window.onLoad = ajaxRequest();
setInterval(ajaxRequest, 1000);

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

chicco83

Ciao a tutti,
qualcuno potrebbe condividere il pacchetto con tutti i file e lo sketch e la struttura del db?

grazie mille

leo72

Tutti i file li ha solo l'autore ma pare sparito da un pò di tempo e non hai soddisfatto le richieste di pubblicare tutto in un unico archivo.  =(
La maggior parte del codice è stato postato nella prima pagina.

Go Up