Inhaltsverzeichnis:

Raspberry Pi Barometer Wetteruhr - Gunook
Raspberry Pi Barometer Wetteruhr - Gunook

Video: Raspberry Pi Barometer Wetteruhr - Gunook

Video: Raspberry Pi Barometer Wetteruhr - Gunook
Video: PinePhone KDE Community Edition smartphone with Plasma Mobile now up for pre-order $149.99 & $199.99 2024, November
Anonim
Raspberry Pi Barometer Wetteruhr
Raspberry Pi Barometer Wetteruhr

In diesem anweisbaren zeige ich Ihnen, wie Sie eine grundlegende Thermometer- / Barometeruhr mit einem Raspberry Pi 2 mit einem BMP180 I2C-Sensor aufbauen, der auf einem Adafruit 4-stelligen 7-Segment-I2C-Display angezeigt wird. Der Pi verwendet auch ein DS3231-Echtzeit-I2C-Uhrenmodul, um die Zeit zu halten, wenn der Pi neu gestartet wird.

Die Uhr durchläuft 4 Stufen für jeweils 5 Sekunden. Zuerst wird die Temperatur in Celsius angezeigt, dann in Fahrenheit, dann der Luftdruck in kPa * (diese Zahl wandert aufgrund der begrenzten Anzahl von Ziffern nach links) und schließlich zeigt es einen Trend der Luftdruckänderung zwischen jetzt und dem Durchschnitt der vorige Stunde.

Was diese Uhr von den meisten unterscheidet, ist, dass sie eine MySQL-Datenbank auf dem Pi verwendet, um jede Minute Daten vom BMP180 zu protokollieren. Da der aktuelle Luftdruck nicht so wertvoll ist wie seine Auf- oder Abwärtsbewegung über einen bestimmten Zeitraum, berechnet es anhand dieser Datenbank einen Durchschnitt für eine Stundenspanne zwischen 2 Stunden und 1 Stunde und vergleicht diesen mit dem aktuellen Druck. Ein deutlicher Anstieg des Luftdrucks deutete normalerweise auf eine Verbesserung der Wetterbedingungen hin, während ein starker Rückgang vor einem bevorstehenden Sturm warnen könnte.

Die Uhr befindet sich in einem 3D-gedruckten ABS-Gehäuse mit dem BMP180 in einer belüfteten Kappe auf der Rückseite der Uhr, um zu verhindern, dass die vom Pi erzeugte Wärme die Temperaturmesswerte beeinflusst. Ich stelle den Autodesk 123D Design-Schema zur Verfügung, wenn Sie Ihren eigenen drucken möchten.

Die Uhr wird über eine Standard-USB-Wanduhr mit Strom versorgt und zieht insgesamt etwa 450 mA.

Ich werde nicht zu sehr auf die grundlegende Einrichtung des Pi und I2C eingehen, da dies in vielen anderen Anleitungen behandelt wurde, zu denen ich Links zur Verfügung stellen werde.

Schritt 1: Bereiten Sie das Pi. vor

Bereiten Sie den Pi. vor
Bereiten Sie den Pi. vor

Einrichten Ihres Raspberry Pi - Details auf Raspberrypi.org

  1. Laden Sie Ihre ausgewählte Linux-Distribution herunter und installieren Sie sie auf einer SD-Karte - ich habe Raspbian verwendet
  2. Schließen Sie den Pi an und booten Sie ihn
  3. Ich habe einen Micro-WLAN-Adapter verwendet, um den Pi an meinen Router anzuschließen, da das Uhrengehäuse den Ethernet-Port verdeckt.
  4. Ich habe den Headless-Modus verwendet, bei dem Sie sich über SSH mit dem Pi verbinden, sodass Sie nur die Stromversorgung anschließen müssen.
  5. Konfigurieren Sie I2C auf dem Pi - Ich habe diese Anweisungen auf der Adafruit-Site befolgt.

Schritt 2: Alles verdrahten

Alles verkabeln
Alles verkabeln

Alle Module, die ich in diesem Projekt verwende, sind 5V-tolerant und verwenden I2C, ein 2-Draht-Protokoll, das für die Kommunikation von ICs verwendet wird, sodass die Verkabelung ziemlich einfach ist. Verbinden Sie alle VCC mit 5V, alle Masse zusammen und alle SCA- und SCL-Leitungen zusammen gemäß dem Schaltplan. Job erledigt.

Schritt 3: Testen Sie Ihr I2C

Testen Sie Ihr I2C
Testen Sie Ihr I2C

Ein Teil der I2C-Installation besteht darin, i2cdetect auszuführen, das wie das angehängte Bild aussehen sollte, wenn alles richtig verkabelt ist.

Unten sind die passenden Adressen

  1. 0x70 = 7-Segment-Anzeige
  2. 0x77 = BMP180 Thermometer / Barometersensor
  3. 0x68 = DS3231 Echtzeituhrmodul
  4. 0x57 = DS3231 on board EEPROM zum Speichern von Alarmdaten.

Schritt 4: MySQL und PhpMyAdmin installieren

Installieren Sie MySQL und PhpMyAdmin
Installieren Sie MySQL und PhpMyAdmin

Die Installation von mySQL ist ziemlich einfach, wenn Sie dem Tutorial hier folgen

sudo apt-get install mysql-server

Ich habe auch phpMyAdmin installiert, eine Website, die auf Apache läuft und mit der Sie MySQL-Datenbanken erstellen und verwalten können. Anleitung hier

sudo apt-get installiere phpmyadmin

Nach der Installation habe ich mit phpMyAdmin eine Datenbank namens BP180 mit der Struktur gemäß dem Bild eingerichtet.

Ich verwende auch ein Python-Modul namens mysqlDB, das Sie mit installieren können

sudo apt-get install python-mysqldb

Schritt 5: Python-Module installieren

Laden Sie die folgenden Python-Module herunter und installieren Sie sie, um eine Verbindung zu den Sensoren herzustellen.

  1. Modul Adafruit_BMP085
  2. SDL_DS3231-Modul
  3. Adafruit 7-Segment-Modul

Schritt 6: Code zum Anmelden bei der Datenbank

Der folgende Codeausschnitt wird verwendet, um die Temperatur und den Luftdruck zu protokollieren und wird von einem Cron-Skript (geplante Linux-Aufgaben) aufgerufen, das alle 5 Minuten ausgeführt wird. In diesem Tutorial erfahren Sie, wie Sie Crond verwenden.

Achtung! Machen Sie sich nicht die Mühe, meine Programmierkenntnisse zu zerstören, ich bin kein Entwickler, also gibt es wahrscheinlich eine Million bessere, schnellere, reibungslosere und sauberere Möglichkeiten, dies zu tun

Sie werden im Code feststellen, dass die Temperatur um 7 Grad verringert wird, was der vom Raspberry Pi erzeugten Wärme entspricht, selbst wenn der BMP180 an der Außenseite des Gehäuses montiert ist. Als ich es ursprünglich im Gehäuse hatte, war es etwa 15 Grad heißer als die Umgebung. Es scheint ziemlich linear zu sein, aber ich hatte nicht die Gelegenheit, Extreme zu testen. Feedback zu Ihren Erfahrungen wäre dankbar.

Schritt 7: Code zum Anzeigen von Temp

Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur
Code zum Anzeigen der Temperatur

Dieser Code wird aufgerufen, um gemäß der Einführung durch die Anzeige zu blättern.

Auch hier bin ich kein Entwickler, daher ist der Code wirklich grob, aber er funktioniert

Schritt 8: 3D-gedrucktes Gehäuse

3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse
3D-gedrucktes Gehäuse

Als nächstes ist das Design des Gehäuses. Dies war eine ziemliche Herausforderung, da die Form anfällig für Verformungen ist, da Teile der Außenschale nur 2 mm dick sind. Ich habe zuerst Modelle des Pi und aller Teile gezeichnet und dann das Gehäuse drumherum entworfen. Der Druck dauerte auf meinem RapMan 3.2 (der ein ziemlich langsamer Drucker ist) bei 0,25 Schichttiefe etwa 7 Stunden.

Der beigefügte Schaltplan ist in Autodesk 123D Design erstellt, was meiner Meinung nach eine fantastische kostenlose Software ist.

Beachten Sie, dass einige der Löcher, die zum Montieren des Pi benötigt werden, nicht im Design enthalten sind, da es besser ist, diese nachträglich zu bohren, falls sich Ihr Druck etwas verzieht. Ruhige Hand genügt ein 3 mm Bohrer. Markieren Sie die Tiefe auf dem Bit mit etwas Maskierungsband, damit Sie nicht wie ich versehentlich direkt durch Ihren 7-Stunden-Druck gehen.

Schritt 9: Dinge zu tun

Dinge die zu tun sind
Dinge die zu tun sind
  1. Die Echtzeituhr war eine Ergänzung, nachdem das Gehäuse zum 5. Mal gedruckt wurde, also ist sie derzeit auf die Seite des Gehäuses geklebt, was nicht gut aussieht, also würde ich das Design gerne überarbeiten und einen Platz dafür hinzufügen.
  2. Die Helligkeit der 7-Segment-Anzeige ist derzeit auf die geringste Helligkeit eingestellt, was für starke Lichtverhältnisse nicht optimal ist. Ich möchte einen Fotowiderstand an der Oberseite des Gehäuses hinzufügen und die 7-Segment-Helligkeit basierend auf den Umgebungslichtbedingungen anpassen.
  3. Es gibt einige kleinere Designprobleme mit dem Riss der Basis, die ebenfalls behoben werden.
  4. Alle Ideen sind willkommen.

Ich hoffe, Sie haben dieses instructable genossen und fanden es inspirierend genug, um Sie zum Laufen zu bringen. Die Idee ist, eine Plattform bereitzustellen, auf der Sie Ihre eigenen Ideen hinzufügen können. Spaß haben!

Empfohlen: