Étape 3: Données Waveform
Le calendrier de forme d’onde données est ci-dessus. À la différence du détecteur IR où tous nous l’avons fait a été moniteur pour impulsions de données entrantes, les capteurs DHT nécessitent une impulsion de déclenchement de la photo avant qu’ils enverront des données. C’est semblable à la sonde ultrasonique, que nous avons utilisé dans l’épisode 3, sauf que la DHT utilise seulement une broche pour la détente et la réponse. Parce que c’est une interface 1-wire, que le logiciel de photo a besoin de modifier la définition de l’axe externe interrompre à la volée afin qu’il peut fonctionner comme l’entrée et de sortie pendant la séquence de communication. Chaque fois qu’une mise à jour est souhaitée le PIC définira la broche comme une e/s output et changer puis retour à l’entrée d’interruption externe afin de recevoir les données de la DHT. Tout cela se reflète dans la forme d’onde. Au départ, le PIC envoie une impulsion faible au moins 18 ms en longueur. Après qu’il repasse la broche sur un intrant et la résistance de pull-up 4,7 k détaillées dans la section matériel garantit que la DHT voit maintenant le niveau logique haut requis avant qu’il ne réagisse. Comme pour le capteur IR dans l’épisode 2, la DHT enverra un début d’impulsion de message (80 US bas suivies par 80 US élevé). Les impulsions données subséquentes commencent toujours par un faible 50 US, suivi par l’un ou l’autre 26 nous pouls élevé (bit de données = 0) ou par un 70 nous haute impulsion (données bit = 1).
Le flux de données complètes de la DHT se compose de 40 bits. Les 16 premiers bits sont données d’humidité, les deuxième 16 bits sont données sur la température et les 8 derniers bits sont une somme de contrôle de message. Dans le DHT-11, les 8 premiers bits sont une valeur entière pour l’humidité et les deuxième 8 bits sont des zéros. Les troisième 8 bits sont une valeur entière pour la température et les quatrième 8 bits sont à zéro. Qui rend la vie assez facile dans le logiciel. Parce que le DHT22/AM2302 est plus précis et a une portée plus large pour la température et l’humidité, le format de données est défini différemment. Pour l’humidité, les bits de 16 données représentent une entière et une valeur fractionnaire (avec une décimale). Par exemple, une valeur décimale reçue de 652 représente un taux d’humidité de 65,2 %. Les 16 bits de la température sont formatés de la même manière sauf que le bit le plus significatif représente le signe des données. Les données ne sont pas en 2 compléter le format donc une température positive aura la même valeur numérique comme la température négative équivalente.