Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Breakout compact DHT Température & Humidité pour Raspberry Pi – ATtiny85 & DHT22/DHT11

Composants matériels : Atmel ATTiny85 × 1, Capteur température DHT22 × 1, Capteur température & humidité DHT11 × 1, Programmeur Tiny AVR SparkFun × 1, Résistance Adafruit 4,7K Ω × 3, Résistance Adafruit 10K Ω × 1, Résistance Adafruit 100 Ω × 1, LED bleue diffuse 3mm Adafruit × 1, Interrupteur tactile Adafruit × 1, Barrette male 0,1″ 36 broches cassable 1 pièce @ longueur 6, 1 pièce @ longueur 2 (total 8 broches) × 1, Jumper générique (0,1″) × 1, Arduino UNO & Genuino UNO Optionnel – pour débogage et test. × 1 Applications logicielles et services en ligne : Microsoft Visual Studio 2015, Microsoft Windows 10 IoT Core, Arduino IDE

HISTOIRE

Introduction

Les DHT11 et DHT22 sont des capteurs de température et d'humidité populaires grâce à leur précision à très faible coût. Un problème avec eux, cependant, est qu'ils fonctionnent sur un protocole one-wire propriétaire qui nécessite un timing précis. Ces capteurs se sont avérés difficiles à lire sur des cartes avec systèmes d'exploitation non temps-réel.

Il y a un moment, j'ai posté un article intitulé « DHT11 /DHT22 Temperature Sensor » démontrant comment utiliser l'exemple de code C++ Microsoft depuis C# pour lire ces capteurs. La bibliothèque arrivait à obtenir une lecture mais j'ai dû ajouter une logique de retry pour la rendre plus fiable. Cela a fonctionné pour la plupart mais certaines personnes avaient des problèmes pour le faire fonctionner de manière cohérente.

Compte tenu de l'intérêt pour l'utilisation de ces capteurs sur Raspberry Pi sous Windows 10 IoT Core, j'ai décidé de créer une seconde option qui fournit une méthode très fiable de lecture de ces capteurs tout en maintenant un faible coût.

Aperçu

L'approche présentée ici consiste à attacher le capteur DHT à un ATtiny85 peu coûteux et à le configurer en périphérique esclave I2C. Cela est accompli en utilisant la bibliothèque TinyWireS et en créant un ensemble de registres qui peuvent être lus et écrits pour interagir avec le dispositif.

Le dispositif supporte les fonctions suivantes :

Le code source

Il y a trois ensembles de code dans ce projet. Le firmware principal pour la carte, un sketch maître Arduino utilisé pour tester et démontrer la carte connectée à un Arduino Uno et l'application Windows 10 IoT Code qui montre comment utiliser le dispositif depuis le Raspberry Pi. Tout le code est disponible dans le dépôt GitHub lié.

Le dispositif/circuit

Le circuit est petit et n'utilise que quelques composants peu coûteux. L'ATtiny85 peut être acheté auprès de plusieurs vendeurs. Je recommande d'en prendre quelques-uns car ils ont de nombreuses utilisations utiles.

Le circuit a un connecteur six broches qui permet de le connecter soit à un autre circuit soit directement au Raspberry Pi. Les broches sont définies comme suit :

Il y a aussi un connecteur deux broches où un jumper peut être ajouté pour activer, ou retiré pour désactiver la LED embarquée.

Lors de l'utilisation dans un projet plus large, le circuit pour le DHT Tiny peut être fusionné ou embarqué dans le circuit existant du projet. Dans ce cas, les broches d'en-tête et la LED sont optionnelles.

Le circuit peut aussi être construit sur une carte séparée et connecté à votre Raspberry Pi avec quelques fils ou un câble de connexion.

Programmation de l'ATtiny85

Chargez le sketch appelé DHT_Tiny_Breakout.ino sur l'ATtiny85 en utilisant votre programmeur AVR. Si vous n'avez pas de programmeur, vous pouvez utiliser un Arduino Uno (ou carte similaire). Jetez un œil à un ou plusieurs des articles listés ci-dessous pour de l'aide.

J'utilise le programmeur Tiny AVR SparkFun pour charger mon ATtiny85.

Je fais tourner ma puce à 16 MHz. Voir mon article « ATtiny @ 16MHz » pour les instructions.

Quand vous utilisez l'ATtiny85, le sketch esclave nécessite la bibliothèque TinyWireS installée dans votre dossier libraries. Cette bibliothèque peut être téléchargée depuis https://github.com/rambo/TinyWire.

Câblage sur breadboard

La première étape est de faire fonctionner le DHT Tiny sur une breadboard. En utilisant une demi-breadboard, construisez le circuit en suivant le schéma et les diagrammes breadboard inclus dans le projet.

Voici quelques astuces pour faciliter :

Ci-dessous quelques images de la version breadboard de mon DHT Tiny.

Connexion à l'Arduino Uno

Si vous êtes intéressé par un test rapide, une démonstration, ou si vous avez des difficultés à faire fonctionner cela avec votre Raspberry Pi, vous pouvez connecter le DHT Tiny à un Arduino Uno (ou dispositif similaire).

Chargez et exécutez le sketch nommé DHT_Tiny_Master.ino. Ce sketch affichera la sortie dans le Moniteur Série.

Lors de la connexion I2C entre les deux cartes, il est important d'avoir des résistances de pull-up sur les lignes SDA et SCL. Dans ce circuit, il y a deux résistances 4,7K Ω connectées entre les broches et 5V.

Ci-dessous quelques images du DHT Tiny sur breadboard connecté à l'Arduino Uno.

Connexion au Raspberry Pi

Si vous êtes intéressé par un test rapide, une démonstration, ou si vous avez des difficultés à faire fonctionner cela avec votre Raspberry Pi, vous pouvez connecter le DHT Tiny à un Arduino Uno (ou dispositif similaire).

Lors de la connexion I2C entre les deux cartes, il est important d'avoir des résistances de pull-up sur les lignes SDA et SCL. Dans ce circuit, il y a deux résistances 4,7K Ω connectées entre les broches et 3V3.

TRÈS IMPORTANT ! La carte DHT Tiny sera alimentée par la broche 5V du Raspberry Pi, mais les résistances de pull-up doivent être connectées à la broche 3V3 du Raspberry Pi (3V3 est sur les broches 1 et 17).

Ci-dessous quelques images du DHT Tiny sur breadboard connecté au Raspberry Pi 3.

Exécution de l'application Windows 10

Récupérez le code depuis le lien du dépôt GitHub au bas du projet et décompressez-le sur votre ordinateur. Ouvrez le code source de l'application universelle dans Visual Studio 2015 et déployez-le sur le Raspberry Pi et lancez-le depuis la console d'administration ou exécutez-le en mode debug depuis Visual Studio.

Si c'est la première fois que vous exécutez du code depuis Visual Studio pour une application Windows 10 IoT Core, jetez un œil à ces articles de Microsoft :

Regardez la vidéo de démonstration ci-dessous pour voir l'application s'exécuter sur un Raspberry Pi 3 connecté au DHT Tiny.

Points forts de l'application

L'application UWP Windows 10 est une application de démonstration qui montre toutes les fonctionnalités du DHT Tiny. Le code affiche la température actuelle, l'humidité et d'autres valeurs de registres du dispositif. L'UI fournit aussi un moyen de changer la configuration du dispositif y compris l'adresse du dispositif.

Bibliothèque DHT Tiny

L'exemple de code utilise une bibliothèque écrite pour interagir avec le DHT Tiny. Cette bibliothèque est prête à l'emploi et peut être incluse directement dans toutes vos applications.

Obtenir la bibliothèque depuis NuGet

Si vous ne voulez pas inclure le projet directement dans votre application, téléchargez simplement la bibliothèque DHT Tiny depuis NuGet en utilisant la commande ci-dessous. Ouvrez la Console du Gestionnaire de Paquets dans Visual Studio et tapez la commande.

PM> Install-Package IoT.DhtTiny

Balayage du bus I2C pour le dispositif

La bibliothèque DHT Tiny inclut une méthode qui recherche le bus I2C pour tout dispositif DHT Tiny et retourne une liste d'adresses. Cette liste peut être utilisée pour initialiser un ou plusieurs des dispositifs trouvés. Cela s'avère particulièrement utile si vous avez changé l'adresse du dispositif mais ne vous souvenez pas de ce que vous avez défini. Notez que la méthode de callback est optionnelle.

// ***
// *** Énumérer les dispositifs DHT Tiny sur le bus i2c.
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** Méthode de callback
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Localisation dispositifs [0x{0:X2}] [{1}%] [Trouvés = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Schématiques du DHT Tiny Breakout pour Raspberry Pi

Démonstration logicielle

Cette vidéo démontre à la fois l'application universelle s'exécutant sur un Raspberry Pi 3 connecté au DHT Tiny sur breadboard.

[VIDÉO À VENIR]

Création du dispositif final

La façon la plus facile et la plus rentable de créer la carte est d'utiliser une carte de prototype PCB comme le Perma-Proto Quarter-sized Breadboard PCB d'Adafruit. L'image ci-dessous montre le breakout utilisant cette carte de prototype. Notez que j'ai utilisé une Dremel pour enlever les sections de rail d'alimentation de la carte.

Voir plus : DHT Tiny Breakout pour Raspberry Pi

Processus de fabrication

  1. Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
  2. Construction d'une station météo extérieure avec Raspberry Pi 2 et ADS‑WS1
  3. Mesurer des capteurs analogiques sur Raspberry Pi sans ADC natif
  4. Connecter un capteur ultrasonique HC‑SR04 à un Raspberry Pi – Guide pratique
  5. Les meilleurs accessoires pour exploiter pleinement le potentiel de votre Raspberry Pi
  6. Utiliser un ADC MCP3008 pour lire des capteurs analogiques avec Raspberry Pi
  7. SIGHT : Lunettes intelligentes pour autonomiser les aveugles
  8. SparkFun Qwiic HAT pour Raspberry Pi — Guide de Connexion Complet
  9. Installation de Windows 10 IoT Core sur Raspberry Pi 3 Model B+ : Guide Étape par Étape