La température optimale dans la maison ou comment installer un thermostat dans l'arrière-salle sans fil


Pour beaucoup, il est loin d'être un secret que des appareils tels que les thermostats hebdomadaires contribuent à assurer une température ambiante optimale dans une maison et à économiser les ressources énergétiques consacrées au chauffage. Pour le bon fonctionnement de l'appareil, il est généralement placé dans la pièce la plus éloignée, où la température est la plus basse. Mais la plupart des thermostats nécessitent une connexion câblée à la chaudière pour le contrôle et il est loin d'être toujours possible de poser ces fils. Une solution à ce problème sera discutée dans cet article. Toute personne intéressée à demander un chat ...

J'ai dû faire face à une tâche similaire. La construction de ma maison est assez allongée et le thermostat a été installé correctement, j'avais besoin d'étirer plus de 50 m de câble à travers les pièces avec les réparations déjà effectuées, l'alternative était posée sur la façade, mais je l'ai immédiatement jetée. De plus, pour obtenir un câble de la rue à la chaudière était également problématique, et je ne voulais pas gâcher la vue de la façade avec un autre fil, sans cela il y avait assez d'extra. La chaudière elle-même était installée dans la cuisine et placer le thermostat à côté du robinet était une mauvaise idée. En conséquence, je suis arrivé à la conclusion que le thermostat doit toujours être déplacé dans la pièce éloignée et que le signal doit être transmis par voie hertzienne. Le processus de développement de mon prochain métier a commencé comme d'habitude avec l'énoncé du problème. Commençons donc ...

TK


Définissez les exigences de l'appareil pour résoudre le problème.
  • La conception des appareils doit être de petite taille et placée dans un boîtier esthétique en blanc ou noir.
  • Le module récepteur et émetteur doit être alimenté par une paire de piles AA.
  • La durée de vie des modules d'un jeu de batteries doit être d'au moins un an.
  • Le raccordement au thermostat et à la chaudière à gaz doit être effectué à l'aide d'interfaces standard sans apporter de modifications de conception.
  • Les appareils doivent être assemblés sur une base matérielle abordable auprès de fournisseurs locaux.


Matériel informatique


Lorsque nous avons décidé des exigences de base, passons à la conception. Commençons par le matériel.
Sur la base des spécifications techniques, les exigences de base pour la base de l'élément seront: la capacité de travailler dans la plage de tension de 1,8 à 3 volts. Ainsi que la possibilité de passer en mode veille ou d'éteindre la périphérie lorsqu'elle n'est pas nécessaire. J'ai décidé de commencer mon chemin de choix avec la sélection d'un émetteur-récepteur. J'ai considéré les solutions les plus simples sous la forme de modules MX-FS-03V et MX-05V, le prix est bien sûr très attractif, mais la qualité des critiques est horrible et la gamme de communication n'est pas si chaude. Et dans mon cas, il fallait transmettre un signal à travers 4 murs. En outre, il avait initialement l'intention de confirmer l'envoi, de sorte que la connexion était nécessaire dans les deux sens, ce qui nécessiterait deux postes. Les modules LoRa et divers modules de la série HC ont également été pris en compte. La gamme était encore limitée à ce qui est vendu localement. En conséquence, après avoir considéré toutes les options disponibles, j'ai décidé d'opter pour des modules SI4432 prêts à l'emploi. En termes de rapport qualité-prix, à mon avis, ils étaient les meilleurs.
Ce module possède de vastes capacités techniques et est également très économique avec des paramètres correctement sélectionnés. La possibilité de contrôler la puissance de sortie est également très utile, car vous pouvez choisir le meilleur, réduisant ainsi la consommation d'énergie de la batterie. Voici un tableau avec les spécifications de la documentation.


Examinons plus en détail les indicateurs de consommation d'énergie dans les différents modes du tableau. Nous aurons besoin de ces données plus tard pour calculer la durée de vie de la batterie des appareils.

Dans notre cas, il est déjà acceptable d'utiliser le mode veille, sans parler de l'arrêt complet par la fonction d'arrêt.
Initialement, je devais prendre ATMega 8 comme processeur central, mais après avoir étudié la documentation plus en détail, j'ai réalisé qu'elle ne tombait pas dans ma plage de tension d'alimentation. En conséquence, j'ai choisi ATMega 328P, comme Elle a pleinement répondu à toutes mes exigences. Pour l'avenir, je dirai que le fait que je lui ai trouvé un chargeur de démarrage prêt à l'emploi, mais plus à ce sujet plus tard, a également joué en sa faveur.
Considérez le contrôleur plus en détail en termes de consommation d'énergie et d'horloge de base.
Voyons d'abord le timing. Parce que nous avons une plage de tension de travail allant jusqu'à 3 volts, le choix d'un résonateur à quartz est également limité, et le graphique suivant nous en parle


Comme nous le voyons à 8 MHz, nous ne pouvons pas obtenir un fonctionnement stable, par conséquent, nous utiliserons du quartz à 4 MHz.
Voyons maintenant la consommation d'énergie dans différents modes de fonctionnement. Voici un tableau de la documentation décrivant les caractéristiques de consommation d'énergie.


Ainsi, si vous transférez le contrôleur en mode Power-Down, la consommation du microcontrôleur lui-même chute à 44 uA avec certaines réserves, bien sûr.
En plus des éléments déjà sélectionnés, nous ajouterons une LED rouge avec un courant de travail de 1 mA.
Ceci complète les composants communs pour le récepteur et l'émetteur.
Considérez les composants supplémentaires pour le récepteur.
La sortie d'un thermostat d'ambiance conventionnel est un contact de relais avec une bonne capacité de commutation (250 V 5 A), donc peu importe ce qu'il contrôle, par conséquent, selon les termes de référence, notre récepteur devrait avoir la même sortie de relais. Mais comment assurer une faible consommation d'énergie du relais en mode marche, car la bobine même du plus petit relais consomme des dizaines de milliampères, et le thermostat d'usine fonctionne à partir d'un jeu de batteries normales sans exagération pendant au moins 2 saisons de chauffage. J'ai réfléchi à cette tâche pendant quelques jours, et tout à coup lors de la réparation de l'un des appareils qu'elle m'est apparue, il y a juste un relais bistable. Et pourquoi pendant la réparation, mais parce qu'ils sont utilisés dans l'appareil en réparation. Ce type de relais est capable de maintenir son état pendant une durée infinie sans consommation d'énergie. Pour que le relais change d'état, il suffit d'appliquer une impulsion à la bobine nécessaire, dans le cas de deux relais de bobinage, ou une impulsion à polarité inversée, dans le cas d'un relais à un seul bobinage. Ainsi, nous avons décidé du type de relais, mais que faire d'un modèle spécifique? Après avoir cherché un peu sur Internet, je suis arrivé à la conclusion que l'obtention d'un relais basse tension serait un problème pour moi, je devais m'attarder sur mon relais 24V Takamisawa ALD24W-K. Mais cette solution a posé un nouveau problème - où trouver du 24 V?
La réponse a été trouvée rapidement, ce n'est peut-être pas la plus correcte, mais quand même. J'ai décidé d'installer un convertisseur élévateur et d'augmenter la tension à 20 V, c'est assez pour une commutation de relais fiable. Le convertisseur est issu d'un module assez commun basé sur MT3608. Il s'agit d'une solution de travail que j'ai testée plus d'une fois, y compris la conception d'un tournevis électrique (vous pouvez en lire plus ici sur Habré). La sortie EN vous permet de contrôler le fonctionnement du convertisseur, ce qui réduit considérablement la consommation d'énergie. En fait, voici les données de la documentation.


Ayant rassemblé toutes les informations reçues ensemble, j'ai dessiné des schémas des deux appareils:
Émetteur

Récepteur


Après avoir terminé avec le matériel du projet, passons aux algorithmes et à leur implémentation logicielle.

Algorithme


Commençons par développer un concept de travail et un algorithme communs pour nos appareils. La figure ci-dessous montre un diagramme de séquence général pour tous les appareils impliqués dans le processus.


Comme vous pouvez le voir, l'algorithme n'est pas compliqué, je vais faire une présentation narrative (enfin, je suis trop paresseux pour dessiner un organigramme, excusez-moi). Commençons par l'émetteur, car c'est la plus simple du point de vue de l'algorithme. Le microcontrôleur émetteur effectue la séquence suivante:
- vérifie l'état de charge des batteries, si la charge est faible, nous indiquons une décharge par la LED intégrée.
- Interroge l'état d'entrée.
- Transmet cet état sur l'air.
- met l'émetteur en mode veille et s'endort pendant 1 minute.
- le cycle se répète depuis le début.

Avec le récepteur, les choses sont un peu plus compliquées. Le microcontrôleur fonctionne selon l'algorithme suivant:
- vérifie l'état de charge des batteries, si la charge est faible, nous indiquons une décharge par la LED intégrée.
- nous attendons le paquet de l'émetteur, si dans les 2 minutes le signal n'a pas été reçu, nous nous endormons pendant 59 secondes, après quoi le cycle recommence depuis le début.
- si un paquet arrive, nous obtenons un nouvel état de relais.
- si le nouvel état du relais diffère de celui précédemment enregistré, allumez le convertisseur élévateur et mettez le relais dans l'état souhaité.
- s'endormir pendant 59 secondes
- répéter le cycle en premier
Ainsi, lorsque vous allumez le récepteur pour la première fois, il attend un signal de l'émetteur, dès qu'il le reçoit, il modifie l'état du relais et s'endort 1 seconde de moins que l'émetteur. En conséquence, au moment d'un nouvel envoi, le récepteur est déjà en fonctionnement et attend un nouvel envoi, c'est-à-dire c'est comme s'il était synchronisé par un émetteur. En conséquence, il a été possible de bien économiser la consommation d'énergie. Si le signal de l'émetteur n'est pas reçu, alors nous attendons un maximum de 2 minutes, un tel intervalle est choisi pour garantir que le signal est capturé quelle que soit l'heure à laquelle l'émetteur est allumé. Mais il est extrêmement peu économique et est destiné uniquement à la synchronisation des appareils.

Durée de vie


Quand il est devenu clair avec l'algorithme, essayons de calculer la durée de vie de la batterie.
Tournons-nous un peu vers la théorie nécessaire pour obtenir des nombres précis lors du calcul du temps de fonctionnement des capteurs à partir d'un ensemble de batteries.
Donc, nous allons d'abord voir quand et à quoi l'énergie est dépensée.
Considérez la procédure d'envoi plus en détail.
Pour transmettre l'état du relais, nous devons former un paquet et l'envoyer à l'antenne. En général, la structure d'un tel package est la suivante:


J'ai utilisé les paramètres de l'émetteur par défaut, c'est-à-dire FSK, pas de Manchester, Rb = 2,4 kbs, Fd = 36 kHz. La quantité de données transmises dans le paquet est de 3 octets. Le préambule aura une taille de 40 bits à partir du tableau:


Afin de ne pas plonger dans la jungle de la configuration des modules et du fonctionnement de la bibliothèque, nous accepterons les paramètres restants comme le maximum autorisé. En conséquence, nous obtenons la taille totale du paquet de 5 octets + 4 octets + 4 octets + 1 octet + 3 octets + 2 octets = 19 octets, c'est-à-dire 152 bits. Qu'à une vitesse de 2400 bps, le temps de transmission sera d'environ 64 ms.
Nous passons au tableau de consommation d'énergie du module en début d'article et en prenons la valeur du courant lors de la transmission avec une puissance de sortie de 13 dBm. Ainsi, lors de l'envoi de données, le module dépense 30 mA.
En mode réception, le module consommera statiquement 18,5 mA sur la base du même tableau.
Je ne pouvais toujours pas traduire le module en mode d'arrêt, pour une raison quelconque, je ne pouvais pas le sortir du coma, par conséquent je me suis limité au mode veille dans lequel le module consomme 1 uA.
De plus, lors de la réception et de la transmission du paquet, j'allume la LED rouge connectée via une résistance de 1 kΩ à 3,3 volts, elle consomme environ 1 mA.
Le microcontrôleur en mode réveil consomme 2,4 mA et en mode veille avec le WDT allumé - 44 uA. Données obtenues à partir du tableau ci-dessus.
Le récepteur présente également une fuite de courant parasite lorsque le thermostat est fermé par une résistance de rappel à la terre (voir schéma de l'émetteur), de sorte que 3,3 V / 10 kOhm = 33 uA le traversent. Cela m'a semblé beaucoup, donc dans le circuit, j'ai changé la valeur de la résistance à 100 kOhm, mais dans le fer, elle est toujours assemblée avec 10 kOhm, nous allons donc la prendre telle quelle.
Le récepteur a plus de consommateurs. Tout d'abord, il s'agit d'un convertisseur boost de 20 volts. En mode veille, il consomme 1 uA. En fonctionnement à vide, la consommation sera de 2,2 mA, dans le programme j'attends 100 ms pour démarrer le convertisseur. La bobine de relais agit comme une charge pour nous, sa caractéristique est indiquée ci-dessous:


Ainsi, il s'avère que la bobine, lorsqu'elle est alimentée en 20 volts, consommera 20 V / 1920 Ohms = 11 mA. Passons maintenant au graphique de la dépendance de l'efficacité à la consommation de courant par la charge pour évaluer la consommation totale du convertisseur avec une bobine de relais connectée.


Comme vous pouvez le voir, avec une telle consommation, le graphique ne reflète pas l'efficacité, mais supposons qu'il se déplace également de façon linéaire vers le bas, et dans le pire des cas, l'efficacité sera d'environ 85%. En conséquence, la consommation de courant sera de 11 mA / 0,85 = 13 mA. Il convient de reconnaître qu'en fait, le courant de crête au démarrage du convertisseur sera d'au moins 1A, et les processus de fonctionnement et de démarrage sont compliqués, et je ne suis pas la personne qui est en mesure de les énoncer correctement, donc je vais les manquer et simplifier un peu le processus.
Le temps d'impulsion généré par le relais de commutation est de 20 ms.
Maintenant que nous avons compris qui consomme de l'énergie et combien, nous allons calculer la durée de vie théorique des piles AA. Encore une fois, considérez le récepteur et l'émetteur séparément.
Commençons comme toujours avec l'émetteur. Prenons comme base l'algorithme de travail donné ci-dessus. Le temps de réveil du contrôleur sera un peu plus long que le temps de transmission, et en tenant compte des coûts de configuration du module, d'interrogation de l'entrée et de mesure de la tension de la batterie sera de 70 ms, puis le contrôleur sera mis en mode veille pendant une minute. Ainsi, en un cycle de fonctionnement, le contrôleur consommera 0,07 s * (émetteur 30 mA + LED 1 mA + 2,4 mA MK) + 60 s * (44 uA MK + émetteur 1 uA + résistance d'entrée 33 uA) = 2,338 mA * s + 4,68 mA * s = 7,018 mA * s. En divisant la valeur obtenue par 60,07 s, nous obtenons la valeur de courant moyenne pendant une seconde - 0,117 mA. La capacité moyenne d'une batterie de type AA est de 2800 mA * h (lorsqu'elle est connectée en série, la capacité totale des batteries n'augmente pas, si soudain quelqu'un ne le sait pas) - c'est 2800 * 3600 = 10080000 mA * s. En conséquence, la durée de fonctionnement théorique de l'émetteur à partir d'un jeu de piles est de 10080000 mA * s / 0,117 mA / 3600 s / 24 h = 997 jours.

Maintenant sur le récepteur. Nous prendrons également comme base l'algorithme de fonctionnement décrit ci-dessus, mais avec une mise en garde, nous avons allumé le récepteur et l'émetteur presque simultanément, et, par conséquent, le récepteur immédiatement synchronisé avec l'émetteur.
Pour cela, le temps de réveil maximum du contrôleur sera la somme du temps d'attente du paquet (la réception y entrera également, car l'interruption par le module ne sera générée qu'après la réception complète du paquet), le retirer du module, démarrer le convertisseur et définir un nouvel état de relais, ainsi que mesurer tension de la batterie. Après avoir résumé toutes les données, nous obtenons - 1,126 s, puis le contrôleur sera mis en mode veille pendant 59 secondes. Mais depuis Comme le cycle de travail est plus compliqué que dans le récepteur, le calcul consistera en plus d'états. Pour un cycle de fonctionnement, le contrôleur consommera 1,006 s * (récepteur 18,5 mA + 2,4 mA MK) + 0,1 * (0,1 s * (récepteur 18,5 mA + 1 mA LED + 2,4 mA MK + convertisseur 2,2 mA sur XX) + 0,02 s * (18,5 Récepteur mA + 1 mA LED + 2,4 mA MK + convertisseur 13 mA)) + 59 s * (44 uA MK + 1 uA récepteur + 1 uA convertisseur) = 21,0254 mA + 0,1 * (2,41 mA + 0,698 mA) + 2,714 mA = 24,0502 mA * s. Le coefficient 0,1 reflète le fait qu'en un seul des 10 cycles, nous commutons le relais. En divisant la valeur obtenue par 60,126 s, nous obtenons la valeur moyenne du courant pendant une seconde - 0,4 mA. Nous calculerons la durée de vie de la batterie. En conséquence, la durée de fonctionnement théorique du récepteur à partir d'un jeu de batteries est de 10080000 mA * s / 0,4 mA / 3600 s / 24 h = 291 jours, à condition de changer l'état du relais toutes les 10 minutes.
Il est évident que dans ces calculs, tout le temps pendant plus de deux ans n'est pas réalisé en raison des caractéristiques chimiques du dispositif à batterie. Les piles AA ne sont pas capables de fonctionner pendant plus de deux ans avec une alimentation électrique constante de l'appareil, même avec un courant négligeable, malgré le fait que la capacité devrait être suffisante. Mais tout ce qui a moins de deux ans deviendra déjà une limitation de capacité. Malheureusement, les résultats du calcul de la durée de vie du récepteur ne correspondent pas entièrement aux spécifications techniques, mais dans cette situation, je me suis fait une concession.

Implémentation du code


Honnêtement, je suis sceptique sur Arduino et ses IDE similaires. J'ai commencé à comprendre la programmation des microcontrôleurs en C et travailler avec des registres est plus compréhensible et prévisible pour moi que des appels voilés à des fonctions de haut niveau. Bien qu'en général j'ai étudié la plateforme elle-même et quelques petits projets, je le fais toujours. Cette fois aussi, la paresse a prévalu sur moi. J'ai été soudoyé par la disponibilité d'une bibliothèque prête à l'emploi pour les modules SI4432 pour Arduino et je ne voulais pas vraiment perdre de temps à essayer de le porter sur CVAVR. Et le reste du code est extrêmement simple. Après avoir passé plusieurs soirées à étudier les bibliothèques pour travailler avec le module, ainsi que le mode veille du microcontrôleur, les premières versions des croquis du récepteur et de l'émetteur étaient prêtes assez rapidement. Ensuite, il a fallu assembler le matériel et poursuivre déjà le développement avec du vrai matériel.

C'est vivant ...


Le service en ligne EasyEDA a développé un projet avec un circuit et des circuits imprimés. Je n'ai pas pris la peine de faire des planches double face, j'ai donc mis des pulls à l'arrière.
Voici une photo des cartes émettrices finies ...


... et le récepteur.

Pour les batteries, j'ai acheté des supports et aussi des étuis. Honnêtement, je le voulais en blanc, mais nous n'en avions pas en stock, j'ai donc dû le récupérer en noir.
L'assemblage des cartes a d'abord été réalisé sans modules, car vous devez remplir le premier programmeur du chargeur de démarrage du contrôleur. Et puisque le module est de 3,3 volts, et que le programmateur est de 5 volts et qu'ils utilisent le même bus, il est préférable de souder le module après le firmware. Vérifié la puissance, programmé le chargeur de démarrage. Puisqu'il n'y a pas de masque de soudure sur la carte, j'ai collé un morceau de kapton sous les modules. Soudé les modules et commencé à déboguer le firmware.Immédiatement monté sur un râteau sous forme de gels de module, tout s'est avéré simple et banal, le stabilisateur 3 volts que j'ai utilisé n'a pas donné le courant nécessaire, après avoir connecté le LBP au récepteur et les batteries à l'émetteur, tout a fonctionné de manière stable. De plus, j'ai installé un condensateur électrolytique à proximité du convertisseur sur le circuit de puissance pour le démarrer normalement. J'ai juste dû ajouter la logique restante décrite ci-dessus. Sur les antennes standard, la connexion s'est avérée très stable. Structurellement, le récepteur et l'émetteur s'insèrent entièrement dans le boîtier acheté. Les planches ont été fixées aux racks standard à l'aide de vis autotaraudeuses au bas du boîtier, et j'ai attaché les supports de batterie à du ruban adhésif double face vers le haut. Le boîtier est assez bien fermé, donc je ne l'ai pas non plus fixé avec des vis,et il est plus pratique de changer les piles. À la suite de quelques nuits supplémentaires consacrées au raffinement et aux tests, j'ai obtenu le résultat final.




Bootloader


Quelques mots doivent être dits séparément aux frais du chargeur. Pour Arduino, il n'y a pas de chargeurs standard pour le quartz à 4 MHz, ils doivent être assemblés séparément, mais j'ai eu de la chance, à la recherche d'informations avant de commencer la conception, je suis tombé sur un article d'une personne, il a fait une station météo sur les mêmes modules et a rencontré les mêmes problèmes. Je vais laisser un lien vers l'article à la fin. Soit dit en passant, je recommande la lecture, la personne a également travaillé dur. En conséquence, il avait déjà un chargeur de démarrage prêt à l'emploi dans son référentiel, et comme il était dans le domaine public, je l'ai utilisé.

Conclusion


À la suite de plus d'une soirée passée, une structure entièrement fonctionnelle avec les caractéristiques nécessaires a été construite. Maintenant, l'appareil fonctionne depuis plus de 3 semaines, jusqu'à présent, il n'y a eu aucune plainte concernant son fonctionnement, mais le temps nous dira à quel point mes calculs étaient vrais.
Pour ceux qui disent qu'il était possible de mettre un relais à 3 volts et de ne pas jouer avec le convertisseur, je répondrai que je suis entièrement d'accord avec eux. Mais pour ceux qui décident de répéter la conception, il sera possible de choisir leur solution. Au final, l'ingénieur devrait créer, et pas seulement copier les constructions finies ...
Merci à tous ceux qui ont maîtrisé cet article jusqu'au bout, j'espère que c'était intéressant. Pour toutes vos questions, suggestions et commentaires, veuillez commenter.

Références:


  1. Article de la station météo
  2. Dépôt GitHub
  3. Schémas et tableaux. Récepteur
  4. Schémas et tableaux. Émetteur

Source: https://habr.com/ru/post/fr431272/


All Articles