annuncio

Comprimi
Ancora nessun annuncio.

[DIY] Autocostruzione di una Stazione Meteo

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • #46
    Per questa funzione il sensore dispone dei registri interni dove posso memorizzare il valore di offset che verra' poi sommato a quello letto. All'accensione si impostano tutti a 0. Dovrebbero far parte della funzione offset, che ha un proprio bit di abilitazione, che naturalmente non attivo, come il comando reset autozero che dovrebbe copiare il valore letto in quel momento nei registri dell'offset, altrimenti leggerei 1-2 hPa
    Per scrupolo provero' a visualizzare il valore dei registri di offset all'accensione ma credo non siano coinvolti. Casa mia e' a qualche metro sopra il mare quindi semmai la pressione indicata dovrebbe essere minore

    Commenta


    • #47
      Controllando la scheda tecnica ST pero' c'e' anche il valore RPDS, che secondo loro contiene il "valore di offset per la calibrazione una volta saldato". Saldato pero' il sensore sulla schedina SMD con il regolatore a 3.3V e i convertitori di livello... ad ogni modo, NON viene inizializzato a 0 all'accensione, potrebbe essere quello.

      Commenta


      • #48
        Forse ci siamo. Ho trovato una Application Note dove viene spiegata qualche parolina in piu' sul funzionamento di questo gingillo.
        A ogni lettura il valore memorizzato nei registri RPDS viene SOTTRATTO a quello restituito dal ponte piezoelettrico. Gran bel divertimento han combinato alla ST:
        1) l'operazione e' invertita, per SOMMARE un valore devo scrivere nei registri un numero NEGATIVO l'esatto contrario dell'usare i registri REF dell'autozero.
        2) il valore comprende solo i 16 bit superiori, quindi con RPDS non posso correggere alla massima precisione (24 bit).

        Il valore predefinito che viene memorizzato nei registri RPDS all'accensione e' 38h, che aggiungendo i 2 zeri in coda e dividendo per 4096 significa 3.5hPa. Infatti, azzerando i registri la lettura del sensore aumenta di 3.5hPa; per il momento, utilizzo il valore fornito dal barometro d'epoca, togliendo circa 16hPa, in attesa di eseguire una calibrazione piu' precisa (e magari modificabile tramite menu )

        Commenta


        • #49
          Dunque, sto sviluppando il protocollo di comunicazione tra la stazione e i nodi sensori. Ho pensato a un sistema un po' "delocalizzato", vale a dire che sono i microprocessori incaricati di gestire i sensori a loro collegati che eseguono anche buona parte delle operazioni di formattazione dei dati acquisiti, con la stazione che si occupa di riceverli, memorizzarli nel banco EEPROM del datalogger (se abilitato) ed eseguire elaborazioni a piu' alto livello, oltre a occuparsi dei 16 canali analogici se presenti.

          Per un gruppo sensori "standard" tipo Davis VantagePro2 penso di utilizzare un PIC18F25K20, ovvero il fratellino a 28 piedini di quello che utilizzo come CPU della stazione, perche' mi tornano utili i moduli contatori a 16 bit con ingresso esterno, il moltiplicatore a 8 bit e il buon convertitore A/D necessario per campionare l'anemoscopio.

          Commenta


          • #50
            Intervallo previsto di acquisizione dati da tutti i sensori: 1 min
            Questo intervallo sara' fisso, per permettere una scelta flessibile dell'intervallo di memorizzazione dei valori.
            Devo appunto decidere come trattare quei 60 gruppi di valori ogni ora. DOMANDE METEO

            1. Quali sono i valori cumulati che ha senso mantenere per una misurazione pluviometrica accurata? Il segnale del pluviometro non fa altro che mandare avanti un contatore. Nel caso del Davis, il conteggio moltiplicato per 5 mi restituisce i mm a passi di 0.2; tenendo in memoria il conteggio del minuto precedente, ovvero con un campionamento di un minuto, posso calcolare il rain rate semplicemente facendo una sottrazione seguita da una moltiplicazione per 60, mi sembra una precisione accettabile considerando che i rovesci temporaleschi non durano praticamente mai meno di 1 minuto.
            Per quanto riguarda la misura pluviometrica cumulata, a parte quella sulle 24h che si puo' ottenere anche per via indiretta, quali parziali mi conviene salvare?

            2. Con il convertitore A/D a 10 bit posso campionare in modo continuo la direzione puntata dalla banderuola dell'anemoscopio, ovvero ottengo un numero compreso tra 0 (0°=N) e 1023 (circa 359.9°). Lo posso elaborare come voglio, ad esempio per ridurre l'occupazione di spazio potrei ridurre la sensibilita', che so, a 5° in modo da ottenere un numero non superiore a 255 e poterlo memorizzare in 8 bit.
            Serve a qualcosa salvare la lettura angolare della direzione del vento? In ogni caso devo elaborare il dato, onde ricavarne un numero a 4 bit che permetta l'indicazione della direzione tramite i 16 acronimi della rosa dei venti standard (N W NNE...)

            Commenta


            • #51
              Intanto prosegue l'abbozzo del protocollo.
              Avevo pensato a un sistema a "chiamata". La UART del Pic puo' funzionare anche in modalita' addressable, ovvero posso comunicare con piu' terminali utilizzando una sola porta seriale.
              Ogni minuto, il microprocessore trasmette una parola di 9 bit a tutti i terminali (i gruppi di sensori). La parola e' composta da 1 bit che indica la chiamata, 4 bit di indirizzo, che mi permettono di comunicare con 16 terminali e 4 bit di comando, per permettere un minimo di gestione dei sensori remoti (posso impartire 16 comandi diversi).
              Il comando piu' classico e' quello con cui chiedo a quel gruppo di sensori di trasmettermi i dati, ma ad esempio potrei anche fare in modo che tutti i terminali rispondano insieme a un certo indirizzo (che so, Fh o 15), che potrei utilizzare come "chiamata generale" per chiedere l'azzeramento di tutti i contatori pluviometrici.

              La trasmissione dei dati ambientali potrebbe essere strutturata in un "Pacchetto" del genere (ogni "tag" e' un byte):
              <TEH> <TEL> <RHH> <RHL> <BAH> <BAM> <BAL> <WD> <WD> <WSH> <WSL> <RAH> <RAL> <LXH> <LXL> <UVH> <UVL> <CRC>
              TEH,TEL: temperatura, 3 cifre piu' segno (±XX.X °C)
              RHH,RHL: umidita', anche qui 3 cifre (XX.X %)
              BAH,BAM,BAL: pressione atmosferica in hPa (fino a XXXX.XX hPa)
              WD: direzione del vento, es. 4 bit indicanti la rosa dei venti e 12 l'angolo in gradi della banderuola, o altro formato
              WSH,WSL: velocita' del vento (XXX.X km/h)
              RAH,RAL: conteggio del pluviometro (XXX.X mm)
              LXH,LXL: radiazione solare (luxmetro)
              UVH,UVL: radiazione UV
              CRC: somma di controllo.
              La stazione poi provvede automaticamente a leggere dall'orologio e inserire i 5 byte di timestamp in coda o in testa: YY MM DD HH MM prima di memorizzare il tutto, tipo il record di un database.

              Fanno 23 byte in tutto, arrotondiamo a 32 per semplificare la gestione della matrice nel programma: con le memorie installate, sono 2048 record massimi per porta, vale a dire 85 giorni di datalogger impostato a cadenza oraria.

              Commenta

              Sto operando...
              X