- Fonctionnement d'un régulateur de ventilateur de plafond basé sur l'IoT
- Matériel requis pour le circuit de commande de vitesse du ventilateur CA
- Circuit de commande de régulateur de ventilateur CA
- Conception de circuits imprimés pour le régulateur de ventilateur de plafond contrôlé par IoT
- Configurer un compte Firebase
- Code Arduino pour contrôler le régulateur de ventilateur avec NodeMCU
- Création de l'application Fan Regulator avec MIT App Inventor
- Test du circuit du capteur tactile basé sur ESP32
- Autres améliorations
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. Ce qui 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 voulez en savoir plus sur le sujet, veuillez également consulter l'article sur le gradateur de lumière AC utilisant Arduino et TRIAC Project.
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 fait avec des composants très génériques, vous devriez être en mesure de trouver tout le matériel listé dans votre magasin de bricolage 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.
- Borne à vis Connecteur 5,04 mm - 2
- Connecteur mâle 2,54 mm - 1
- Résistance 56K, 1W - 2
- Diode 1N4007 - 4
- Condensateur 0.1uF, 25V - 2
- Régulateur de tension AMS1117 - 1
- Condensateur 1000uF, 25V - 1
- Prise d'alimentation CC - 1
- Résistance 1K - 1
- Résistance 470R - 2
- Résistance 47R - 2
- Résistances 82 K - 1
- Résistances 10 K - 5
- Optocoupleur PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- Condensateur 3.3uF - 1
- Connexion des fils - 5
- Condensateur 0.1uF, 1KV - 1
- 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.
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.
Dans cette section, nous avons tiré 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 par laquelle le signal PWM est généré.
Remarque! 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:
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 conjointement avec 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:
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:
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:
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 CA 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):
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.
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.
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.
Configurer un compte Firebase
Pour l'étape suivante, nous devons créer un compte Firebase. Toutes les communications passeront par le compte Firebase. Pour configurer un compte Firebase, allez sur le site Web Firebase et cliquez sur «commencer».
Une fois que vous avez cliqué, vous devez vous connecter avec votre compte Google et
une fois connecté, vous devez créer un projet en cliquant sur le bouton créer un projet.
Cela vous redirigera vers une page qui ressemble à l'image ci-dessus. Tapez le nom de votre projet et cliquez sur continuer.
Encore une fois, cliquez sur continuer.
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.
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.
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.
Cliquez sur les paramètres, puis sur les paramètres du projet, la page que vous obtiendrez ressemblera aux images ci-dessous.
Cliquez sur compte de service -> secret de base de données.
Copiez le secret de la base de données et conservez-le quelque part pour une utilisation ultérieure.
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
#comprendre
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 serial 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é, 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-
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.
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 l'avez fait, un écran comme l'image ci-dessous vous sera présenté.
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. Ce qui ressemble à l'image ci-dessous.
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.
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.
Une fois que vous avez cliqué sur le curseur et une longue liste de modules vous sera présentée, retirez le premier module et passez votre souris sur le bouton de position du pouce, vous serez accueilli avec deux autres modules, retirez-les tous les deux. Nous allons les utiliser plus tard.
Maintenant, nous attachons la variable de position du pouce , nous l'arrondissons et nous obtenons la valeur de la position du pouce. Ensuite, nous cliquons sur firebasedb et extrayons la valeur de la balise d'appel FirebaseDB.storeValue pour la stocker, le module et l'attacher au bas de la valeur de position du pouce.
Une fois cela fait, nous sortons une zone de texte vide en cliquant sur le bloc de texte et l'attachons avec la balise, c'est la balise que nous avons définie dans l'IDE Arduino pour lire et écrire les données sur Firebase. Maintenant, attachez la variable de valeur du pouce à la valeur pour stocker la balise. Si vous avez tout fait correctement, en déplaçant le curseur, vous pourrez modifier les valeurs dans firebaseDB.
- Le.aia (fichier enregistré) et.apk (fichier compilé)
Ce qui marque la fin de notre processus de création d'applications. Un instantané de l'application Android que nous venons de créer ci-dessous.
Test du circuit du capteur tactile basé sur ESP32
Pour tester le circuit, j'ai connecté une ampoule à incandescence parallèle au ventilateur de plafond et j'ai alimenté le circuit avec un adaptateur 5V DC, comme vous pouvez le voir sur l'image ci-dessus, le curseur de l'application est réglé sur bas, c'est pourquoi l'ampoule brille à faible luminosité. Et le ventilateur tourne également lentement.
Autres améliorations
Pour cette démonstration, le circuit est fait sur un PCB fait à la main mais le circuit peut être facilement construit sur un PCB de bonne qualité, dans mes expériences, la taille du PCB est vraiment peu due à la taille du composant, mais dans un environnement de production, il peut être réduit en utilisant des composants SMD bon marché, j'ai trouvé que l'utilisation d'une minuterie 7555 au lieu d'une minuterie 555 augmentait considérablement le contrôle, en outre, la stabilité du circuit augmentait également.