Änderungen

KY-052 Drucksensor / Temperatursensor - BMP180 -

879 Byte entfernt, 15:19, 29. Apr. 2016
/* Software-Beispiel Raspberry Pi */
==Pin-Belegung==
[[Datei:5_5V_G_SCL_SDA_3V.png|none|500x292px]]
 
* *Dieser Sensor erlaubt es sowohl an 5V System, sowie an 3,3V Systemen angeschlossen und betrieben zu werden. <span style="color: #ff0000;">Hierbei ist zu beachten, dass nur einer der jeweiligen Spannungsversorgungspins angeschlossen wird; passend zum Spannungslevel des verwendeten Systems</span> - weiteres entnehmen Sie den unteren Beispielen zum Anschluss des Arduino (5V) oder des Rasperry Pi's (3,3V)
==Software-Beispiel Arduino==
|}
==Codebeispiel Software-Beispiel Raspberry Pi==Das Programm nutzt zur Ansteuerung des BMP180, der auf diesem Sensor-Modul verbaut ist, die entsprechenden BMP085/180 und I2C Python-Libraries der Firma Adafruit. Diese wurden unter dem folgenden [https://github.com/adafruit/Adafruit_Python_BMP Link] unter der [https://github.com/adafruit/Adafruit_Python_ADS1x15/blob/master/LICENSE MIT OpenSource-Lizenz] veröffentlicht. Die benötigten Libraries sind im unteren Download-Paket enthalten. 
Das Programm startet die MEssung am Sensor und gibt die gemessenen Wete für die Diese muss vorab erst installiert werden.Hierzu muss folgendermaßen vorgegangen werden:
Zuerst muss, falls dies nicht auf dem Raspberry Pi geschehen ist, die GitHub-Software installiert werden: <pre class="brush:bash">sudo apt-get install git</pre>Hierzu muss der Raspberry Pi mit dem Internet verbunden sein. Mit dem Befehl... <pre class="brush:bash">git clone https://github.com/adafruit/Adafruit_Python_BMP.git</pre>... kann die aktuelle Version der Adafruit_BM085 Library heruntergeladen und entpackt werden Danach wechseln wir mit... <pre class="brush:bash">cd Adafruit_Python_BMP/</pre>... in den heruntergeladenen Ordner und intallieren mit... <pre class="brush:bash">sudo python setup.py install</pre>... die Library. Hiernach kann die Library genutzt werden. Damit der Raspberry Pi mit dem Sensor auf dem I2C-Bus kommunizieren kann, muss auch vorab die I2C-Funktion beim Raspberry Pi aktiviert werden. Hierzu müssen folgende Zeilen am Ende der Datei "/boot/config.txt" hinzugefügt werden:
''dtparam=i2c_arm=on''
Die Datei kann mit folgenden Befehl editiert werden:
 
<pre class="brush:bash">sudo nano /boot/config.txt
</pre>
 
Mit der Tastenfolge [Strg+X -> Y -> Enter] kann die Datei, nach dem hinzufügen der Zeile am unteren Ende, gespeichert und geschlossen werden.
<pre class="brush:bash">sudo apt-get install python-smbus i2c-tools -y</pre>
Hiernach kann das folgende Python-Code Beispiel verwendet werden. Das Programm startet die Messung am Sensor und gibt die gemessenen Werte für den Luftdruck, der Temperatur und der Höhe überm Meeresspiegel aus.
Hiernach kann das folgende Python-Code Beispiel verwendet werden: <pre class="brush:py">##!/usr/bin/python
# coding=utf-8
# Copyright (c) 2014 Adafruit Industries
#############################################################################################################Benoetigte Bibliotheken werden eingefügt und konfiguriert### Copyright by Joy-IT### Published under Creative Commons Attribution-NonCommercial-ShareAlike 3import Adafruit_BMP.0 Unported License### Commercial use only after permission is requested and granted###### KY-053 Analog Digital Converter - Raspberry Pi Python Code Example###BMP085 as BMP085#############################################################################################################import time
# Die Pause zwischen den Messungen kann hier eingestellt werden
sleeptime = 1
try: # Dieser Code nutzt die ADS1115 und die I2C Python Library fuer den Raspberry PiSensor wird initialisiert BMPSensor = BMP085.BMP085()# Diese Überprüfung ob Sensor richtig angeschlossen ist unter folgendem Link unter der BSD Lizenz veroeffentlicht# [httpsFalls nicht, wird eine Fehlermeldung ausgegebenexcept IOError://github.com/adafruit/Adafruit print("-Raspberry-Pi-Python-Code]--------------------------")from Adafruit_ADS1x15 import ADS1x15 print ("KY-053 Sensor nicht erkannt!")from print ("Überprüfen Sie die Verbindungen") print("------------------------------") while(True): time import .sleep(sleeptime)except KeyboardInterrupt: GPIO.cleanup()
# Weitere benoetigte Module werden importiert und eingerichtet
import time, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# Benutzte Variablen werden initialisiert
delayTime = 0.5 # in Sekunden
 
# Adresszuweisung ADS1x15 ADC
 
ADS1015 = 0x00 # 12-bit ADC
ADS1115 = 0x01 # 16-bit
 
# Verstaerkung (Gain) wird ausgewaehlt
gain = 4096 # +/- 4.096V
# gain = 2048 # +/- 2.048V
# gain = 1024 # +/- 1.024V
# gain = 512 # +/- 0.512V
# gain = 256 # +/- 0.256V
 
# Abtasterate des ADC (SampleRate) wird ausgewaehlt
# sps = 8 # 8 Samples pro Sekunde
# sps = 16 # 16 Samples pro Sekunde
# sps = 32 # 32 Samples pro Sekunde
sps = 64 # 64 Samples pro Sekunde
# sps = 128 # 128 Samples pro Sekunde
# sps = 250 # 250 Samples pro Sekunde
# sps = 475 # 475 Samples pro Sekunde
# sps = 860 # 860 Samples pro Sekunde
 
# ADC-Channel (1-4) wird ausgewaehlt
adc_channel_0 = 0 # Channel 0
adc_channel_1 = 1 # Channel 1
adc_channel_2 = 2 # Channel 2
adc_channel_3 = 3 # Channel 3
 
# Hier wird der ADC initialisiert - beim KY-053 verwendeten ADC handelt es sich um einen ADS1115 Chipsatz
adc = ADS1x15(ic=ADS1115)
 
Button_PIN = 24
GPIO.setup(Button_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
 
#############################################################################################################
 
# ########
# Hauptprogrammschleife
# ######### Das Programm liest startet die aktuellen Werte der Eingang-PinsMessungen am Sensor und gibt# und gibt diese die gemessenen Werte in der Konsole aus 
try:
while True(1): print("------------------------------") #Aktuelle Werte werden aufgenommenTemperatur adc0 print('Temperatur = adc{0:0.readADCSingleEnded2f}°C'.format(adc_channel_0, gain, sps) adc1 = adcBMPSensor.readADCSingleEndedread_temperature(adc_channel_1, gain, sps))) adc2 # Luftdruck print('Luftdruck = adc{0:0.readADCSingleEnded2f}hPa'.format(adc_channel_2, gain, sps) adc3 = adcBMPSensor.readADCSingleEndedread_pressure(adc_channel_3, gain, sps)/100) # Ausgabe auf die KonsoleMeereshöhe print "Messwert Channel ('Meereshöhe = {0:", adc0, "mV "0.2f}m'.format(BMPSensor.read_altitude())) print "Messwert Channel 1:", adc1, "mV " print "Messwert Channel 2:", adc2, "mV " print "Messwert Channel 3:", adc3, "mV " print ("---------------------------------------") print("") # Reset + Delay button_pressed = False time.sleep(delayTimesleeptime)  
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()
</pre>
'''Anschlussbelegung Raspberry Pi:'''
{| style="height: 222px98px; padding-left: 30px;" width="657253"
|-
||VDDVCC
||=
||3,3V-||[Pin 01N.C]
|-
||GND
||=
||GPIO02 / SDA
||[Pin 0103]
|-
||ADDR3.3
||=
||N.C.||[-]|-||ALRT||=||N.C.||[-]|-||A0||=||Messspitze Analog 0||[Zu messende Spannung | z.B. Sensorausgang]|-||A1||=||Messspitze Analog 1||[Zu messende Spannung | z.B. Sensorausgang]|-||A2||=||Messspitze Analog 2||[Zu messende Spannung | z.B. Sensorausgang]|-||A3||=||Messspitze Analog 3,3V||[Zu messende Spannung | z.B. SensorausgangPin 01]
|}
'''Beispielprogramm Download'''
 [[Medium:KY-053_RPi_AnalogDigitalConverter052-RPi_DruckSensor_TemperaturSensor.zip|KY-053_RPi_AnalogDigitalConverter052-RPi_DruckSensor_TemperaturSensor.zip]] 
Zu starten mit dem Befehl:
<pre class="brush:bash">sudo python KY-053_RPi_AnalogDigitalConverter052-RPi_DruckSensor_TemperaturSensor.py
</pre>
Bürokrat, Administrator
611
Bearbeitungen