Termostato web

Ciao a tutti,
in questo periodo ho realizzato un termostato da collegare alla caldaia utilizzando

  • arduino yun (essenzialmente per il fatto di essere programmabile via wifi)
  • BMP085 per temperatura (e pressione)
  • keypad shield (per il display e i pulsanti)

Il termostato si connette alla rete tramite wifi ed è regolabile completamente sia con i pulsanti che via web.

Da web è possibile controllare lo stato della caldaia o impostare sia la modalità manuale (e scegliere la temperatura desiderata) che la modalità automatica con gli orari settimanali.
L'interfaccia web usa jquery per cui è facilmente utilizzabile da dispositivi mobili.

Tutte le impostazioni vengono salvate nel web.
Tutti i dati vengono salvati in un db mysql per statistiche e grafici.
Il tutto è inserito mooolto artigianalmente in una scatola di dimensioni standard della gewiss.

Il display mostra la temperatura, la temperatura desiderata, la modalità (auto/manu), l'orario e lo stato della caldaia (on/off) più eventuali errori. Con in pulsanti è possibile modificare la modalità (auto/manu), impostare la temperatura desiderata e modificare la luminosità del display.

Il dispositivo funziona abbastanza bene.
Il mio problema è che, non essendo un esperto programmatore, è probabile che il codice sia scritto male e che alcune cose si possano fare in maniera più furba e/o stabile e/o meno dispendiosa in termini di risorse.

Ho visti in giro altri progetti simili ma non facevano quello che mi serviva, in particolare impostare da cellulare l'accensione dei caloriferi a un tal orario il tal giorno. Se qualcuno fosse interessato al progetto sarei felice di condividere tutto.

giuppelmo

Secondo me è uno splendido progetto. puoi spiegarmi meglio come avviene il collegamento arduino <-> internet <-> dispositivo mobile?

Grazie

Memorizzo i dati che interessano o in semplici file di testo oppure in un db mysql al quale mi interfaccio tramite una pagina php alla quale passo i dati via GET.

Per esempio

  1. in modalità manuale la temperatura desiderata è memorizzata in un file di testo che arduino legge ogni 1 minuto.
    Tramite interfaccia web è possibile modificare il file di testo.
    Se utilizzo la pulsantiera, la nuova temperatura desiderata viene inviata tramite GET a una pagina php che modifica il file di testo
  2. in modalità automatica l'arduino prende la temperatura da un file php che, a sua volta, preso la data e l'ora, estrae la temperatura desiderata da un database (modificabile anch'esso tramite l'interfaccia web)

Alla fine l'arduino sia per leggere che per scrivere i dati fa delle richieste di pagine web.

non so se sono stato chiaro.

giuppelmo

Ciao,
bel progettino :slight_smile:
Perchè non fai girare il tutto sulla yun?

Supporta php e database relazionali (es sqlite3):
http://playground.arduino.cc/Hardware/Yun#installing_php

Chiaro dovresti aprirti una porta sul router..

pitusso:
Chiaro dovresti aprirti una porta sul router..

Esattamente per questo.

In particolare:
1)io ho fastweb senza la possibilità reale di avere un ip esterno e di aprire realmente una porta
2)ho un paio di amici interessati al progetto che lo utilizzerebbero come termostato "temporaneo" di controllo.
Così dove lo metti va.

Certo per una soluzione "stabile" è molto meglio come dici tu. Nel caso, penso che passare a un db locale non sia molto complesso.

Grazie per il suggerimento.

giuppelmo

Splendito progetto. Cercavo ovunque in rete un progetto per un cronotermostato web e non sapevo che era proprio sul forum italiano di ARDUINO.
E' possibile avere maggiori notizie per sviluppo del progetto ?

Ciao
Sono nuovo sul forum, stavo cercando di sviluppare una progetto simile al tuo, ma molto più semplice.
Mi basta leggere e scrivere un file .txt da una mia pagina web.
più o meno quello che fai tu, ma senza usare database.
qual'è il modo più semplice per far scrivere e leggere ad Arduino un file tipo:
http://www.prinsep.it/File/testo.txt
ti ringrazio

Ciao Valter benvenuto,
Ti rivolgi ad un utente che non si logga più dal 9 febbraio 2014, quindi non penso potra esserti di aiuto, forse ti conveniva aprirne uno nuovo, tanto qui non ci sono elementi utili .... l'utente non ha pubblicato nulla a parte due foto.

La tue domande (anche in futuro) dovrebbero essere più dettagliate, soprattutto indicare i componenti che possiedi o se li devi ancora prendere, spendere qualche parola in più su quello che vuoi fare, poichè potrebbe esserti indicato un metodo e poi nel complesso del progetto scoprire che non è il migliore.

Quando ti agganci ad un tread assicurati che esso sia ancora attivo e non roba vecchia.
Dettagliare il più possibile significa far perdere meno tempo a noi a farti altre domande, ci eviti di scrivere decine di righe, avendo tu più possibilità di ricevere una risposta e poi ci eviti di usare la sfera di cristallo e i veggenti si fanno pagare a peso d'oro :slight_smile:

Perchè ad esempio caricare un file txt da un tuo spazio web?
quanto è grande questa pagina? (velocità di trasmissione/scrittura circa 15kb/s)
Questo txt è un file di inizializzazione?
Arduino deve essere un webclient, un webserver o entrambi? nell'ultima opzione una UNO comincia a essere un pò piccola

ciao

Ciao,
sono molto interessato al tuo progetto.... ho acquistato un arduino mega e sto reperendo tutti i materiali. vorrei realizzare un progetto che mi permetta di controllare la caldaia da remoto e gestire manualmente o automaticamente il suo funzionamento.
ti sarei grato se tu volessi condividere con me la tua esperienza.
grazie mille.
Stefano