Klimamessung - Vorwissenschaftliche Arbeit

  • UPDATE 2015:
    Das Projekt ist inzwischen fertig.
    Informationen gibt es auf Github und der Webseite des Projekts.
    Und wer viel Zeit hat, kann meine Vorwissenschaftliche Arbeit lesen, in der alle Details erklärt werden.

    Ich würde mich auch noch über Feedback freuen, damit ich weiß, wie ich mein nächstes Projekt (welches sicher kommen wird) besser machen kann.

    --------------------------------------

    Vorneweg: ich muss etwas ausholen, bevor ich zu meinem Projekt komme.

    Ich gehe in Österreich in die 7. Klasse eines Gymnasiums (Jahr vor der Matura/Abitur). Seit der letzten Schulreform muss jeder Schüler in Ö eine Vorwissenschaftliche Arbeit schreiben. Dies ist ein 20-seitiger Text, der weitestgehend den wissenschaftlichen Anforderungen (Zitieren, Quellen, Aufbau) entsprechen muss. Da ich nicht, wie die meisten meiner Klassenkollegen, eine reine Literaturarbeit schreiben möchte, ich mich für Informatik interessiere und seit einem halben Jahr mit meinem Pi herumprobiere, möchte ich meine Arbeit über Klimamessung mit der RPi schreiben.

    Nun zum Projekt: Ich habe einige DS18B20 Temperatursensoren, einen Luftdrucksensor (BMP085) und einen Luftfeuchtigkeitssensor (DHT-22) an den Raspberry Pi angeschlossen. Die Daten werden von einem (von mir geschriebenen) Bash-Skript regelmäßig ausgelesen und in eine csv-Datei geschrieben.
    Diese csv-Datei wird einerseits von Gnuplot und andererseits von Dygraphs visualisiert. Damit man die aktuellen Daten auch ohne Computer sehen kann, habe ich noch ein Display an den Pi angeschlossen.

    Den fertigen Pi möchte ich dann in der Schule aufhängen und über längeren Zeit sowohl Innen- als auch Außenwerte messen und am Ende statistisch auswerten.

    Weitere Informationen:

    • Github: hier sammle ich die aktuellsten Versionen meiner Skripte
    • Github-Pages: alle Beispiele und bisherigen Test-Messungen (Quellcode)
    • Flickr: hier sammle ich alle Bilder, die ich im Verlauf des Projekts gemacht habe und noch machen werde
    • meine Webseite: hier stehen noch viele weitere Informationen und Ideen. Mir fehlt jedoch die Zeit diese zu aktualisieren und daher sind einige Informationen dort veraltet.


    Was haltet ihr von dem was ich bisher gemacht habe? Was könnte ich besser machen?

    PS: Ich weiß, dass eigentlich nichts, was ich mache neu oder innovativ ist. Aber hierum geht es mir eigentlich garnicht.

    Einmal editiert, zuletzt von Findus23 (6. Juni 2015 um 12:29)

  • Gefaellt mir richtig gut. Hast du schon eine laengere Zeit Messungen laufen lassen? Der ds18b20 neigt bei mir dazu alle paar tage mal eine messung zu verwerfen (crc). Daher fange ich das nun mit einer crc ueberpruefung ab. Wie schlaegt sich der dht22 bei dir? Ich lese ihn via adafruit aus was bei mir nur bei haeufiger wiederholung gut funktioniert.
    Gruesse
    Drops

  • Ist bei mir ganz genauso.
    Ich habe einmal 2 Wochen am Stück gemessen. Der ds18b20 hat alle paar Messungen einen Wert von -1.250 und alle ewigen Zeiten (2-3 mal pro Tag bei 10 Sekunden Pause zwischen den Messungen) einen Außreißer von einigen hundert Grad Minus.
    Anders ist der DHT-22. Er gibt sehr oft ( jedes dritte Mal) keinen Wert zurück. Ich verwende auch das Programm von Adafruit. Auf deren Seite steht aber auch, dass das Progrmm nur zum Testen und als Beispiel gedacht ist. Ich habe auch andere Programme ausprobiert bin aber an allen gescheitert.
    Daher habe ich einfach in mein Skript die Messung in eine while-Schleife gegeben (also solange wiederholt gemessen wird, bis es funktioniert). Dadurch misst er zwar manchmal vier- oder fünfmal, was aber nicht stört, weil es nicht lange dauert.

  • [quote=[attach=2360,'none','2'][/attach]drops pid='60174' dateline='1390943767']Den ds18b20 fange ich ebenfalls über eine while schleife ab. den DHT22 hab ich heute mal von adafruit auf wiringpi umgestellt. scheint bisher besser zu funktionieren.[/quote]

    Wie kann ich den DHT22 mit wiringPi nutzen? Ich nutze es eigentlich nur zum Ein- und Ausschalten von LEDs.

    Das Projekt ist in der Zwischenzeit weitergegangen. Die Messung wird beim Start des RPi mitgestartet. Und ich habe trotz meiner eher geringen Python-Kenntnisse (ich fange gerade erst an es zu lernen) ein kleines Programm geschrieben, welches die Ausgabedatei einliest und zwischen zwei ausgewählten Zeitpunkten auswertet. (Mittelwert, Minimum, Maximum, Standardabweichung)

    Zusätzlich sind nun alle Kontakte auf Platinen mit Steckverbindungen und ich habe ein Gehäuse dafür.

    Einmal editiert, zuletzt von Findus23 (15. Februar 2014 um 10:15)


  • Deine Pythonschreibstil gefällt mir ;). Sehr gut les u. nachvollziehbar.

    Danke für das Lob! Es kann daran liegen, dass ich aufgrund einer fehlenden Sicherung einen Teil verloren habe und nochmal schrieben musste. Die verschachtelten Listen sind mit der Zeit gekommen um zu vermeiden, dass ich bei jeder Änderung an der Anzahl der Sensoren das halbe Programm umschreiben muss.


    Das einzige Manko ist, dass du python 3 nutzt :fies: Scherz beiseite, weiter so.


    Dann wird es dich sicher freuen, dass ich es nicht zusammenbringe, dass die neuerste Version unter Python3 läuft. :D
    Ich bekomme Fehler wegen raw_input und diversesten anderen Sachen.
    Ehrlich gesagt habe ich bis vor 3 Wochen noch nicht einmal gewusst, dass es 2 Python-Versionen gibt. Als Anfänger und Schühler habe ich mir gedacht, dass ich die "zukunftsfähigere" Version nehme. Der Unterschied liegt für mich bis jetzt vor allem in den "print()".
    Was spricht aber wirklich gegen Python3?

    Einmal editiert, zuletzt von Findus23 (15. Februar 2014 um 15:10)

    • Offizieller Beitrag

    raw_input() heisst jetzt input(). Hab ich auch erst lernen müssen. ;).
    Es spricht nichts gegen Python 3, als es damals den split gab, blieben viele beim 2er Zweig weil viele Bibliotheken noch nicht angepasst waren.

    es gibt viele Änderungen die Detail liegen, die bekannteste ist, das print jetzt eine richtige Funktion ist oder True/False echte Schüsselwörter sind. Ich persönlich finde die .format Schreibweise einfach nur gruselig ;).

  • Es ist wieder etwas weitergegangen mit dem Projekt!
    Ich habe mir einen Luftqualitätssensor gekauft. Leider kann dieser nur die relative Qualität messen (ist aber nicht so schlimm, da er Tag und Nacht angesteckt ist) und hat noch ein paar Probleme (kommt nach einiger Zeit bei normaler Luftqualität auf 5000, obwohl man laut Anleitung und LED bei 1500 dringend lüften soll).
    Weiters habe ich begonnen eine Ausreißererkennung hinzuzufügen. (Erkennt sie schon, regiert aber noch nicht darauf)
    Die Weboberfläche und Datenvisualisierung habe ich verschönert und nun lasse ich den Raspberry einige Tage testweise durchmessen.

    Die aktuellen Werte findet man hier (für Innenwerte) und hier (für Außenwerte).

    Einmal editiert, zuletzt von Findus23 (28. Februar 2014 um 14:39)

  • ganz schön heftige Differenz zwischen dem DS18B20 und dem BMP085...

    ganz schön heftige Differenz zwischen dem DS18B20 und dem DHT11 (oder DHT22?)...


  • ganz schön heftige Differenz zwischen dem DS18B20 und dem DHT11 (oder DHT22?)...

    Ich sollte einmal irgendwo öffendlich zusammenschreiben welcher Wert was bedeutet:

    Außentemperatur

    • BMP085: hat noch nie einen Messfehler gehabt und misst, so weit ich es beurteilen kann, sehr genau

    Luftdruck

    • auch BMP085

    Luftfeuchtigkeit

    • DHT22: muss meistens Mehrmals aufgerufen werden, bevor ein Wert zurückkommt
    • hat trotzdem viele Ausreißer
    • hängt draußen

    Temperatur (Feuchtesensor)

    • auch DHT22
    • vermutlich der ungenauerste Sensor

    Bodentemperatur

    • Ein DS18B20 an einem langen Kabel
    • soll später Bodentemperatur messen (hängt momentan einfach nur aus dem Fenster)

    Innentemperatur:

    • Ein DS18B20 in der grauen Box außerhalb des Gehäuses
    • siehe Bild

    Luftqualität:

    • siehe vorheriger Post

    Prozessor:

    • Rückgabe von

      Code
      opt/vc/bin/vcgencmd measure_temp | cut -c 6,7,8,9

    Gerätetemperatur1/2:

    • 2 DS18B20, die ich "zu viel" habe und die daher in der Holzbox auf der Platine hängen
    • haben daher eine etwas höhere Temperatur

    Einmal editiert, zuletzt von Findus23 (28. Februar 2014 um 15:41)

  • Ich sollte einmal irgendwo öffendlich zusammenschreiben welcher Wert was bedeutet:

    Temperatur (Feuchtesensor)

    • auch BMP085
    • vermutlich der ungenauerste Sensor

    Sollte das nicht eher der DHT22 sein?

    EDIT: Ich bastel nachher mal folgendes auf ein Brett und mess das mal mit dem Arduino:
    DS18B20, DHT11, DHT22 und BMP085


  • Sollte das nicht eher der DHT22 sein?

    Ja natürlich, da ist mir etwas im Text durcheinandergerutscht.


    [font="Tahoma, Verdana, Arial, sans-serif"]Ich bastel nachher mal folgendes auf ein Brett und mess das mal mit dem Arduino[/font]


    Danke dafür schonmal im Voraus.

    Übrigens: Hier habe ich schon einmal alle Senoren für eine Woche getestet (da waren aber BMP085 und DHT22 noch nicht daußen)

  • Hier mal 2 Messungen im 15-Minuten-Abstand...
    Messungen drinnen, Büro
    (Den DHT11 find ich grad nirgends :D)

    Code
    --------------------------------
    Temperature from DS18B20: 23.94
    Temperature from BMP085:  23.82
    Temperature from DHT22:   23.50
    --------------------------------
    Temperature from DS18B20: 23.81
    Temperature from BMP085:  23.67
    Temperature from DHT22:   23.00
  • Ich hab den 11er gefunden :)

    Setup: siehe Bilder im Anhang :D

    links obven: DS18B20
    rechts oben: DHT22
    links unten: BMP085
    rechts unten: DHT11

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!