Pagina 10 di 18
Vai a Precedente  1, 2, 3 ... 9, 10, 11 ... 16, 17, 18  Successivo
Vai a pagina   
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#136  As_Needed Sab 05 Dic, 2015 12:07

Fili ha scritto: [Visualizza Messaggio]
As_Needed ha scritto: [Visualizza Messaggio]
Ecco un paio di immagini, il rain rate forse non lo metterò, è un po' complicato aggiungerlo, vi farò sapere


invece tutto il resto è 'na cazzata   sono sicuro che troverai il sistema di mettere anche il RR  


     Bhe diciamo che questo è più complicato del resto    Forse però riuscirò ad aggiungerlo, però non assicuro niente stavolta    Diciamo che adesso la parte senza mettere online praticamente è fatta  
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 


Messaggio Re: Stazione Meteo (FAI DA TE)

#137  Gab78 Sab 05 Dic, 2015 14:44

Fili ha scritto: [Visualizza Messaggio]
As_Needed ha scritto: [Visualizza Messaggio]
Ecco un paio di immagini, il rain rate forse non lo metterò, è un po' complicato aggiungerlo, vi farò sapere


invece tutto il resto è 'na cazzata   sono sicuro che troverai il sistema di mettere anche il RR  


Credo proprio che arrivato a 'sto punto, metterlo sia una quisquilia, una bazzecola, una pinzillacchera... come diceva il grande Totò...  
 




____________
Ricordo pioggia che passa,

mi manchi e tu non passi mai...


(Zucchero Fornaciari)
 
avatar
italia.png Gab78 Sesso: Uomo
Gabriele
Guru
Guru
Socio Sostenitore
 
Utente #: 874
Registrato: 30 Ott 2010

Età: 47
Messaggi: 12588
4591 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Davis Vantage Vue, Ventus W83x e Altro

Località: San Giovanni Profiamma - 270 m s.l.m. - frazione di Foligno (PG)

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#138  As_Needed Sab 05 Dic, 2015 16:17

Gab78 ha scritto: [Visualizza Messaggio]
Fili ha scritto: [Visualizza Messaggio]
As_Needed ha scritto: [Visualizza Messaggio]
Ecco un paio di immagini, il rain rate forse non lo metterò, è un po' complicato aggiungerlo, vi farò sapere


invece tutto il resto è 'na cazzata   sono sicuro che troverai il sistema di mettere anche il RR  


Credo proprio che arrivato a 'sto punto, metterlo sia una quisquilia, una bazzecola, una pinzillacchera... come diceva il grande Totò...  


bhe quel che conta che o RR o non RR offline la stazione é pronta
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#139  As_Needed Gio 10 Dic, 2015 15:25

Allora intanto pubblico il pcb finale quello che sarà il reale circuito stampato e stavolta è questo non si cambia
Qualcuno forse si chiederà come mai mancano due fili nel top copper. Bhe la risposta è che non userò più arduino uno ma arduino mega, per il fatto che siccome la stazione è diventata abbastanza professionale non mi basta la memoria di arduino, allora ci vuole il mega. Siccome i pin del bus SPI che mi servono non si trovano a 11 e 13 delle uscite digitali della mega ma a 51 e 52, praticamente faccio partire due fili dai pad viola sda e scl, quelli vicini al filo rosso, che corrispondono al mosi e sclk del display in questo caso, che vanno alle uscite 51 e 52,  faccio partire due fili esterni praticamente che vanno a 51 e 52 Stessa cosa il bus ic2, ovvero i pad A4 e A5 non sono nel mega ad A4 e A5, ma sono a D20 e D21, per questo faccio partire altri due fili da quei pad fino a quelle uscite. Ovviamente poi i connettori sotto sui pin A4 e A5 non ce li metto. Quando avrò tutto pronto, metterò le foto così si capisce meglio. Praticamente sarà arduino mega, sopra arduino mega ethernet shield e sopra ancora, circuito stampato
immagine_1449757522_987823

Questa è la lista dei componenti usati nella basetta non all'esterno:
immagine_1449758354_809150
E' scritto arduino uno ma solo per i pad usati che sono gli stessi.

Questa è la carta lucido definitiva stavolta con cui formerò le piste in rame del circuito stampato:
img_0552
 



 
Ultima modifica di As_Needed il Gio 10 Dic, 2015 15:42, modificato 4 volte in totale 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#140  Fili Gio 10 Dic, 2015 19:45

As_Needed ha scritto: [Visualizza Messaggio]
Allora intanto pubblico il pcb finale quello che sarà il reale circuito stampato e stavolta è questo non si cambia
Qualcuno forse si chiederà come mai mancano due fili nel top copper. Bhe la risposta è che non userò più arduino uno ma arduino mega, per il fatto che siccome la stazione è diventata abbastanza professionale non mi basta la memoria di arduino, allora ci vuole il mega. Siccome i pin del bus SPI che mi servono non si trovano a 11 e 13 delle uscite digitali della mega ma a 51 e 52, praticamente faccio partire due fili dai pad viola sda e scl, quelli vicini al filo rosso, che corrispondono al mosi e sclk del display in questo caso, che vanno alle uscite 51 e 52,  faccio partire due fili esterni praticamente che vanno a 51 e 52 Stessa cosa il bus ic2, ovvero i pad A4 e A5 non sono nel mega ad A4 e A5, ma sono a D20 e D21, per questo faccio partire altri due fili da quei pad fino a quelle uscite. Ovviamente poi i connettori sotto sui pin A4 e A5 non ce li metto. Quando avrò tutto pronto, metterò le foto così si capisce meglio. Praticamente sarà arduino mega, sopra arduino mega ethernet shield e sopra ancora, circuito stampato


Ho capito più cose in un comizio di Kim Jong Un che in quello che hai scritto però deve essere bello! Complimenti!  
 




____________
www.meteofoligno.it

small small small small
 
Ultima modifica di Fili il Gio 10 Dic, 2015 19:45, modificato 1 volta in totale 
avatar
italia.png Fili Sesso: Uomo
Filippo
Guru
Guru
Socio Ordinario
 
Utente #: 343
Registrato: 17 Dic 2007

Età: 42
Messaggi: 38878
5642 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Davis Vantage Pro2

Località: Foligno V.le Firenze 225m s.l.m.

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#141  As_Needed Gio 10 Dic, 2015 20:02

Fili ha scritto: [Visualizza Messaggio]

Ho capito più cose in un comizio di Kim Jong Un che in quello che hai scritto però deve essere bello! Complimenti!  


Ho provato a spiegare il più chiaro possibile     Intanto quando metto le foto vedrete con gli occhi il lavoro che è la meglio cosa, è più facile di quello che sembra    Quando avrò finalmente sto circuito stampato definitivo non con tutti quei fili per il mezzo che si vedono nelle foto addietro con la bread board
 
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#142  Gab78 Gio 10 Dic, 2015 22:03

As_Needed ha scritto: [Visualizza Messaggio]
Fili ha scritto: [Visualizza Messaggio]

Ho capito più cose in un comizio di Kim Jong Un che in quello che hai scritto però deve essere bello! Complimenti!  


Ho provato a spiegare il più chiaro possibile     Intanto quando metto le foto vedrete con gli occhi il lavoro che è la meglio cosa, è più facile di quello che sembra    Quando avrò finalmente sto circuito stampato definitivo non con tutti quei fili per il mezzo che si vedono nelle foto addietro con la bread board
 


Beh, come battuta non c'è male...  

Grandioso!  
 




____________
Ricordo pioggia che passa,

mi manchi e tu non passi mai...


(Zucchero Fornaciari)
 
avatar
italia.png Gab78 Sesso: Uomo
Gabriele
Guru
Guru
Socio Sostenitore
 
Utente #: 874
Registrato: 30 Ott 2010

Età: 47
Messaggi: 12588
4591 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Davis Vantage Vue, Ventus W83x e Altro

Località: San Giovanni Profiamma - 270 m s.l.m. - frazione di Foligno (PG)

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#143  As_Needed Gio 10 Dic, 2015 22:29

Grazie mille Gabrié!!!! E grazie a tutti!
Non vedo l ora di compleatare tutto!

 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#144  andrea75 Ven 11 Dic, 2015 09:28

Prossimo passo, modulo a radiofrequenza per i sensori!
 




____________
Facebook: lineameteo - Twitter: @lineameteo

big

Stazione meteo di San Mariano (PG)
Dati meteo in tempo reale
http://sanmariano.lineameteo.it
 
avatar
italia.png andrea75 Sesso: Uomo
Andrea
Presidente
Presidente
 
Utente #: 2
Registrato: 31 Mar 2005

Età: 50
Messaggi: 45403
3916 Punti

Preferenza Meteo: Freddofilo

Stazione Meteo: LaCrosse WS2300

Località: San Mariano (PG) - 290 mt.

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#145  Poranese457 Ven 11 Dic, 2015 09:36

E io che c'ho messo du anni a mette online una webcam!        

Complimenti Eugenio, davvero complimenti      
 




____________
small
 
Socio Fondatore
Socio Fondatore
 
Utente #: 197
Registrato: 29 Ott 2006

Età: 40
Messaggi: 45086
7458 Punti

Preferenza Meteo: Freddofilo

Stazione Meteo: Davis Vantage Pro2

Località: Porano (TR), 457m slm - Umbria occidentale

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#146  As_Needed Ven 11 Dic, 2015 19:53

andrea75 ha scritto: [Visualizza Messaggio]
Prossimo passo, modulo a radiofrequenza per i sensori!


Così anche se succede il terremoto e va via corrente e internet continuo a trasmettere        Grazie ancora a tutti! Ai prossimi aggiornamenti!
 
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#147  As_Needed Lun 14 Dic, 2015 18:18

Qua piove forte e siamo già a 65 mm    Sono riuscito a fare sto benedetto RR, non mi pare vero    Ecco qua una foto!
img_0560

Qua intanto il codice completo di tutta la stazione meteo offline, che comprende tutti quei valori sul display
Codice: [Download] [Nascondi]
  1. #include <EEPROM.h> 
  2. #include <DS3232RTC.h>    
  3. #include <Time.h> 
  4. #include <Wire.h> 
  5. #include <BMP180.h> 
  6. #include <SPI.h> 
  7. #include <Adafruit_GFX.h> 
  8. #define sclk 13 
  9. #define mosi 11 
  10. #define cs   A3 
  11. #define dc   A1 
  12. #define rst  A2  
  13. #include <Adafruit_GFX.h>    // Core graphics library 
  14. #include <Adafruit_ST7735.h> // Hardware-specific library 
  15. #include <SPI.h> 
  16. Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst); 
  17. #include "DHT.h" 
  18. #include <OneWire.h> 
  19. #include <DallasTemperature.h> 
  20. // Data wire is plugged into pin 2 on the Arduino 
  21. #define ONE_WIRE_BUS 8 
  22. // Setup a oneWire instance to communicate with any OneWire devices  
  23. // (not just Maxim/Dallas temperature ICs) 
  24. OneWire oneWire(ONE_WIRE_BUS); 
  25. // Pass our oneWire reference to Dallas Temperature. 
  26. DallasTemperature sensors(&oneWire); 
  27. DHT dht(5,DHT22); //Definisco il pin al quale è collegato il sensore e il tipo 
  28. const int pinLed_blink = 6; // led verde che lampeggia 
  29. const int pinLed_inter = 7; 
  30. const float mmGoccia = 0.518; 
  31. const int pinInterrupt = 3; 
  32. volatile unsigned int gocce = 0; 
  33. volatile float mmPioggia = 0.0; // conteggio millimetri di pioggia 
  34. volatile boolean statoLed = false; 
  35. unsigned long time; 
  36. unsigned long PluvioStep = 0;  
  37. unsigned long PluvioOldStep = 0; 
  38. float dewPoint; 
  39. float windchill; 
  40. float temperaturaf; 
  41. float heatindexf; 
  42. float heatindexc; 
  43. float pressionelivellodelmarehPa; 
  44. float pressionelivellodelmare; 
  45. float rafficamax=0; 
  46. byte giornoSalvato; 
  47. float maxeeprom=0.0; 
  48. float mineeprom=100.0; 
  49. float rainrate=0; 
  50. int eeAddress1 = -1; 
  51. int eeAddress2 = 4; 
  52. int eeAddress3 = -8; 
  53. int eeAddress4 = -4; 
  54. int dataPin = 2; 
  55. int bitLength = -1; 
  56. int data[45]; 
  57. int gooddata = 1; 
  58. int timeout; 
  59. int loops = 0; 
  60. int spd[8]; 
  61. int i = 0; 
  62. int j = 0; 
  63. char windDirection[16][4] = { 
  64.   "N","NNE","NE", "ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"}; 
  65. // Store an instance of the BMP180 sensor. 
  66. BMP180 barometer; 
  67. // Store the current sea level pressure at your location in Pascals. 
  68. float seaLevelPressure = 101325;  
  69.  
  70. void setup() { 
  71.   Serial.begin(9600); 
  72.   tft.initR(INITR_BLACKTAB); 
  73.   tft.fillScreen(ST7735_BLUE); 
  74.   time=millis(); 
  75.   tft.setCursor (0,20); 
  76.   tft.setTextSize(2); 
  77.   tft.setTextColor (ST7735_GREEN); 
  78.   tft.print (" STAZIONE"); 
  79. tft.setCursor (10,40); 
  80.   tft.print ("  METEO:"); 
  81.   delay (2000); 
  82.   tft.setTextColor (ST7735_YELLOW); 
  83.   tft.setCursor (4,80); 
  84.   tft.print ("SITUAZIONE  ATTUALE"); 
  85.     pinMode(pinLed_blink, OUTPUT); 
  86.   pinMode(pinLed_inter, OUTPUT); 
  87.   attachInterrupt(1, ContaGocce, FALLING); // modo da HIGH a LOW 
  88. setSyncProvider(RTC.get); 
  89. //setTime(16,05,30,25,11,2015);  
  90.   giornoSalvato = day(); 
  91.    EEPROM.get (eeAddress1,maxeeprom); 
  92.    EEPROM.get (eeAddress2,mineeprom); 
  93.   EEPROM.get (eeAddress3,rafficamax); 
  94.     EEPROM.get (eeAddress4,mmPioggia); 
  95.   //Serial.println("DHT test"); 
  96.   dht.begin(); 
  97.    // Start up the library 
  98.   sensors.begin(); 
  99.   //Serial.print("\n\nInitializing...\n"); 
  100.   //  Serial.print("Data Pin: "); 
  101.   //  Serial.println(digitalRead(dataPin)); 
  102.     pinMode(dataPin, INPUT); 
  103.      // We start the I2C on the Arduino for communication with the BMP180 sensor. 
  104. Wire.begin(); 
  105. // We create an instance of our BMP180 sensor. 
  106. barometer = BMP180(); 
  107. // We check to see if we can connect to the sensor. 
  108. if(barometer.EnsureConnected()) 
  109. //Serial.println("Connected to BMP180."); // Output we are connected to the computer. 
  110. // When we have connected, we reset the device to ensure a clean start. 
  111. barometer.SoftReset(); 
  112. // Now we initialize the sensor and pull the calibration data. 
  113. barometer.Initialize(); 
  114. //else 
  115. //{  
  116. // Serial.println("No sensor found."); 
  117. // } 
  118.  
  119.  
  120.  
  121. //void delay2(unsigned long ms){ 
  122. //    unsigned long start = micros(); 
  123. //    while (micros() - start <= ms); 
  124. //} 
  125.  
  126. void PluvioDataEngine() { 
  127. if (((PluvioStep - PluvioOldStep) != 0) && (gocce >= 2)) { 
  128.     if ((time - PluvioStep) > (PluvioStep - PluvioOldStep)) { 
  129.       rainrate = 3600 / (((time - PluvioStep) / 1000)) * mmGoccia; 
  130.       if (rainrate < 1) { 
  131.         gocce = 0; 
  132.         rainrate = 0; 
  133.       } 
  134.     } else { 
  135.       rainrate = 3600 / (((PluvioStep - PluvioOldStep) / 1000)) * mmGoccia; 
  136.     } 
  137.   } else { 
  138.     rainrate = 0.0; 
  139.   } 
  140. void loop() { 
  141.   sensors.requestTemperatures(); 
  142.    digitalWrite(pinLed_blink, HIGH);  
  143.   delay(100); 
  144.   digitalWrite(pinLed_blink, LOW); 
  145.   delay(100); 
  146.    float h = dht.readHumidity(); // Leggo il valore di umidità 
  147.   dewPoint = (pow (h/100,0.125)*(112+(0.9*sensors.getTempCByIndex(0)))+0.1*sensors.getTempCByIndex(0)-112); 
  148.    pressionelivellodelmare=barometer.GetPressure()+5240; 
  149.   pressionelivellodelmarehPa=pressionelivellodelmare/100; 
  150.   //float t = dht.readTemperature(); // Leggo il valore di temperatura 
  151.   //if (isnan(t) || isnan(h)) // Se almeno uno dei due valori è NaN (Not a Number) 
  152.    
  153.     //Serial.println("Impossibile leggere il sensore!"); 
  154.    
  155.   //else //altrimenti 
  156.   if(barometer.IsConnected) 
  157. // Retrive the current pressure in Pascals. 
  158. long currentPressureP = barometer.GetPressure(); 
  159. float currentPressuremb = currentPressureP/100.0; 
  160. float currentPressureinHg = currentPressuremb*0.02953; 
  161.  
  162.  
  163. // Retrive the current altitude (in meters). Current Sea Level Pressure is required for this. 
  164. float altitudem = barometer.GetAltitude(seaLevelPressure); 
  165. float altitudeft = altitudem*3.2808; 
  166.  
  167.  
  168. // Retrive the current temperature in degrees celcius. 
  169. float currentTemperatureC = barometer.GetTemperature(); 
  170. float currentTemperatureF = (9.0/5.0)*currentTemperatureC+32.0; 
  171.    // Serial.print("Temperatura "); 
  172.    // Serial.println(sensors.getTempCByIndex(0)); 
  173.    // Serial.print("Umidita' "); 
  174.    // Serial.print(h); 
  175.    // Serial.print(" %\t"); 
  176.  
  177. //   Serial.println ("Dew Point"); 
  178. //Serial.print (dewPoint); 
  179. //Serial.println ("C"); 
  180. //Serial.println ("Wind Chill"); 
  181. //Serial.print  (windchillc); 
  182. //Serial.print ("C"); 
  183.  
  184.  
  185. time = millis(); 
  186. PluvioDataEngine(); 
  187.  
  188.    temperaturaf=sensors.getTempCByIndex(0)*1.8+32; 
  189.  
  190.     
  191.   if ((sensors.getTempCByIndex(0)>=26.7)&&(h>=40)) 
  192. {  
  193.   heatindexf=(-42.379+2.04901523*temperaturaf+10.14333127*h-0.22475541*temperaturaf*h-0.00683783*pow(temperaturaf,2)-0.05481717*pow(h,2)+0.00122874*pow(temperaturaf,2)*h+0.00085282*temperaturaf*pow(h,2)-0.00000199*pow(temperaturaf,2)*pow(h,2)); 
  194. heatindexc= (heatindexf-32)/1.8; 
  195.    } 
  196.    else 
  197.    {  
  198.     heatindexc=sensors.getTempCByIndex(0); 
  199.    } 
  200. //delay(1000); 
  201.      
  202.     //Serial.print("Temperatura: "); 
  203.     //Serial.print(t); 
  204.     //Serial.println(" *C"); 
  205.     // non è necessario mettere un delay() perchè ci vogliono due secondi per leggere i valori, quindi il serial monitor riceverà dati ogni 2 secondi. 
  206.     
  207. // Serial.println("Start"); 
  208.   gooddata = 1; 
  209.   collectData(); 
  210.   if (gooddata == 1) { 
  211.     rawdump(); 
  212.     outputResults(); 
  213.     TheData(); 
  214.   } 
  215.   //else //{ 
  216.    // Serial.println ("READ ERROR"); 
  217.   //} 
  218.   //Serial.println(++loops); 
  219. // Serial.println(); 
  220. // delay(1500); 
  221.  
  222. int collectData(void) { 
  223.    if (bitLength <0){ 
  224.      bitLength = 1220;//getbitlenght2(); 
  225.  
  226.   } 
  227. /*/ 
  228. pinMode(dataPin, OUTPUT); 
  229.  
  230. digitalWrite(dataPin, HIGH); 
  231. delay(100); 
  232. digitalWrite(dataPin, LOW ); 
  233. delay(500); 
  234. pinMode(dataPin, INPUT); 
  235. /*/ 
  236.  
  237. while(digitalRead(dataPin) == LOW){ 
  238. }   
  239. //wait slave start signal 
  240. while(digitalRead(dataPin) == HIGH){ 
  241. while(digitalRead(dataPin) == LOW){ 
  242.  
  243.  
  244.  
  245.  
  246.   for (int i=0 ; i<42 ; i++) { 
  247.     data[i] = (digitalRead(dataPin) == LOW)? 0:1; // read and save either a 0 or 1 
  248.     delayMicroseconds(bitLength); 
  249.   } 
  250.  
  251. int TheData() { 
  252. // Serial.println("TheData"); 
  253.   int i, idx = 0, idy = 0; 
  254. // for (i=8; i>4; i--) {  dato originale 
  255.     for (i=6; i>2; i--) { // dato modificato 
  256.     idx = idx *2 + data[i]; 
  257.   } 
  258.  
  259.   //  Serial.print("idx: "); 
  260.   //  Serial.println(idx, DEC); 
  261. // Serial.print("Wind: "); 
  262. // Serial.println(windDirection[idx] ); 
  263.  
  264. // for (i=17; i>8; i--) {  dato originale per velocità 
  265.     for (i=15; i>6; i--) {   // dato modificato 
  266.     idy = idy * 2 + data[i]; 
  267.   } 
  268.  
  269. // Serial.print("Speed: "); 
  270. // Serial.print(idy, DEC); 
  271.   //Serial.println (" m/s read"); 
  272.  
  273.   float idz = idy/10.0; 
  274.   //Serial.print("Speed: "); 
  275. // Serial.print(idz); 
  276. // Serial.println (" m/s real"); 
  277.  
  278.   float KMH = idz * 3.6; 
  279.   //Serial.print("Speed: "); 
  280.   //Serial.print(KMH); 
  281.   //Serial.println (" kmh"); 
  282.  
  283.   float MPH = KMH * 0.621371192; 
  284. // Serial.print("Speed: "); 
  285.   //Serial.print(MPH); 
  286. // Serial.println (" mph"); 
  287.  
  288.  
  289. windchill=(13.12+0.6215*sensors.getTempCByIndex(0))-(11.37*pow(KMH,0.16))+(0.3965*sensors.getTempCByIndex(0)*pow(KMH,0.16)); 
  290. if ((windchill<sensors.getTempCByIndex(0))&&(KMH>4.6)) 
  291. windchill=(13.12+0.6215*sensors.getTempCByIndex(0))-(11.37*pow(KMH,0.16))+(0.3965*sensors.getTempCByIndex(0)*pow(KMH,0.16)); 
  292.   } 
  293.   else 
  294.   { 
  295.     windchill=sensors.getTempCByIndex(0); 
  296.   } 
  297. if ( giornoSalvato != day() )  
  298.   { 
  299.     giornoSalvato=day(); 
  300.    rafficamax=KMH; 
  301.    maxeeprom=sensors.getTempCByIndex(0); 
  302.     mineeprom=sensors.getTempCByIndex(0); 
  303.     mmPioggia=0; 
  304.   EEPROM.put (eeAddress1, maxeeprom); 
  305.   EEPROM.put (eeAddress2, mineeprom); 
  306.    EEPROM.put (eeAddress3, rafficamax); 
  307.       EEPROM.put (eeAddress4, mmPioggia); 
  308.  
  309.   } 
  310.     if (KMH>rafficamax) 
  311.   { 
  312.     rafficamax=KMH; 
  313.     EEPROM.put (eeAddress3, rafficamax); 
  314.     } 
  315.  
  316. tft.fillScreen(ST7735_BLACK); 
  317.   tft.setTextColor (ST7735_GREEN); 
  318.    tft.setCursor(0, 0); 
  319.   tft.setTextSize(1); 
  320.   tft.println("Temp.OUTSIDE"); 
  321.   if (sensors.getTempCByIndex(0)<3) 
  322.   {  
  323.   tft.setTextColor (ST7735_BLUE); 
  324.   tft.setCursor(80, 0); 
  325.   tft.setTextSize(1); 
  326.   tft.print(sensors.getTempCByIndex(0)); 
  327.   tft.print ( (char)248); 
  328.   tft.println("C"); 
  329. //delay(5000); 
  330.    } 
  331.    if ((sensors.getTempCByIndex(0)>=3)&&(sensors.getTempCByIndex(0)<=15)) 
  332.   {  
  333.   tft.setTextColor (ST7735_GREEN); 
  334.   tft.setCursor(80, 0); 
  335.   tft.setTextSize(1); 
  336.   tft.print(sensors.getTempCByIndex(0)); 
  337.   tft.print ( (char)248); 
  338.   tft.println("C"); 
  339.   } 
  340.     if ((sensors.getTempCByIndex(0)>15)&&(sensors.getTempCByIndex(0)<30)) 
  341.   {  
  342.   tft.setTextColor (ST7735_YELLOW); 
  343.   tft.setCursor(80, 0); 
  344.   tft.setTextSize(1); 
  345.   tft.print(sensors.getTempCByIndex(0)); 
  346.   tft.print ( (char)248); 
  347.   tft.println("C"); 
  348.   } 
  349.     if ((sensors.getTempCByIndex(0)>=30)) 
  350.   {  
  351.   tft.setTextColor (ST7735_RED); 
  352.   tft.setCursor(80, 0); 
  353.   tft.setTextSize(1); 
  354.   tft.print(sensors.getTempCByIndex(0)); 
  355.   tft.print ( (char)248); 
  356.   tft.println("C"); 
  357.   } 
  358.    tft.setTextColor (ST7735_WHITE); 
  359.   tft.setCursor (0,10); 
  360.   tft.print ("Umidita'"); 
  361.   tft.setCursor (80,10); 
  362.   tft.print (dht.readHumidity()); 
  363.   tft.print (" %"); 
  364.   tft.setCursor (0,20); 
  365. tft.print ("Dew Point"); 
  366.   tft.setCursor (80,20); 
  367.    tft.print (dewPoint); 
  368.   tft.print ((char)248); 
  369.   tft.print ("C"); 
  370.    tft.setTextColor (ST7735_GREEN); 
  371.    tft.setCursor (0,30); 
  372.    tft.print ("Pioggia"); 
  373.    tft.setTextColor (ST7735_BLUE); 
  374.   tft.setCursor (80,30); 
  375.    tft.print (mmPioggia); 
  376.    tft.print ("mm");  
  377.     tft.setTextColor (ST7735_WHITE); 
  378.     tft.setCursor (0,40); 
  379.    tft.setTextColor (ST7735_GREEN); 
  380.    tft.print ("Rain Rate"); 
  381.    tft.setCursor (62,40); 
  382.    tft.setTextColor (ST7735_BLUE); 
  383.    tft.print (rainrate); 
  384.    tft.setCursor (100,40); 
  385.    tft.print("mm/h"); 
  386.    tft.setTextColor (ST7735_WHITE); 
  387.    tft.setCursor (0,50); 
  388.   tft.println ("Vento"); 
  389.   tft.setCursor (55,50); 
  390.   tft.print (KMH); 
  391. tft.print ("Km/h"); 
  392. tft.setCursor (110,50); 
  393. tft.print (windDirection[idx]); 
  394. tft.setCursor (0,60); 
  395. tft.print ("Pressione"); 
  396. tft.setCursor (65,60); 
  397. tft.print (pressionelivellodelmarehPa); 
  398. tft.setCursor (110,60); 
  399. tft.print ("hPa"); 
  400. tft.setTextColor (ST7735_BLUE); 
  401. tft.setCursor (0,70); 
  402. tft.print ("Wind Chill"); 
  403. tft.setCursor (80,70); 
  404. tft.print (windchill); 
  405. tft.print ((char)248); 
  406. tft.print ("C"); 
  407. tft.setTextColor (ST7735_RED); 
  408. tft.setCursor (0,80); 
  409. tft.println ("Heat Index"); 
  410. tft.setCursor (80,80); 
  411. tft.print (heatindexc); 
  412. tft.print ((char)248); 
  413. tft.print ("C"); 
  414. tft.setTextColor (ST7735_YELLOW); 
  415. tft.setCursor(0, 90); 
  416. tft.println("Temp.INSIDE"); 
  417. tft.setCursor(80, 90); 
  418. tft.print(barometer.GetTemperature()); 
  419. tft.print((char)248); 
  420. tft.println("C"); 
  421. tft.drawLine (0,100,tft.width()-0,100,ST7735_WHITE); 
  422. tft.setCursor(0,103); 
  423. tft.setTextColor (ST7735_RED); 
  424. tft.print("Temp.MAX"); 
  425. tft.setCursor(80,103); 
  426. tft.print(maxeeprom); 
  427. tft.print((char)248); 
  428. tft.println("C"); 
  429. tft.setTextColor (ST7735_BLUE); 
  430. tft.setCursor(0,113); 
  431. tft.print("Temp.MIN"); 
  432. tft.setCursor(80,113); 
  433. tft.print(mineeprom); 
  434. tft.print((char)248); 
  435. tft.println("C"); 
  436. tft.setTextColor (ST7735_WHITE); 
  437. tft.setCursor (0,123); 
  438. tft.print ("RafficaMAX"); 
  439. tft.setCursor (65,123); 
  440. tft.print (rafficamax); 
  441. tft.print ("Km/h"); 
  442. tft.setTextColor (ST7735_YELLOW); 
  443. tft.setTextSize (2); 
  444. tft.setCursor (0,135); 
  445. tft.print(hour()); 
  446. tft.print(":"); 
  447.   tft.print(minute()); 
  448.   tft.print(":"); 
  449. tft.print(second()); 
  450. tft.println(""); 
  451. tft.setTextSize (1); 
  452. tft.print(day()); 
  453. tft.print("/"); 
  454.   tft.print(month()); 
  455. tft.print("/"); 
  456.   tft.print(year()); 
  457. tft.print(""); 
  458.    
  459. void rawdump() { 
  460. // Serial.print("Raw: "); 
  461.   for (int i=0 ; i<41 ; i++) { 
  462.   //  Serial.print (data[i]); 
  463.     if (i == 4) { 
  464.    //   Serial.print (" "); 
  465.     } 
  466.     if (i == 8) { 
  467.    //   Serial.print (" "); 
  468.     } 
  469.     if (i == 17) { 
  470.    //   Serial.print (" "); 
  471.     } 
  472.     if (i == 20) { 
  473.     //  Serial.print (" "); 
  474.     } 
  475.     if (i == 24) { 
  476.     //  Serial.print (" "); 
  477.     } 
  478.     if (i == 28) { 
  479.     ////  Serial.print (" "); 
  480.     } 
  481.     if (i == 37) { 
  482.     //  Serial.print (" "); 
  483.     } 
  484.   } 
  485.  
  486.  
  487.   } 
  488. void ContaGocce() 
  489.    gocce++; // incrementa numero basculate 
  490.    if (gocce>1) 
  491. {  
  492.   mmPioggia =mmPioggia + 0.518; 
  493. else 
  494. mmPioggia = mmPioggia + mmGoccia; // sommatoria millimetri pioggia 
  495. PluvioOldStep = PluvioStep; 
  496. PluvioStep = time; 
  497. statoLed = !statoLed; 
  498. digitalWrite(pinLed_inter, statoLed ? HIGH : LOW); 
  499. EEPROM.put (eeAddress4, mmPioggia); 
  500.  
  501. void outputResults() { 
  502.   //Serial.println(); 
  503.  
  504.   int idx =0; 
  505.   for (int i=8 ; i> 4 ; i--)  
  506.   //for (int i=6 ; i> 2 ; i--) // dato modificato 
  507.   { 
  508.     idx = idx *2 + data[i];  // data[i] == 0/1.. see prev post.  // 
  509.   } 
  510.  
  511.   //Serial.print("idx: "); 
  512.   //Serial.println(idx, DEC); 
  513.   //Serial.print("Wind: "); 
  514.   //Serial.println(windDirection[idx] ); 
  515.   //  Serial.println(); 
  516.  
  517.   //Serial.print("Swapped: "); 
  518.  
  519.   //HEAD 
  520.   for (int i =0 ; i< 5 ; i++) 
  521.   { 
  522.     //Serial.print(data[i]);  // it contains 0 or 1 
  523.   } 
  524.  
  525. // Serial.print(" "); 
  526.  
  527.   //WINDDIR 
  528.   for (int i =8 ; i> 4 ; i--) 
  529.   { 
  530.    // Serial.print(data[i]); 
  531.   } 
  532. // Serial.print(" "); 
  533.  
  534.   //WIND SPEED 
  535.   for (int i =17 ; i> 8 ; i--) 
  536.   { 
  537.   //  Serial.print(data[i]); 
  538.   } 
  539.  
  540.   //Serial.print(" "); 
  541.  
  542.   //WIND SPEED+3 
  543.   for (int i =20 ; i> 17 ; i--) 
  544.   { 
  545.   //  Serial.print(data[i]); 
  546.   } 
  547.  
  548.   //Serial.print(" "); 
  549.  
  550.   /* 
  551.   // Checksum 
  552.    for (iCounter=0;iCounter<4;iCounter++) 
  553.    { 
  554.    checksum |= (TX23_DATA_GET_BIT << iCounter); 
  555.    delayTargetuSec += bitLength; 
  556.    TX23_DoDelay; 
  557.    } 
  558.  
  559.    //Calculate Checksum 
  560.    unsigned int checksumCalc = 0; 
  561.    checksumCalc += (winddir & 15); 
  562.    checksumCalc += ((windspeed >> 8) & 15); 
  563.    checksumCalc += ((windspeed >> 4) & 15); 
  564.    checksumCalc += (windspeed & 15); 
  565.    */ 
  566.  
  567.   // Checksum 
  568.   for (int i =24 ; i> 20 ; i--) 
  569.   { 
  570.   //  Serial.print(data[i]); 
  571.   } 
  572.  
  573.   //Serial.print(" "); 
  574.  
  575.   //WIND DIR NEGATEIVE 
  576.   for (int i =28 ; i> 24 ; i--) 
  577.   { 
  578.    // Serial.print(data[i]); 
  579.   } 
  580.  
  581.   //Serial.print(" "); 
  582.  
  583.   //WIND SPEED NEGATED 
  584.   for (int i =37 ; i> 28 ; i--){ 
  585.    // Serial.print(data[i]); 
  586.   } 
  587.  
  588. //  Serial.print(" "); 
  589.  
  590.   //WIND SPEED NEGATED +3 
  591.   for (int i =40 ; i> 37 ; i--){ 
  592.    // Serial.print(data[i]); 
  593.   } 
  594. // Serial.println(); 
  595.   //  Serial.println(); 
  596.   //  Serial.println(); 
  597.   /*// 
  598.   Serial.print("Tempo= "); 
  599.   Serial.print(hour()); 
  600.   Serial.print(":"); 
  601.   Serial.print(minute()); 
  602.   Serial.print(":"); 
  603.   Serial.print(second()); 
  604.   Serial.println(""); 
  605.  
  606.   Serial.print("Data= "); 
  607.   Serial.print(day()); 
  608.   Serial.print("/"); 
  609.   Serial.print(month()); 
  610.   Serial.print("/"); 
  611.   Serial.print(year()); 
  612.   Serial.println(""); 
  613. /*/ 
  614.   //esegui ogni secondo 
  615. // delay(1000); 
  616.  
  617.  
  618.  
  619. if (sensors.getTempCByIndex(0)>maxeeprom) 
  620.   { 
  621.     maxeeprom=sensors.getTempCByIndex(0); 
  622.    EEPROM.put (eeAddress1, maxeeprom); 
  623.     
  624.   } 
  625.   if (sensors.getTempCByIndex(0)<mineeprom) 
  626.   { 
  627.     mineeprom=sensors.getTempCByIndex(0); 
  628.   EEPROM.put (eeAddress2, mineeprom); 
  629.  
  630.   } 
  631.  
  632.  


Si lo so è lungo, ma quello completo con internet sarà il doppio infatti metto qualche pacchetto da scaricare alla fine quando farò il tutorial
 



 
Ultima modifica di As_Needed il Lun 14 Dic, 2015 18:24, modificato 2 volte in totale 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#148  nicola59 Lun 14 Dic, 2015 18:43

Ok mi hai convinto la compro.
 




____________
http://www.direttameteo.it/rete/foligno-pg/
http://www.meteo-system.com/stazioni/foligno/foligno.jpg
 
avatar
italia.png nicola59 Sesso: Uomo
Guru
Guru
 
Utente #: 84
Registrato: 24 Set 2005

Età: 66
Messaggi: 11977
1261 Punti

Preferenza Meteo: Freddofilo

Stazione Meteo: Davis Vantage Pro

Località: Foligno Nord 240 metri slm

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#149  As_Needed Lun 14 Dic, 2015 18:56

nicola59 ha scritto: [Visualizza Messaggio]
Ok mi hai convinto la compro.


 
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 

Messaggio Re: Stazione Meteo (FAI DA TE)

#150  As_Needed Lun 14 Dic, 2015 19:44

Chiedo una cosa a voi che comunque li vedete i valori di RR... ma il rain rate minimo qual è? 0.8? Perché io non posso mettere tutti i valori fino a 0.1 perché se no siccome si calcola l'intervallo tra una basculata e l'altra significa che se scende a 0.3 per azzerarsi ci vogliono più di 2 ore... invece ho messo che quando va sotto uno, ovvero tipo 0.9, automaticamente è 0
 



 
avatar
australia.png As_Needed Sesso: Uomo
Eugenio
Guru
Guru
Socio Ordinario
 
Utente #: 1789
Registrato: 15 Ott 2014

Età: 29
Messaggi: 7489
174 Punti

Preferenza Meteo: Indifferente

Stazione Meteo: Altro

Località: Melbourne, Australia

  Condividi
  • Torna in cima Vai a fondo pagina
 


Pagina 10 di 18
Vai a Precedente  1, 2, 3 ... 9, 10, 11 ... 16, 17, 18  Successivo


NascondiQuesto argomento è stato utile?
Condividi Argomento
Segnala via email Facebook Twitter Windows Live Favorites MySpace del.icio.us Digg SlashDot google.com LinkedIn StumbleUpon Blogmarks Diigo reddit.com Blinklist co.mments.com
technorati.com DIGG ITA linkagogo.com meneame.net netscape.com newsvine.com yahoo.com Fai Informazione Ok Notizie Segnalo Bookmark IT fark.com feedmelinks.com spurl.net
Inserisci un link per questo argomento
URL
BBCode
HTML
NascondiArgomenti Simili
Argomento Autore Forum Risposte Ultimo Messaggio
No Nuovi Messaggi Stazione Meteo Completa arburesu Strumenti meteo 2 Sab 11 Set, 2010 20:23 Leggi gli ultimi Messaggi
arburesu
No Nuovi Messaggi La Regione/i Completa A Livello Climatico ... Adriatic92 Meteocafè 10 Gio 16 Nov, 2017 09:50 Leggi gli ultimi Messaggi
Boba Fett
No Nuovi Messaggi Stazione Meteo Completa WiFi Con ESP8266 E... As_Needed Strumenti meteo 21 Sab 16 Gen, 2021 10:28 Leggi gli ultimi Messaggi
As_Needed