KY-001 Temperatur Sensor Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Codebeispiel Arduino)
Zeile 7: Zeile 7:
 
==Pin-Belegung==
 
==Pin-Belegung==
 
[[Datei:3_S_V_G.png|none]]
 
[[Datei:3_S_V_G.png|none]]
 +
  
  
 
==Codebeispiel Arduino==
 
==Codebeispiel Arduino==
<pre class="brush:cpp"># Include <OneWire.h>
+
Für das folgende Codebeispiel werden zwei zusätzliche Libraries benötigt:
OneWire ds (10); // on pin 10<br />
+
 
void setup (void) <br />{
+
- [OneWire Library] von [http://www.pjrc.com/teensy/td_libs_OneWire.html Paul Stoffregen] | veröffentlicht unter der MIT License
    // Initialize inputs / outputs
+
 
    // Start serial port
+
- [Dallas Temperature Control Library] von [http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library Miles Burton] | veröffentlicht unter LGPL
    Serial.begin (9600);
+
 
}<br />
+
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:
void loop (void) {
+
 
    byte i;
+
C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries
    byte present = 0;
+
 
    byte data [12];
+
<pre class="brush:cpp">// Benötigte Libraries werden importiert
    byte addr [8];
+
#include
    int Temp;
+
#include           
    if (! ds.search (addr)) {
+
 
        // Serial.print ("No more addresses.");
+
// Hier wird der Eingangs-Pin deklariert, an dem das Sensor-Modul angeschlossen ist
        ds.reset_search ();
+
#define KY001_Signal_PIN 4
        return;
+
 
     }
+
// Libraries werden konfiguriert
    Serial.print ("R ="); // R = 28 Not sure what this is
+
OneWire oneWire(KY001_Signal_PIN);        
    for (i = 0; i <8; i    ) {
+
DallasTemperature sensors(&oneWire);  
        Serial.print (addr [i], HEX);
+
 
        Serial.print ("");
+
 
    }
+
void setup() {
    if (OneWire :: crc8 (addr, 7)! = addr [7]) {
+
 
        Serial.print ("CRC is not valid!");
+
// Initialisierung Serielle Ausgabe
        return;
+
Serial.begin(9600);
    }
+
Serial.println("KY-001 Temperaturmessung");
    if (addr [0]! = 0x28) {
+
      
        Serial.print ("Device is not a DS18S20 family device.");
+
// Sensor wird initialisiert
        return;
+
sensors.begin();
    }
+
}
    ds.reset ();
+
 
 +
//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
 
}
 
}
  
Zeile 52: Zeile 65:
 
||Sensor Signal
 
||Sensor Signal
 
||=
 
||=
||[Pin 10]
+
||[Pin 4]
 
|-
 
|-
 
||Sensor +V
 
||Sensor +V
Zeile 62: Zeile 75:
 
||[Pin GND]
 
||[Pin GND]
 
|}
 
|}
 +
 +
'''Beispielprogramm Download'''
 +
 +
[[Medium:KY-001-TemperaturSensor.zip|KY-001-TemperaturSensor.zip]]
  
 
==Codebeispiel Raspberry Pi==
 
==Codebeispiel Raspberry Pi==

Version vom 22. April 2016, 14:16 Uhr

Bild

KY-001.jpg

Technische Daten / Kurzbeschreibung

Chipsatz: DS18B20 | Kommunikationsprotokoll: 1-Wire

9- 12Bit genaue Temperaturmessung im Meßbereich von –55°C bis +125°C

Pin-Belegung

3 S V G.png


Codebeispiel Arduino

Für das folgende Codebeispiel werden zwei zusätzliche Libraries benötigt:

- [OneWire Library] von Paul Stoffregen | veröffentlicht unter der MIT License

- [Dallas Temperature Control Library] von 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.

Diesen finden Sie standardmäßig unter dem folgenden Pfad Ihrer Windows-Installation:

C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries

// 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);	// 5s Pause bis zur nächsten Messung
}

Anschlussbelegung Arduino:

Sensor Signal = [Pin 4]
Sensor +V = [Pin 5V]
Sensor - = [Pin GND]

Beispielprogramm Download

KY-001-TemperaturSensor.zip

Codebeispiel Raspberry Pi

Programmierbeispiel in der Programmiersprache Python

# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist. Zusaetzlich wird auch der PullUP Widerstand am Eingang aktiviert
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
 
print "Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]"
 
# Diese AusgabeFunktion wird bei Signaldetektion ausgefuehrt
def ausgabeFunktion(null):
        print("Signal erkannt")
 
# Beim Detektieren eines Signals (fallende Signalflanke) wird die Ausgabefunktion ausgeloest
GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=ausgabeFunktion, bouncetime=100) 
 
# Hauptprogrammschleife
try:
        while True:
                time.sleep(1)
 
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
        GPIO.cleanup()

Anschlussbelegung Raspberry Pi:

Signal = GPIO24 [Pin 18]
+V = 3,3V [Pin 1]
GND = Masse [Pin 6]

Beispielprogramm Download

SensorTest_RPi.zip

Zu starten mit dem Befehl:

sudo python SensorTest_RPi.py