Technologie des capteurs de température

Sonde de capteur DS18B20 personnalisée & 1-Assemblage de câbles métalliques

Capteur de température DS18B20, câble étanche à 1 fil + jeu de cartes d'adaptation

Nous proposons une large gamme des meilleurs connecteurs de capteur DS18B20 à 1 fil, y compris Nanoflex, DisplayPort, USB, Solaire, SATA, HDMI, C'EST UNE IDÉE, SAS & bien d'autres. Tous les câbles sont fabriqués selon les normes industrielles les plus élevées. L'utilisation de l'assemblage de circuits de capteurs pour les constructions de boîtes vous permet de vous concentrer sur votre conception et votre marketing., réduire les coûts, et profitez des avantages de nos lignes d’assemblage, Processus d'assurance qualité, et expertise en fabrication.

Le capteur DS18B20 communique à l'aide du “1-Fil” protocole, ce qui signifie qu'il utilise une seule ligne de données pour toutes les communications avec un microcontrôleur, permettant à plusieurs capteurs d'être connectés sur la même ligne et identifiés par leur code série unique de 64 bits; cette ligne de données unique est tirée vers le haut avec une résistance et le capteur transmet les données en tirant la ligne vers le bas pendant des plages horaires spécifiques pour envoyer des bits d'informations.

Capteur de température DS18B20: La sonde étanche DS18B20 est conçue pour une utilisation sous-marine, capable de fonctionner dans des environnements humides ou humides sans être endommagé par l'eau ou l'humidité.
Tension d'alimentation du capteur de température: 3.0V ~ 5,25 V;
Plage de température de fonctionnement:-55 ℃ à +125 ℃ (-67 ℉ à +257 ℉);
Fournit des mesures de température Celsius de 9 bits à 12 bits;
Le module adaptateur est équipé d'une résistance de rappel, et se connecte directement au GPIO du Raspberry Pi sans résistance externe;
Utilisez ce kit de module adaptateur pour simplifier la connexion du capteur de température étanche à votre projet.

Sonde de capteur de température numérique DS18B20 & Module XH2.54 à PH2.0

Sonde de capteur de température numérique DS18B20 & Module XH2.54 à PH2.0

Capteur de température TO-92 d'acquisition de température à puce DS18B20 fabriqué en Chine

Capteur de température TO-92 d'acquisition de température à puce DS18B20 fabriqué en Chine

Capteur de température DS18B20, câble étanche à 1 fil + jeu de cartes d'adaptation

Capteur de température DS18B20, câble étanche à 1 fil + jeu de cartes d'adaptation

1. Points clés du protocole 1-Wire:
Ligne de données unique:
Un seul fil est nécessaire pour la communication entre le capteur et le microcontrôleur.
Communication semi-duplex:
Les données peuvent être envoyées dans les deux sens, mais une seule direction à la fois.
Pouvoir parasitaire:
Le DS18B20 peut être alimenté directement depuis la ligne de données pendant la communication, éliminant le besoin d'une alimentation séparée dans certains cas.
Adresses d'appareils uniques:
Chaque capteur DS18B20 possède un code série unique de 64 bits qui permet au microcontrôleur d'identifier et d'adresser des capteurs individuels sur le bus..
Étapes de communication avec un DS18B20:
1.1 Réinitialiser le pouls:
Le microcontrôleur initie la communication en tirant la ligne de données vers le bas pendant une durée spécifique (réinitialiser le pouls).
1.2 Impulsion de présence:
Si un DS18B20 est présent sur le bus, il répondra par une courte impulsion, indiquant sa présence.
1.3 Commande ROM:
Le microcontrôleur envoie une commande ROM pour lire le code unique de 64 bits d'un capteur spécifique (“Match ROM”) ou pour adresser tous les capteurs du bus (“Salle de navire”).
1.4 Commande de fonction:
Selon l'opération souhaitée (comme lire la température), le microcontrôleur envoie une commande de fonction spécifique au capteur.
1.5 Transfert de données:
Les données sont transmises bit par bit, avec le capteur tirant la ligne de données vers le bas pour envoyer un ‘0’ et laisser la ligne monter pour envoyer un '1'.

2. Explication détaillée du protocole de communication 1-Wire du DS18B20
La raison pour laquelle les capteurs DS18B20 sont largement utilisés est en grande partie due à son protocole de communication unique. – 1-Protocole de communication filaire. Ce protocole simplifie les exigences en matière de connexions matérielles et fournit un moyen efficace de transmettre des données. Ce chapitre analysera en profondeur le mécanisme de travail et le processus d'échange de données du protocole de communication à 1 ligne afin de jeter une base solide pour la pratique de programmation ultérieure..
2.1 Bases du protocole de communication 1 fil
2.1.1 Caractéristiques du protocole de communication à 1 fil:
Le protocole de communication DS18B20 à 1 fil est également appelé “bus unique” technologie. Il a les caractéristiques suivantes: – Communication par bus unique: Une seule ligne de données est utilisée pour la transmission de données bidirectionnelle, ce qui réduit considérablement la complexité du câblage par rapport à la méthode de communication traditionnelle des capteurs multifils. – Connexion multi-appareils: Prend en charge la connexion de plusieurs appareils sur un seul bus de données, et identifie et communique via des codes d'identification de l'appareil. – Faible consommation d'énergie: Pendant la communication, l'appareil peut être dans un état de veille à faible consommation lorsqu'il ne participe pas à la communication. – Haute précision: Avec un temps de transmission de données plus court, il peut réduire les interférences externes et améliorer la précision des données.
2.1.2 Format des données et analyse temporelle de la communication 1 fil
Le format de données du protocole de communication 1 fil suit une règle de synchronisation spécifique. Il comprend le timing d'initialisation, timing d'écriture et timing de lecture:
Calendrier d'initialisation: L'hôte démarre d'abord le timing de détection de présence (Impulsion de présence) en arrêtant le bus pendant un certain temps, et le capteur envoie alors une impulsion de présence en réponse.
Synchronisation d'écriture: Lorsque l'hôte envoie un timing d'écriture, il arrête d'abord le bus pendant environ 1-15 microsecondes, puis libère le bus, et le capteur abaisse le bus 60-120 microsecondes pour répondre.
Lire le timing: L'hôte demande au capteur d'envoyer des données en abaissant le bus et en le relâchant, et le capteur émettra le bit de données sur le bus après un certain délai.

Appareils analogiques DS18B20+, Thermomètre numérique à 1 fil à résolution programmable MAXIM

Appareils analogiques DS18B20+, Thermomètre numérique à 1 fil à résolution programmable MAXIM

DS18B20 Capteur de température numérique 12 bits à 1 fil avec 1 Câble de compteur

DS18B20 Capteur de température numérique 12 bits à 1 fil avec 1 Câble de compteur

Sonde capteur DS18B20 dédiée à la collecte de température et d'humidité dans les entrepôts frigorifiques de la chaîne du froid

Sonde capteur DS18B20 dédiée à la collecte de température et d'humidité dans les entrepôts frigorifiques de la chaîne du froid

2.2 Implémentation logicielle de communication de données
2.2.1 Initialisation et réinitialisation de la communication 1 ligne
Au niveau logiciel, l'initialisation et la réinitialisation de la communication 1-Wire constituent la première étape de la communication. Voici le pseudo-code pour implémenter ce processus:

// Fonction d'initialisation de la communication OneWire
annuler OneWire_Init() {
// Réglez le bus en mode d'entrée et activez la résistance de rappel.
DéfinirPinMode(DS18B20_PIN, INPUT_PULLUP);
// Attendez que le bus soit inactif
RetardMicrosecondes(1);
// Envoyer une impulsion de réinitialisation
OneWire_Reset();
}

// Fonction de réinitialisation de la communication OneWire
annuler OneWire_Reset() {
// Descendez le bus
DéfinirPinMode(DS18B20_PIN, SORTIE_LOW);
RetardMicrosecondes(480);
// Libérer le bus
DéfinirPinMode(DS18B20_PIN, INPUT_PULLUP);
RetardMicrosecondes(70);
// Attendre la présence d'un pouls
si (!WaitForOneWirePresence())
// Aucun pouls n'a été détecté, peut-être que le capteur n'est pas connecté ou que l'initialisation a échoué
Erreur de poignée();
RetardMicrosecondes(410);
}

// En attente de la présence d'un pouls
bool WaitForOneWirePresence() {
retourner ReadPin(DS18B20_PIN) == 0; // Supposons que le niveau bas soit une présence de signal
}

2.2.2 Opérations de lecture et d'écriture de données

Les opérations de lecture et d’écriture des données sont au cœur de la communication des capteurs. Le code suivant montre comment écrire un octet sur un bus unifilaire:
// Écrire un octet sur un bus unifilaire
annuler OneWire_WriteByte(données d'octet) {
pour (int je = 0; je < 8; je++) {
OneWire_WriteBit(données & 0x01);
données >>= 1;
}
}

// Écrivez un peu sur un bus monofilaire
annuler OneWire_WriteBit(données binaires) {
DéfinirPinMode(DS18B20_PIN, SORTIE_LOW);
si (données) {
// Relâchez le bus lors de l'écriture 1
DéfinirPinMode(DS18B20_PIN, INPUT_PULLUP);
RetardMicrosecondes(1);
} autre {
// Continuez à tirer le bus vers le bas lorsque vous écrivez 0
RetardMicrosecondes(60);
}
DéfinirPinMode(DS18B20_PIN, INPUT_PULLUP);
RetardMicrosecondes(1);
}

Vient ensuite la fonction pour lire un octet:
// Lire un octet sur le bus unifilaire
octet OneWire_ReadByte() {
données d'octet = 0;
pour (int je = 0; je < 8; je++) {
données >>= 1;
si (OneWire_ReadBit())
données |= 0x80;
}
Retour des données;
}

// Lisez un peu du bus à un fil
bit OneWire_ReadBit() {
DéfinirPinMode(DS18B20_PIN, SORTIE_LOW);
DéfinirPinMode(DS18B20_PIN, INPUT_PULLUP);
RetardMicrosecondes(3);
résultat booléen = ReadPin(DS18B20_PIN);
RetardMicrosecondes(57);
résultat de retour;
}

2.2.3 Mécanisme de vérification de la communication OneWire

Le protocole de communication OneWire utilise un mécanisme de vérification simple dans le processus d'échange de données, généralement en relisant les données écrites pour vérifier l'exactitude des données. Ce qui suit est un exemple de code pour vérifier les données écrites:

données d'octet = 0x55; // Supposons que les données à envoyer

OneWire_WriteByte(données); // Écrire des données sur le bus OneWire

octet readData = OneWire_ReadByte(); // Relisez les données du bus OneWire

si (lire les données != données) {
Erreur de poignée(); // Si les données relues ne correspondent pas aux données écrites, gérer l'erreur