/*
*** Sergio & Adriano Prenleloup ****
***** Stazione Meteo *********
*** Prova per pluviometro ****
*** Versione 0.01 ************
****** 02/02/2014 **********
******************************
Questa è una prova con led per provare e tarare il pluviometro
si utilizza un led lampenggiante che viene "INTERROTTO" dalla
chiamata del pluviometro, si conteggia l'avvenuta basculata
del pluviometro, si sommano i millimitri caduti si accende il led
giallo quidi si torna al programma principale.
*/
// -----------------------------------------------------------------------
// costanti
const unsigned int durataMisura = 60 * 1000; //durata osservazione
// questa durata osservazione è di 60 secondi e serve solo per il
// filmato dimostrativo - sarà invece di 24 ore o frazioni da cumulare
// fino alle 24 ore.
// -------------------------------------------------------------------
// led dimostrativi
const int pinLed_blink = 5; // led verde che lampeggia
const int pinLed_inter = 6; // led gallo per interrupt
//--------------------------------------------------------------------
// costante contenuto in mm di ogni bascula ( venditore e nostra)
//const float mmGoccia = 0.3; // costante bascula indicata dal venditore
const float mmGoccia = 0.43; // costante bascula ricavata ( vedi blog)
// corrisponde ai mm di pioggia per ogni bascula
const int pinInterrupt = 2; // pin interrupt "0"
//-------------------------------------------------------------------------
// variabili usate nella funzione interrupt
//-------------------------------------------------------------------------
volatile unsigned int gocce = 0; // variabile conteggio numero basculate
volatile float mmPioggia = 0.0; // conteggio millimetri di pioggia
volatile boolean statoLed = false; // cambia stato nell'interrupt
//-------------------------------------------------------------------------
unsigned long oraLetturaPioggia = 0; //orario lettura misura
unsigned long oraCorrente = 0;
// ---------------------------------------------------
// setup
//----------------------------------------------------
void setup()
{
Serial.begin(9600);
pinMode(pinLed_blink, OUTPUT);
pinMode(pinLed_inter, OUTPUT);
//-------------------------------------------------------------------------
// Interrupt pluviometro
//-------------------------------------------------------------------------
attachInterrupt(0, ContaGocce, RISING); // modo da LOW ad HIGH
//-------------------------------------------------------------------------
oraLetturaPioggia = millis() + durataMisura; // imposta ora prima lettura
}
//--------------------------------------------------------------------------
// programma principale
//--------------------------------------------------------------------------
void loop()
{
// operazioni perdita di tempo
digitalWrite(pinLed_blink, HIGH);
delay(100);
digitalWrite(pinLed_blink, LOW);
delay(100);
//--------------------------------
// stampa letture
oraCorrente = millis();
if (oraCorrente > oraLetturaPioggia) // si controlla se ora di chiusura
// del conteggio
{
Serial.print("Pioggia caduta in ");
Serial.print(durataMisura /1000);
Serial.print("s = ");
Serial.print(gocce);
Serial.print(" = ");
Serial.print(mmPioggia);
Serial.println(" mm");
//azzera millimetri misurati (=> vuota contenitore)
gocce = 0;
mmPioggia = 0;
//imposta ora della prossima lettura
oraLetturaPioggia = oraCorrente + durataMisura;
}
}
//--------------------------------------------------
// funzione interrupt
//--------------------------------------------------
void ContaGocce()
{
gocce++; // incrementa numero basculate
mmPioggia = mmPioggia + mmGoccia; // sommatoria millimetri pioggia
statoLed = !statoLed;
digitalWrite(pinLed_inter, statoLed ? HIGH : LOW);
}
Mi chiedevo... questo sketch secondo voi funziona pure per il WS2300? Per ora non ho modo di provarlo, ma almeno posso già iniziare a lavorarci... Se va bene, sapete un modo per aggiungere il rain rate?
Dopo ovviamente lo modificheró il programma perché non voglio contare 60 s e più devo vedere la superfice del pluvio della la crosse, così poi riesco a tararlo con il software..
P.S. peró non mi é chiara una cosa, é impossibile su quello schema che gnd va all ingresso digitale.... forse i pin usati dal suo pluviometro sono diversi, perché sbaglio o Data va messo al pin 2 di arduino, sapete spiegarmi anche questa cosa? so che é la sezione software ma ho bisogno solo di un chiarimento sullo schema
In questo caso vdd alla 5 volt e gnd al meno di arduino. il pin 3 mi sa insieme alla GND come per l'anemometro, perché nella mia stazione meteo con arduino che ho usato il tx 20 della la crosse il pin 3 è messo insieme al 4 alla GND
Il pin 1 invece va messo a un ingresso digitale. Correggetemi per favore se sbaglio
Tra il pin 1 e l'ingresso digitale lui ha messo una resistenza da 100omh. E' una resistenza di pull up? Perché di solito io ci mettevo una da 4.7k di pull up
Praticamente sto facendo una stazione meteo con arduino, ho usato un DS18B20 per la temperatura DHT22 per umidità e BMP180 per la pressione e per la temperatura interna. Poi ho preso il TX20 della la crosse è ho collegato pure quello ad arduino e adesso voglio comprare quel pluviometro della la crosse e collegare pure quello ad arduino
Poi con delle equazioni mi sono trovato pure altri valori, il tutto visualizzato su display, metto qui la foto
e allora se vuoi collegare solo il pluviometro, perche' ti complichi la vita... il pluviometro ha solo due contatti ( pin 1 e 4 di un connettore telefonico RJ11 ) .
Vi e' collegato direttamente l'ampolla Reed, quindi lo usi come se fosse un normale pulsante.
Il DATA e GND di cui parli e' riferito al collegamento con la sua centralina, per l'uso che ne fai tu, puoi benissimo usare sia lo sketch che il disegno che hai postato
Brunello:
e allora se vuoi collegare solo il pluviometro, perche' ti complichi la vita... il pluviometro ha solo due contatti ( pin 1 e 4 di un connettore telefonico RJ11 ) .
Vi e' collegato direttamente l'ampolla Reed, quindi lo usi come se fosse un normale pulsante.
Il DATA e GND di cui parli e' riferito al collegamento con la sua centralina, per l'uso che ne fai tu, puoi benissimo usare sia lo sketch che il disegno che hai postato
Io volevo usare il cavo suo, ovvero l rj11 e collegarlo poi ad arduino come ho fatto con il tx 20 con tutti i vari componenti e l rj11 ha 4 poli... Per usare il reed devo smontare tutto il pluviometro
Etemenanki:
Posso darti un suggerimento spassionato ? ... i menu meta' Ita e meta' Eng fanno tanto da realizzazione volante ... forse e' meglio tutto Ita
Sul display dici? Ehh volevo mettere tutto ita, ma punto di rugiada indice di calore sono troppo lunghi, e poi temp.esterna mi pare brutto xd wind chill poi in ita verrebbe raffreddamento dal vento
Comunque ripongo le due domande:
DTR sul tx 20 è uguale a al pin 3 del pluvio? Ovvero il chip enalble del pluvio è uguale al dtr del tx 20? E' attivo basso e quindi va messo a massa come nel tx20?
Vanno bene i collegamenti sopra che ho fatto? Dove c'è la resistenza da 4.7k è il pin 1 e così via...
non hai capito.
Nel pluviometro c'e' solo un'ampolla Reed. Quindi niente DTR, chip enable , Vcc, GND, etc etc.
E poi perche' dovresti smontarlo, visto che i due contatti del Reed sono presenti sul connettore RJ11
e comunque nell'ultimo tuo disegno non si vede dov'e' il RJ11
Brunello:
non hai capito.
Nel pluviometro c'e' solo un'ampolla Reed. Quindi niente DTR, chip enable , Vcc, GND, etc etc.
E poi perche' dovresti smontarlo, visto che i due contatti del Reed sono presenti sul connettore RJ11
e comunque nell'ultimo tuo disegno non si vede dov'e' il RJ11
Mi sono spiegato male forse... il pluviometro della la crosse ha un cavo rj11 che lo usi per metterlo alla stazione, io voglio prendere quel cavo rj11 taglio dove c'è il connettore e ci sono 4 poli che escono no? 4 filetti: di quei filetti quello marrone/nero dovrebbe essere il data e quello giallo la gnd, ma gli altri due in mezzo cosa sono e dove vanno messi? oppure il cavo ha solo due poli? (mi ero confuso con l'anemometro...)
Quello segnato è il pin 1 filo marrone/nero, il resto in sequenza
P.S. se devo collegare dell rj solo i due fili estremi, allora non c'è problema... ma non riesco a capire, se quelli in mezzo di fili dell rj 11 (se ce li ha il pluviometro) devo collegarli... lo schema comunque se devo collegare i due estremi allora è sbagliato, perché io ho seguito lo schema del tx 20 anche per il pluviometro su quello schema.
Ancora non ho messo la stazione fuori perché devo finire tutto il montaggio su basetta Tu come hai fatto a prendere l'orario e dati? Con una sd card ? e per l'orario hai usato internet o un rtc?
Cos'e' il riquadro che hai marcato WS23000-16 ? ... perche' vedo un pin "data" connesso al +5V, ed un pin "gnd" che va ad un pin di arduino (che suppongo sia un'ingresso) attraverso una resistenza, ma senza pull-down sul pin ...
... e quell'anello li vicino 100nF + 10K senza altri collegamenti ? ...
mi sono sbagliato WS2300 non 23000, comunque è il pluvio
in teoria ho seguito lo schema quello all'inizio del post Non so precisamente a cosa servi il condensatore... Ho messo una resistenza sul gnd pin di arduino da 4.7k e non da 100 ohm come sullo schema
As_Needed:
Ancora non ho messo la stazione fuori perché devo finire tutto il montaggio su basetta Tu come hai fatto a prendere l'orario e dati? Con una sd card ? e per l'orario hai usato internet o un rtc?
OK, se riuscirai a portare a termine il progetto magari condividi nell'altro thread i tuoi risultati, così magari riusciamo a trarre qualche conclusione su quali sensori sono oggettivamente migliori.
Io sto lavorando su un meccanismo per realizzare "sensori wireless economici", quei dati li ho raccolti così. In sostanza ho un Arduino con un ESP8266 e un po' di sensori. Sul PC (a regime vorrei usare un Raspberry Pi) ho uno script Python che campiona i sensori ogni 5 minuti (collegandosi in wireless) e logga i dati. In questo modo l'orario lo prendo direttamente dal PC e i dati li salvo direttamente lì. Poi posso creare quei bellissimi grafici, mandarmeli per mail, e quant'altro ;).
Siccome l'ethernet shield ha pure un ingresso di sd card potevo fare il datalogger con quella e prendere l'orario con un rtc che collegherò ad arduino Che ancora non so quale prendere...