Go Down

Topic: Contalitri con invio dati a Raspberry (Read 100 times) previous topic - next topic

onire

Buonasera,
vorrei utilizzare un arduino uno per controllare il livello di un serbatoio ed i m3 consumati. Quindi avevo pensato di prendere una pressostato, che mi misuri la colonna d'acqua nel serbatoio, ed un contalitri, quelli classici con i numeretti e le rotelle in più con contatto reed da 1 imp/l o da 1 imp/10l, dipende da quello che trovo. Poichè il tutto è a circa 50mt da casa, volevo inviare i dati ad un rasperry posto in casa, tramite 485. Quindi prima di passare alla realizzazione pratica, volevo capire come implementare il software.

Per quanto riguarda il livello, avevo pensato di inviare il dato al massimo una volta al secondo, ma anche più lentamente potrebbe andar bene.

Invece per il contalitri mi piacerebbe:

- portata istantanea, non occorre salvarla ma solo trasmetterla
- totale in m3, occorre il salvataggio

Per quanto riguarda la portata istantanea avevo pensato di contare gli impulsi e dividerli per un tempo noto ad esempio 10 sec e poi riportarli a ltr/h. Non ho idea della portata dell'acqua dell'acquedotto, ma non credo che superi i 2 o 3 m3/h, quindi se considero prudenzialmente 4 m3/h avrò 4000/3600=1,111 imp/sec max. Anche non conoscendo la larghezza dell'impulso, immagino che con queste velocità, anche se non uso gli interrupt non avrò perdita di impulsi.

Predisporrò due contatori per gli impulsi, uno totale ed uno parziale. Il totale verrà salvato in eeprom ogni 10 o 100 impulsi, da decidere in base al contalitri acquistato, in modo da non effettuare troppi salvataggi e verrà richiamato in caso di riavvio di arduino.

Il parziale verrà azzerato ogni 10 secondi. Primo problema, non saprei come effettuare la divisione dopo un tempo impostato.

Secondo problema, invio in continuo la terna di dati (livello,porta istantanea e totale) diciamo ogni paio di secondi, o meglio implementare una routine di richiesta lato raspberry a cui arduino risponderebbe con la terna di dati?

Se volessi anche comandare un elettrovalvola da remoto, ed arduino mi sta inviando in continuo la terna di dati, riuscirei a leggere la richiesta?

Qualunque consiglio è ben accetto, grazie.

Claudio_FF

#1
Mar 23, 2019, 07:50 pm Last Edit: Mar 23, 2019, 08:02 pm by Claudio_FF
Secondo problema, invio in continuo la terna di dati (livello,porta istantanea e totale) diciamo ogni paio di secondi, o meglio implementare una routine di richiesta lato raspberry a cui arduino risponderebbe con la terna di dati? Se volessi anche comandare un elettrovalvola da remoto, ed arduino mi sta inviando in continuo la terna di dati, riuscirei a leggere la richiesta?
Se vuoi anche inviare comandi allora meglio una trasmissione "on-demand". Così dal raspy puoi inviare il comando o la richiesta dati, e il remoto esegue. Altrimenti, essendo la 485 half-duplex, sicuramente finiresti con il dover gestire collisioni e ritrasmissioni.

Per la portata è più veloce e preciso contare il tempo tra gli impulsi.






-2
* * * *    if non è un ciclo   * * * *
* * * Una domanda ben posta è già mezza risposta. * * *

Go Up