Presentazione di ThermoWeb - Domotica IP - c/php/js/sql

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 :wink:

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.

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"??

cerca qualche guida SQL, è un linguaggio molto semplice

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

credo non siamo mai state postate. fattele date,tanto un immagine valel'altra, devi solo fare in modo cheti piaccia il risultato finale

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

var json=eval("(" + xmlhttp.responseText + ")");

Errore

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

<?php

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

?>

  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

echo = stampa nella pagina
file_get_contents = da PHP: file_get_contents - Manual " 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']) );

Purtroppo anche con la tua correzione il problema permane.

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

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

http://79.27.114.175:88/?12349100

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

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

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://".$_GET['addr'].":".$_GET['proto']."/?".$_GET['rqst']);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $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

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 :stuck_out_tongue:

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):

window.onLoad = ajaxRequest();
		setInterval(ajaxRequest, 1000);

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

grazie mille

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.

Ciao a tutti,
dopo diversi mesi di smanettamenti vari, modifiche e diversi appelli ai santi del paradiso, ho finalmente completato il Thermoweb. Dato il tempo e aggiunte, lo definirei 2.0.
Rispetto all'originale non cambia tantissimo, ho aggiunto la funzione "senddata" per poter inviare dati a un db ogni tot minuti, questo per poter monitorare nel tempo le temperature e per verificare se gli orari impostati hanno un reale beneficio nel tempo.
Inoltre ho aggiunto la pagina "stat" in cui si mostrano le ultime 12 misurazioni ma questo è modificabile in base al proprio torna conto.

Note:

  1. dato che mi trovavo in casa un relé bistabile ho dovuto utilizzare due piedini dell'arduino per poter commutare la posizione. Nello script non l'ho ancora sistemata ma sarà fatto nel we

  2. Nello script ho docuto abbassare la temperatura di 4 gradi perché a causa del riscaldamento della scheda il sensore percepiva una temperatura sbagliata. Inoltre quando ho provato a collegare l'alimentare POE la temperatura era salita anche di 12 gradi. Quindi ho alimentato tutto tramite alimentatore esterno

  3. Non ho allegato il file sql per la tabella dove salvare i dati ma è uan tabella banalissima fatta di 4 colonne che potete ricavare dal file .ino o dal file temperature.php, naturalmente personalizzabile

  4. i grafici della pagina stat.php rappresentano: sopra la temperatura percepita e la temperatura settata, sotto invece in grafico che mostra se il relé è acceso o spento
    Dropbox - thumb_IMG_7285_1024.jpg - Simplify your life
    Dropbox - thumb_IMG_7286_1024.jpg - Simplify your life
    Dropbox - thumb_IMG_7288_1024.jpg - Simplify your life
    Dropbox - IMG_7289.jpg - Simplify your life

Thermoweb.zip (49.4 KB)

cronotermostato.ino (11.6 KB)

Eagle.zip (34.9 KB)

Siete avantissimoooooo!!!

Forse mi potete aiutare...

Io sono all'inizio di un progetto con qualche cosa di simile al vostro di cui ho parlato qua

http://forum.arduino.cc/index.php?topic=365985.0

Io non ho un web server ma mi servirebbe una grossa manona e consigli :wink:

P.S.
Scusate ma non ho la vostra esperienza e capacità sono novello :slight_smile:

Ciao, questa versione è vecchia ed è stata abbandonata da anni. Ciao

Ciao ragazzi,

sto provando ad implementare thermoweb in casa mia.

Non ho capito bene però quali sono le tabelle da creare nel database mysql, che io ho su un server aruba assieme a spazio web.

Al momento ho caricato la tabella per il salvataggio della temperatura (ID, temp, tSet, info), non riesco però a capire che tabella serve per la gestione di thermoweb.

So che il progetto non viene toccato da anni, ma sembra talmente ottimo che mi piacerebbe provarlo.

Grazie

A nulla, solo per essere multi sede. Però se lo devi usare solo x casa tua non ha senso disturbare un DB.

Effettivamente la versione in uso è molto diversa, ciao