Lettura dati da display remoto

Salve a tutti, questo è il mio primo post e anche il mio primo approccio ad Arduino. Vorrei il vostro aiuto nella scelta dei componenti hardware necessari alla realizzazione del mio primo progetto.
In pratica vorrei leggere alcuni parametri dalla centrale termica situata in garage, attraverso un display situato dentro casa a circa 15÷20 metri via cavo. I parametri che mi interessano sono i seguenti:

Temperatura acqua caldaia con sonda ad immersione

Temperatura acqua puffer con sonda ad immersione

Temperatura aria esterna

Stato della caldaia attraverso la chiusura di un contatto nella centralina

Vorrei alloggiare il display in una scatola 503 assieme ad un piccolo pulsante che all'occorrenzami mi permetta di accendere la retroilluminazione per un tempo prestabilito es. 1 minuto, mentre Arduio lo metterei nel locale caldaia collegato ai vari sensori che si estendono fino a 2 -3 metri da esso.

Le mie prime domande sono:

  1. Quale modello di Arduino occore?

  2. È necessario un altro arduino o componente da istallare assieme al display?

  3. Che tipo di cavo occore da arduino al display? UTP? Cat 5 o 6? Schermato, non schermato?

  4. È possibile memorizzare ii dati n modo automatico (es. giornalmente) su una sd/microsd?

Grazie e buona serata a tutti.

Ciao, di soluzione ne esistono molte, io ti fornisco quella che sto attualmente utilizzando per una cosa simile alla tua.
Ti serviranno due Arduino, uno lato sensori ed uno lato display.
In entrambe i casi una Uno o equivalente può fare al caso tuo, per metterla nella 503 una nano credo sia la scelta migliore
che al di la delle dimensioni è esattamente come una uno.
Per la parte di comunicazione non scomoderei una rete TCP/IP ma userei un collegamento half/duplex su RS485, un paio di adattatori
e la seriale software ti risolvono la questione, per il collegamento ti basta un doppino intrecciato, se proprio non lo trovi
puoi usare una coppia di un CAT5 ma visto il suo costo rispetto a un doppino ibntrecciato lo lascerei come ultima spiaggia.
Rilevazione temperatura aria esterna, tantissime possibilità, io usa una DS18B20 si trovano a pochissimi euro e sono affidabili quel che
basta.
Anch'io rilevo la temperatura del puffer ma non con una sonda ad immersione, nel mio ho un foro dove è inserita la sonda della centrale
solare per rilevare la temperatura, anche li ho inserito una DS18B20 comprata nel formato con la punta in acciaio e involucro di plastica
con cavo da 2 metri già pronto. Rispetto alla centrale solare rilevo una temperatura pressoché identica, ogni sonda ha il suo errore
intrinseco, nel mio caso correggendo di -0.3 gradi ho rilevazioni puntuali uguali alla centrale solare commerciale e mi ritengo soddisfatto :slight_smile:
Per la parte caldaia non mi espongo più di tanto, se il contatto è un contatto pulito previsto dal costruttore a tal scopo allora
ne riparliamo, altimenti non vorrei incappare nell'articolo 15 del regolamento...
I display, quelli li sceglierai tu in basa anche all'estetica, se vai su un LCD prendilo con interfaccia I2C, due pin per collegarli e zero
problemi rispetto a quelli non I2C che ti costringono a mille cavetti collegati con tutti i problemi del caso.
Il pulsante dipende da come alloggerai il tutto, puoi usare anche un normale pulsante della serie civile che hai installato in casa
per riattivare la retroilluminazione.
Per la questione di memorizzare i dati si si può fare non è difficilissimo anche se se cerchi sul forum troverai parecchie discussioni
che trattano la questione, tra l'altro lo trovo scomodo andare a rimuovere e rimettere la scheda per vedere i dati.
Io ho usato un approccio differente, non so se può fare al caso tuo e/o se hai le necessarie conoscenze
(e se non le hai se hai voglia di studiarti un sacco di cose) io collego i vari dispositivi con un BUS RS485 e in questa rete ho anche un
raspberry che riceve i vari dati e li memorizza in un database al quale ho costruito una "specie" di sito web per visualizzarli,
dico specie perché è una mera visualizzazione dei dati nel browser, ci sono svariate alternative già preconfezionate prova a valutare
anche questa possibilità

Grazie per la risposta, quindi dici che basterebbe un doppino di quelli telefonici per comunicare tra i due arduino, se invece usassi un cavo tipo quello nella foto potrei anche alimentare il secondo arduino con il display?
Come sensore per le temperature intendevo esattamente quello che hai tu (DS18B20) da inserire in pozzetto di ottone. Il contatto di cui parlavo è un contatto pulito NA predisposto sulla scheda caldaia e supporta una corrente di 0,5 A, volevo utilizzarlo per capire quante ore al giorno si accende la caldaia, fascie orarie e cose del genere, all'uopo volevo chiederti se arduino è in grado di gestire l'orario o necessità di un modulo aggiuntivo, opure può essere gestito via web con il raspberry. Per l'acquisizione dei dati mi interessa molto il tuo sistema, non sono molto pratico di database web (ne esistono di gratuiti?), ma non mi preoccupa studiare, mi preoccupa di più il cablaggio in casa perché ho i corrugati stracolmi di cavi. Il bus con il rasberry può essere fatto con uno dei due arduino indipendentemente dal fatto che uno funga da master e l'altro da slave?

Grazie ancora.

035221-cavo-allarme-twistato-schermato-2x050-2x022-bus-rs485-pvc-bianco-mt100-P-482079-2562985_1.jpg

Quello è IL cavo da usare :slight_smile: porti alimentazione e dati assieme (anch'io ho fatto la solita cosa ma per svariati moivi non ho la versione twistata ma lasciamo perdere...)
Se devi passare in corrugati non dedicati ma con anche cavi non in bassisima tensione occhio che dovrai acquistare un cavo che garantisca la necessaria schermatura (sul cavo viene sempre riportata la tensione massima d'isolamento e passano in corruguati promisqui la tensione di isolamento dovrà essere superiore alla massima tensione presente nel corrugato, se ad esempio nel tuo corrugato ci passano dei cavi che portano 10,20 e 48V il cavo che vai ad aggiungere dovràò avere un isolamento pari ad almeno 48V).
Unico dubbio che ho è che se porti i 5V in CC a quella distanza avrai una caduta di tensione che forse è troppa per alimentare correttamente arduino, se puoi vedi di passare l'alimentazione in CA (Es. 12V CA) e immediatamente prima di Arduino la raddrizzi e la abbassi alla tensione corretta (Es. 5V CC).
Se poi come dici non puoi passare in sicurezza il sablaggio vai di soluzione wifi, se cerchi c'è un topic sull'ESP che potrebbe fare al caso tuo (io mai usato quindi non so dirti di più)
Questione orario, per questi scopi sicuramente ti servirà un RTC (Es. DS3231), se vuoi la vita facile lo metti in emtrambe gli Arduino e leggi data/ora, se invece vuoi risparmiare lo metti solo lato Arduino che invia i segnali e quelo lato display riceverà oltre ai dati anche data/ora tramite BUS.
Se prevedi di usare solo i due Arduino allora non c'è problema, se invece vouoi aggiungere pià dispositivi e/o usare un Raspberry per immagazzinare dati allora ti consiglio di usare una libreria di comunicazione come la PJON è matura, supportata dall'autore e già disponibile per Arduino.
A dire il vero la userei anche se avessi solo i due arduino, in futuro potresti espandere il progetto, non si sa mai...
Non so il tuo livello, roba da fare ne hai molta, il consiglio è sempre il solito per evitare di buttare alle ortiche ore e soldi, un passo alla volta e il successivo solo quando il precedente funziona solo alcuni suggetimenti di base:
Non usare delay ma millis, dovendo fare molte cose assieme prima o poi ti incastreresti
Fai piccoli progetti ben isolati per far funzionare le varie cose, ad esempio fai un programma che legga la sonda di temperatura ogni N secondi e stampi sulla seriale il risultato, quando sulla seriale vedrai i dati corretti solo ogni intervallo di tempo allora potrai considerare come completato e passare al problema successivo, facendo una cosa del tipo

void setup()
{
  ...bla bla bla...
}

void loop()
{
   leggiTemperaturaEsterna();
}

void leggiTemperaturaEsterna()
{
  if(è ora di leggere)
  {
    leggo temperatura
    stampo risultato
   }
}

sarà semplicissimo poi unire le varie parti

void setup()
{
  ...bla bla bla...
}

void loop()
{
   leggiTemperaturaEsterna();
   leggiTemperaturaPuffer(); 
   leggiTemperaturaAcqua();
   .... ecc...
}

Non cadere nell'inganno "desidero avere la temperatura aggiornata ogni microsecondo" è innutile per tanti motivi, il primo è che la lettura della sonda nel peggiore dei casi ci mette quasi un secondo (anche se abbasserei la risoluzione come negli esempi di lettura dei DS12B20 tanto non credo ti servano 4 decimali), il secondo è che la sonda ci mette un secondo a grado (più o meno) a adattarsi e darti la temperatura e terzo è sempre bene effettuare tante campionature e fare una media tra queste per dare una lettura corretta (e qui di strategie ve ne sono molteplici la più semplice è fare una media tra 10 campioni).
Io faccio una lettura al minuto e ogni 12 campioni escludo minimo e massimo e faccio la media, per la temperatura esterna ho realizzato che anche così è molto più che sufficiente, ma li dipende da te e da cosa ritieni corretto ottenere.
Fatto quello ne fai un altro che legge l'rtc ogni minuto, fatto quello stamperai questi valori sul display ecc.
Altra cosa, presta attenzione a non aggiornare il display quando non strettamente necessario, primo perché se aggiorni il display ad ogni ciclo di loop si pianta tutto e secondo se aggiorni quando non necessario hai uno sfarfallamento fastidioso del display, io aggiorno solo quando un dato cambia (se vuoi il top aggiorni solo la porzione del display che cambia ma per questo serve un po' di dimestichezza e tanto studio)

Grazie per tutte le dritte che mi hai dato. Seguirò il tuo consiglio, acquisterò prima i due arduino con display e i sensori e inizierò a scrivere il codice, presa un po' di dimestichezza proverò ad espandere il progetto.

fabpolli:
Unico dubbio che ho è che se porti i 5V in CC a quella distanza avrai una caduta di tensione che forse è troppa per alimentare correttamente arduino, se puoi vedi di passare l'alimentazione in CA (Es. 12V CA) e immediatamente prima di Arduino la raddrizzi e la abbassi alla tensione corretta (Es. 5V CC).

Qual'è la tensione minima per alimentare Arduino?

Dipende da quale versione e da dove lo alimenti se uvi l'ingresso 5V è 5V CC se usi una UNo e alimenti tramite il jack minimo 7,5V, ogni scheda ha le sue specifiche e in base alla scelta si decide come è meglio alimentarla e si procede di conseguenza.
Fossi in te coprerei una scheda per fare le prove con il display ed i sensori, poi quando la fattibilità del progetto è stata realizzata a nelle sue parti acquisterei l'altra scheda, questo per risparmiare soldi per due motivi, il primo è che durante la creazione del progetto potrebbero cambiarti le necessità e quindi la scheda acquistata potrebbe non essere più sufficiente (risorse, memoria, pin, ecc.) e secondo se per qualsiasi motivo il tuo progetto non può essere portato a termine non hai buttato soldi innutilmente

1 Like