Stazione Meteo Completa! (FAI DA TE)


Titolo: Re: Stazione Meteo Base (FAI DA TE)
maxtux ha scritto: [Visualizza Messaggio]
As_Needed ha scritto: [Visualizza Messaggio]
Mauro volevo chiederti una cosa... Ma quando dovrò mettere la griglia di aerazione antipioggia, sul foro passacavo, se non si trova delle stesse dimensioni del foro, come faccio? Poi quando faccio passare i fili all'esterno dal foro, come faccio a proteggere ciò che è all'interno della scatola stagna, visto che devo togliere il gommino?
:bye:


Ciao, prima di tutto scusami ma sono stato fuori per lavoro.
Allora, la scatola stagna ha più fori, tutti protetti con gommini passacavo, i cavi devono uscire da uno dei gommini ma SENZA rimuoverlo, il gommino si può tagliare per lo spazio necessario a far passare i cavi, per le griglie le trovi sicuramente, al massimo lievemente più grandi.

ciao


Ok ho capito :ok: Poi per montarle se sono lievemente più grandi cosa uso?
:bye:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Riprendo questo topic, perché adesso ho intenzione di riprendere il progetto, lo porterò come progetto finale agli esami! Però per farla ancora meglio, ho intenzione di metterci anche un anemometro con bandoliera, collegandolo ad arduino: per ciò vorrei sapere da voi quale secondo voi posso prendere di anemometro, un buon anemometro che non costi troppo! Avevo pensato anche di autocostruirlo, ma già ho da finire molte cose, quindi preferisco così.
:bye:

EDIT: una domanda fuori topic per Andrea, poi quando magari è tutta perfetta che l'ho finita, anche senza pluviometro si può inserire nella rete?
Ovviamente presupponendo di riuscire a trasmettere i dati su pc...

Ultima modifica di As_Needed il Mar 15 Set, 2015 15:27, modificato 2 volte in totale
Titolo: Re: Stazione Meteo Base (FAI DA TE)
As_Needed ha scritto: [Visualizza Messaggio]
EDIT: una domanda fuori topic per Andrea, poi quando magari è tutta perfetta che l'ho finita, anche senza pluviometro si può inserire nella rete?
Ovviamente presupponendo di riuscire a trasmettere i dati su pc...


Assolutamente sì... dove il dato non viene letto, la rete lo esclude e non lo mostra. Quindi avrai una stazione pienamente funzionante anche nella rete meteo, ma senza dati pluviometrici. ;)

Titolo: Re: Stazione Meteo Base (FAI DA TE)
andrea75 ha scritto: [Visualizza Messaggio]
As_Needed ha scritto: [Visualizza Messaggio]
EDIT: una domanda fuori topic per Andrea, poi quando magari è tutta perfetta che l'ho finita, anche senza pluviometro si può inserire nella rete?
Ovviamente presupponendo di riuscire a trasmettere i dati su pc...


Assolutamente sì... dove il dato non viene letto, la rete lo esclude e non lo mostra. Quindi avrai una stazione pienamente funzionante anche nella rete meteo, ma senza dati pluviometrici. ;)


Capito allora! Grazie della risposta. ;) Invece per l'anemometro qualcosa da consigliarmi? Intanto poi trovo il modo io di collegarlo ad arduino!
:bye:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Allora, posto le ultime cose fatte, in attesa dell'anemometro TX20 della LaCrosse che collegherò con arduino. Ecco qui lo schema elettrico e il pcb, ovvero quello che andrò a stampare su basetta. Per il pcb, forse farò qualche ritocco, per i collegamenti, ho seguito questo semplice schema in figura:
level_shifter

Qui invece sch e pcb:
fdgghdsfdsds cvbdfbgdfbgdfdf

:bye:

EDIT: Voglio specificare che il progetto in questione avrà come obiettivo una stazione meteo in grado di rilevare i seguenti valori: temperatura, umidità, pressione, intensità vento e direzione del vento e poi magari con delle formule, wind chill, heat index e dew point: questi valori saranno visualizzati tutti sul display. L'obiettivo successivo, sarebbe quello di trasmettere i dati con il wifi, tramite un antenna, in grado di mettere su un server poi anche i valori massimi e minimi di temperatura, umidità, pressione, punto di rugiada (dew point) e il valore massimo del vento e dell'indice di calore e il valore minimo del wind chill.
Speriamo di riuscire a fare tutto. :D
:bye:

Ultima modifica di As_Needed il Gio 01 Ott, 2015 19:15, modificato 3 volte in totale
Titolo: Re: Stazione Meteo Base (FAI DA TE)
averlo saputo lo facevo riparare a te il mio anemometro invece di ricomprarlo! :evil: :evil: :evil:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Lavorone! :inchino:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Fili ha scritto: [Visualizza Messaggio]
averlo saputo lo facevo riparare a te il mio anemometro invece di ricomprarlo! :evil: :evil: :evil:


Dipende sempre dal danno! :bye:

Comunque sì, è stato un bel lavorone, a non fare intrecciare niente poi, a spostare i componenti e tutto... il top copper l'ho usato poco, e con il bottom copper(piste blu) a non fare intrecciare niente e fare tutti i collegamenti giusti ci vuole.
:bye:

Ultima modifica di As_Needed il Ven 02 Ott, 2015 19:04, modificato 1 volta in totale
Titolo: Re: Stazione Meteo Base (FAI DA TE)
Davvero complimenti per il lavoro! :inchino: :ok:

Profilo PM  
Titolo: Re: Stazione Meteo Base (FAI DA TE)
Gab78 ha scritto: [Visualizza Messaggio]
Davvero complimenti per il lavoro! :inchino: :ok:


Grazie Gabriele! ;)
:bye:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Ecco il pcb probabilmente definitivo ;) Ho spostato qualche resistenza e quindi ristretto di più il tutto se no occupo spazio inutilmente. Il connettore del TX20 l'ho messo più verso l'esterno, perché i connettori vanno messi il più esterno possibile nella basetta. Piccolo errore, la scritta di 'Arduino Uno' ovviamente va messa fuori dal riquadro (pad master, contorno fuxia) ovvero quello che stampi, cioè che ciò che è dentro al riquadro viene stampato.
Come ho detto questo probabilmente sarà il definitivo quindi voglio postarlo:
immagine_1443805298_584197

Comunque mi è arrivato il TX20! 8))
:bye:

Ultima modifica di As_Needed il Ven 02 Ott, 2015 19:03, modificato 1 volta in totale
Titolo: Re: Stazione Meteo Base (FAI DA TE)
Complimenti, ma da un comune mortale è realizzabile come cosa?

Profilo PM  
Titolo: Re: Stazione Meteo Base (FAI DA TE)
Frasnow ha scritto: [Visualizza Messaggio]
Complimenti, ma da un comune mortale è realizzabile come cosa?


Beh sì, io lo sono :D Ci vogliono solo i materiali, specialmente avere qualcuno che stampa il circuito con una macchina apposita e poi impegno, ancora questo è solo l'inizio ;)
:bye:

Titolo: Re: Stazione Meteo Base (FAI DA TE)
Bel lavoro, complimenti ! Il circuito stampato mi sembra tranquillamente fattibile in casa a mezzo fotoincisione oppure con il solito metodo del ferro da stiro :-)

Ultima modifica di meteotecnico il Mer 07 Ott, 2015 10:26, modificato 2 volte in totale
Profilo PM  
Titolo: Re: Stazione Meteo Base (FAI DA TE)
Ragazzi! Ecco altri aggiornamenti sul progetto: INNANZITUTTO SONO RIUSCITO CON VARI AIUTI A RILEVARE GIA' LA VELOCITA' DEL VENTO E LA DIREZIONE tramite il tx20 collegato ad arduino, qui sotto metto il programma che ho utilizzato:
Ovviamente il programma per ora rileva solo quei valori, poi se vorrò mettere pure il wind chill devo studiarci un po' e aggiungerlo, ancora così viene scritto solo sul seriale ovvero non viene mandato sul display. Da confermare che la velocità del vento sia effettiva, ovvero ci vuole un campione di anemometro che gli si manda la stessa raffica del vento tipo con un phon, e confrontarlo poi con il tx20, però non so dove trovarlo...

Codice: [Download] [Nascondi]
  1. //void setup(); 
  2. //void loop(); 
  3. //int collectdata(void); 
  4. //void showdatasimple(); 
  5.  
  6. int dataPin = 4; 
  7. int bitLength = -1; 
  8. int data[45]; 
  9. int gooddata = 1; 
  10. int timeout; 
  11. int loops = 0; 
  12. int spd[8]; 
  13. int i = 0; 
  14. int j = 0; 
  15. char windDirection[16][4] = { 
  16. "N","NNE","NE", "ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"}; 
  17.  
  18. void setup() { 
  19. Serial.begin(9600); 
  20. Serial.print("\n\nInitializing...\n"); 
  21. // Serial.print("Data Pin: "); 
  22. // Serial.println(digitalRead(dataPin)); 
  23. pinMode(dataPin, INPUT); 
  24.  
  25. //void delay2(unsigned long ms){ 
  26. // unsigned long start = micros(); 
  27. // while (micros() - start <= ms); 
  28. //} 
  29.  
  30. void loop() { 
  31. Serial.println("Start"); 
  32. gooddata = 1; 
  33. collectData(); 
  34. if (gooddata == 1) { 
  35. rawdump(); 
  36. outputResults(); 
  37. TheData(); 
  38. else { 
  39. Serial.println ("READ ERROR"); 
  40. Serial.println(++loops); 
  41. Serial.println(); 
  42. delay(1500); 
  43.  
  44. int collectData(void) { 
  45. if (bitLength <0){ 
  46. bitLength = 1220;//getbitlenght2(); 
  47.  
  48.  
  49. pinMode(dataPin, OUTPUT); 
  50.  
  51. digitalWrite(dataPin, HIGH); 
  52. delay(100); 
  53. digitalWrite(dataPin, LOW ); 
  54. delay(500); 
  55. pinMode(dataPin, INPUT); 
  56.  
  57.  
  58. while(digitalRead(dataPin) == LOW){ 
  59. }  
  60. //wait slave start signal 
  61. while(digitalRead(dataPin) == HIGH){ 
  62. while(digitalRead(dataPin) == LOW){ 
  63.  
  64.  
  65.  
  66.  
  67. for (int i=0 ; i<42 ; i++) { 
  68. data[i] = (digitalRead(dataPin) == LOW)? 0:1; // read and save either a 0 or 1 
  69. delayMicroseconds(bitLength); 
  70.  
  71. int TheData() { 
  72. Serial.println("TheData"); 
  73. int i, idx = 0, idy = 0; 
  74. // for (i=8; i>4; i--) { dato originale 
  75. for (i=6; i>2; i--) { // dato modificato 
  76. idx = idx *2 + data[i]; 
  77.  
  78. // Serial.print("idx: "); 
  79. // Serial.println(idx, DEC); 
  80. Serial.print("Wind: "); 
  81. Serial.println(windDirection[idx] ); 
  82.  
  83. // for (i=17; i>8; i--) { dato originale per velocità 
  84. for (i=15; i>6; i--) { // dato modificato 
  85. idy = idy * 2 + data[i]; 
  86.  
  87. Serial.print("Speed: "); 
  88. Serial.print(idy, DEC); 
  89. Serial.println (" m/s read"); 
  90.  
  91. float idz = idy/10.0; 
  92. Serial.print("Speed: "); 
  93. Serial.print(idz); 
  94. Serial.println (" m/s real"); 
  95.  
  96. float KMH = idz * 3.6; 
  97. Serial.print("Speed: "); 
  98. Serial.print(KMH); 
  99. Serial.println (" kmh"); 
  100.  
  101. float MPH = KMH * 0.621371192; 
  102. Serial.print("Speed: "); 
  103. Serial.print(MPH); 
  104. Serial.println (" mph"); 
  105. /* 
  106. float wc, dp; 
  107. wc = windchill((float) temperature / 100, (float) Wind * 0.36); 
  108. dp = dewpoint((float)temperature / 100, (float) humidity); 
  109. */ 
  110.  
  111.  
  112. void rawdump() { 
  113. Serial.print("Raw: "); 
  114. for (int i=0 ; i<41 ; i++) { 
  115. Serial.print (data[i]); 
  116. if (i == 4) { 
  117. Serial.print (" "); 
  118. if (i == 8) { 
  119. Serial.print (" "); 
  120. if (i == 17) { 
  121. Serial.print (" "); 
  122. if (i == 20) { 
  123. Serial.print (" "); 
  124. if (i == 24) { 
  125. Serial.print (" "); 
  126. if (i == 28) { 
  127. Serial.print (" "); 
  128. if (i == 37) { 
  129. Serial.print (" "); 
  130.  
  131. void outputResults() { 
  132. Serial.println(); 
  133.  
  134. int idx =0; 
  135. for (int i=8 ; i> 4 ; i--)  
  136. //for (int i=6 ; i> 2 ; i--) // dato modificato 
  137. idx = idx *2 + data[i]; // data[i] == 0/1.. see prev post. // 
  138.  
  139. Serial.print("idx: "); 
  140. Serial.println(idx, DEC); 
  141. Serial.print("Wind: "); 
  142. Serial.println(windDirection[idx] ); 
  143. // Serial.println(); 
  144.  
  145. Serial.print("Swapped: "); 
  146.  
  147. //HEAD 
  148. for (int i =0 ; i< 5 ; i++) 
  149. Serial.print(data[i]); // it contains 0 or 1 
  150.  
  151. Serial.print(" "); 
  152.  
  153. //WINDDIR 
  154. for (int i =8 ; i> 4 ; i--) 
  155. Serial.print(data[i]); 
  156. Serial.print(" "); 
  157.  
  158. //WIND SPEED 
  159. for (int i =17 ; i> 8 ; i--) 
  160. Serial.print(data[i]); 
  161.  
  162. Serial.print(" "); 
  163.  
  164. //WIND SPEED+3 
  165. for (int i =20 ; i> 17 ; i--) 
  166. Serial.print(data[i]); 
  167.  
  168. Serial.print(" "); 
  169.  
  170. /* 
  171. // Checksum 
  172. for (iCounter=0;iCounter<4;iCounter++) 
  173. checksum |= (TX23_DATA_GET_BIT << iCounter); 
  174. delayTargetuSec += bitLength; 
  175. TX23_DoDelay; 
  176.  
  177. //Calculate Checksum 
  178. unsigned int checksumCalc = 0; 
  179. checksumCalc += (winddir & 15); 
  180. checksumCalc += ((windspeed >> 8) & 15); 
  181. checksumCalc += ((windspeed >> 4) & 15); 
  182. checksumCalc += (windspeed & 15); 
  183. */ 
  184.  
  185. // Checksum 
  186. for (int i =24 ; i> 20 ; i--) 
  187. Serial.print(data[i]); 
  188.  
  189. Serial.print(" "); 
  190.  
  191. //WIND DIR NEGATEIVE 
  192. for (int i =28 ; i> 24 ; i--) 
  193. Serial.print(data[i]); 
  194.  
  195. Serial.print(" "); 
  196.  
  197. //WIND SPEED NEGATED 
  198. for (int i =37 ; i> 28 ; i--){ 
  199. Serial.print(data[i]); 
  200.  
  201. Serial.print(" "); 
  202.  
  203. //WIND SPEED NEGATED +3 
  204. for (int i =40 ; i> 37 ; i--){ 
  205. Serial.print(data[i]); 
  206. Serial.println(); 
  207. // Serial.println(); 
  208. // Serial.println(); 
  209.  


Ho stampato pure il circuito e forato ed è venuto così:
Devo ancora limarlo bene ecco perché i lati sono fatti in quel modo...
Basetta finita, piste top copper
img_0472

Piste botton copper
img_0473

Qui la carta lucida con cui ho stampato il circuito. (la carta lucida si ricava stampando il pcb, ovvero lo schema di cui sopra negli altri messaggi)
img_0474 img_0475

Serigrafia componenti e lista componenti:
img_0476 img_0477

P.S. Ho messo il code non sapevo come si faceva la scrool bar :D

Ultima modifica di As_Needed il Gio 22 Ott, 2015 16:34, modificato 1 volta in totale

Pagina 5 di 18


  
Non puoi inserire nuovi Argomenti
Non puoi rispondere ai Messaggi
Non puoi modificare i tuoi Messaggi
Non puoi cancellare i tuoi Messaggi
Non puoi votare nei Sondaggi
Non puoi allegare files
Puoi scaricare gli allegati
Non puoi inserire eventi calendario

   

Questa visualizzazione "Lo-Fi" è semplificata. Per avere la versione completa di formattazioni ed immagini clicca su questo link.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Tempo Generazione: 0.1225s (PHP: -31% SQL: 131%)
SQL queries: 17 - Debug On - GZIP Abilitato