KY-001 Temperatur Sensor Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Codebeispiel Raspberry Pi)
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „==Bild== 250x187px ==Technische Daten / Kurzbeschreibung== Linker Kit Platine mit Beschleunigungs-/Bewe…“)
 
Zeile 1: Zeile 1:
 
==Bild==
 
==Bild==
[[Datei:KY-001.jpg|none|358x358px]]
+
[[Datei:lk_accel.png|none|250x187px]]
  
 
==Technische Daten / Kurzbeschreibung==
 
==Technische Daten / Kurzbeschreibung==
Chipsatz: DS18B20 | Kommunikationsprotokoll: 1-Wire<br /><br />9- 12Bit genaue Temperaturmessung im Meßbereich von –55°C bis +125°C
+
Linker Kit Platine mit Beschleunigungs-/Bewegungssensor
 
+
==Pin-Belegung==
+
[[Datei:3_S_V_G.png|none]]
+
  
  
  
 
==Codebeispiel Arduino==
 
==Codebeispiel Arduino==
Für das folgende Codebeispiel werden zwei zusätzliche Libraries benötigt:
+
<pre class="brush:cpp"> </pre>
 
+
- [OneWire Library] von [http://www.pjrc.com/teensy/td_libs_OneWire.html Paul Stoffregen] | veröffentlicht unter der MIT License
+
 
+
- [Dallas Temperature Control Library] von [http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library Miles Burton] | veröffentlicht unter LGPL
+
 
+
Beide Libraries sind im Paket enthalten und müssen vor dem Start der Arduino IDE in den "library"-Ordner kopiert werden.<br /><br />Diesen finden Sie standardmäßig unter dem folgenden Pfad Ihrer Windows-Installation:
+
 
+
C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries
+
 
+
<pre class="brush:cpp">// Benötigte Libraries werden importiert
+
#include <DallasTemperature.h
+
#include <OneWire.h>           
+
 
+
// Hier wird der Eingangs-Pin deklariert, an dem das Sensor-Modul angeschlossen ist
+
#define KY001_Signal_PIN 4
+
 
+
// Libraries werden konfiguriert
+
OneWire oneWire(KY001_Signal_PIN);         
+
DallasTemperature sensors(&oneWire); 
+
 
+
 
+
void setup() {
+
 
+
// Initialisierung Serielle Ausgabe
+
Serial.begin(9600);
+
Serial.println("KY-001 Temperaturmessung");
+
   
+
// Sensor wird initialisiert
+
sensors.begin(); 
+
}
+
 
+
//Hauptprogrammschleife
+
void loop()
+
{
+
// Temperaturmessung wird gestartet...
+
sensors.requestTemperatures();
+
// ... und gemessene Temperatur ausgeben
+
Serial.print("Temperatur: ");
+
Serial.print(sensors.getTempCByIndex(0));
+
Serial.write(176); // UniCode-Angabe eines char-Symbols für das "°-Symbol"
+
Serial.println("C");
+
+
delay(1000); // 5s Pause bis zur nächsten Messung
+
}
+
 
+
</pre>
+
 
+
'''Anschlussbelegung Arduino:'''
+
 
+
{| style="height: 58px; padding-left: 30px;" width="228"
+
|-
+
||Sensor Signal
+
||=
+
||[Pin 4]
+
|-
+
||Sensor +V
+
||=
+
||[Pin 5V]
+
|-
+
||Sensor -
+
||=
+
||[Pin GND]
+
|}
+
 
+
'''Beispielprogramm Download'''
+
 
+
[[Medium:KY-001-TemperaturSensor.zip|KY-001-TemperaturSensor.zip]]
+
 
+
==One-Wire Konfiguration Raspberry Pi==
+
Damit der Raspberry Pi mit dem One-Wire Bus, mit der Sensor DS18B20 seine Messdaten digital sendet, kommunizieren kann, muss dieser vorerst aktiviert werden. Hierbei muss die Datei "/boot/config.txt" editiert und um folgende Zeile ergänzt werden:
+
 
+
<pre class="brush:bash">dtoverlay=w1-gpio,gpiopin=4
+
</pre>
+
 
+
Die Datei können Sie editieren, indem Sie den Befehl...
+
 
+
<pre class="brush:bash">sudo nano /boot/config.txt
+
</pre>
+
 
+
... in die Konsole eingeben. Mit der Tastenkombination [STRG+X] können Sie das Editieren beenden und mit [STRG+Y] abspeichern.
+
 
+
Nachdem Sie den Raspberry Pi mittels...
+
 
+
<pre class="brush:bash">sudo reboot
+
</pre>
+
 
+
... neugestartet haben, können Sie das untenstehende Beispiel anwenden.
+
  
 
==Codebeispiel Raspberry Pi==
 
==Codebeispiel Raspberry Pi==
Programmierbeispiel in der Programmiersprache Python
+
<pre class="brush:py"> </pre>
 
+
<pre class="brush:py"># coding=utf-8
+
# Benoetigte Module werden importiert und eingerichtet
+
import glob
+
import time
+
from time import sleep
+
import RPi.GPIO as GPIO
+
 
+
# An dieser Stelle kann die Pause zwischen den einzelnen Messungen eingestellt werden
+
sleeptime = 1
+
 
+
# Der One-Wire EingangsPin wird deklariert und der integrierte PullUp-Widerstand aktiviert
+
GPIO.setmode(GPIO.BCM)
+
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
+
 
+
# Nach Aktivierung des Pull-UP Widerstandes wird gewartet,
+
# bis die Kommunikation mit dem DS18B20 Sensor aufgebaut ist
+
print 'Warte auf Initialisierung...'
+
 
+
base_dir = '/sys/bus/w1/devices/'
+
while True:
+
    try:
+
        device_folder = glob.glob(base_dir + '28*')[0]
+
        break
+
    except IndexError:
+
        sleep(0.5)
+
        continue
+
device_file = device_folder + '/w1_slave'
+
 
+
 
+
# Funktion wird definiert, mit dem der aktuelle Messwert am Sensor ausgelesen werden kann
+
def TemperaturMessung():
+
    f = open(device_file, 'r')
+
    lines = f.readlines()
+
    f.close()
+
    return lines
+
 
+
# Zur Initialisierung, wird der Sensor einmal "blind" ausgelesen
+
TemperaturMessung()
+
 
+
# Die Temperaturauswertung: Beim Raspberry Pi werden erkennte one-Wire Slaves im Ordner
+
# /sys/bus/w1/devices/ einem eigenen Unterordner zugeordnet. In diesem Ordner befindet sich die Datei w1-slave
+
# in dem Die Daten, die über dem One-Wire Bus gesendet wurden gespeichert.
+
# In dieser Funktion werden diese Daten analysiert und die Temperatur herausgelesen und ausgegeben
+
def TemperaturAuswertung():
+
    lines = TemperaturMessung()
+
    while lines[0].strip()[-3:] != 'YES':
+
        time.sleep(0.2)
+
        lines = TemperaturMessung()
+
    equals_pos = lines[1].find('t=')
+
    if equals_pos != -1:
+
        temp_string = lines[1][equals_pos+2:]
+
        temp_c = float(temp_string) / 1000.0
+
        return temp_c
+
 
+
# Hauptprogrammschleife
+
# Die gemessene Temperatur wird in die Konsole ausgegeben - zwischen den einzelnen Messungen
+
# ist eine Pause, deren Länge mit der Variable "sleeptime" eingestellt werden kann
+
try:
+
    while True:
+
        print '---------------------------------------'
+
        print "Temperatur:", TemperaturAuswertung(), "°C"
+
        time.sleep(sleeptime)
+
 
+
except KeyboardInterrupt:
+
    GPIO.cleanup()
+
</pre>
+
'''Anschlussbelegung Raspberry Pi:'''
+
 
+
{| style="height: 58px; padding-left: 30px;" width="228"
+
|-
+
||Signal
+
||=
+
||GPIO4
+
||[Pin 7]
+
|-
+
||+V
+
||=
+
||3,3V
+
||[Pin 1]
+
|-
+
||GND
+
||=
+
||Masse
+
||[Pin 6]
+
|}
+
  
 
'''Beispielprogramm Download'''
 
'''Beispielprogramm Download'''
  
 
[[Medium:KY-001_RPi_TemperaturSensor.zip|KY-001_RPi_TemperaturSensor.zip]]
 
[[Medium:KY-001_RPi_TemperaturSensor.zip|KY-001_RPi_TemperaturSensor.zip]]
 
Zu starten mit dem Befehl:
 
 
<pre class="brush:bash">sudo python KY-001_RPi_TemperaturSensor.py
 
</pre>
 

Aktuelle Version vom 18. August 2016, 12:59 Uhr

Bild

lk accel.png

Technische Daten / Kurzbeschreibung

Linker Kit Platine mit Beschleunigungs-/Bewegungssensor


Codebeispiel Arduino

 

Codebeispiel Raspberry Pi

 

Beispielprogramm Download

KY-001_RPi_TemperaturSensor.zip