Pour automatiser une grande maison, la tâche d'activer / désactiver des charges puissantes est apparue - pompes de piscine, chaudières et même chambres d'hôtes dans leur ensemble (lorsque personne n'y vit), et je voulais également connaître la quantité d'énergie consommée. Mais il n'y avait pas d'appareils prêts à l'emploi avec les caractéristiques nécessaires (et même proches d'eux). J'ai dû l'inventer moi-même. La première version s'est avérée peu utilisable, mais a montré qu'un peu de travail et que vous obtenez un appareil complètement fini.

Franchement, je n'ai pratiquement aucune expérience dans la création de puissants appareils CA. Par conséquent, lors du développement de cet appareil, j'ai essayé de le jouer en toute sécurité - des parafoudres, des chemins larges conçus pour souder des pneus en cuivre puissants, un blindage dans les couches intermédiaires de la planche. Dans la première version, il y avait des excès et des erreurs (par exemple, dans la fiche technique du module d'alimentation Tension de sortie 1 et Vout1 - se sont avérées être différentes, j'ai donc dû couper les pistes, et j'ai simplement routé le connecteur microUSB pour que le port ne soit pas travaux).
Pour la commutation, des relais bistables EW80 de 80 ampères ont été choisis. Je dois dire que le choix n'est pas très réussi - le boîtier fuit et dans des conditions locales d'humidité élevée peut ne pas convenir. Malheureusement, le choix de relais bistables puissants des fournisseurs disponibles n'est pas trop grand, vous devrez donc sceller chaque relais séparément ou le boîtier entier. En tant que touches de contrôle, j'ai pris en main les pilotes mosfet ADP3624 (un pour chaque paire de relais), qui permettent d'appliquer une tension aux enroulements dans les deux polarités et de les déconnecter après le déclenchement. Les capteurs à effet Hall ACS759-100 mesurent la consommation et la tension de ligne via un transformateur basse consommation. Comme l'ADC et le microcontrôleur de contrôle est STM32F373CBT6.
Pour simplifier la connexion de l'appareil fini, la tension d'entrée est fournie à un connecteur et les bus en cuivre 7x3 mm soudés sur les pistes de la carte seront étirés sur tous les canaux de commutation. Dans des conditions de fils éventuellement très longs à la charge (plusieurs dizaines de mètres), il a été décidé de commuter à la fois le zéro et la phase pour éviter les problèmes d'interférences, les distorsions et juste pour la sécurité. Étant donné que la carte n'est pas conçue pour fonctionner sans dispositifs de protection externes («fiches», RCD), elle ne contient aucun élément de sécurité, il n'y a que des parafoudres pour la protection contre les impulsions à haute tension. Chaque canal a une LED indicatrice, il y a aussi un circuit de signalisation («tweeter» et un relais pour 10 ampères de charge externe), mais leur utilisation en logiciel n'a pas encore été mise en place.
L'appareil est contrôlé via un port série avec isolation galvanique (théoriquement il est possible d'utiliser un port USB), avec un protocole simple similaire à celui utilisé dans mon variateur. Je le remplacerai par MQTT-over-serial plus tard.

Je dois dire tout de suite que le circuit s'est avéré peu efficace et changera un peu dans la prochaine version - la stabilité de la tension de 3,3 volts pour alimenter les capteurs de courant et le contrôleur ne résiste pas aux critiques, ce qui entraîne des erreurs de mesure de la puissance en quelques dizaines de watts (même sans charge) très probablement, je fournirai des sources stables de tension de référence 3,3 v pour chaque capteur séparément. Il peut également être utile d'utiliser un ADC 16 bits dans le contrôleur, mais, malheureusement, sa vitesse n'est pas trop élevée - maintenant le courant et la tension sont mesurés environ 5000 fois par seconde, ce qui peut théoriquement être fait avec 16 bits, mais je n'ai pas réussi à obtenir une stabilité son travail avec de nombreux canaux via DMA.
Le micrologiciel du contrôleur affiche toutes les dix secondes des données sur la consommation de charge sur chaque canal et la tension secteur, recevant des commandes pour activer et désactiver les canaux. Le logiciel est très grossier, il devra également être refait dans l'ordre et ajouter diverses fonctions de contrôle (par exemple, surtension dans le réseau, surcharge, surchauffe de la carte, etc.).
→
Code sur github