LK-Temp2: Unterschied zwischen den Versionen
Aus Linkerkit.de
(→Codebeispiel Arduino) |
|||
Zeile 1: | Zeile 1: | ||
==Bild== | ==Bild== | ||
− | [[Datei:LK-Temp2.jpg | + | [[Datei:LK-Temp2.jpg|none|500x500px]] |
==Technische Daten / Kurzbeschreibung== | ==Technische Daten / Kurzbeschreibung== | ||
Zeile 6: | Zeile 6: | ||
==Codebeispiel Arduino== | ==Codebeispiel Arduino== | ||
− | <pre class="brush:cpp"> | + | <pre class="brush:cpp">// Benötigte Libraries werden importiert |
− | // Benötigte Libraries werden importiert | + | #include |
− | #include | + | #include |
− | #include | + | |
// Hier wird der Eingangs-Pin deklariert, an dem das Sensor-Modul angeschlossen ist | // Hier wird der Eingangs-Pin deklariert, an dem das Sensor-Modul angeschlossen ist | ||
#define KY001_Signal_PIN 4 | #define KY001_Signal_PIN 4 | ||
Zeile 91: | Zeile 90: | ||
PIO.cleanup() | PIO.cleanup() | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | ==Downloads== | ||
+ | [[Medium:LK-Temp2_Anleitung.pdf|LK-Temp2_Anleitung (Deutsch).pdf]] | ||
+ | |||
+ | [[Medium:LK-Temp2_Manual.pdf|LK-Temp2_Manual (English).pdf]] | ||
+ | |||
+ | |||
+ | [[Medium:LK-Temp2_Arduino-Libraries.zip|LK-Temp2_Arduino-Libraries.zip]] | ||
+ | |||
+ | [[Medium:LK-Temp2_Arduino-Example.zip|LK-Temp2_Arduino-Example.zip]] | ||
+ | |||
+ | |||
+ | [[Medium:LK-Temp2_Raspberry-Example.zip|LK-Temp2_Raspberry-Example.zip]] |
Version vom 22. Februar 2017, 15:47 Uhr
Inhaltsverzeichnis
Bild
Technische Daten / Kurzbeschreibung
Chipsatz: DS18B20 | Kommunikationsprotokoll: 1-Wire
9- 12Bit genaue Temperaturmessung im Meßbereich von –55°C bis +125°C
Codebeispiel Arduino
// Benötigte Libraries werden importiert #include #include // 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); // 1s Pause bis zur nächsten Messung }
Codebeispiel Raspberry
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: PIO.cleanup()
Downloads
LK-Temp2_Anleitung (Deutsch).pdf