Pluviometro WS2300-16 LACROSSE arduino

Allora ragazzi, ho trovato questo sketch per un pluviometro sempre a vaschetta basculante che è il WS2300-16

I pin l'ho trovati qui su questo forum da uno inglese che l'aveva segnati
http://forum.arduino.cc/index.php?topic=58741.0

Rain Gauge used Reed switch RJ-11 pin-out is as followed>
1 - DATA
4 - GND

Lo schema è questo e penso che su di esso al posto del reed si sa qual è filo che va al meno e quello che va al più. DATA al + e GND al -...

Lo sketch l'ho trovato qui:

/*
 *** 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

Ah ecco ho trovato lo schema su quel topic di quello inglese

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 :wink:
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

nn ho capito una cosa...
ma tu vuoi collegare tutta la stazione meteo o solo il pluviometro ?

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 :wink:
Poi con delle equazioni mi sono trovato pure altri valori, il tutto visualizzato su display, metto qui la foto :wink:

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


intanto è uguale a questo i collegamenti, marrone pin due, rosso +5 e gli altri due a massa

questi sono quelli del tx20
1 Brown TxD
2 Red Vcc
3 Green DTR
4 Yellow GND

DTR è uguale a al pin 3 del pluvio?

Ho fatto un piccolo schema con l rj11 in teoria dovrebbe essere così?

Posso darti un suggerimento spassionato ? ... i menu meta' Ita e meta' Eng fanno tanto da realizzazione volante ... forse e' meglio tutto Ita :wink:

Etemenanki:
Posso darti un suggerimento spassionato ? ... i menu meta' Ita e meta' Eng fanno tanto da realizzazione volante ... forse e' meglio tutto Ita :wink:

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 :wink:

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.

Insomma sullo schema in foto, il data va al + e il - va alla resistenza?

OT: Visto che hai sensori simili ai miei, puoi dare un'occhiata qua e dirmi se la temperatura che leggi dai tuoi segue lo stesso andamento?

http://forum.arduino.cc/index.php?topic=358997.0

Grazie :wink:

SukkoPera:
OT: Visto che hai sensori simili ai miei, puoi dare un'occhiata qua e dirmi se la temperatura che leggi dai tuoi segue lo stesso andamento?

Comparazione sensori di temperatura - Hardware - Arduino Forum

Grazie :wink:

Ancora non ho messo la stazione fuori perché devo finire tutto il montaggio su basetta :wink: Tu come hai fatto a prendere l'orario e dati? Con una sd card ? e per l'orario hai usato internet o un rtc?

Ecco tutti i collegamenti, vanno bene?

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 :wink: 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 :wink: 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 ;).

Grande :smiley: Bhe io invece una volta collegato anche il pluviometro, volevo usare un ethernet shield con questa alternativa wifi che devo studiarmi
http://dangerousprototypes.com/2012/12/11/how-to-give-your-arduino-ethernet-shield-wireless-capability/

Siccome l'ethernet shield ha pure un ingresso di sd card potevo fare il datalogger con quella :wink: e prendere l'orario con un rtc che collegherò ad arduino :wink: Che ancora non so quale prendere...