KY-001 Capteur de température
Le thermomètre numérique DS18B20 fournit des mesures de température Celsius de 9 à 12 bits.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Le DS18B20 est un thermomètre numérique qui peut mesurer la température en degrés Celsius. Il offre différents niveaux de précision, de 9 à 12 bits. Cela signifie qu'il peut fournir des mesures très précises, un nombre de bits plus élevé permettant une mesure plus précise de la température. La plage de mesure du DS18B20 est comprise entre -55°C et +125°C, et la précision est de ±0,5°C dans la plage de -10°C à +85°C.
Le DS18B20 utilise un bus à 1 fil pour communiquer avec un microprocesseur. Cela signifie qu'une seule ligne de données est nécessaire pour échanger des informations. Le capteur peut même être alimenté par cette ligne de données, de sorte qu'aucune source d'alimentation supplémentaire n'est nécessaire. Ce mode de fonctionnement est appelé "alimentation parasite".
Chaque capteur DS18B20 possède un code série unique de 64 bits. C'est comme un numéro d'identification unique pour chaque capteur. Cela signifie que plusieurs capteurs DS18B20 peuvent être connectés au même bus 1-Wire et être reconnus et lus individuellement. Cela facilite la mise en place de réseaux avec plusieurs capteurs.
Ce capteur est particulièrement utile dans de nombreuses applications, telles que les systèmes de chauffage, de ventilation et de climatisation (HVAC), pour la surveillance de la température dans les bâtiments ou les machines, ainsi que dans les systèmes de surveillance et de contrôle des processus. D'autres applications comprennent les appareils médicaux, les systèmes de contrôle industriel et la surveillance de la température dans les systèmes de refroidissement.
En résumé, le DS18B20 offre une solution précise et flexible pour la mesure de la température avec un câblage simple et la possibilité d'intégration dans des systèmes complexes avec plusieurs capteurs.
Données techniques | |
---|---|
Chipset | DS18B20 |
Protocole de communication | 1-Wire |
Précision | 9 à 12 bits |
Plage de mesure | –55°C par +125°C |
Précision de mesure | ±0.5°C de -10°C par +85°C |
Affectation des broches
Arduino | Capteur |
---|---|
Pin 4 | Signal |
5V | +V |
GND | GND |
Exemple de code
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Les bibliothèques suivantes sont également utilisées pour l'exemple de code :
OneWire Library de Paul Stoffregen | publié sous la licence MIT
Dallas Temperature Control Library de Miles Burton | publié sous LGPL
Vous pouvez facilement ajouter ces bibliothèques via le gestionnaire de bibliothèques de l'IDE Arduino. Copiez ensuite le code ci-dessous dans votre IDE. Pour télécharger le code sur l'Arduino, il suffit de cliquer sur le bouton " Upload ".
// Importation des librairies requises
#include <OneWire.h>
#include <DallasTemperature.h>
// Déclaration de la broche d'entrée du capteur
#define KY001_Signal_PIN 4
// Configuration des libraries
OneWire oneWire(KY001_Signal_PIN);
DallasTemperature sensors(&oneWire);
void setup() {
// Initialisation de l'interface série
Serial.begin(9600);
Serial.println("KY-001 Capteur de temperature");
// Le capteur est initialisé
sensors.begin();
}
//Boucle de programme principale
void loop()
{
// Début de la mesure de la température
sensors.requestTemperatures();
// ... et affichage de la température mesurée
Serial.print("Temperature: ");
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" °C");
delay(1000); // 1s de pause avant la mesure suivante
}
Le DS18B20 est un thermomètre numérique qui peut mesurer la température en degrés Celsius. Il offre différents niveaux de précision, de 9 à 12 bits. Cela signifie qu'il peut fournir des mesures très précises, un nombre de bits plus élevé permettant une mesure plus précise de la température. La plage de mesure du DS18B20 est comprise entre -55°C et +125°C, et la précision est de ±0,5°C dans la plage de -10°C à +85°C.
Le DS18B20 utilise un bus à 1 fil pour communiquer avec un microprocesseur. Cela signifie qu'une seule ligne de données est nécessaire pour échanger des informations. Le capteur peut même être alimenté par cette ligne de données, de sorte qu'aucune source d'alimentation supplémentaire n'est nécessaire. Ce mode de fonctionnement est appelé "alimentation parasite".
Chaque capteur DS18B20 possède un code série unique de 64 bits. C'est comme un numéro d'identification unique pour chaque capteur. Cela signifie que plusieurs capteurs DS18B20 peuvent être connectés au même bus 1-Wire et être reconnus et lus individuellement. Cela facilite la mise en place de réseaux avec plusieurs capteurs.
Ce capteur est particulièrement utile dans de nombreuses applications, telles que les systèmes de chauffage, de ventilation et de climatisation (HVAC), pour la surveillance de la température dans les bâtiments ou les machines, ainsi que dans les systèmes de surveillance et de contrôle des processus. D'autres applications comprennent les appareils médicaux, les systèmes de contrôle industriel et la surveillance de la température dans les systèmes de refroidissement.
En résumé, le DS18B20 offre une solution précise et flexible pour la mesure de la température avec un câblage simple et la possibilité d'intégration dans des systèmes complexes avec plusieurs capteurs.
Données techniques | |
---|---|
Chipset | DS18B20 |
Protocole de communication | 1-Wire |
Précision | 9 à 12 bits |
Plage de mesure | –55°C par +125°C |
Précision de mesure | ±0.5°C de -10°C par +85°C |
Affectation des broches
Raspberry Pi | Capteur |
---|---|
GPIO4 [Pin 7] | Signal |
3,3V [Pin 1] | +V |
GND [Pin 6] | GND |
Exemple de code
Pour permettre au Raspberry Pi de communiquer avec le capteur DS18B20 via le bus monofilaire, il faut d'abord l'activer. Pour ce faire, entrez la commande suivante :
sudo raspi-config
Allez maintenant dans Options d'interface et activez l'interface 1-Wire. Votre Raspberry Pi devrait alors redémarrer automatiquement. Vous pouvez également utiliser la commande suivante pour redémarrer manuellement :
sudo reboot
Vous pouvez maintenant utiliser l'exemple suivant. Une sortie console est générée dès qu'un signal est détecté.
Voici un exemple de programme qui fournit la température mesurée en série après l'initialisation du capteur.
# SPDX-FileCopyrightText: 2019 Mikey Sklar for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import glob
import time
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 + 32.0
return temp_c, temp_f
while True:
print(read_temp())
time.sleep(1)
Le DS18B20 est un thermomètre numérique qui peut mesurer la température en degrés Celsius. Il offre différents niveaux de précision, de 9 à 12 bits. Cela signifie qu'il peut fournir des mesures très précises, un nombre de bits plus élevé permettant une mesure plus précise de la température. La plage de mesure du DS18B20 est comprise entre -55°C et +125°C, et la précision est de ±0,5°C dans la plage de -10°C à +85°C.
Le DS18B20 utilise un bus à 1 fil pour communiquer avec un microprocesseur. Cela signifie qu'une seule ligne de données est nécessaire pour échanger des informations. Le capteur peut même être alimenté par cette ligne de données, de sorte qu'aucune source d'alimentation supplémentaire n'est nécessaire. Ce mode de fonctionnement est appelé "alimentation parasite".
Chaque capteur DS18B20 possède un code série unique de 64 bits. C'est comme un numéro d'identification unique pour chaque capteur. Cela signifie que plusieurs capteurs DS18B20 peuvent être connectés au même bus 1-Wire et être reconnus et lus individuellement. Cela facilite la mise en place de réseaux avec plusieurs capteurs.
Ce capteur est particulièrement utile dans de nombreuses applications, telles que les systèmes de chauffage, de ventilation et de climatisation (HVAC), pour la surveillance de la température dans les bâtiments ou les machines, ainsi que dans les systèmes de surveillance et de contrôle des processus. D'autres applications comprennent les appareils médicaux, les systèmes de contrôle industriel et la surveillance de la température dans les systèmes de refroidissement.
En résumé, le DS18B20 offre une solution précise et flexible pour la mesure de la température avec un câblage simple et la possibilité d'intégration dans des systèmes complexes avec plusieurs capteurs.
Données techniques | |
---|---|
Chipset | DS18B20 |
Protocole de communication | 1-Wire |
Précision | 9 à 12 bits |
Plage de mesure | –55°C par +125°C |
Précision de mesure | ±0.5°C de -10°C par +85°C |
Affectation des broches
Micro:Bit | Capteur |
---|---|
Pin 1 | Signal |
3V | +V |
GND | GND |
Exemple de code
Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples des deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.
Pour l'exemple de code suivant, une bibliothèque supplémentaire est nécessaire :
pxt-ds18b20 de DFRobot | publié sous la licence GUI
Vous devez ajouter cette bibliothèque à votre IDE avant de pouvoir utiliser le code.
Pour ce faire, allez dans Extensions dans votre IDE et utilisez l'URL suivante https://github.com/DFRobot/pxt-ds18b20.git pour rechercher la bibliothèque à ajouter.
basic.forever(function () {
serial.writeValue("temp ", DS18B20.TemperatureNumber(DS18B20.pin.pin1))
basic.pause(1000)
serial.writeLine("temp : " + DS18B20.TemperatureString(DS18B20.pin.pin1))
basic.pause(1000)
basic.showNumber(DS18B20.TemperatureNumber(DS18B20.pin.pin1))
basic.pause(100)
})
Téléchargement d'un exemple de programme
Le DS18B20 est un thermomètre numérique qui peut mesurer la température en degrés Celsius. Il offre différents niveaux de précision, de 9 à 12 bits. Cela signifie qu'il peut fournir des mesures très précises, un nombre de bits plus élevé permettant une mesure plus précise de la température. La plage de mesure du DS18B20 est comprise entre -55°C et +125°C, et la précision est de ±0,5°C dans la plage de -10°C à +85°C.
Le DS18B20 utilise un bus à 1 fil pour communiquer avec un microprocesseur. Cela signifie qu'une seule ligne de données est nécessaire pour échanger des informations. Le capteur peut même être alimenté par cette ligne de données, de sorte qu'aucune source d'alimentation supplémentaire n'est nécessaire. Ce mode de fonctionnement est appelé "alimentation parasite".
Chaque capteur DS18B20 possède un code série unique de 64 bits. C'est comme un numéro d'identification unique pour chaque capteur. Cela signifie que plusieurs capteurs DS18B20 peuvent être connectés au même bus 1-Wire et être reconnus et lus individuellement. Cela facilite la mise en place de réseaux avec plusieurs capteurs.
Ce capteur est particulièrement utile dans de nombreuses applications, telles que les systèmes de chauffage, de ventilation et de climatisation (HVAC), pour la surveillance de la température dans les bâtiments ou les machines, ainsi que dans les systèmes de surveillance et de contrôle des processus. D'autres applications comprennent les appareils médicaux, les systèmes de contrôle industriel et la surveillance de la température dans les systèmes de refroidissement.
En résumé, le DS18B20 offre une solution précise et flexible pour la mesure de la température avec un câblage simple et la possibilité d'intégration dans des systèmes complexes avec plusieurs capteurs.
Données techniques | |
---|---|
Chipset | DS18B20 |
Protocole de communication | 1-Wire |
Précision | 9 à 12 bits |
Plage de mesure | –55°C par +125°C |
Précision de mesure | ±0.5°C de -10°C par +85°C |
Affectation des broches
Raspberry Pi Pico | Capteur |
---|---|
GPIO2 | Signal |
3,3V | +V |
GND | GND |
Exemple de code
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner ***Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) ***.
Les bibliothèques suivantes sont utilisées pour l'exemple de code:
Bibliothèque OneWire de Damien P. George | publié sous la Licence du MIT.
Bibliothèque DS18X20 de Damien P. George | publiée sous la Licence du MIT.
Pour utiliser ces bibliothèques, vous devez télécharger les fichiers py liés ci-dessus et les charger sur le Pico dans un dossier appelé lib (vous devez le créer si nécessaire). Ensuite, vous pouvez maintenant copier le code ci-dessous dans votre IDE et cliquer sur Run.
Il s'agit d'un programme d'exemple qui sort la température mesurée en série après l'initialisation du capteur.
# Charger des bibliothèques
import machine, onewire, ds18x20
from time import sleep
# Initialisation de GPIO10
ds_pin = machine.Pin(10)
# Initialisation de la DS18B20
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
# Recherche de tous les capteurs correspondants
roms = ds_sensor.scan()
# Sortie en série
print("KY-001 Mesure de la température")
# Boucle infinie pour une lecture permanente de la température
while True:
ds_sensor.convert_temp()
sleep(1)
# En fonction du nombre de capteurs compatibles trouvés, le décompte est élevé
for rom in roms:
# Sortie sérielle de la température mesurée
print("Température:", round(ds_sensor.read_temp(rom), 2), "°C")
sleep(1)