Änderungen

KY-001 Temperatur Sensor Modul

5.276 Byte entfernt, 12:59, 18. Aug. 2016
Der Seiteninhalt wurde durch einen anderen Text ersetzt: „==Bild== [[Datei:lk_accel.png|none|250x187px]] ==Technische Daten / Kurzbeschreibung== Linker Kit Platine mit Beschleunigungs-/Bewe…“
==Bild==
[[Datei:KY-001lk_accel.jpgpng|none|358x358px250x187px]]
==Technische Daten / Kurzbeschreibung==
Chipsatz: DS18B20 | Kommunikationsprotokoll: 1Linker Kit Platine mit Beschleunigungs-Wire<br /><br />9- 12Bit genaue Temperaturmessung im Meßbereich von –55°C bis +125°C ==Pin-Belegung==[[Datei:3_S_V_G.png|none]]Bewegungssensor
==Codebeispiel Arduino==
Für das folgende Codebeispiel werden zwei zusätzliche Libraries benötigt: - [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 konfiguriertOneWire 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(); } //Hauptprogrammschleifevoid 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==
Programmierbeispiel in der Programmiersprache Python <pre class="brush:py"># coding=utf-8# Benoetigte Module werden importiert und eingerichtetimport globimport timefrom time import sleepimport RPi.GPIO as GPIO # An dieser Stelle kann die Pause zwischen den einzelnen Messungen eingestellt werdensleeptime = 1 # Der One-Wire EingangsPin wird deklariert und der integrierte PullUp-Widerstand aktiviertGPIO.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 istprint '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) continuedevice_file = device_folder + '/w1_slave'  # Funktion wird definiert, mit dem der aktuelle Messwert am Sensor ausgelesen werden kanndef TemperaturMessung(): f = open(device_file, 'r') lines = f.readlines() f.close() return lines # Zur Initialisierung, wird der Sensor einmal "blind" ausgelesenTemperaturMessung() # 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 ausgegebendef 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 kanntry: 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'''
[[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>
Administrator
403
Bearbeitungen