Table des matières:
- Étape 1: Histoire derrière…
- Étape 2: Comment ça marche
- Étape 3: Matériel et outils
- Étape 4: Réparez les choses ensemble
- Étape 5: câbler les choses ensemble
- Étape 6: Connexion des capteurs
- Étape 7: Logiciel du contrôleur
- Étape 8: Conclusion
Vidéo: Contrôleur de réseau de capteur de température tolérant aux pannes : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Ce Instructable vous montre comment convertir une carte Arduino Uno en un contrôleur à usage unique pour un ensemble de capteurs de température DS18B20 capables d'isoler automatiquement les capteurs défectueux.
Le contrôleur peut gérer jusqu'à 8 capteurs avec Arduino Uno. (Et bien plus avec Arduino Mega ou avec une légère modification logicielle.)
Étape 1: Histoire derrière…
Il y a quelques années, j'ai installé un réseau de capteurs de température DS18B20 dans la serre de mon père pour mon contrôleur de chauffage basé sur pi. Malheureusement, la fiabilité du contrôleur était médiocre, principalement en raison de pannes fréquentes des capteurs. J'ai essayé plusieurs configurations - alimentation parasite, alimentation directe, connexion du réseau à pi ainsi que connexion à une carte personnalisée basée sur Atmega (dont le but principal était de piloter des moteurs de vanne).
Pire, la fiabilité du réseau de capteurs a baissé principalement pendant les nuits d'hiver alors qu'il n'y avait quasiment aucun problème en été ! Mais qu'est ce qu'il se passe ici?
Pour déterminer quel capteur est à l'origine du problème, il est apparu nécessaire de les activer/désactiver un par un ou d'activer n'importe quelle combinaison d'entre eux.
Étape 2: Comment ça marche
DS18B20 (le capteur de température) utilise un protocole propriétaire à 1 fil qui permet à plusieurs capteurs de partager une liaison de données commune (ce fil). Cette liaison de données commune est connectée à l'une des broches GPIO d'Arduino et à + 5 V via une résistance de rappel - rien de rare, de nombreux instructables couvrent cette configuration.
L'astuce est que les fils d'alimentation de chaque capteur sont connectés à leurs propres broches GPIO (dédiées), de sorte qu'ils peuvent être allumés et éteints séparément. Par exemple, si un capteur a un fil Vcc connecté à la broche #3 et GND à la broche #2, le réglage de la broche #3 sur HIGH alimente le capteur (pas de surprise) tandis que le réglage de la broche #2 sur LOW fournit la masse (une petite surprise pour moi). Le réglage des deux broches en mode d'entrée isolera (presque) complètement le capteur et son câblage - quelle que soit la panne (par exemple un raccourci) qui se produit à l'intérieur, cela n'interférera pas avec les autres.
(Il est juste de dire que connecter le fil de données à quelque chose d'autre connecté d'une manière ou d'une autre à Arduino provoquera effectivement des interférences, mais c'est presque impossible dans ma configuration).
Notez que le DS18B20 consomme jusqu'à 1, 5 mA tandis qu'une broche Arduino peut générer / absorber jusqu'à 40 mA, il est donc parfaitement sûr d'alimenter les capteurs directement par les broches GPIO.
Étape 3: Matériel et outils
Matériel
- 1 carte Arduino UNO
- 3 en-têtes à broches femelles: 1 × 4, 1 × 6 et 1 × 6 (ou plus long - je les ai coupés d'un en-tête 1 × 40)
- une colle
- un morceau de fil de cuivre nu (au moins 10 cm)
- un ruban isolant
- consommables de soudure (fil, flux…)
Outils
- matériel de soudure (fer, supports, …)
- petite pince coupante
Étape 4: Réparez les choses ensemble
Collez les en-têtes de broches femelles sur les en-têtes de la carte Arduino:
- En-tête 1 × 4 à côté de l'en-tête de broche "analogique", côte à côte avec les broches A0-A4
- En-tête 1 × 6 à côté du premier en-tête de broche numérique, côte à côte avec les broches 2 à 7
- En-tête 1 × 6 à côté du deuxième en-tête de broche numérique, côte à côte avec les broches 8 à 13
Notez que mes en-têtes sont un peu plus longs… cela n'a ni contre ni pour, je suppose.
Étape 5: câbler les choses ensemble
Câblage de la ligne de bus 1 fil:
- Connectez tous les fils des en-têtes collés du côté « numérique » (à côté des broches 2 à 13) en leur soudant un morceau de fil nu
- Soudez l'extrémité de ce fil au fil à broche SCL (connecté en interne à A5)
- Connectez tous les fils de l'en-tête collé du côté « analogique » (broches A0-A3) en y soudant un morceau de fil nu
- Soudez l'extrémité de ce fil aux fils A4 et A5 (j'ai utilisé A5 et A6 car j'ai une carte qui a A6 et A7)
- Soudez une résistance 4k7 entre l'autre extrémité de ce fil et la broche +5 V
Remarques:
- Les broches A0 à A5, bien qu'étant marquées « analogiques », peuvent également être utilisées comme broches numériques GPIO.
- La broche SCL du côté « numérique » est connectée en interne à A5 du côté « analogique »; connecté aux en-têtes, cela forme la ligne de bus à 1 fil
- A4 (utilisé comme entrée analogique) mesure la tension du bus à des fins de diagnostic. C'est la raison pour laquelle il est directement connecté au bus.
- J'ai utilisé A6 au lieu de A4 car j'ai une carte qui a A6 et A7; à l'origine, je voulais utiliser A7 comme maître de bus à 1 fil, mais ces deux broches ne peuvent pas être configurées pour être des GPIO numériques.
- Pour éviter une mauvaise connexion des connecteurs du capteur, vous pouvez omettre / couper le contact inutilisé (non connecté à un fil) de chaque connecteur mâle et l'insérer dans le trou correspondant de l'embase à broche collée.
Étape 6: Connexion des capteurs
Vous venez de créer un tableau de huit sockets 2×2. Vous pouvez souder et assembler des connecteurs 2×2 Dupont aux câbles des capteurs et les connecter à ces prises. Le logiciel configure les broches de sorte que les broches paires soient des broches GND et les broches impaires soient des broches Vcc. Pour chaque capteur, la broche Vcc est juste la broche GND + 1. L'une des deux autres broches de la prise 2 × 2 (l'une de ces deux dans l'en-tête collé et soudé) est destinée au fil de données du capteur. Peu importe ce que vous utilisez.
Étape 7: Logiciel du contrôleur
L'esquisse SerialThermometer exécute le contrôleur. Vous pouvez le trouver sur github. Ouvrez et téléchargez à l'aide d'Arduino IDE.
Pas à pas:
- Ouvrez votre IDE Arduino et installez la bibliothèque DallasTemperature et toutes ses dépendances via Sketch | Inclure la bibliothèque | Gérer les bibliothèques.
- Cloner le dépôt git. Si vous n'êtes pas familier avec git, téléchargez et décompressez ce zip n'importe où sur votre ordinateur.
- Ouvrez le croquis SerialThermometer dans votre IDE Arduino.
- Connectez votre carte Arduino modifiée à votre ordinateur par câble USB (voie standard)
- Téléchargez le croquis à l'aide de votre IDE Arduino
- Ouvrir Serial Monitor via Outils | Moniteur série
- Vous devriez voir une sortie de diagnostic contenant plusieurs mesures physiques suivies de lectures de température - chaque prise de capteur sur une seule ligne. Si le nombre de capteurs diffère lorsqu'ils sont allumés séparément et lorsqu'ils sont tous allumés ensemble), le diagnostic boucle jusqu'à ce qu'il soit résolu. Mais ne vous inquiétez pas, le diagnostic fournit également des mesures de température !
Voir l'image annotée pour plus de détails sur la sortie de diagnostic.
Étape 8: Conclusion
J'ai le fort sentiment que les pannes de mon réseau de capteurs ont été causées par la capacité élevée de mon long câblage - environ 10 m de câble LIYY 314 (3 × 0, 14 mm²) pour chaque capteur. Mes expériences ont montré que la communication se rompt s'il y a une capacité supérieure ou égale à 0,01 F entre le bus 1 fil et la terre, je pense que la résistance de rappel 4k7 n'est pas capable de tirer le bus à + 5 V assez rapidement pour se conformer aux limites du protocole.
Dans ma configuration, cela se produit lorsque plus de 3 capteurs sont connectés ensemble. Ensuite, le contrôleur boucle en cycle de diagnostic, mesurant la température capteur par capteur (ce qui est cool aussi…)
Mais aussi le 5ème capteur (28:ff:f2:41:51:17:04:31) a l'air assez malade (peut-être une mauvaise soudure), donc je peux approfondir mes recherches !
Conseillé:
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon 433 mhz : 6 étapes
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon à 433 mhz : il s'agit de la construction d'un capteur de température et d'humidité à énergie solaire. Le capteur émule un capteur Oregon de 433 mhz et est visible dans la passerelle Telldus Net. Capteur de mouvement à énergie solaire" d'Ebay. Assurez-vous qu'il est écrit 3.7v pâte
Capteur de température du réseau domestique : 7 étapes
Capteur de température du réseau domestique : que devez-vous savoir pour réaliser ce projet : arduino.esp8266.com/stable/package_esp8266…) - mise à jour
Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : 8 étapes
Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : De nos jours, les fabricants et les développeurs préfèrent Arduino pour le développement rapide du prototypage de projets. Arduino est une plate-forme électronique open source basée sur du matériel et des logiciels faciles à utiliser. Arduino a une très bonne communauté d'utilisateurs. Dans ce projet
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : 4 étapes
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : Salut les fabricants, j'ai récemment commencé à cultiver des champignons à la maison, des pleurotes, mais j'ai déjà 3x de ces contrôleurs à la maison pour le contrôle de la température du fermenteur pour ma bière maison, femme fait aussi ce truc de Kombucha maintenant, et en tant que thermostat pour la chaleur
Contrôleur de réseau IoT. Partie 9 : IoT, domotique : 10 étapes (avec photos)
Contrôleur de réseau IoT. Partie 9 : IoT, domotique : avis de non-responsabilitéLIRE CECI EN PREMIERCe document détaille un projet qui utilise l'alimentation secteur (dans ce cas UK 240VAC RMS), tandis que toutes les précautions ont été prises pour utiliser des pratiques sûres et de bons principes de conception, il y a toujours un risque potentiellement mortel élire