Änderungen

KY-015 Kombi-Sensor Temperatur+Feuchtigkeit

34 Byte entfernt, 15:38, 29. Apr. 2016
/* Software-Beispiel Raspberry Pi */
Das unten stehende Beispiel verwendet diese besagte Library - hierzu empfehlen wir diese von Github herunterzuladen, zu entpacken und im Arduino-Library-Ordner, welcher sich standardmäßig unter (C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries) befindet, zu kopieren, damit diese für dieses Codebeispiel und folgende Projekte zur Verfügung steht. Alternativ ist diese auch im unten stehenden Download Paket ebenfalls enthalten.
<pre class="brush:cpp">// Benoetigte Libraries werden Adafruit_DHT Library wird eingefügt und konfiguriert#include "DHT.h" // Hier kann der jeweilige EingangsPin deklariert werden#include define DHTPIN 2  // Der Sensor wird initialisiert#include define DHTTYPE DHT11 // DHT 11Adafruit_BMP085_Unified BMPSensor = Adafruit_BMP085_UnifiedDHT dht(10085DHTPIN, DHTTYPE); void setup(void)
{
Serial.begin(9600);
Serial.println("KY-015 Test - Temperatur und Luftfeuchtigkeits-Test:");
 
// Messung wird gestartet
dht.begin();
}
 
// Hauptprogrammschleife
// Das Programm startet die Messung und liest die gemessenen Werte aus
// Zwischen den Messungen wird eine Pause von 2 Sekunden eingelegt,
// damit beim nächsten Druchlauf eine neue Messung erfasst werden kann.
void loop() {
 
// Zwei Sekunden Pause zwischen den Messungen
delay(2000);
 
// Luftfeuchtigkeit wird gemessen
float h = dht.readHumidity();
// Temperatur wird gemessen
float t = dht.readTemperature();
Serial.println("KY-052 SensorTest:"); // Hier wird überprüft, ob die Messungen fehlerfrei druchgelaufen sind // Falls der Sensor nicht erkannt wurdeBei Detektion eines Fehlers, wird hier eine Fehlermeldung gezeigtFehelrmeldung ausgegeben if(!BMPSensor.beginisnan(h) || isnan(t)) { Serial.println("KY-053-Sensor nicht erkannt!Fehler beim Auslesen des Sensors"); Serial.print("Bitte ueberpruefen Sie die Verbindung"); while(1)return;
}
 
// Ausgabe in die serrielle Konsole
Serial.println("-----------------------------------------------------------");
Serial.print("Luftfeuchtigkeit: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.print(char(186)); //Ausgabe <°> Symbol
Serial.println("C ");
Serial.println("-----------------------------------------------------------");
Serial.println(" ");
}
void loop(void) { // Initialisierung Adafruit BMP Library sensors_event_t event; BMPSensor.getEvent(&event); // Messung wird gestartet, falls Sensor bereit if (event.pressure) { Serial.println("------------------------"); // Messung des Luftdrucks Serial.print("Luftdruck: "); Serial.print(event.pressure); Serial.println(" hPa"); // Messung der aktuellen Temperatur float temperature; BMPSensor.getTemperature(&temperature); Serial.print("Temperatur: "); Serial.print(temperature); Serial.write(176); // UniCode-Angabe eines char-Symbols für das "°-Symbol" Serial.println(" C"); // Berechnung der Hoehe ueber dem Meeresspiegel, // aus den aufgenommenen Daten (SLP=1013.25 hPa) float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; Serial.print("Meereshoehe: "); Serial.print(BMPSensor.pressureToAltitude(seaLevelPressure, event.pressure, temperature)); Serial.println(" m"); Serial.println("------------------------"); Serial.println(""); } // Fehlermeldung falls Sensor nicht ausgelesen werden kann else { Serial.println("Sensor-Fehler"); } delay(1000);}
</pre>
'''<span style="color: #ffcc00;">Bitte beachten Sie, dass der Sensor nur etwa alle 2 Sekunden ein neues Messergebnis zur Verfügung stellt; also eher für Langzeit-Aufnahmen ausgelegt ist</span><br /><br />Beispielprogramm Download:'''
[[Medium:KY-052015-DruckSensor_TemperaturSensorKombi-Sensor_Temperatur_Feuchtigkeit.zip|KY-052015-Kombi-DruckSensor_TemperaturSensorSensor_Temperatur_Feuchtigkeit.zip]]
'''Anschlussbelegung Arduino:'''
{| style="height: 58px; padding-left: 30px;" width="228"
|-
||VCC
||=
||[Pin 5V]
|-
||GND
||[Pin GND]
|-
||SCL+V
||=
||[Pin SCL]|-||SDA||=||[Pin SDA5V]
|-
||3,3Signal
||=
||[N.C.Pin D2]
|}
''dtparam=i2c_arm=on''
 
Die Datei kann mit folgenden Befehl editiert werden:
 
 
<pre class="brush:bash">sudo nano /boot/config.txt
<pre class="brush:py">#!/usr/bin/python
# coding=utf-8
# Copyright (c) 2014 Adafruit Industries
# Benoetigte Bibliotheken Module werden eingefügt importiert und konfigurierteingerichtetimport Adafruit_BMPRPi.BMP085 GPIO as BMP085GPIOimport Adafruit_DHT
import time
# Die Pause von zwei Sekunden zwischen den Messungen kann wird hier eingestellt werdensleeptime = 12
try: # Sensor wird initialisiertshould be set to Adafruit_DHT.DHT11, BMPSensor # Adafruit_DHT.DHT22, or Adafruit_DHT.AM2302.DHTSensor = BMP085Adafruit_DHT.BMP085()DHT11 # Überprüfung ob Sensor richtig Hier kann der Pin deklariert werden, an dem das Sensormodul angeschlossen ist# Falls nicht, wird eine Fehlermeldung ausgegebenexcept IOError: print("------------------------------") print ("KY-053 Sensor nicht erkannt!") print ("Überprüfen Sie die Verbindungen") print("------------------------------") while(True): time.sleep(sleeptime)except KeyboardInterrupt: GPIO.cleanup()GPIO_Pin = 23
print('KY-015 Sensortest - Temperatur und Luftfeuchtigkeit')
# Hauptprogrammschleife
# Das Programm startet die Messungen am Sensor und gibt
# die gemessenen Werte in der Konsole aus
try:
while(1):
# Messung wird gestartet und das Ergebnis in die entsprechenden Variablen geschrieben Luftfeuchte, Temperatur = Adafruit_DHT.read_retry(DHTSensor, GPIO_Pin)  print("-----------------------------------------------------------------") # if Luftfeuchte is not None and Temperaturis not None: # Das gemessene Ergebnis wird in der Konsole ausgegeben print('Temperatur = {0:0.2f1f}°C'.format(BMPSensor | rel.read_temperature())) # Luftdruck print('Luftdruck Luftfeuchtigkeit = {01:0.2f1f}hPa%'.format(BMPSensor.read_pressure()/100Temperatur, Luftfeuchte))  # MeereshöheDa der Raspberry Pi aufgrund des Linux-Betriebsystems für Echtzeitanwendungen benachteiligt ist, # kann es sein, dass aufgrund von Timing Problemen die Kommunikation scheitern kann. # In dem Falle wird eine Fehlermeldung ausgegeben - ein Ergebnis sollte beim nächsten Versuch vorliegen else: print('Meereshöhe = {0:0.2f}mFehler beim Auslesen - Bitte warten auf nächsten Versuch!'.format(BMPSensor.read_altitude())) print("-----------------------------------------------------------------")
print("")
time.sleep(sleeptime)
{| style="height: 98px; padding-left: 30px;" width="253"
|-
||VCCGND
||=
||-
||[N.C]
|-
||GND
||=
||Masse
||[Pin 06]
|-
||SCL+V
||=
||GPIO03 / SCL3,3V||[Pin 0501]
|-
||SDASignal
||=
||GPIO02 / SDAGPIO23||[Pin 03]|-||3.3||=||3,3V||[Pin 0116]
|}
'''Beispielprogramm Download'''
[[Medium:KY-052015-RPi_DruckSensor_TemperaturSensorRPi_Kombi-Sensor_Temperatur_Feuchtigkeit.zip|KY-052015-RPi_Kombi-RPi_DruckSensor_TemperaturSensorSensor_Temperatur_Feuchtigkeit.zip]]
Zu starten mit dem Befehl:
<pre class="brush:bash">sudo python KY-053_RPi_AnalogDigitalConverter015-RPi_Kombi-Sensor_Temperatur_Feuchtigkeit.py
</pre>
Bürokrat, Administrator
611
Bearbeitungen