Étape 1: Mini station météo Attiny85 : l’émetteur
L’émetteur est une configuration très basique de l’Attiny85 avec une traction vers le haut de résistance sur la ligne de remise à zéro.
Un module émetteur est attaché à la broche numérique « 0 » et la broche de données DHT11 s’adapte sur la broche numérique 4.
Connectez un fil de 17,2 cm comme antenne (pour une bien meilleure antenne voir étape 5).
Le logiciel est comme suit :
Le logiciel utilise le code de Manchester pour envoyer les données.
Il lit le DHT11 et enregistre la température et l’humidité dans 2 flotteurs distincts. Comme le code Manchester n’envoie pas de flotteurs, mais un nombre entier, j’ai plusieurs options :
1 - diviser les flotteurs en deux entiers chaque et envoyer les personnes
2 - envoyer chaque flotteur en tant qu’entier
3 - Envoyer les deux flotteurs comme un entier
Avec l’option 1, j’ai besoin de combiner les entiers dans la flotte à nouveau dans le récepteur et je dois identifier quel entier ce qui, est de rendre le code de longue haleine
Avec option 2 que j’ai encore besoin pour identifier quel entier est pour l’humidité et qui pour la température. Je ne peux pas aller par séquence seul dans le cas où un nombre entier est perdu dans la transmission, donc j’ai besoin d’envoyer un identifiant attaché à l’entier.
Avec l’option 3, je peux envoyer un seul entier. Évidemment, ce qui rend la lecture un peu moins précis - dans 1 degré - et on ne peut pas envoyer ci-dessous zéro températures, mais c’est juste un code simple et il y a des façons de contourner qui. Pour l’instant, c’est à peu près le principe.
Donc ce que je fais est je transforme les flotteurs en entiers et j’ai multiplier l’humidité à 100. Ensuite, j’ajoute la température à l’humidité multipliée.
Compte tenu du fait que l’humidité ne sera jamais à 100 % le nombre de max que j’obtiendrai est 9900. Étant donné que la température ne sera également pas au-dessus de 100 degrés, le nombre maximum sera de 99, donc le plus grand nombre, que je vais envoyer est 9999 et c’est facile de séparer le côté récepteur.
Bien sûr mon calcul dans lequel j’utilise 3 entiers est excessif, comme on pourrait facilement faire avec 1 variable. Je voulais juste rendre le code plus facile à suivre.
le code se compile maintenant comme :
Taille de croquis binaire: 2 836 octets (d’un 8 192 octets maximum)
alors, qui s’inscrit dans un Attiny 45 ou 85
NOTE la bibliothèque de dht.h que j’utilise est celui de Rob Tillaart. Cette bibliothèque est également appropriée pour un DHT22. J’utilise la version 1.08. Cependant le Attiny85 peuvent avoir des problèmes de lecture un DHT22 avec les versions inférieures de la bibliothèque. Il m’a été confirmé que le 1.08 et 1.14 - bien que travaillant sur un Arduino régulière - ont du mal à lire un DHT22 sur le Attiny85. Si vous souhaitez utiliser un DHT22 sur le Attiny85, utilisez la version 1.20 de cette bibliothèque. Il a tous les ha sto faire avec un timing. La version 1.20 de la bibliothèque a une lecture plus rapide. (Merci pour cet utilisateur expérience Jeroen)