Inhaltsverzeichnis:
- Schritt 1: Unerlässliche Ausrüstungsrechnung
- Schritt 2: Hardwareverbindungen für Circuit
- Schritt 3: Raspberry Pi-Programmierung in Python
- Schritt 4: Der Laufcode
- Schritt 5: Nutzung in der praktischen Welt
- Schritt 6: Fazit
Video: Wetterstation mit Raspberry Pi mit BME280 in Python - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
ist maith an scéalaí an aimir (Das Wetter ist ein guter Geschichtenerzähler)
Angesichts der Probleme der globalen Erwärmung und des Klimawandels wird das globale Wettermuster auf unserer ganzen Welt unberechenbar, was zu einer Reihe von wetterbedingten Naturkatastrophen (Dürren, extreme Temperaturen, Überschwemmungen, Stürme und Waldbrände) führt, eine Wetterstation scheint eine Notwendigkeit zu sein Böse zu Hause. Sie lernen viel über grundlegende Elektronik aus einem Wetterstationsprojekt mit einer Reihe billiger Teile und Sensoren. Es ist ziemlich einfach einzurichten und in kürzester Zeit können Sie es haben.
Schritt 1: Unerlässliche Ausrüstungsrechnung
1. Ein Himbeer-Pi
Holen Sie sich ein Raspberry Pi-Board in die Hände. Raspberry Pi ist ein Linux-betriebener Einplatinencomputer. Der Raspberry Pi ist wirklich billig, winzig und vielseitig und besteht aus einem zugänglichen und funktionalen Computer, mit dem Lernende die Grundlagen der Programmierung und Softwareentwicklung üben können.
2. I2C-Schild für Raspberry Pi
Der INPI2 (I2C-Adapter) bietet dem Raspberry Pi 2/3 einen I²C-Port zur Verwendung mit mehreren I2C-Geräten. Es ist im DCUBE Store erhältlich.
3. Digitaler Feuchtigkeits-, Druck- und Temperatursensor, BME280
Der BME280 ist ein Feuchtigkeits-, Druck- und Temperatursensor mit schneller Reaktionszeit und hoher Gesamtgenauigkeit. Wir haben diesen Sensor im DCUBE Store gekauft.
4. I2C-Verbindungskabel
Wir haben das hier im DCUBE Store erhältliche I²C-Kabel verwendet.
5. Micro-USB-Kabel
Das Micro-USB-Kabel Netzteil ist eine ideale Wahl für die Stromversorgung des Raspberry Pi.
6. Interpretieren des Internetzugangs über Ethernet-Kabel/WiFi-Adapter
Der Internetzugang kann über ein Ethernet-Kabel aktiviert werden, das mit einem lokalen Netzwerk und dem Internet verbunden ist. Alternativ können Sie über einen USB-Wireless-Dongle eine Verbindung zu einem drahtlosen Netzwerk herstellen, was eine Konfiguration erfordert.
7. HDMI-Kabel (Display- und Verbindungskabel)
Jeder HDMI/DVI-Monitor und jedes Fernsehgerät sollte als Anzeige für den Pi funktionieren. Alternativ können Sie über SSH auf den Pi remote zugreifen, ohne dass ein Monitor erforderlich ist (nur fortgeschrittene Benutzer).
Schritt 2: Hardwareverbindungen für Circuit
Stellen Sie die Schaltung gemäß dem gezeigten Schaltplan her. Im Allgemeinen sind die Verbindungen sehr einfach. Bleiben Sie ruhig und folgen Sie den Anweisungen und Bildern oben, und Sie sollten keine Probleme haben. Während des Lernens haben wir uns gründlich mit den Grundlagen der Elektronik in Bezug auf Hardware- und Softwarekenntnisse vertraut gemacht. Wir wollten für dieses Projekt einen einfachen Elektronikschaltplan erstellen. Elektronische Schaltpläne sind wie Baupläne. Erstellen Sie eine Blaupause und folgen Sie dem Design sorgfältig. Ein paar Grundbegriffe der Elektronik könnten hier hilfreich sein!
Anschluss von Raspberry Pi und I2C Shield
Nimm zuerst den Raspberry Pi und platziere das I²C Shield darauf. Drücken Sie leicht auf das Schild und wir sind mit diesem Schritt kinderleicht fertig (siehe Bild).
Anschluss von Sensor und Raspberry Pi
Nehmen Sie den Sensor und verbinden Sie das I²C-Kabel damit. Stellen Sie sicher, dass der I²C-Ausgang IMMER mit dem I²C-Eingang verbunden ist. Das gleiche gilt für den Raspberry Pi mit dem I²C-Shield, das über den GPIO-Pins angebracht ist. Wir empfehlen die Verwendung der I²C-Kabel, da dies das Auslesen von Pinbelegungen, Löten und Unwohlsein durch selbst kleinste Ausrutscher vermeidet. Mit diesem einfachen Plug-and-Play-Kabel können Sie ganz einfach Boards installieren, austauschen oder einer Anwendung weitere Boards hinzufügen.
Hinweis: Das braune Kabel sollte immer der Masseverbindung (GND) zwischen dem Ausgang eines Geräts und dem Eingang eines anderen Geräts folgen
Internet-Konnektivität ist der Schlüssel
Sie haben hier zwei Möglichkeiten. Entweder Sie können den Raspberry Pi über ein Ethernet-Kabel mit dem Netzwerk verbinden oder einen USB-zu-WLAN-Adapter für die WIFI-Konnektivität verwenden. So oder so, solange es mit dem Internet verbunden ist, sind Sie abgesichert.
Einschalten der Schaltung
Stecken Sie das Micro-USB-Kabel in die Strombuchse des Raspberry Pi. Zuschlagen und voila! Unser Kader ist Information.
Verbindung zum Bildschirm
Wir können das HDMI-Kabel entweder an einen Monitor oder an einen Fernseher anschließen. Darüber hinaus können wir auf einen Raspberry Pi zugreifen, ohne ihn per Fernzugriff mit einem Monitor zu verbinden. SSH ist ein praktisches Tool für den sicheren Fernzugriff. Sie können dafür auch die PUTTY-Software verwenden. Diese Option ist für fortgeschrittene Benutzer gedacht, daher werden wir sie hier nicht im Detail behandeln.
Es ist eine wirtschaftliche Methode, wenn Sie nicht viel ausgeben möchten
Schritt 3: Raspberry Pi-Programmierung in Python
Der Python-Code für den Raspberry Pi und den BME280-Sensor. Es ist in unserem Github-Repository verfügbar.
Bevor Sie mit dem Code fortfahren, lesen Sie die Anweisungen in der Readme-Datei und richten Sie Ihren Raspberry Pi entsprechend ein. Nur ein wenig Zeit wird Sie für den Aufbau vorbereiten. Eine Wetterstation ist eine Einrichtung, entweder an Land oder auf See, mit Instrumenten und Geräten zur Messung der atmosphärischen Bedingungen, um Informationen für Wettervorhersagen zu liefern und das Wetter und das Klima zu studieren.
Der Code liegt klar vor Ihnen und ist in der einfachsten Form, die Sie sich vorstellen können, und Sie sollten keine Probleme haben. Fragen Sie immer noch, wenn überhaupt (auch wenn Sie tausend Dinge wissen, fragen Sie immer noch jemanden, der es weiß).
Von hier aus können Sie auch den funktionierenden Python-Code für diesen Sensor kopieren.
# Wird mit einer frei wählbaren Lizenz vertrieben. # Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, vorausgesetzt, es passt zu den Lizenzen der zugehörigen Werke. # BME280 # Dieser Code wurde entwickelt, um mit dem BME280_I2CS I2C Mini-Modul zu arbeiten, das von ControlEverything.com erhältlich ist. #
smbus importieren
Importzeit
# Holen Sie sich den I2C-Bus
bus = smbus. SMBus(1)
# BME280-Adresse, 0x76(118)
# Daten von 0x88(136), 24 Bytes zurücklesen b1 = bus.read_i2c_block_data(0x76, 0x88, 24)
# Konvertieren Sie die Daten
# Temp-Koeffizienten dig_T1 = b1[1] * 256 + b1[0] dig_T2 = b1[3] * 256 + b1[2] if dig_T2 > 32767: dig_T2 -= 65536 dig_T3 = b1[5] * 256 + b1[4] wenn dig_T3 > 32767: dig_T3 -= 65536
# Druckbeiwerte
dig_P1 = b1[7] * 256 + b1[6] dig_P2 = b1[9] * 256 + b1[8] wenn dig_P2 > 32767: dig_P2 -= 65536 dig_P3 = b1[11] * 256 + b1[10] wenn dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1[13] * 256 + b1[12] wenn dig_P4 > 32767: dig_P4 -= 65536 dig_P5 = b1[15] * 256 + b1[14] wenn dig_P5 > 32767: dig_P5 -= 65536 dig_P6 = b1[17] * 256 + b1[16] wenn dig_P6 > 32767: dig_P6 -= 65536 dig_P7 = b1[19] * 256 + b1[18] wenn dig_P7 > 32767: dig_P7 -= 65536 dig_P8 = b1[21] * 256 + b1[20] if dig_P8 > 32767: dig_P8 -= 65536 dig_P9 = b1[23] * 256 + b1[22] if dig_P9 > 32767: dig_P9 -= 65536
# BME280-Adresse, 0x76(118)
# Daten zurücklesen von 0xA1(161), 1 Byte dig_H1 = bus.read_byte_data(0x76, 0xA1)
# BME280-Adresse, 0x76(118)
# Daten von 0xE1(225), 7 Bytes zurücklesen b1 = bus.read_i2c_block_data(0x76, 0xE1, 7)
# Konvertieren Sie die Daten
# Feuchtigkeitskoeffizienten dig_H2 = b1[1] * 256 + b1[0] if dig_H2 > 32767: dig_H2 -= 65536 dig_H3 = (b1[2] & 0xFF) dig_H4 = (b1[3] * 16) + (b1[4] & 0xF) if dig_H4 > 32767: dig_H4 -= 65536 dig_H5 = (b1[4] / 16) + (b1[5] * 16) if dig_H5 > 32767: dig_H5 -= 65536 dig_H6 = b1[6] if dig_H6 > 127: dig_H6 -= 256
# BME280-Adresse, 0x76(118)
# Regelfeuchteregister auswählen, 0xF2(242) # 0x01(01) Humidity Oversampling = 1 bus.write_byte_data(0x76, 0xF2, 0x01) # BME280-Adresse, 0x76(118) # Regelmessregister auswählen, 0xF4(244) # 0x27(39) Druck- und Temperatur-Überabtastrate = 1 # Normalmodus bus.write_byte_data(0x76, 0xF4, 0x27) # BME280-Adresse, 0x76(118) # Konfigurationsregister auswählen, 0xF5(245) # 0xA0(00) Standby-Zeit = 1000 ms Bus.write_byte_data(0x76, 0xF5, 0xA0)
time.sleep(0.5)
# BME280-Adresse, 0x76(118)
# Daten aus 0xF7(247), 8 Bytes zurücklesen # Druck MSB, Druck LSB, Druck xLSB, Temperatur MSB, Temperatur LSB # Temperatur xLSB, Feuchte MSB, Feuchte LSB data = bus.read_i2c_block_data(0x76, 0xF7, 8)
# Druck- und Temperaturdaten in 19-Bit umwandeln
adc_p = ((data[0] * 65536) + (data[1] * 256) + (data[2] & 0xF0)) / 16 adc_t = ((data[3] * 65536) + (data[4] * 256) + (Daten[5] & 0xF0)) / 16
# Konvertieren Sie die Feuchtigkeitsdaten
adc_h = Daten[6] * 256 + Daten[7]
# Temperatur-Offset-Berechnungen
var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t)/131072.0 - (dig_T1)/8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120,0 fTemp = cTemp * 1,8 + 32
# Druck-Offset-Berechnungen
var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = ((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 Druck = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Feuchtigkeits-Offset-Berechnungen
var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64,0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536,0 * (1,0 + dig_H6 / 67108864.0 * var_H * (1,0 + dig_H3 / 67_10886))) Feuchte = var_H * (1.0 - dig_H1 * var_H / 524288.0) wenn Feuchte > 100.0: Feuchte = 100.0 elif Feuchte < 0.0: Feuchte = 0.0
# Daten auf den Bildschirm ausgeben
print "Temperatur in Celsius: %.2f C" %cTemp print "Temperatur in Fahrenheit: %.2f F" %fTemp print "Pressure: %.2f hPa " %pressure print "Relative Humidity: %.2f %%" %humidity
Schritt 4: Der Laufcode
Laden Sie nun den Code herunter (oder git pull) und öffnen Sie ihn auf dem Raspberry Pi.
Führen Sie die Befehle zum Kompilieren und Hochladen des Codes auf dem Terminal aus und sehen Sie sich die Ausgabe auf dem Display an. Nach einigen Sekunden werden alle Parameter angezeigt. Nachdem Sie sichergestellt haben, dass alles gut funktioniert, können Sie weitere interessante entwickeln.
Schritt 5: Nutzung in der praktischen Welt
Der BME280 erreicht eine hohe Leistung in allen Anwendungen, die Feuchtigkeits- und Druckmessungen erfordern. Diese neuen Anwendungen sind Kontextbewusstsein, z. B. Hauterkennung, Raumveränderungserkennung, Fitnessüberwachung / Wohlbefinden, Warnung vor Trockenheit oder hohen Temperaturen, Messung von Volumen und Luftstrom, Hausautomationssteuerung, Steuerung von Heizung, Lüftung, Klimaanlage (HVAC), Internet of Things (IoT), GPS-Verbesserung (z. B. Verbesserung der Zeit bis zur ersten Fehlerbehebung, Koppelnavigation, Neigungserkennung), Indoor-Navigation (Bodenwechselerkennung, Aufzugserkennung), Outdoor-Navigation, Freizeit- und Sportanwendungen, Wettervorhersage und Anzeige der vertikalen Geschwindigkeit (Anstieg/Sink) Geschwindigkeit).
Schritt 6: Fazit
Ich hoffe, dieses Projekt inspiriert zu weiteren Experimenten. Die Herstellung einer komplexeren Wetterstation kann einige weitere Sensoren wie Regenmesser, Lichtsensor, Anemometer (Windgeschwindigkeit) usw. umfassen. Sie können sie hinzufügen und den Code ändern. Wir haben ein Video-Tutorial auf YouTube, das die grundlegende Funktionsweise des I²C-Sensors mit RasPi zeigt. Es ist wirklich erstaunlich, die Ergebnisse und das Funktionieren der I²C-Kommunikation zu sehen. Überprüfen Sie es auch. Viel Spaß beim Bauen und Lernen! Bitte lassen Sie uns wissen, was Sie von diesem instructable halten. Bei Bedarf würden wir gerne einige Verbesserungen vornehmen.
Empfohlen:
Eine einfache Wetterstation erstellen – wikiHow
So erstellen Sie eine einfache Wetterstation: Hallo Leute, in diesem Video zeige ich Ihnen, wie Sie eine einfache Wetterstation erstellen, um Temperatur und Luftfeuchtigkeit mit dem DHT11-Sensor zu messen
So erstellen Sie eine Arduino-Wetterstation – wikiHow
So erstellen Sie eine Arduino-Wetterstation: In diesem Projekt werden wir eine Wetterstation herstellen, die Temperatur und Luftfeuchtigkeit mit Arduino misst und den Wert der aktuellen Temperatur und Luftfeuchtigkeit auf einem LCD-Display anzeigt
Erste Schritte mit Python: 7 Schritte (mit Bildern)
Erste Schritte mit Python: Programmieren ist großartig! Es ist kreativ, macht Spaß und gibt Ihrem Gehirn ein mentales Training. Viele von uns wollen etwas über Programmieren lernen, aber überzeugen sich selbst davon, dass wir es nicht können. Vielleicht hat es zu viel Mathematik, vielleicht der Jargon, der erschreckend herumgeworfen wird
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
Wie erstelle ich eine Raspberry Pi Wetterstation – wikiHow
So erstellen Sie eine Raspberry Pi-Wetterstation: In diesem Tutorial werde ich den Prozess der Installation eines SenseHAT durchgehen und den Code importieren, der erforderlich ist, um diesen SenseHAT in eine voll funktionsfähige Wetterstation zu verwandeln, die Temperatur, Druck und Luftfeuchtigkeit aufzeichnen kann