Komplette DIY Raspberry Pi Wetterstation mit Software

Ende Februar habe ich diesen Beitrag auf der Raspberry Pi-Website gesehen.

//www.raspberrypi.org/school-weather-station -...

Sie hatten Raspberry Pi Wetterstationen für Schulen erstellt. Ich wollte unbedingt einen! Aber zu diesem Zeitpunkt (und ich glaube noch zum Zeitpunkt des Schreibens) sind sie nicht öffentlich verfügbar (Sie müssen in einer ausgewählten Gruppe von Testern sein). Nun, ich wollte weitermachen und hatte keine Lust, Hunderte von Dollar für ein bestehendes System von Drittanbietern auszugeben.

Also, wie ein guter Instructable-Benutzer, habe ich beschlossen, meine eigenen zu machen !!!

Ich habe ein wenig recherchiert und einige gute kommerzielle Systeme gefunden, auf denen ich meine aufbauen konnte. Ich habe einige gute Instructables gefunden, die bei einigen der Sensor- oder Raspberry PI-Konzepte helfen. Ich fand sogar diese Seite, die Dreck war, sie hatte ein bestehendes Maplin-System abgerissen:

//www.philpot.me/weatherinsider.html

Schneller Vorlauf ungefähr einen Monat und ich habe ein grundlegendes Arbeitssystem. Dies ist ein komplettes Raspberry Pi-Wettersystem mit nur der Basis-Raspberry Pi-Hardware, der Kamera und einigen verschiedenen analogen und digitalen Sensoren, um unsere Messungen durchzuführen. Wir kaufen keine vorgefertigten Windmesser oder Regenmesser, wir machen unsere eigenen! Hier sind die Funktionen:

  • Zeichnet Informationen in RRD und CSV auf, kann also bearbeitet oder in andere Formate exportiert / importiert werden.
  • Verwendet die Weather Underground API, um coole Informationen wie historische Höhen und Tiefen, Mondphasen und Sonnenaufgang / Sonnenuntergang zu erhalten.
  • Verwendet die Raspberry Pi-Kamera, um einmal pro Minute ein Bild aufzunehmen (Sie können sie dann verwenden, um Zeitraffer zu machen).
  • Verfügt über Webseiten, auf denen die Daten für die aktuellen Bedingungen und einige historische Daten (letzte Stunde, Tag, 7 Tage, Monat, Jahr) angezeigt werden. Das Thema der Website ändert sich mit der Tageszeit (4 Optionen: Sonnenaufgang, Sonnenuntergang, Tag und Nacht).

Die gesamte Software zum Aufzeichnen und Anzeigen der Informationen befindet sich in einem Github. Ich habe sogar einige Fehlerverfolgungs- und Funktionsanforderungen durchgeführt:

//github.com/kmkingsbury/raspberrypi-weather ...

Dieses Projekt war eine großartige Lernerfahrung für mich. Ich habe mich wirklich mit den Fähigkeiten des Raspberry Pi befasst, insbesondere mit dem GPIO, und ich habe auch einige Lernschwierigkeiten festgestellt. Ich hoffe, Sie als Leser können aus einigen meiner Prüfungen und Schwierigkeiten lernen.

Schritt 1: Materialien

Elektronik:

  • 9 Reed-Schalter (8 für die Windrichtung, 1 für die Regenanzeige, optional 1 für die Windgeschwindigkeit anstelle eines Hallsensors), ich habe diese verwendet: //amzn.to/2RExNkT
  • 1 Hallsensor (für die Windgeschwindigkeit als Anemometer bezeichnet) - //amzn.to/38tIQTK
  • Temperatur (//amzn.to/2RIHf6H)
  • Luftfeuchtigkeit (viele Feuchtigkeitssensoren werden mit einem Temperatursensor geliefert), ich habe den DHT11: //amzn.to/2PapjQU verwendet
  • Druck (der BMP wurde auch mit einem Temperatursensor geliefert), ich habe den BMP180 verwendet, //www.adafruit.com/product/1603, dieses Produkt wird jetzt eingestellt, aber es gibt ein Äquivalent zum BMP280 (// amzn. bis / 2E8nmhi)
  • Fotowiderstand (//amzn.to/2seQFwd)
  • GPS-Chip oder USB-GPS (//amzn.to/36tZZv3).
  • 4 starke Magnete (2 für Anemometer, 1 für Richtung, 1 für Regenmesser), ich habe die Seltenerdmagnete verwendet, sehr zu empfehlen) (//amzn.to/2LHBoKZ).
  • Eine Handvoll verschiedener Widerstände, ich habe dieses Paket, das sich im Laufe der Zeit als äußerst praktisch erwiesen hat: //www.sparkfun.com/products/10969
  • MCP3008 - zur Umwandlung von analogen in digitale Eingänge für den Raspberry Pi - //amzn.to/38rtLCa

Hardware

  • Raspberry Pi - Ich habe die 2 ursprünglich mit einem drahtlosen Adapter verwendet, jetzt bekomme ich auch das 3 B + Kit mit Netzteil. (//amzn.to/2P76Mop)
  • Pi Kamera //amzn.to/2LGDFGz
  • Ein solides 5-V-Netzteil (dies stellte sich als schmerzhaft ärgerlich heraus, ich habe schließlich das Adafruit-Netzteil bekommen, sonst zieht die Kamera zu viel Saft und kann / wird den Pi aufhängen, hier: //www.adafruit.com/products/501 )

Materialien:

  • 2 Axiallager (oder Skateboard- oder Rollschuhlager funktionieren auch), ich habe diese bei Amazon: //amzn.to/2siMwra
  • 2 wasserdichte Gehäuse (ich habe ein elektrisches Gehäuse aus dem örtlichen Big Box Store verwendet), spielt keine Rolle, muss nur ein Gehäuse mit guter Größe finden, das genügend Platz bietet und alles schützt).
  • Einige PVC-Rohr- und Endkappen (verschiedene Größen).
  • PVC-Halterungen
  • Paar Blätter aus dünnem Plexiglas (nichts Besonderes).
  • Kunststoffabstandshalter
  • Minischrauben (ich habe # 4 Schrauben und Muttern verwendet).
  • 2 Plastik-Weihnachtsbaumschmuck - für den Windmesser verwendet, habe ich meinen in der örtlichen Hobby-Lobby bekommen.
  • Kleiner Dübel
  • Kleines Stück Sperrholz.

Werkzeuge:

  • Dremel
  • Klebepistole
  • Lötkolben
  • Multimeter
  • Bohren

Schritt 2: Hauptgehäuse - Pi, GPS, Kamera, Licht

Das Hauptgehäuse beherbergt den PI, die Kamera, das GPS und den Lichtsensor. Es ist wasserdicht ausgelegt, da es alle kritischen Komponenten enthält, die Messungen vom Remote-Gehäuse stammen und für die Elemente sichtbar / offen ist.

Schritte:

Wählen Sie ein Gehäuse, ich habe eine elektrische Anschlussdose verwendet, verschiedene Projektboxen und wasserdichte Gehäuse funktionieren genauso gut. Entscheidend ist, dass es genug Platz für alles hat.

Mein Gehäuse enthält:

  • Der Himbeer-Pi (auf Abstandshaltern) - Benötigt einen WIFI-Chip, möchte Cat5e nicht in den Hinterhof laufen lassen!
  • Die Kamera (auch auf Abstandshaltern)
  • Der GPS-Chip, der über USB angeschlossen ist (über ein funkenfreies FTDI-Kabel: //www.sparkfun.com/products/9718) - Das GPS liefert Längen- und Breitengrade, was nett ist, aber was noch wichtiger ist, ich kann genaue Zeit vom GPS abrufen !
  • Zwei Ethernet / Cat 5-Buchsen zum Verbinden des Hauptgehäuses mit dem anderen Gehäuse, in dem sich die anderen Sensoren befinden. Dies war nur eine bequeme Möglichkeit, Kabel zwischen den beiden Boxen zu verlegen. Ich habe ungefähr 12 Drähte und die beiden cat5 bieten 16 mögliche Verbindungen, sodass ich Raum habe, um Dinge zu erweitern / zu ändern.

Vor meinem Gehäuse befindet sich ein Fenster, aus dem die Kamera heraussehen kann. Das Gehäuse mit diesem Fenster schützt die Kamera, aber ich hatte Probleme, bei denen die rote LED an der Kamera (wenn ein Foto aufgenommen wird) vom Plexiglas reflektiert wird und auf dem Foto angezeigt wird. Ich habe ein schwarzes Klebeband verwendet, um dies zu mildern und zu versuchen, es zu blockieren (und andere LEDs von Pi und GPS), aber es ist noch nicht 100%.

Schritt 3: 'Ferngehäuse' für Temperatur, Luftfeuchtigkeit, Druck

Hier habe ich die Temperatur-, Feuchtigkeits- und Drucksensoren sowie die "Anschlüsse" für die Sensoren für Regenmesser, Windrichtung und Windgeschwindigkeit gespeichert.

Es ist alles sehr einfach, die Pins hier werden über die Ethernet-Kabel mit den erforderlichen Pins am Raspberry Pi verbunden.

Ich habe versucht, digitale Sensoren zu verwenden, wo ich konnte, und dann werden alle analogen Sensoren zum MCP 3008 hinzugefügt. Es werden bis zu 8 analoge Sensoren benötigt, was für meine Anforderungen mehr als ausreichend war, aber Raum für Verbesserungen / Erweiterungen bietet.

Dieses Gehäuse ist offen für die Luft (es muss für genaue Temperatur, Luftfeuchtigkeit und Druck sein). Die unteren Löcher sind herausgesprungen, daher habe ich einigen Schaltkreisen einen Sprühnebel aus Silikon-Konformbeschichtung gegeben (Sie können ihn online oder an einem Ort wie Fry's Electronics erhalten). Hoffentlich sollte es das Metall vor Feuchtigkeit schützen, obwohl Sie vorsichtig sein müssen und es bei einigen Sensoren nicht verwenden dürfen.

Auf der Oberseite des Gehäuses passt auch der Windgeschwindigkeitssensor. Es war ein Wurf, ich hätte die Windgeschwindigkeit oder Windrichtung oben drauf setzen können, ich sah keine großen Vorteile von einem gegenüber dem anderen. Insgesamt möchten Sie, dass beide Sensoren (Windrichtung und Geschwindigkeit) hoch genug sind, damit Gebäude, Zäune und Hindernisse die Messungen nicht beeinträchtigen.

Schritt 4: Regenmesser

Ich habe diese Anweisung meistens befolgt, um die tatsächliche Anzeige zu erstellen:

//www.instructables.com/id/Arduino-Weather-St ...

Ich habe das aus Plexiglas gemacht, damit ich sehen konnte, was los war, und ich dachte, es wäre cool. Insgesamt hat das Plexiglas einwandfrei funktioniert, aber in Kombination mit Gluegun, Gummidichtmittel und dem gesamten Schneiden und Bohren sieht es auch mit der Schutzfolie nicht so makellos aus.

Wichtige Punkte:

  • Der Sensor ist ein einfacher Reed-Schalter und ein Magnet, der wie ein Knopfdruck im RaspberryPi-Code behandelt wird. Ich zähle einfach die Eimer im Laufe der Zeit und mache die Umrechnung später in "Zoll Regen".
  • Machen Sie es groß genug, um genug Wasser zum Kippen zu halten, aber nicht so viel, dass es viel braucht, um zu kippen. Bei meinem ersten Durchgang machte ich jedes Tablett nicht groß genug, damit es sich füllte und über den Rand abfloss, bevor es kippte.
  • Ich fand auch heraus, dass Restwasser einen Fehler bei der Messung verursachen kann. Das heißt, vollständig trocken waren X Tropfen erforderlich, um eine Seite zu füllen und zu kippen. Nach dem Nassen wurden Y Tropfen (weniger als X) zum Füllen und Kippen benötigt. Keine große Menge, aber sie kam zum Tragen, wenn versucht wurde, eine gute "1 Last entspricht wie viel" -Messung zu kalibrieren und zu erhalten.
  • Balanciere es aus, du kannst schummeln, indem du Gluegun-Kleber an den unteren Enden hinzufügst, wenn eine Seite viel schwerer als die andere ist, aber du brauchst es so nah wie möglich am Gleichgewicht.
  • Sie können auf dem Foto sehen, dass ich einen kleinen Prüfstand mit einigen Schwämmen und einem Holzhalter eingerichtet habe, um ihn vor der Installation zu testen und richtig auszubalancieren.

Schritt 5: Windrichtung

Dies war eine einfache Wetterfahne. Ich habe die Elektronik auf dem Maplin-System aufgebaut:

//www.philpot.me/weatherinsider.html

Wichtige Punkte:

  • Dies ist ein analoger Sensor. Die acht Reed-Schalter in Kombination mit verschiedenen Widerständen teilen den Ausgang in Blöcke auf, sodass ich anhand des Werts erkennen kann, in welcher Koordinate sich der Sensor befindet. (Das Konzept wird in dieser Anleitung erläutert: //www.instructables.com/id/Accessing-5-button ...
  • Nachdem Sie das Wetterfahnen-Teil angeschraubt haben, müssen Sie es so kalibrieren, dass "diese Richtung nach Norden zeigt".
  • Ich habe einen Prüfstand aus Holz gebaut, damit ich problemlos Widerstände ein- und ausschalten kann, die den gesamten Wertebereich für mich abdecken. Das war super hilfreich!
  • Ich habe ein Axiallager verwendet, es hat gut funktioniert, ich bin sicher, ein normales Skateboard- oder Rollschuhlager wäre genauso gut gewesen.

Schritt 6: Windgeschwindigkeit

Diesen habe ich noch einmal an die Instructable-Community gewandt und diesen Instructable gefunden und befolgt:

//www.instructables.com/id/Data-Logging-Anemo ...

Wichtige Punkte:

  • Sie können auch den Hallsensor verwenden oder auf einen Reed-Sensor umschalten. Der Hallsensor ist eher ein analoger Sensor. Wenn Sie ihn also digital verwenden, z. B. durch Drücken einer Taste, müssen Sie sicherstellen, dass der Messwert / die Spannung hoch genug ist, damit er wie ein echter Tastendruck wirkt und nicht genug .
  • Die Größe des Bechers ist entscheidend, ebenso wie die Länge des Stocks! Ursprünglich habe ich Tischtennisbälle verwendet und sie waren viel zu klein. Ich habe sie auch auf lange Stöcke gelegt, was auch nicht funktioniert hat. Ich war sehr frustriert und stieß dann auf diese Anleitung. Ptorelli hat großartige Arbeit geleistet und es hat mir geholfen, als mein ursprüngliches Design nicht so gut funktionierte.

Schritt 7: Software

In Python ist Software geschrieben, um die Daten von den Sensoren aufzuzeichnen. Ich habe einige andere Git-Bibliotheken von Drittanbietern von Adafruit und andere verwendet, um die Informationen von den Sensoren und dem GPS zu erhalten. Es gibt auch einige Cron-Jobs, die auch einige der API-Informationen abrufen. Das meiste wird in der Git-Dokumentation unter docs / install_notes.txt erklärt / beschrieben

Die Web-Software ist in PHP, um sie auf der Webseite anzuzeigen, während YAML für die Konfigurationsdateien und natürlich das RRD-Tool zum Speichern und Zeichnen der Daten verwendet wird.

Es verwendet die Weather Underground API, um einige der interessanten Daten zu erhalten, die Sensoren nicht abrufen können: Aufzeichnen von Hi's und Lows, Mondphase, Sonnenuntergang und Sonnenaufgang, es gibt auch Gezeiten auf ihrer API, was ich für sehr ordentlich hielt. Aber ich lebe in Austin, TX, das sehr weit vom Wasser entfernt ist.

Alles ist auf Github verfügbar und wird aktiv gewartet und derzeit verwendet, während ich mein eigenes System weiter verfeinere und kalibriere, sodass Sie auch Funktionsanfragen und Fehlerberichte einreichen können.

Die Software durchläuft je nach Tageszeit einen Themenwechsel, es gibt 4 Stufen. Wenn die aktuelle Zeit + oder - 2 Stunden von Sonnenaufgang oder Sonnenuntergang entfernt ist, erhalten Sie die Themen Sonnenaufgang und Sonnenuntergang (im Moment nur einen anderen Hintergrund, ich werde wahrscheinlich in Zukunft andere Schrift- / Rahmenfarben verwenden). Ebenso außerhalb dieser Bereiche gibt das Tag oder Nacht Thema.

Vielen Dank fürs Lesen. Wenn Sie mehr Fotos und Videos meiner Projekte sehen möchten, als auf meinem Instagram- und YouTube-Kanal.

Ähnlicher Artikel