Wetterstation für den Raspberry Pi

Funktechnik, von der Antenne bis zur ZF

Moderator: OE7AAI

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 22.07.2015, 02:16

In Netz liest man sehr interessante Beiträge über den Raspi als Wetterstation oder Klimalogger.

Mein Gedanke: Sowas könnte man auch für APRS einsetzen. Semiprofessionelle Wetterstationen mit PC-Logger kosten relativ viel Geld. Man braucht aber nicht unbedingt das komplette Programm mit Wind- und Regensensor. Sensoren für Temperatur, Luftfeuchte oder Lufdruck für den Raspberry (oder Arduino) sind jedoch für ein paar Euro zu haben.

Habe mir daher Sensoren für Temp und Feuchte, sowie einen 433MHz RX zum experimentieren bestellt.

Der L/F Sensor macht eigentlich was er soll (hab das zum Testen mal am Arduino aufgebaut). Am Raspi lassen sich die Werte mit ein paar Zeilen Phyton problemlos in eine wx.txt schreiben.

Mit dem 433Mhz-RX habe ich meine Hofer-Wetterstation angezapft. Naja, ich kann zwar den Datenstream auslesen, aber der muss erst noch decodiert werden.

Arbeitet hier noch jemand an einem ähnlichen Projekt, oder hat evtl. wer Lust mit mir gemeinsam zu experimentieren?
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7REH
Site Admin
Beiträge: 222
Registriert: 28.12.2010, 13:19
Wohnort: Schlitters

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7REH » 22.07.2015, 06:06

gibt es im Prinzip schon: http://airpi.es/

und ich hab sowas mit nem Arduino gemacht (Bilder kann ich später zeigen)
73 de Oliver / OE7REH

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: AW: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 22.07.2015, 14:04

Servus Oliver!

Deine Bilder würden mich interessieren.

Ein eigenes Schield wie den Airpi brauche ich eigentlich nicht. Die 2 Sensoren bring ich leicht auf einer Lochrasterplatine unter. Das Funkmodul werde ich zum übertragen der Daten auf den Raspi verwenden. Bin gespannt, wie hoch die Reichweite ist ....

Gesendet von meinem GT-I9001 mit Tapatalk 2
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 23.07.2015, 00:42

Habe heute wieder ein wenig experimentiert und die ersten Erfolge stellen sich ein.

Guckst du: http://aprs.fi/info/OE7MBT-10

Kurzerhand habe ich den Sensor auf einen Arduino gepackt und programmiert. Das Umrechnen von Celsius in Fahrenheit war zwar ein bisserl tricky, aber ich hab es dann schlussendlich gepackt. Die Daten werden vom Arduino schon APRS-freundlich aufbereitet. Am Raspi (über USB) eingesteckt, konnte ich über PuTTY die Daten schon auslesen. Ein kleines Phyton-Skript holt mir die seriellen Daten und schreibt die mir in eine Datei. Bin leider kein Programmierer ... mein Skript kann die Daten erst auslesen, nachdem ich mit Putty eine Verbindung aufgebaut habe. Wie sage ich dem Skript welche Einstellungen (Baudrate usw.) es verwenden soll?
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7REH
Site Admin
Beiträge: 222
Registriert: 28.12.2010, 13:19
Wohnort: Schlitters

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7REH » 23.07.2015, 06:05

Moin,

wie schickst du die Daten vom Arduino aus? Per USB?

So schaut meine Sensor-Matrix aus:
20150320_185054.jpg
l.u.: Helligkeitssensor; l.o.: Druck-/Temp-Sensor, 3-Achsen-Magnetfeldsensor; r.u.: Ultraschall-Abstandssensor; r.o.: Flammensensor, Geräuschsensor, Luftfeuchtigkeits-/Temp-Sensor
Seit dem Foto ist noch ein Gassensor hinzugekommen. Es werden auch noch der eine oder andere Sensor und GPS hinzukommen.
73 de Oliver / OE7REH

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 23.07.2015, 11:57

Wow, da hast du ja alles drauf, was es so an Sensoren gibt. Hast du diese Schaltung irgendwo in Verwendung, oder ist die zum Experimentieren?

Meine Daten schicke ich derzeit über USB an den Raspi. Ich bin mir aber noch nicht sicher, ob ich in dieser Richtung weitermachen möchte. Der Arduino verbraucht mir zuviel Strom für den Batteriebetrieb. Außerdem ist ein ATMEGA wohl zum Auslesen von zwei Sensoren ein wenig überdimensioniert. Ok für erste Tests geht das in Ordnung.
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7REH
Site Admin
Beiträge: 222
Registriert: 28.12.2010, 13:19
Wohnort: Schlitters

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7REH » 23.07.2015, 13:48

Naja, alle Sensoren noch nicht :-)

Derzeit läuft das Teil am USB vom PC. Eher experimentell. Später, wenn ich wirklich alle interessanten Sensoren am Laufen hab, soll das in ein Gehäuse eingebaut werden. Die Daten werden auf dem kleinen Display angezeigt. Mit den 2 Tasten am Display kann ich zwischen derzeit 3 Seiten umschalten.

wenn dir der ATMEGA zu groß für 2 Sensoren ist, empfehle ich den hier (könnte dir aber zu teuer sein ;-) ):
http://www.dx.com/p/usb-interface-digis ... bDUJPPtlHw

den will ich auch noch holen. Ich brauche davon mind. 1 für die Autorennbahn der Jungs. Die haben noch keinen Rundenzähler :-)
73 de Oliver / OE7REH

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 23.07.2015, 23:57

So, heute habe ich noch den BMP180 für die Luftdruckmessung eingebunden. Das ganze hängt aber immer noch am Kabel.
OE7REH hat geschrieben: wenn dir der ATMEGA zu groß für 2 Sensoren ist, empfehle ich den hier (könnte dir aber zu teuer sein ;-) ):
http://www.dx.com/p/usb-interface-digis ... bDUJPPtlHw
den will ich auch noch holen. Ich brauche davon mind. 1 für die Autorennbahn der Jungs. Die haben noch keinen Rundenzähler :-)
Haha, tolle Idee! Sogar Schields gibt es dazu....
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 25.07.2015, 01:10

So, nun gibt es mal ein Bild dazu. Die Schaltung ist sehr einfach zu realisieren wie man sieht. Links ist der Luftdrucksensor bmp180, rechts ein DHT11 für Temperatur und Luftfeuchte.
Dateianhänge
arduino_sensoren.jpg
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
wettersat
Beiträge: 2
Registriert: 26.07.2015, 11:16

Re: Wetterstation für den Raspberry Pi

Beitrag von wettersat » 26.07.2015, 11:22

Marco,
so sehen meine Tests aus. Aus Zeitmangel habe ich das RFM Funkmodul noch nicht integriert.
Dateianhänge
weatherstation_arduino.jpg
73 de Gerald, OE2IGL
http://members.inode.at/576265/

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 27.07.2015, 00:04

Hallo Gerald!

Willkommen im Forum. Dein Rufzeichen habe ich glaub ich im Skywarn-Forum schon mal gesehen.

So eine Anzeige ist eine feine Sache, muss ich mir auch noch einbauen. Die Datenübertragung hätte ich mit den ganz günstigen 433-MHz-Modulen geplant, allerdings scheint mit deine Lösung mit dem RFM-Modul weitaus die bessere zu sein. Gibt es für deine Schaltung Beispielsketches?

Das Bauteil in der Mitte ist aber für mich devinitiv nicht einzuordnen, was hast du hier verbaut?
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
wettersat
Beiträge: 2
Registriert: 26.07.2015, 11:16

Re: Wetterstation für den Raspberry Pi

Beitrag von wettersat » 27.07.2015, 08:52

Das ist ja das Tolle, es gibt für jeden Sensor der da verbaut ist im Internet die nötigen Bibliotheken. Das eigentliche Programm ist dann nur noch ein "Hintereinanderreihen" der Sensorfunktionen.
Teil in der Mitte ist ein RTC (real time clock) für die Uhrzeitanzeige.
73 de Gerald, OE2IGL
http://members.inode.at/576265/

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 02.08.2015, 00:16

Hab meine 2 Sensoren nun am Laufen, aber mit der Funkübertragung habberts leider noch. Gibt es hier Programmierprofis, die mir eventuell weiterhelfen können?
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Benutzeravatar
OE7REH
Site Admin
Beiträge: 222
Registriert: 28.12.2010, 13:19
Wohnort: Schlitters

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7REH » 02.08.2015, 13:21

Was willste wissen?

Gesendet von meinem SM-G900F mit Tapatalk
73 de Oliver / OE7REH

Benutzeravatar
OE7MBT
ExtremSchreiberling
Beiträge: 147
Registriert: 12.09.2005, 21:48
Wohnort: Schwoich JN67BN
Kontaktdaten:

Re: Wetterstation für den Raspberry Pi

Beitrag von OE7MBT » 03.08.2015, 02:53

Hab mal ein bisserl rumprobiert. Problem war die Konvertierung der Werte ... keine Ahnung ob man das so machen kann ;)

Code: Alles auswählen

/* Schaltung:
BMP180: + (VDD) 3.3V, A4 SDA, A5 SCL
H11: Daten Pin2
433MHz Tx; TX  = Daten Pin12
*/

#include <SFE_BMP180.h>
#include <Wire.h>
#include <DHT.h>
#include <VirtualWire.h>

#define DHT11Pin 2

DHT dht(DHT11Pin, DHT11);

SFE_BMP180 pressure;

#define ALTITUDE 585.0 // Höhe in Meter

void setup()
{
  vw_setup(500);  // 500 bits/s
  Serial.begin(9600);

  if (pressure.begin())
    Serial.print("");
  else
  {
    Serial.println("BMP180 init fail\n\n"); // Meldung wenn der Sensor nicht ausgelesen werden konnte
    while(1); // Pause forever
  }
}

void loop()
{

    // Temperatur und Luftfeuchte vom DHT11 auslesen

    float humidity = dht.readHumidity();
    float temperature_dht = dht.readTemperature(true);

  
  // BMP180 auslesen
  
  char status;
  double T,P,p0,a;

  status = pressure.startTemperature();
  if (status != 0)
  {
    delay(status);

    status = pressure.getTemperature(T);
    if (status != 0)
    {
    
      status = pressure.startPressure(3);
      if (status != 0)
      {
        delay(status);

    
        status = pressure.getPressure(P,T);
        if (status != 0)
        {
    
          p0 = pressure.sealevel(P,ALTITUDE); // Luftdruck auf Meereshöhe umrechnen
          
      
      // Ausgabe der APRS-Rohdaten Beispiel: _09301904c...s...g...t089h40b10087u....
    
      Serial.print("_09301904c...s...g...t0");
      Serial.print(temperature_dht,0);
      Serial.print("h");
      Serial.print(humidity,0);
      Serial.print("b");
      Serial.print(p0,0);
      Serial.println("u...");
          
// Transmit Temp, Luftfeuchte und Luftdruck

        String stringToTransmit;

        int temp_transmit = temperature_dht;
        int humidity_transmit = humidity;
        int pressure_transmit = p0 * 10;

// String bauen

        stringToTransmit += "T";
        stringToTransmit += temp_transmit;

        stringToTransmit += "H";
        stringToTransmit += humidity_transmit;
        
        stringToTransmit += "P";
        stringToTransmit += pressure_transmit;

        Serial.println(stringToTransmit); // zum Überprüfen

        char strBufferToTransmit[VW_MAX_MESSAGE_LEN];
        stringToTransmit.toCharArray(strBufferToTransmit, VW_MAX_MESSAGE_LEN);
   
    vw_send((uint8_t *)strBufferToTransmit, strlen(strBufferToTransmit));
    vw_wait_tx();
   
        
        }
        else Serial.println("error retrieving pressure measurement\n");
      }
      else Serial.println("error starting pressure measurement\n");
    }
    else Serial.println("error retrieving temperature measurement\n");
  }
  else Serial.println("error starting temperature measurement\n");

  delay(10000);  // Pause for 10s
}
73 de Marco / OE7MBT
http://www.qth.at/oe7mbt

Antworten