Dans cet article, nous construisons un circuit de régulateur de ventilateur CA, capable de contrôler la vitesse du ventilateur en limitant le flux de courant vers le ventilateur. Le terme  régulateur de ventilateur de plafond AC  est une bouchée, par conséquent, nous l'appellerons simplement un régulateur de ventilateur à partir de maintenant. Un  circuit de régulateur de ventilateur  est un composant crucial utilisé pour augmenter ou diminuer la vitesse d'un ventilateur / moteur AC en fonction des besoins. Il y a quelques années, vous aviez le choix entre un régulateur de ventilateur de type résistif conventionnel ou un régulateur électronique, mais de nos jours, tout a été remplacé par le circuit de régulateur de ventilateur électronique. 

Dans un article précédent, nous vous avons montré comment créer un circuit de contrôle d'angle de phase AC avec un Arduino capable de contrôler la luminosité d'une ampoule à incandescence et également de contrôler la vitesse d'un ventilateur, afin de l'intensifier d'un cran. dans cet article, nous allons créer un circuit de régulateur de ventilateur de plafond AC basé sur l'IoT . Lequel pourra contrôler la vitesse de votre ventilateur de plafond à l'aide d'une application Android . 

Fonctionnement d'un régulateur de ventilateur de plafond basé sur l'IoT

Le circuit Fan Regulator est un circuit simple qui est capable de contrôler la vitesse d'un ventilateur de plafond AC en modifiant l'angle de phase de l'onde sinusoïdale AC ou en termes simples de contrôle précis du TRIAC. Comme je l'ai mentionné tous les fonctionnements de base du circuit de régulateur de ventilateur AC dans l'article Contrôle d'angle de phase AC avec minuterie 555 et PWM , nous nous concentrerons sur la construction réelle du circuit. Et encore une fois, si vous souhaitez en savoir plus sur le sujet, veuillez également consulter l'article sur le variateur de lumière AC utilisant Arduino et TRIAC Project.

Fonctionnement du régulateur de ventilateur de plafond basé sur l'IoT

Le schéma fonctionnel de base ci-dessus montre comment le circuit fonctionne réellement. Comme je l'ai dit plus tôt, nous allons générer un signal PWM à l'aide de  Firebase IoT et NodeMCU, puis le signal PWM sera passé à travers le filtre passe-bas qui contrôlera la porte d'un MOSFET après qu'une minuterie 555 contrôlera le TRIAC proprement dit à l'aide d'un optocoupleur.

Dans ce cas, l'application Android modifie la valeur dans firebaseDB et l'ESP vérifie constamment les modifications qui se produisent dans cette base de données si un changement se produit qui est abaissé et la valeur est convertie en un signal PWM

Matériel requis pour le circuit de commande de vitesse du ventilateur CA

L'image ci-dessous montre le matériau utilisé pour construire ce circuit, car il est composé de composants très génériques, vous devriez pouvoir trouver tout le matériel répertorié dans votre magasin de loisirs local.

J'ai également répertorié les composants dans un tableau ci-dessous avec le type et la quantité depuis qu'il s'agit d'un projet de démonstration, j'utilise un seul canal pour le faire. Mais le circuit peut être facilement mis à l'échelle selon les besoins.

  1. Borne à vis Connecteur 5,04 mm - 2
  2. Connecteur mâle 2,54 mm - 1
  3. Résistance 56K, 1W - 2
  4. Diode 1N4007 - 4
  5. Condensateur 0.1uF, 25V - 2
  6. Régulateur de tension AMS1117 - 1
  7. Condensateur 1000uF, 25V - 1
  8. Prise d'alimentation CC - 1
  9. Résistance 1K - 1
  10. Résistance 470R - 2
  11. Résistance 47R - 2
  12. Résistances 82 K - 1
  13. Résistances 10 K - 5
  14. Optocoupleur PC817 - 1
  15. NE7555 IC - 1
  16. MOC3021 Opto TriacDrive - 1
  17. IRF9540 MOSFET - 1
  18. Condensateur 3.3uF - 1
  19. Connexion des fils - 5
  20. Condensateur 0.1uF, 1KV - 1
  21. Microcontrôleur ESP8266 (ESP-12E) - 1

Circuit de commande de régulateur de ventilateur CA

Le schéma du circuit du régulateur de ventilateur IoT est illustré ci-dessous, ce circuit est très simple et utilise des composants génériques pour réaliser le contrôle de l'angle de phase. 

Circuit de commande de régulateur de ventilateur CA

Ce circuit est composé de composants très soigneusement conçus. Je vais parcourir chacun d'eux et expliquer chaque bloc. 

Puce Wi-Fi ESP8266 (ESP-12E):

C'est la première partie de notre circuit et c'est la partie où nous avons changé pas mal de choses, d'autres parties restent exactement les mêmes, c'est à dire si vous avez suivi l'article précédent.

Puce Wi-Fi ESP8266 (ESP-12E)

Dans cette section, nous avons extrait les broches Enable, Reset et GPIO0, ainsi que GPIO15 et Ground Pin, qui sont recommandés par la fiche technique de la puce. En ce qui concerne la programmation, nous avons placé un en-tête à 3 broches exposant le TX, le RX et la broche de masse à travers laquelle nous pouvons programmer la puce très facilement. Aussi, nous avons mis un interrupteur tactile pour mettre le GPIO0 à la terre, c'est une étape nécessaire pour mettre l'ESP en mode programmation. Nous avons sélectionné la broche GPIO14 comme sortie à travers laquelle le signal PWM est généré.

Noter! Au moment de la programmation, nous devons appuyer sur le bouton et alimenter l'appareil avec le jack cylindrique DC.

Circuit de détection de passage à zéro: 

Circuit de détection de passage à zéro

Tout d'abord, sur notre liste se trouve le circuit de détection de passage par zéro composé de deux résistances 56K, 1W associées à quatre diodes 1n4007 et un optocoupleur PC817. Et ce circuit est chargé de fournir le signal de passage à zéro au circuit intégré de minuterie 555. De plus, nous avons enregistré la phase et le signal neutre pour les utiliser davantage dans la section TRIAC.

Régulateur de tension AMS1117-3.3V: 

Régulateur de tension AMS1117-3.3V

Le régulateur de tension AMS1117 est utilisé pour alimenter le circuit, le circuit est chargé de fournir l'alimentation à l'ensemble du circuit. De plus, nous avons utilisé deux condensateurs de 1000 uF et un condensateur de 0,1 uF comme condensateur de découplage pour le circuit intégré AMS1117-3.3.

Circuit de commande avec minuterie NE555: 

Circuit de commande avec minuterie NE555

L'image ci-dessus montre le circuit de commande de la minuterie 555, le 555 est configuré dans une configuration monostable, donc lorsqu'un signal de déclenchement du circuit de détection de passage à zéro frappe la gâchette, la minuterie 555 commence à charger le condensateur à l'aide d'une résistance ( en général), mais notre circuit a un MOSFET à la place d'une résistance, et en contrôlant la grille du MOSFET, nous contrôlons le courant allant au condensateur, c'est pourquoi nous contrôlons le temps de charge donc nous contrôlons la sortie des 555 minuteries .

TRIAC et le circuit TRIAC-Driver:

TRIAC et le circuit des pilotes TRIAC

Le TRIAC agit comme l'interrupteur principal qui s'allume et s'éteint réellement contrôle ainsi la sortie du signal CA. Pilotant le TRIAC à l'aide du variateur Opto-Triac MOC3021, il ne pilote pas seulement le TRIAC, mais il fournit également une isolation optique, le condensateur haute tension 0,01 uF 2KV et la résistance 47R forme un circuit d'amortissement, qui protège notre circuit de les pointes de haute tension qui se produisent lorsqu'il est connecté à une charge inductive, la nature non sinusoïdale du signal AC commuté est responsable des pointes. En outre, il est responsable des problèmes de facteur de puissance, mais c'est un sujet pour un autre article.

Filtre passe-bas et MOSFET à canal P (agissant comme résistance dans le circuit):

Filtre passe-bas et MOSFET canal P

La résistance 82K et le condensateur 3,3uF forment le filtre passe-bas qui est responsable du lissage du signal PWM haute fréquence généré par l'Arduino. Comme mentionné précédemment, le MOSFET à canal P agit comme la résistance variable, qui contrôle le temps de charge du condensateur. Le contrôle est le signal PWM qui est lissé par le filtre passe-bas.

Conception de circuits imprimés pour le régulateur de ventilateur de plafond contrôlé par IoT

Le circuit imprimé de notre circuit de régulateur de ventilateur de plafond IoT est conçu dans une carte unilatérale. J'ai utilisé le logiciel de conception de PCB Eagle pour concevoir mon PCB, mais vous pouvez utiliser n'importe quel logiciel de conception de votre choix. L'image 2D de la conception de ma carte est présentée ci-dessous.

Circuit imprimé de régulateur de ventilateur de plafond contrôlé par IoT

Un remplissage de sol suffisant est utilisé pour établir des connexions de terre appropriées entre tous les composants. L'entrée 3.3V DC et l'entrée 220 Volt AC sont peuplées sur le côté gauche, la sortie est située sur le côté droit du PCB. Le fichier de conception complet pour Eagle avec le Gerber peut être téléchargé à partir du lien ci-dessous.

  • Conception de circuits imprimés, fichiers GERBER et PDF pour circuit de régulateur de ventilateur de plafond

PCB à la main:

Pour plus de commodité, j'ai fait ma version artisanale du PCB et c'est illustré ci-dessous.

Circuit imprimé de contrôle d'angle de phase CA

Avec cela, notre matériel est prêt selon notre schéma de circuit, nous devons maintenant préparer notre application Android et Google Firebase.

Régulateur de ventilateur de plafond contrôlé par IoT

Configurer un compte Firebase

Pour l'étape suivante, nous devons créer un compte Firebase. Toutes les communications passeront par le compte Firebase. Pour créer un compte Firebase, allez sur le site Web Firebase et cliquez sur «commencer».

Google Firebase

Une fois que vous avez cliqué, vous devez vous connecter avec votre compte Google et 

Compte Google Firebase

une fois connecté, vous devez créer un projet en cliquant sur le bouton créer un projet.

Projet Google Firebase

Cela vous redirigera vers une page qui ressemble à l'image ci-dessus. Tapez le nom de votre projet et cliquez sur continuer.

Conditions d'utilisation de Google Firebase

Encore une fois, cliquez sur Continuer.

Configuration de Google Firebase

Une fois que vous avez fait, vous devez accepter certains termes et conditions en cliquant sur la case à cocher, ensuite, vous devez cliquer sur le bouton Créer un projet. 

Contrôle de la vitesse du ventilateur CA à l'aide de Google Firebase

Si vous avez tout fait correctement, après un certain temps, vous recevrez un message comme celui-ci. Une fois terminé, votre console Firebase devrait ressembler à l'image ci-dessous.

Console Firebase du régulateur de ventilateur

Maintenant, nous devons collecter deux choses à partir d'ici. Pour ce faire, vous devez cliquer sur le nom du projet que vous venez de créer. Pour moi, c'est CelingFanRegulator, une fois que vous avez cliqué dessus, vous obtiendrez un tableau de bord similaire à l'image ci-dessous.

Régulateur de ventilateur de plafond utilisant Firebase

Cliquez sur les paramètres, puis sur les paramètres du projet, la page que vous obtiendrez ressemblera aux images ci-dessous.

Configuration de Google Firebase pour le régulateur de ventilateur

Cliquez sur compte de service -> secret de base de données .

Base de données Google Firebase

Copiez le secret de la base de données et conservez-le quelque part pour une utilisation ultérieure.

Régulateur de ventilateur de plafond utilisant Google Firebase

Ensuite, cliquez sur la base de données en temps réel et copiez l'URL. conservez-le également pour une utilisation ultérieure.

Et c'est tout, il y a du côté de la base de feu des choses.

Code Arduino pour contrôler le régulateur de ventilateur avec NodeMCU 

Un simple code Arduino s'occupe de la communication entre firebase et le module ESP-12E, l'explication du circuit et du code est donnée ci-dessous, tout d'abord, nous définissons toutes les bibliothèques nécessaires requises, vous pouvez télécharger les bibliothèques suivantes à partir des liens donnés Bibliothèque Arduino JSON et  bibliothèque FirebaseArduino

#include  
#include  
#include  
#include 

Nous utiliserons la bibliothèque FirebaseArduino pour établir la communication avec Firebase.

// Définissez-les pour exécuter des exemples. 
#define FIREBASE_HOST "celingfanregulator.firebaseio.com" 
#define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" 
#define WIFI_SSID "votre SSID" 
#define "votre mot de passe WIFI"

Ensuite, nous avons défini l' hôte firebase , firebase auth,  que nous avions précédemment sauvegardé lors de la création du compte firebase. Ensuite, nous avons défini le SSID et le mot de passe de notre routeur.

String Resivedata; 
#define PWM_PIN 14;

Ensuite, nous avons défini une variable de type chaîne, Resivedata où toutes les données seront stockées et nous avons également défini le PWM_PIN où nous obtiendrons la sortie PWM.

Ensuite, dans la section void setup () , nous faisons le nécessaire,

  Serial.begin (9600); 
  pinMode (PWM_PIN, SORTIE); 
  WiFi.begin (WIFI_SSID, WIFI_PASSWORD); 
  Serial.print ("connexion"); 
  while (WiFi.status ()! = WL_CONNECTED) 
  { 
    Serial.print ("."); 
    retard (500); 
  } 
  Serial.println (); 
  Serial.print ("connecté:"); 
  Serial.println (WiFi.localIP ()); 
  Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); 
  Firebase.setString ("Variable / Valeur", "FirstTestStrig");

Tout d'abord, nous activons le numéro de série en appelant la fonction Serial.begin () . Ensuite, nous avons défini la broche PWM comme OUTPUT. Nous commençons la connexion Wi-Fi à l'aide de la fonction WiFi.begin () et nous passons le SSID et le mot de passe dans la fonction. Nous vérifions l'état de la connexion dans une boucle while  et une fois connectés, nous cassons la boucle et continuons. Ensuite, nous imprimons le message connecté avec l'adresse IP .

Enfin, nous commençons la communication avec la firebase avec la fonction Firebase.begin () et nous passons les  paramètres FIREBASE_HOST et FIREBASE_AUTH que nous avons définis précédemment. Et nous définissons la chaîne avec la fonction  setString () , qui marque la fin de la fonction de configuration. Dans la section void loop () ,

Resivedata = Firebase.getString ("Variable / Valeur"); 
 Serial.println (Resivedata); 
 analogWrite (PWM_PIN, carte (Resivedata.toInt (), 0, 80, 80, 0)); 
 Serial.println (Resivedata); 
 retard (100);

Nous appelons la fonction getString () avec Variable / Value où les données sont stockées dans la base de feu, un exemple serait comme l'image ci-dessous-

Régulateur de ventilateur de plafond utilisant NodeMCU

Ensuite, nous imprimons la valeur juste pour le débogage. Ensuite, nous utilisons la fonction map pour mapper la valeur, 80 est utilisé car dans la plage de 0 à 80, nous sommes en mesure de contrôler la porte du MOSFET avec précision, et le filtre passe-bas RC est en quelque sorte responsable de cette valeur. Dans cette plage, le circuit de commande d'angle de phase fonctionne avec précision, vous pouvez appeler la valeur comme un sweet spot matériel-logiciel. Si vous faites ce projet et rencontrez des problèmes, vous devez jouer avec la valeur et déterminer vous-même les résultats.

Et après cela, nous utilisons la fonction analogWrite () pour alimenter les données et activer le PWM, après cela, nous utilisons à  nouveau la fonction Serial.println () juste pour revoir le résultat, et enfin, nous utilisons une fonction de retard pour réduire le hit-count à l'API Firebase qui met fin à notre programme.

Création de l'application Fan Regulator avec MIT App Inventor

Avec l'aide d' AppInventor , nous allons créer une application Android qui communiquera avec Firebase et qui aura le pouvoir de modifier les données stockées dans la base de données Firebase.

Pour ce faire, accédez au site Web appInventors , connectez-vous avec votre compte Google et acceptez les conditions générales. Une fois que vous le faites, vous serez présenté avec un écran qui ressemble à l'image ci-dessous.

Inventeur d'applications MIT

Cliquez sur l'icône de démarrage d'un nouveau projet et donnez-lui un nom et appuyez sur OK, une fois que vous le faites, un écran comme l'image ci-dessous vous sera présenté.

AppInventor

Une fois là-bas, vous devez d'abord mettre deux étiquettes, là où c'est pour abaisser un peu le curseur , ensuite vous devez insérer certains modules et ce sont le module FirebaseDB et le module Web .

Le module firebaseDB communique avec la firebase, le module web est utilisé pour gérer la requête Http . Ce qui ressemble à l'image ci-dessous.

Module FirebaseDB

Une fois que cela est fait, vous devez insérer le curseur et une étiquette que nous avons nommée PWM.Si vous êtes confus en ce moment, vous pouvez consulter d'autres tutoriels concernant la création d'une application avec un inventeur d'application.

Une fois le processus terminé, cliquez sur l'icône Firebase DB et insérez le jeton Firebase et l'URL Firebase que nous avons sauvegardés lors de la création du compte Firebase.

Configuration de l'application Fan Regulator

Maintenant, nous en avons terminé avec la section de conception et nous devons configurer la section de bloc. Pour ce faire, nous devons cliquer sur le bouton de blocage dans le coin supérieur droit à côté du concepteur.

Conception de l'application Fan Regulator