INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 2 Bewertungen - 3.5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
14.07.2014, 17:07 (Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2014 17:25 von fp.blues2013.)
Beitrag #17
Wetterstation mit LC-Display über I2C --> Feuchte, Temp, Wind, Druck, Tau, MIN/MAX
Hmmm Smile) Na dann los Smile)

also es gibt 3 Sorten von Gewitter sensoren:

einmal das Selbstbauprojekt, an dem ich gerade brüte...

http://www.umnicom.de/Elektronik/Projekt...tektor.htm

eine Ferritantenne mit Condensator als Schwingkreis, abgestimmt auf einen weitgehend Sender- und Störungsfreien Frequenzbereich von ca. 300 Khz abgestimmt, mit einem kleinen 3 Füssler Radio IC TA 7642, der eigentlich ein kompletten Empfänger beinhaltet. Am Ausgang kommt ein Analogsignal heraus, das über eine RC Kombination ( Tiefpass ) auf einen Verstärker OP ( TS912I - 1/2 ) geht mit 100 facher Verstärkung. Danach geht das Signal auf einen Komperator ( wieder der TS912I - 2/2 ), der am Ausgang bei einem Blitz ein Rechtecksignal liefert ( Schmitt-Trigger ). Dieses Signal ist aber ungefiltert, weil auch Knacken von el. Geräten als "Impuls" durchgehen. Deswegen ist es sehr wichtig, einen relativ freien Frequenzbereich zu finden, wo das "Grundrauschen" gering ist und die Blitzimpulse / Störungen weit über der Sollschwelle liegen.

Hier mal mein "Drahtigel-Testaufbau" mit Ausgang auf den I2C:
http://i39.servimg.com/u/f39/14/73/53/23/20140713.jpg

Es folgen noch einige weitere Stufen. Sinn dieses Gewitter Detektors ist aber nur, die Stärke der Blitze zu messen. Ein Impulsgeber 7555 macht aus dem Langen Impuls dann viele kleine Impulse über der Länge des Blitzes, und diese Impulse können dann gezählt und ausgewertet werden am nachfolgenden I2C Baustein ( PCF8583 ).

Weiter geht es dann auf einen Baustein der eine LED Zeile ansteuert, und die Blitzdauer in MS anzeigt. Diese ganze Schaltung ist sehr interessant, aber muss noch etwas verbessert werden, weil der Empfänger IC über seine Ub Betriebsspannung auch den Verstärkungspegel regelt.... und kleinste Schwankungen der Spannung auch das Signal beeinflussen.

Ich poste später noch den link zu dem Projekt. Das Auslesen über den I2C Bus tut gut und die Blitze werden als Zahl angezeigt. Am Besten sollte man aber das Empfängermodul auf dem Dachboden oder im freien platzieren, um den Indoor-Störungen aus dem weg zu gehen.

Die 2. Lösung ist der Gewitterwarner vom ELV Smile

http://i39.servimg.com/u/f39/14/73/53/23/20140715.jpg

http://www.elv.de/elv-gewitterwarner-gw1...usatz.html

Süß, kompakt, sehr günstig, und läuft solo gerade bei mir am Schreibtisch zum Testen. Nachbau super easy, und der AS3935 Baustein ist als SMd verbaut sowie auch der Nachfolgende Auswert Chip. DerAS3935 hat aber eine I2C Verbindung zum Auswert-Chip *freu Hüpf* Dieser Bus ist aber seeeehr kurz und man müsste mit einem Microlötkolben 2 Kabel anlöten und herausführen. Dieser Gewitterdetektor arbeitet sehr zuverlässig, und kann bis auf 40 KM Blitze detektieren... Die Störungen und sonstige ungewünschte Impulse werden über einen Algorhytmus ( wie auch immer man das schreibt ^^ ) ausgefiltert. Diese kleine Box hat auch 3 Ausgänge für Warnung, Blitz und Entwarnung und einige LEDs zur Anzeige. Innen kann man über 3 Mäuseklaviere die Parameter einstellen. Rundum klasse Smile Aber nicht selber gebaut ^^ Auf jeden fall sehr Lohnenswert Smile)

Die 3. Sorte Gewitterdetektoren ist sehr umfangreich und man kommt nur schwer an die kleinen Breadboards heran / sehr teuer... oder die Projekte sind sehr Geld und Zeitaufwendig.

Ich stelle gerne mein Wissen hierzu zur Verfügung bei Interesse Big Grin

Hier mal meine Testanordnung zum Ausprobieren mit Display, I2C, 1 Wire Bus und 9V Hamsterantrieb
http://i39.servimg.com/u/f39/14/73/53/23/20140714.jpg


zum Thema RealTime Clock... ja,, da bin ich sehr Enttäuscht.... Ich habe vom ELV die DCF77 Platine gekauft...

http://www.elv.de/real-time-clock-dcf-mo...usatz.html

die als Schild eingesetzt werden kann, oder als Breadboard mit I2C Anbindung oder den DCF77 Empfänger zum direkt anschließen an den Digital Pin und 3,3 Volt. Ein von mir gekaufter Bidirektionaler Pegelwandler für den I2C Bus von 5 V auf 3,3 Volt tut hierbei super Dienste.... Der Empfänger alleine funkt gut, der Empfänger mit dem I2C Bus macht zicken beim Auslesen, und als Shield .... naja.. war er für mich unbrauchbar...

Alles hierbei scheiterte auch an den Millionen Programmierbeispielen, weil nix funktionierte und ich noch nicht beim direkten Ansprechen auf die Register den Plan habe... noch nicht...

der I2C Scanner erkennt die Module alle wunderbar... aber die Programme sind noch unausgereift oder nicht mit I2C Implementierung.. also mal ein Gang zurück und vom Grunde auf erstmal die einzelnen Module ansprechen und auslesen ..

Soo ich mache mich mal an die Fotos und die Links

Lg Frank
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2014, 16:50 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2014 19:35 von Wampo.)
Beitrag #18
UPDATE 3.0.1
Es ist mal wieder soweit. UPDATE 3.0.1 kommt. Viel Spaß damit!
Im Updateverlauf (im Sketch) stehen weitere Infos!
Neue Features stehen auch schon wieder auf der Planungsliste, zum Bleistift: TFT Display, Gewittersensor, Blitzsensor, DHT 22 entfernen und dafür Dallas Temperatursensoren verwenden, allerdings wird dann ein etwas Hochwertigerer Feuchtesensor verwendet ( weiss aber nicht was hochwertiger als der DHT ist) und so weiter!

Aber auch weiterhin wünsche ich Anregungen, Verbesserungen oder Kritik von euch Wink
Code:
/*
WETTERSTATION MIT WINDGESCHWINDIGKEIT, TEMPERATUR, FEUCHTIGKEIT, LUFTDRUCK, TAUPUNKTBERECHNUNG & LICHTVERHÄLTNISS

Version 1.2, 24.08.13: Windsensor, Temperatursensor und Feuchtesensor. Anpassungen im Setup: StartUp Display für 5 Sec mit Versionsnummer und Bootvorgang. SketchGröße: 12134Bytes
Version 1.3, 15.09.13: Hinzugefügt wurden die Voltmessung von 0-12V und Ausgabe im Display, Entfernen der Trennlinien zwischen den Werten, Aktualisierung in 5sec Takt, StartUp auf 2sec & Optimierung. SketchGröße: 12418Bytes
Version 2.1, 17.09.13: TV OUT mit LCD über I2C getauscht, Barometer(BMP085)  SketchGröße: 11804Bytes
Version 2.2, 19.09.13: Tageslichtsensor hinzugefügt mit Prozentualer ausgabe, Analogpins besser definiert, Refresh Delay entfernt, programm wird über Windmesserroutine eh refreshed, IF ELSE gleichung entfernt nur ausgabe ohne Fehler ausgabe
Display "Aufgeräumt", Laufzeittimer hinzugefügt, VoltMessung entfernt da keine brauchbaren Messungen herrauskommen...brauchbare Formel wird gesucht, SketchGröße: 12064Bytes
Version 3.0, 24.09.13: Windmessung verfeinert jetzt wir der absolut richtige wert gemessen + Beaufort Skala, einzelne Sensoren in Unterprogramme verteilt und Messinztervall hinzugefügt,
Taupunktberechnung aus Nährungsformel(siehe WIKI) hinzugefügt, Testbedingung für Fenstersteuerung, SketchGröße: 13798Bytes
Version 3.0.1, 25.07.14: Barometer Tendenz mit Pfeilen hinzugefügt, Tendenzaktualisierung alle 60min, Self-Resetfunktion vom Arduino nach 49 Tagen, Aufräumarbeiten, neues °C Char, SketchGröße: 15.086 Bytes
designed and Compiled by Daniel Agocs
*/


// Allgemeine Variablen

unsigned long messIntervall = 10000; // alle (x / 1000) Sekunde/n eine Messung
unsigned long startIntervall = 0;
unsigned long startIntervallAlt = 0;
const int windgeschwindigkeitPin = 2; // Reed-Kontakt Windgeschwindigkeit an D2 / INT_0
unsigned long windgeschwindigkeitMessStart = 0;
unsigned long windgeschwindigkeitMessStartAlt = 0;
//int beaufort = 0;
unsigned int windgeschwindigkeitPinZaehler; // = 0; // Zaehler fuer die Pulse
unsigned int windgeschwindigkeitPinStatus = 0; // aktueller Status Eingang-Pin
unsigned int windgeschwindigkeitPinStatusAlt = 0; // vorheriger/alter Status des Eingangs-Pin
unsigned long windmessDauer = messIntervall / 2; // messen Windgeschwindigkeit waehrend 50 % Prozent des Messintervalls

//LDR Sensor
//#define analogA1 A1
//double percent;

//LCD Out
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

//Temp & Humid
#include <DHT.h>
#define DHTTYPE DHT22
#define DHT1PIN 7        
#define DHT2PIN 6        
DHT DHT1(DHT1PIN, DHTTYPE);
DHT DHT2(DHT2PIN, DHTTYPE);
float a = 17.271; // für Taupunkt Formel
float b = 237.7; // für Taupunkt Formel

//Druck und Temp
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp = Adafruit_BMP085(10085);

float temperature;
float temp;
float h,h1;
float t,t1;
float druck;
float windgeschwindigkeit, maxwind, minwind;
float tautemp;
float tau;
int c = 0;


byte up[8] = {
  B11111,
  B00011,
  B00101,
  B01001,
  B01001,
  B01000,
  B10000,
};

byte down[8] = {
  B00001,
  B00010,
  B10010,
  B10010,
  B10100,
  B11000,
  B11111,
};

byte konst[8] = {
  B00100,
  B01110,
  B10101,
  B00100,
  B10101,
  B01110,
  B00100,
};

byte gc[8] = {
  B11000,
  B11000,
  B00111,
  B01000,
  B01000,
  B01000,
  B00111,
};

void setup()

{
  //pinMode(analogA1, INPUT);
  
  pinMode(windgeschwindigkeitPin, INPUT);
  digitalWrite(windgeschwindigkeitPin, HIGH); // aktiviere internen Pullup
  DHT1.begin();
  DHT2.begin();
  bmp.begin();
  lcd.begin (20,4);
  lcd.createChar(0, up);
  lcd.createChar(1, down);
  lcd.createChar(2, konst);
  lcd.createChar(3, gc);
  
  screentest();
  
}
  /*
  // initialize Timer1
    cli();          // disable global interrupts
    TCCR1A = 0;     // set entire TCCR1A register to 0
    TCCR1B = 0;     // same for TCCR1B
    // set compare match register to desired timer count:
    OCR1A = 15624; //15624
    // turn on CTC mode, set CS10 and CS12 bits for 1024 prescaler
    TCCR1B |= (1 << WGM12)|(1 << CS10)|(1 << CS12);
    // enable timer compare interrupt:
    TIMSK1 |= (1 << OCIE1A);
    // enable global interrupts:
    sei();
}
    
ISR(TIMER1_COMPA_vect)
{
  //digitalWrite(led, !digitalRead(led));
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    // sets the value (range from 0 to 255):
    analogWrite(led, fadeValue);        
    // wait for 30 milliseconds to see the dimming effect    
    delay(30);                            
  }

  // fade out from max to min in increments of 5 points:
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
    // sets the value (range from 0 to 255):
    analogWrite(led, fadeValue);        
    // wait for 30 milliseconds to see the dimming effect    
    delay(30);                            
  }
}
*/

void(* resetFunc) (void) = 0;//declare reset function at address 0

void loop()
{


  //runtime =(millis()/1000)/60;
      startIntervall = millis(); // aktualisiere Startzeit
  if (startIntervall - startIntervallAlt >= messIntervall) // wenn Messintervall überschritten ...
  {
      Windgeschwindigkeit(); // Windgeschwindigkeit holen
      get_sensor();
      Tendenzerkennung();
      ausgabe(); // Ausgabe auf LCD
     //abfrage(); // Abfrage der Sensoren und Bedingung für ein ereignis z.b. LED An
    if (millis()>86400000) //nach 15 Tagen Arduino AutoReset um ein Overflow zu verhindern, Overflow nach 4294800000 = 49 Tagen und 17 Std
       {resetFunc();}
  }
}
  
void get_sensor(){
      //ldr(); // Helligkeit holen
      dht0(); // INNEN Feuchtigkeit und Temp holen
      dht1(); // AUSSEN Feuchtigkeit und Temp holen
      bmp085(); // Druck und Temp holen
      temp = (t + temperature) / 2; //Durchschnitt aus beiden Temperatursensoren (DHT1 & BMP)
      taupunkt(); // Taupunktberechnung holen
      minmax();
}
  
          
void Windgeschwindigkeit()
{  
   windgeschwindigkeitMessStart = startIntervall; // aktualiere Startzeit fuer Messung
   windgeschwindigkeitMessStartAlt = windgeschwindigkeitMessStart; // merken uns Startzeit
   windgeschwindigkeitPinZaehler = 0; // setze Pulszaehler auf 0
   windgeschwindigkeitPinStatusAlt = HIGH; // setze Pulsstatus auf HIGH
   // solange die o.a. Zeit noch nicht durch ist ...
   while ((windgeschwindigkeitMessStart - windgeschwindigkeitMessStartAlt) <= windmessDauer)
   {
      windgeschwindigkeitPinStatus = digitalRead(windgeschwindigkeitPin);
      if (windgeschwindigkeitPinStatus != windgeschwindigkeitPinStatusAlt) // wenn sich Pin-Status geaendert hat ...
      {                
         if (windgeschwindigkeitPinStatus == LOW) // und wenn  alter Status = HIGH
         {
            windgeschwindigkeitPinZaehler++; // erhöhe Zaehler um 1
         }
      }
      windgeschwindigkeitPinStatusAlt = windgeschwindigkeitPinStatus; // merken uns Pin-Status fuer naechsten Durchlauf
      windgeschwindigkeitMessStart = millis(); // aktualisieren Zeit
   }
   windgeschwindigkeit = ((windgeschwindigkeitPinZaehler * 2.4) / (windmessDauer / 1000)); // teilen durch Messzeit in Sekunden
    // ermitteln Windstaerke nach Beaufort, alternativ kann auch Formel benutzt werden
   /*if (windgeschwindigkeit >= 0 && windgeschwindigkeit <= 2) { beaufort = 0; }
   else if (windgeschwindigkeit > 2 && windgeschwindigkeit <= 5) { beaufort = 1; }
   else if (windgeschwindigkeit > 5 && windgeschwindigkeit <= 11) { beaufort = 2; }
   else if (windgeschwindigkeit > 11 && windgeschwindigkeit <= 19) { beaufort = 3; }
   else if (windgeschwindigkeit > 19 && windgeschwindigkeit <= 28) { beaufort = 4; }
   else if (windgeschwindigkeit > 28 && windgeschwindigkeit <= 38) { beaufort = 5; }
   else if (windgeschwindigkeit > 38 && windgeschwindigkeit <= 49) { beaufort = 6; }
   else if (windgeschwindigkeit > 49 && windgeschwindigkeit <= 61) { beaufort = 7; }
   else if (windgeschwindigkeit > 61 && windgeschwindigkeit <= 74) { beaufort = 8; }
   else if (windgeschwindigkeit > 74 && windgeschwindigkeit <= 88) { beaufort = 9; }
   else if (windgeschwindigkeit > 89 && windgeschwindigkeit <= 102) { beaufort = 10; }
   else if (windgeschwindigkeit > 102 && windgeschwindigkeit <= 117) { beaufort = 11; }
   else {beaufort = 12;}
   {;} // verlassen Subroutine*/
}
  

void taupunkt()
  {
  tautemp = (a * t1) / (b + temp) + log(h1 / 100);
  tau = (b * tautemp) / (a - tautemp);
  }
  

void bmp085()
  {
  sensors_event_t event;
  bmp.getEvent(&event);  // BMP085 Luftruck ziehen
  druck = event.pressure  + ( 525 / 8.5 ); // 525 = Aktuelle höhe über NN, diese ändern und anpassen bei anderen Orten
  bmp.getTemperature(&temperature);//BMP085 Temperatur ziehen
  }
  
  
void dht0()
  {
  h = DHT1.readHumidity();  //DHT22 Feuchtigkeit ziehen
  t = DHT1.readTemperature();  //DHT22 Temperatur ziehen
  }
  
  
void dht1()
  {
  h1 = DHT2.readHumidity();  //DHT22 Feuchtigkeit ziehen
  t1 = DHT2.readTemperature();  //DHT22 Temperatur ziehen
  }
  
  
/*void ldr()
  {
  //Prozentrechnung LDR
  int valueA1 = analogRead(analogA1);
  percent = (valueA1/1023.0) * 100.0;
  }*/
  
  
void minmax()
{
if (windgeschwindigkeit > maxwind ) maxwind = windgeschwindigkeit;
/*if (windgeschwindigkeit < minwind ) minwind = windgeschwindigkeit;
if (temp > maxtemp) maxtemp = temp;
if (temp < mintemp) mintemp = temp;
if (h > maxh) maxh = h;
if (h < minh) minh = h;
if (druck > maxdruck) maxdruck = druck;
if (druck < mindruck) mindruck = druck;
if (tau > maxtau) maxtau = tau;
if (tau < mintau) mintau = tau; */
}


void screentest()
  {
    //Screentest
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(50);
    lcd.noBacklight();
    delay(50);
  }
  lcd.backlight();
  lcd.setCursor ( 0, 0 );
  lcd.print("Weather Station V3.4");
  lcd.setCursor ( 0, 1 );
  lcd.print("Version 3.0.1   ");
  lcd.setCursor ( 0, 2 );
  lcd.print("Prog by Daniel Agocs");
  lcd.setCursor ( 0, 3 );
  lcd.print("STARTE MESSUNG");
  }
  
  
void ausgabe()
  {
          if (millis() < messIntervall *2)
  {
   lcd.clear();
  }  
  
    lcd.setCursor ( 0, 0 );
    lcd.print("I: ");
    lcd.print(temp,1);
    lcd.write((byte)3);
    lcd.print(" -~ ");
    lcd.print(h,1);
    lcd.print("% ");
    
    lcd.setCursor ( 0, 1 );
    lcd.print("O: ");
    lcd.print(t1,1);
    lcd.write((byte)3);
    lcd.print(" -~ ");
    lcd.print(h1,1);
    lcd.print("% ");
    
    lcd.setCursor ( 0, 2 );
    lcd.print("W: ");
    lcd.print(windgeschwindigkeit,0);
    lcd.print("km/h ");
    
    lcd.setCursor( 11, 2 );
    lcd.print("Max: ");  
    lcd.print(maxwind,0);
    
    
    lcd.setCursor ( 11, 3);
    lcd.print(druck,1);
    lcd.print("hPa");
    
    lcd.setCursor (0, 3 );
    lcd.print("T: ");
    lcd.print(tau,1);
    lcd.write((byte)3);
    lcd.print(" ");
   }

  /*lcd.setCursor(13 , 1 );
    lcd.print("L: ");
    lcd.print(percent,0);
    lcd.print("%");
    
    lcd.setCursor ( 13, 1 );
    lcd.print(runtime);
    lcd.print("min");
    }
    
void maxausgabe()
{
    lcd.clear();
    
    lcd.setCursor ( 0, 0 );
    lcd.print("TempMAX: ");
    lcd.print(maxtemp,1);
    lcd.write(223);
    lcd.print("C");
    
    lcd.setCursor ( 0, 1 );
    lcd.print("HumidMAX: ");
    lcd.print(maxh,1);
    lcd.print("%");
    
    lcd.setCursor ( 0, 3 );
    lcd.print("WindMAX: ");  
    lcd.print(maxwind,0);
    lcd.print("km/h");
  
}*/

void Tendenzerkennung(){
  static float _D_Avg, _D_Avg_alt;  
  static unsigned long timer1=0;
  static int i = 0;
  #define Anz_Vergleichswerte 3   // aus wie vielen Werten soll jeweils der Mittelwert gebildet werden
  #define Band 0.20                          // Toleranzband: innerhalb wird die Änderung als gleich bewertet.
  
   if (millis()> timer1 )    // Aufruf erst wieder nach 60000ms
   {  _D_Avg = _D_Avg + druck;    // Summe über "Anz_Vergleichswerte" Werte für Mittelwertbildung
      i++;
      if (i >= Anz_Vergleichswerte){        
         timer1  = millis()+3600000;               // timer neu setzen für Wiederaufruf in 1min/60sec/60000msec....30min/1800sec/180000msec....60min/3600sec/3600000msec
        _D_Avg = _D_Avg / Anz_Vergleichswerte; // Mittelwertbildung
        i = 0;          
        if (_D_Avg > _D_Avg_alt + Band){     // Vergleich des Mittelwertes mit dem von vor 60sec.
          lcd.setCursor(10,3);
          lcd.write((byte)0); //steigend
          
        } else if (_D_Avg < _D_Avg_alt - Band){
          lcd.setCursor(10,3);
          lcd.write((byte)1); //fallend
        } else {
          lcd.setCursor(10,3);
          lcd.write((byte)2); //stetig
        }
        _D_Avg_alt = _D_Avg;                 // Speichern des akuelle Wertes
        _D_Avg = 0;                            // Rücksetzen
      }
   }      
}



/*void abfrage()
  {
  if(temp >= 21.5 & windgeschwindigkeit < 30 & percent > 30  & h <= 90){
  
    digitalWrite(led, HIGH);
  }  
   else
   {
    digitalWrite(led, LOW);
  }
  }*/

Greez
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2014, 10:33
Beitrag #19
RE: Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
Hallo,
"weiss aber nicht was hochwertiger als der DHT ist"

"HYT939" über I2C. Sehr "genau", sehr stabil. Ich habe zwei (innen/aussen) von den Dinger am
laufen. Kein Ärger, keine Probleme.
http://www.hygrochip.com/index.php?id=3845
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.08.2014, 18:48
Beitrag #20
RE: Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
Ohh yeah danke...preislich ja auch im Rahmen des machbaren.
Wie lange laufen die Teile schon bei dir auf Dauerbetrieb?

Mit meinem DHT22 habe ich bereits schon 4 von 6 verheizt weil nach ner gewissen zeit die dinger einfach sterben zumindest die Feuchtesensoren sterben. Ich kann von meiner seite her keinem die DHT22 empfehlen, wenn man mal 300Stück für 5€ bekommt dann ok.

Und I²C is ja sowieso eins meiner Liebsten dinger.

Danke Skoby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.12.2014, 04:20
Beitrag #21
RE: Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
(05.08.2014 18:48)Wampo schrieb:  Ohh yeah danke...preislich ja auch im Rahmen des machbaren.
Wie lange laufen die Teile schon bei dir auf Dauerbetrieb?

Mit meinem DHT22 habe ich bereits schon 4 von 6 verheizt weil nach ner gewissen zeit die dinger einfach sterben zumindest die Feuchtesensoren sterben. Ich kann von meiner seite her keinem die DHT22 empfehlen, wenn man mal 300Stück für 5€ bekommt dann ok.

Und I²C is ja sowieso eins meiner Liebsten dinger.

Danke Skoby

Hello,

also bei mir laufen die DHT22 ohne zu "sterben", allerdings mit 3,3V und nich volle 5V, hmm. vielleicht hat es ja damit zu tun? die 99,9 werte gingen mir auch öfter auf den Fühler, bis ich neben die "Elektronik" mal echte analoge Hygrometer gestellt habe und siehe da Zeigerausschlag auch bei 100% und mehr... ist sehr oft der Fall speziell abends wenn die Temperatur fällt(ist dann auch logisch).
Wie groß sind die Abfrageabstände? alles über 15 Sek kannst du den ersten gelieferten Wert vergessen (weil es der letzte zurückgegebene ist) und erst den zweiten oder gar dritten verwenden. "Warmlaufzeit" ?? keine Ahnung, die Teile sind sehr träge...

vieln Gruß motsch
ps: schönes Projekt!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 18:50
Beitrag #22
RE: Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
Hy,

die Abstände sind je 60 sek. und die DHT22 laufen bei mir auf 3.3V. Deswegen weiß ich mir da kein Rat.
Hab die teile immer Wassergeschützt verbaut gehabt und hab auch mal mim Fön son teil getrocknet allerdings fiel die Feuchtigkeit nicht runter sondern blieb bei 99,9%.

Mein Meinung: Wer billig Kauft, Kauft zweimal. In dem fall dreimal xD

Greez Wampo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 20:00
Beitrag #23
RE: Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz
Hallo,
der HYT939 läuft seid gut einem Jahr im Aussenbetrieb.
Dieser Sensor ist geradezu für eine PG 9 Verschraubung gemacht. Gegen jeden mechanischen Angriff
geschützt bei absoluter Wasserdichtigkeit.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2016, 18:14 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2016 18:15 von Wampo.)
Beitrag #24
Wink Änderung an meiner Wetterstation
Hallo zusammen,

ich kram jetzt mal aus gegebenen Anlass den Thread wieder raus.

An meiner Wetterstation ändert sich jetzt einiges:

Es kommen ein paar neue Sensoren hinzu unter anderem ein WLAN Modul was als Webserver fungiert. Alle Sensordaten werden auch nicht mehr per Display ausgegeben sondern es werden alles Sensordaten in ein kompaktes JSON-Format gepackt so das mein Raspberry diese jederzeit per WLAN am Webserver WETTERSTATION abfragen kann.

Mein Hauptproblem besteht momentan eigtl darin das ich den "Analogen" Windsensor (REED Kontaktschalter) nicht die ganze zeit über den Arduino Interrupt laufen lassen bzw nicht die ganze auswertung will.

Aus diesem grund möchte ich den Windsensor über einen extra Attiny laufen lassen. Dieser soll die "Klicks" auswerten in km/h, Beafout oder m/s wandeln Werte speichern.
Abfragen würde ich dann gerne den Windsensor oder das ganze Modul per I2C.
Is das dann genauso zu handeln wie mit den I2C Modulen über die Library?!
Kann mir da jemand weiterhelfen?!

Greez Wampo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  7 Zoll Display und NRF24 Propleme schlappy82 15 420 28.11.2016 17:10
Letzter Beitrag: hotsystems
  Grafiken auf OLED-Display darstellen scritch 8 520 17.11.2016 13:33
Letzter Beitrag: scritch
  Graphisches Barometer mit e-Paper Display Bender 9 2.417 06.11.2016 06:10
Letzter Beitrag: Bender
  Wetterstation sascha35 19 4.686 18.12.2015 16:51
Letzter Beitrag: sascha35
Thumbs Up Facebook LCD (Like Crystal Display) mit Ethernet Shield Wampo 0 987 02.12.2015 23:05
Letzter Beitrag: Wampo
  E-Paper Display Xtremefly 7 2.993 22.07.2015 11:48
Letzter Beitrag: Xtremefly
  Substrat-Feuchtigkeitsmesser + Temp. und RLF Nifu 19 4.904 19.07.2015 11:39
Letzter Beitrag: MeisterQ
  Display 5" Xwill 26 10.507 04.06.2015 08:39
Letzter Beitrag: DaniDD
Sad Temperatur u. feuchtigkeit Webserver+speichern der Temp. u. Feuchti. auf sd Porblem!! TbO92 0 1.898 27.10.2014 10:14
Letzter Beitrag: TbO92
  Wechsel vom 16x2 auf 5110 Display? Mr.Q 8 4.527 25.10.2014 19:05
Letzter Beitrag: Mr.Q

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste