- Matériaux nécessaires:
- Méthodologie de travail:
- Conditions préalables:
- Fonctionnement d'une télécommande AC:
- Schéma de circuit et explication:
- Décodage de vos signaux AC à distance:
- Programme principal Arduino:
- Fonctionnement du système de contrôle automatique de la température AC:
Un climatiseur qui était autrefois considéré comme un article de luxe et qui ne se trouvait que dans les grands hôtels, les salles de cinéma, les restaurants, etc. l'hiver et ceux qui en ont, s'inquiètent d'une chose commune. C'est leur consommation d'électricité élevée et leurs chargeurs en raison. Dans ce projet, nous allons créer un petit circuit de contrôle automatique de la température qui pourrait minimiser les chargeurs d'électricité en faisant varier automatiquement la température du courant alternatif en fonction de la température des pièces. En faisant varier périodiquement la température de consigne, nous pouvons éviter de faire fonctionner le courant alternatif pour des valeurs de température plus basses pendant une longue période et de le faire consommer moins d'énergie.
La plupart d'entre nous auraient connu une situation où nous devions changer la température de consigne du climatiseur à différentes valeurs à différents moments de la journée, afin de nous garder à l'aise tout au long de la journée. Pour automatiser ce processus, ce projet utilise un capteur de température (DHT11) qui lit la température actuelle de la pièce et, en fonction de cette valeur, il enverra des commandes au CA via un blaster IR similaire à la télécommande du CA. Le CA réagira à ces commandes comme s'il réagissait à sa télécommande et ajustera ainsi la température. À mesure que la température de votre pièce change, l' Arduino ajustera également la température de consigne de votre climatiseur pour maintenir votre température comme vous le souhaitez. Ça a l'air cool, non?… Voyons comment en construire un.
Matériaux nécessaires:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- Led IR
- Capteur de température / humidité DHT11
- Toute couleur LED et résistance 1K (en option)
- Planche à pain
- Connexion des fils
Méthodologie de travail:
Toutes les télécommandes de notre maison que nous utilisons pour contrôler la télévision, le cinéma maison, la climatisation, etc. fonctionnent à l'aide de IR Blasters. Un blaster IR n'est rien d'autre qu'une LED IR qui pourrait blaster un signal par impulsions répétitives; ce signal sera lu par le récepteur dans l'appareil électronique. Pour chaque bouton différent de la télécommande, un signal unique sera émis qui, après lecture par le récepteur, est utilisé pour effectuer une tâche prédéfinie particulière. Si nous sommes capables de lire ce signal sortant de la télécommande, nous pouvons alors imiter le même signal en utilisant une LED IR chaque fois que cela est nécessaire pour effectuer cette tâche particulière. Nous avons précédemment créé un circuit IR Blaster pour Universal IR Remote.
Un TSOP est un récepteur IR qui peut être utilisé pour décoder le signal provenant des télécommandes. Ce récepteur sera interfacé avec Arduino pour signaler chaque bouton, puis une LED IR sera utilisée avec Arduino pour imiter le signal lorsque cela est nécessaire. De cette façon, nous pouvons prendre le contrôle de notre AC en utilisant Arduino.
Il ne reste plus qu'à lire la valeur de température en utilisant DHT11 et à instruire le CA en conséquence en utilisant les signaux IR. Pour rendre le projet plus attrayant et convivial, j'ai également ajouté un écran OLED qui affiche la température actuelle, l'humidité et la température de consigne AC. En savoir plus sur l'utilisation d'OLED avec Arduino.
Conditions préalables:
Ce projet de contrôleur de température automatique CA est légèrement avancé pour le niveau débutant, mais avec l'aide de quelques autres tutoriels, tout le monde peut le construire avec une question de temps. Donc, si vous êtes un novice absolu en OLED, DHT11 ou TSOP, veuillez revenir à ces tutoriels ci-dessous où vous pouvez apprendre les bases et comment commencer avec ceux-ci. La liste peut sembler un peu longue, mais croyez-moi, elle est facile et vaut la peine d'être apprise, elle ouvrira également des portes à de nombreux nouveaux projets.
- Circuit de base utilisant TSOP et IR LED pour sous leur fonctionnement
- Guide d'interfaçage de base pour DHT11 avec Arduino
- Guide d'interfaçage de base pour OLED avec Arduino
- Interfaçage de TSOP avec Arduino pour lire les valeurs de la télécommande IR
Assurez-vous d'avoir un Arduino Mega et toute autre version d'Arduino, car la taille du code est lourde. Vérifiez également si vous avez déjà installé les bibliothèques Arduino suivantes sinon installez-les à partir du lien ci-dessous
- Bibliothèque à distance IR pour TSOP et IR Blaster
- Bibliothèque Adafruit pour OLED
- Bibliothèque graphique GFX pour OLED
- Bibliothèque de capteurs DHT11 pour capteur de température
Fonctionnement d'une télécommande AC:
Avant de commencer le projet, prenez un peu de temps et notez comment fonctionne votre télécommande AC. Les télécommandes AC fonctionnent de manière un peu différente par rapport aux télécommandes TV, DVD IR. Il se peut qu'il n'y ait que 10 à 12 boutons sur votre télécommande, mais ils pourront envoyer de nombreux types de signaux différents. Cela signifie que la télécommande n'envoie pas le même code à chaque fois pour le même bouton. Par exemple, lorsque vous diminuez la température à l'aide du bouton bas pour la rendre à 24 ° C (degrés Celsius), vous obtiendrez un signal avec un ensemble de données, mais lorsque vous appuyez à nouveau pour régler 25 ° C, vous n'obtiendrez pas le même données puisque la température est maintenant de 25 et non de 24. De même, le code pour 25 variera également en fonction de la vitesse du ventilateur, des paramètres de veille, etc. Donc, ne manipulons pas toutes les options et concentrons uniquement les valeurs de température avec une valeur constante pour les autres paramètres.
Un autre problème est la quantité de données envoyées pour chaque pression de bouton, les télécommandes normales avec envoi de 24 bits ou 48 bits, mais une télécommande CA peut envoyer jusqu'à 228 bits car chaque signal contient beaucoup d'informations telles que la température, la vitesse du ventilateur, Temps de sommeil, style Swing, etc. C'est la raison pour laquelle nous avons besoin d'un Arduino Mega pour de meilleures options de stockage.
Schéma de circuit et explication:
Heureusement, la configuration matérielle de ce projet de contrôle automatique de la température CA est très simple. Vous pouvez simplement utiliser une maquette et effectuer les connexions comme indiqué ci-dessous.
Le tableau suivant peut également être utilisé pour vérifier vos connexions.
S.Non: |
Broche de composant |
Broche Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, données |
3 |
5 |
OLED-RES, RST, RESET |
sept |
6 |
OLED-DC, A0 |
5 |
sept |
OLED-CS, sélection de puce |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
dix |
DHT11 - Signal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
LED IR - Anode |
9 |
14 |
LED IR - Cathode |
Gnd |
Une fois que vos connexions sont effectuées, cela devrait ressembler à ceci ci-dessous. J'ai utilisé une planche à pain pour ranger les choses, mais vous pouvez également utiliser des fils mâles à femelles directement pour brancher tous les composants
Décodage de vos signaux AC à distance:
La première étape pour contrôler votre AC est d'utiliser TSOP1738 pour décoder les codes IR de la télécommande AC. Effectuez toutes les connexions comme indiqué dans le schéma de circuit et assurez-vous que vous avez installé toutes les bibliothèques mentionnées. Ouvrez maintenant le programme d'exemple « IRrecvDumpV2 » qui peut être trouvé dans Fichier -> Exemples -> IRremote -> IRrecvDumpV2 . Téléchargez le programme sur votre Arduino Mega et ouvrez le moniteur série.
Pointez votre télécommande vers TSOP et appuyez sur n'importe quel bouton, pour chaque bouton sur lequel vous appuyez, son signal respectif sera lu par le TSOP1738, décodé par Arduino et affiché dans le moniteur série. Pour chaque changement de température sur votre télécommande, vous obtiendrez des données différentes. Sauvegardez ces données car nous les utiliserons dans notre programme principal. Votre moniteur série ressemblera à quelque chose comme ceci, j'ai également montré le fichier Word sur lequel j'ai enregistré les données copiées.
La capture d'écran montre le code pour régler la température à 26 ° C pour ma télécommande AC. En fonction de votre télécommande, vous obtiendrez un ensemble de codes différent. Copiez de même les codes pour tous les différents niveaux de température. Vous pouvez vérifier tous les codes IR de la télécommande du climatiseur dans le code Arduino donné à la fin de ce tutoriel.
Programme principal Arduino:
Le programme Arduino principal complet se trouve au bas de cette page, mais vous ne pouvez pas utiliser le même programme. Vous devez modifier les valeurs de code de signal que nous venons d'obtenir à partir de l'exemple d'esquisse ci-dessus. Ouvrez le programme principal sur votre IDE Arduino et faites défiler jusqu'à cette zone ci-dessous où vous devez remplacer les valeurs du tableau par les valeurs que vous avez obtenues pour votre télécommande.
Notez que j'ai utilisé 10 tableaux dont deux utilisés pour allumer et éteindre le courant alternatif tandis que le reste 8 est utilisé pour régler une température différente. Par exemple, Temp23 est utilisé pour régler 23 ° C sur votre CA, utilisez donc le code correspondant dans ce tableau. Une fois que cela est fait, il vous suffit de télécharger le code sur votre Arduino et de le placer en face de vous AC et de profiter du Cool Breeze.
L'explication du code est la suivante, nous devons d'abord utiliser le capteur de température DHT1 pour lire la température et l'humidité et l'afficher sur l'OLED. Ceci est fait par le code suivant.
DHT.read11 (DHT11_PIN); // Lire la température et l'humidité Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.humidité; // tests d'affichage de texte display.setTextSize (1); display.setTextColor (BLANC); display.setCursor (0,0); display.print ("Température:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Humidité:"); display.print (Measured_Humi); display.println ("%");
Une fois que nous connaissons la température de la pièce, il suffit de la comparer avec la valeur souhaitée. Cette valeur souhaitée est une valeur constante qui est fixée à 27 ° C (degré Celsius) dans mon programme. Donc, sur la base de cette comparaison, nous définirons une température AC correspondante comme indiqué ci-dessous
if (Measured_temp == Desired_temperature + 3) // Si AC est allumé et que la température mesurée est très élevée que souhaitée {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Envoie le signal pour régler 24 * C AC_Temp = 24; }
Ici, le courant alternatif sera réglé à 24 ° C lorsque la température mesurée est de 30 ° C (puisque la température souhaitée est de 27). De même, nous pouvons créer de nombreuses boucles If pour définir différents niveaux de températures en fonction de la température mesurée, comme indiqué ci-dessous.
if (Measured_temp == Desired_temperature-1) // Si AC est activé et que la température mesurée est inférieure à la valeur souhaitée {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Envoie le signal pour définir 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Si AC est activé et que la température mesurée est très basse que la valeur souhaitée {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Envoie le signal pour définir 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Si AC est allumé et que la température mesurée est très très basse valeur souhaitée {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Envoie un signal pour définir 30 * C AC_Temp = 30; }
Fonctionnement du système de contrôle automatique de la température AC:
Lorsque votre code et votre matériel sont prêts, téléchargez le code sur votre tableau et vous devriez remarquer que l'OLED affiche quelque chose de similaire à celui-ci.
Maintenant, placez le circuit en face de votre climatiseur et vous remarquerez que la température du climatiseur est contrôlée en fonction de la température de la pièce. Vous pouvez essayer d'augmenter la température près du capteur DHT11 pour vérifier si la température du climatiseur est contrôlée comme indiqué dans la vidéo ci-dessous.
Vous pouvez modifier le programme pour effectuer toute action souhaitée; tout ce dont vous avez besoin est le code que vous avez obtenu à partir de l'exemple d'esquisse. J'espère que vous avez compris ce projet de contrôleur de température automatique et que vous avez aimé construire quelque chose de très similaire. Je sais qu'il y a beaucoup d'endroits ici pour rester coincés, mais ne vous inquiétez pas alors. Utilisez simplement le forum ou la section des commentaires pour expliquer votre problème et les gens ici vous aideront sûrement à le résoudre.