- Arbeiten eines IoT-basierten Deckenventilatorreglers
- Erforderliche Materialien für den Drehzahlregelkreis
- Steuerstromkreis des AC-Lüfterreglers
- PCB-Design für den IoT-gesteuerten Deckenventilatorregler
- Einrichten eines Firebase-Kontos
- Arduino-Code zur Steuerung des Lüfterreglers mit NodeMCU
- Erstellen der Fan Regulator App mit MIT App Inventor
- Testen der ESP32-basierten Berührungssensorschaltung
- Weitere Verbesserungen
In diesem Artikel bauen wir eine AC-Lüfterreglerschaltung auf, mit der die Drehzahl des Lüfters gesteuert werden kann, indem der Stromfluss zum Lüfter begrenzt wird. Der Begriff AC-Deckenventilatorregler ist ein Schluck, daher werden wir ihn von nun an einfach als Ventilatorregler bezeichnen. Eine Lüfterreglerschaltung ist eine wichtige Komponente, mit der die Drehzahl eines AC-Lüfters / Motors je nach Bedarf erhöht oder verringert wird. Vor ein paar Jahren hatten Sie die Wahl zwischen einem herkömmlichen Widerstandslüfterregler oder einem elektronischen Regler, aber heutzutage wurde alles durch die elektronische Lüfterreglerschaltung ersetzt.
In einem früheren Artikel haben wir Ihnen gezeigt, wie Sie mit einem Arduino einen Wechselstrom-Phasenwinkel-Steuerkreis bauen können, der die Helligkeit einer Glühbirne und auch die Drehzahl eines Lüfters steuern kann, um ihn noch weiter zu verbessern In diesem Artikel werden wir eine IoT-basierte AC-Deckenventilator-Reglerschaltung bauen. Damit können Sie die Geschwindigkeit Ihres Deckenventilators mithilfe einer Android-Anwendung steuern.
Arbeiten eines IoT-basierten Deckenventilatorreglers
Die Lüfterreglerschaltung ist eine einfache Schaltung, die die Drehzahl eines AC-Deckenventilators durch Ändern des Phasenwinkels der AC-Sinuswelle oder in einfachen Worten durch präzise Steuerung des TRIAC steuern kann. Da ich im Artikel Wechselstrom-Phasenwinkelregelung mit 555-Timer und PWM alle grundlegenden Funktionen der AC- Lüfterreglerschaltung erwähnt habe, konzentrieren wir uns auf den eigentlichen Aufbau der Schaltung. Wenn Sie mehr über das Thema erfahren möchten, lesen Sie bitte auch den Artikel über AC Light Dimmer mit Arduino und TRIAC Project.
Das obige grundlegende Blockdiagramm zeigt, wie die Schaltung tatsächlich funktioniert. Wie ich bereits sagte, werden wir mit Hilfe von Firebase IoT und NodeMCU ein PWM-Signal erzeugen. Anschließend wird das PWM-Signal durch das Tiefpassfilter geleitet, das das Gate eines MOSFET steuert. Danach steuert ein 555-Timer das eigentliche TRIAC mit Hilfe eines Optokopplers.
In diesem Fall ändert die Android-App den Wert in der firebaseDB und der ESP prüft ständig, ob Änderungen an dieser Datenbank vorgenommen wurden, wenn Änderungen auftreten, die heruntergezogen werden, und der Wert wird in ein PWM-Signal umgewandelt
Erforderliche Materialien für den Drehzahlregelkreis
Das Bild unten zeigt das Material, das zum Aufbau dieser Schaltung verwendet wurde. Da es sich um sehr allgemeine Komponenten handelt, sollten Sie in der Lage sein, das gesamte aufgelistete Material in Ihrem örtlichen Hobbygeschäft zu finden.
Ich habe auch die Komponenten in einer Tabelle unten mit Typ und Menge aufgelistet, da es sich um ein Demonstrationsprojekt handelt. Ich verwende dazu einen einzelnen Kanal. Die Schaltung kann jedoch leicht nach Bedarf vergrößert werden.
- Schraubklemme 5,04 mm Stecker - 2
- Stecker 2,54 mm Stecker - 1
- 56K, 1W Widerstand - 2
- 1N4007 Diode - 4
- 0,1 uF, 25 V Kondensator - 2
- AMS1117 Spannungsregler - 1
- 1000 uF, 25 V Kondensator - 1
- DC Power Jack - 1
- 1K Widerstand - 1
- 470R Widerstand - 2
- 47R Widerstand - 2
- 82 K Widerstände - 1
- 10 K Widerstände - 5
- PC817 Optokoppler - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3,3 uF Kondensator - 1
- Kabel anschließen - 5
- 0,1 uF, 1 kV Kondensator - 1
- Mikrocontroller ESP8266 (ESP-12E) - 1
Steuerstromkreis des AC-Lüfterreglers
Das Schema für die IoT-Lüfterreglerschaltung ist unten gezeigt. Diese Schaltung ist sehr einfach und verwendet generische Komponenten, um eine Phasenwinkelsteuerung zu erreichen.
Diese Schaltung besteht aus sehr sorgfältig entworfenen Komponenten. Ich werde jeden einzelnen durchgehen und jeden Block erklären.
ESP8266 (ESP-12E) Wi-Fi-Chip:
Dies ist der erste Teil unserer Schaltung und es ist der Teil, in dem wir viele Dinge geändert haben. Andere Teile bleiben genau gleich, dh wenn Sie dem vorherigen Artikel gefolgt sind.
In diesem Abschnitt haben wir die Pins Enable, Reset und GPIO0 hochgezogen. Außerdem haben wir GPIO15 und den Ground Pin heruntergezogen, die im Datenblatt des Chips empfohlen werden. Für die Programmierung haben wir einen 3-Pin-Header platziert, der TX, RX und den Erdungsstift freigibt, über den wir den Chip sehr einfach programmieren können. Außerdem haben wir einen Tastschalter eingestellt, um den GPIO0 auf Masse zu stellen. Dies ist ein notwendiger Schritt, um den ESP in den Programmiermodus zu versetzen. Wir haben den GPIO14-Pin als Ausgang ausgewählt, über den das PWM-Signal erzeugt wird.
Hinweis! Zum Zeitpunkt der Programmierung müssen wir die Taste drücken und das Gerät mit der DC-Barrel-Buchse versorgen.
Nulldurchgangserkennungsschaltung:
Auf unserer Liste steht zunächst die Nulldurchgangserkennungsschaltung mit zwei 56K, 1W Widerständen in Verbindung mit vier 1n4007 Dioden und einem PC817 Optokoppler. Und diese Schaltung ist dafür verantwortlich, das Nulldurchgangssignal an den 555-Zeitgeber-IC zu liefern. Außerdem haben wir die Phase und das neutrale Signal abgeklebt, um es im TRIAC-Bereich weiter zu verwenden.
AMS1117-3.3V Spannungsregler:
Der Spannungsregler AMS1117 wird zur Stromversorgung des Stromkreises verwendet. Der Stromkreis ist für die Stromversorgung des gesamten Stromkreises verantwortlich. Zusätzlich haben wir zwei 1000uF-Kondensatoren und einen 0,1uF-Kondensator als Entkopplungskondensator für den AMS1117-3.3-IC verwendet.
Steuerkreis mit NE555 Timer:
Das obige Bild zeigt die 555-Timer-Steuerschaltung. Die 555 ist in einer monostabilen Konfiguration konfiguriert. Wenn also ein Triggersignal von der Nulldurchgangserkennungsschaltung auf den Trigger trifft, beginnt der 555-Timer, den Kondensator mit Hilfe eines Widerstands aufzuladen (im Allgemeinen), aber unsere Schaltung hat einen MOSFET anstelle eines Widerstands, und indem wir das Gate des MOSFET steuern, steuern wir den Strom, der zum Kondensator fließt. Deshalb steuern wir die Ladezeit, daher steuern wir den Ausgang der 555-Timer.
TRIAC und die TRIAC-Treiberschaltung:
Der TRIAC fungiert als Hauptschalter, der tatsächlich ein- und ausgeschaltet wird und somit den Ausgang des Wechselstromsignals steuert. Wenn der TRIAC mit dem Opto-Triac-Laufwerk MOC3021 angesteuert wird, wird nicht nur der TRIAC angesteuert, sondern es wird auch eine optische Isolation bereitgestellt. Der 0,01 uF 2KV-Hochspannungskondensator und der 47R-Widerstand bilden eine Dämpfungsschaltung, vor der unsere Schaltung geschützt ist Hochspannungsspitzen, die auftreten, wenn sie an eine induktive Last angeschlossen werden. Die nicht sinusförmige Natur des geschalteten Wechselstromsignals ist für die Spitzen verantwortlich. Es ist auch für Leistungsfaktorprobleme verantwortlich, aber das ist ein Thema für einen anderen Artikel.
Tiefpassfilter und P-Kanal-MOSFET (fungiert als Widerstand in der Schaltung):
Der 82K-Widerstand und der 3,3uF-Kondensator bilden das Tiefpassfilter, das für die Glättung des vom Arduino erzeugten Hochfrequenz-PWM-Signals verantwortlich ist. Wie bereits erwähnt, fungiert der P-Kanal-MOSFET als variabler Widerstand, der die Ladezeit des Kondensators steuert. Die Steuerung erfolgt über das PWM-Signal, das vom Tiefpassfilter geglättet wird.
PCB-Design für den IoT-gesteuerten Deckenventilatorregler
Die Platine für unsere IoT-Deckenventilator-Reglerschaltung besteht aus einer einseitigen Platine. Ich habe Eagle PCB Design Software zum Entwerfen meiner Leiterplatte verwendet, aber Sie können jede Design Software Ihrer Wahl verwenden. Das 2D-Bild meines Board-Designs ist unten dargestellt.
Eine ausreichende Erdung wird verwendet, um ordnungsgemäße Erdungsverbindungen zwischen allen Komponenten herzustellen. Der 3,3-V-Gleichstromeingang und der 220-Volt-Wechselstromeingang befinden sich auf der linken Seite. Der Ausgang befindet sich auf der rechten Seite der Leiterplatte. Die komplette Designdatei für Eagle zusammen mit dem Gerber kann über den unten stehenden Link heruntergeladen werden.
- PCB Design, GERBER & PDF-Dateien für Deckenventilator-Reglerschaltung
Handgefertigte Leiterplatte:
Der Einfachheit halber habe ich meine handgefertigte Version der Leiterplatte hergestellt und sie ist unten abgebildet.
Damit ist unsere Hardware gemäß unserem Schaltplan bereit. Jetzt müssen wir unsere Android-Anwendung und Google Firebase bereitstellen.
Einrichten eines Firebase-Kontos
Für den nächsten Schritt müssen wir ein Firebase-Konto einrichten. Die gesamte Kommunikation erfolgt über das Firebase-Konto. Um ein Firebase-Konto einzurichten, rufen Sie die Firebase-Website auf und klicken Sie auf "Erste Schritte".
Sobald Sie auf klicken, müssen Sie sich mit Ihrem Google-Konto anmelden und
Sobald Sie angemeldet sind, müssen Sie ein Projekt erstellen, indem Sie auf die Schaltfläche Projekt erstellen klicken.
Wenn Sie dies tun, werden Sie zu einer Seite weitergeleitet, die dem obigen Bild entspricht. Geben Sie den Namen Ihres Projekts ein und klicken Sie auf Weiter.
Klicken Sie erneut auf Weiter.
Sobald Sie dies getan haben, müssen Sie einigen Bedingungen zustimmen, indem Sie auf das Kontrollkästchen klicken. Als nächstes müssen Sie auf die Schaltfläche Projekt erstellen klicken.
Wenn Sie alles richtig gemacht haben, erhalten Sie nach einiger Zeit eine Meldung wie diese. Sobald Sie fertig sind, sollte Ihre Firebase-Konsole wie im Bild unten aussehen.
Jetzt müssen wir zwei Dinge von hier sammeln. Dazu müssen Sie auf den Namen des gerade erstellten Projekts klicken. Für mich ist es CelingFanRegulator. Sobald Sie darauf klicken, erhalten Sie ein Dashboard ähnlich dem Bild unten.
Klicken Sie auf Einstellungen und dann auf Projekteinstellungen. Die Seite, die Sie erhalten, sieht wie in den folgenden Bildern aus.
Klicken Sie auf Dienstkonto -> Datenbankgeheimnis.
Kopieren Sie das Datenbankgeheimnis und bewahren Sie es zur späteren Verwendung an einem Ort auf.
Klicken Sie anschließend auf die Echtzeitdatenbank und kopieren Sie die URL. Bewahren Sie das auch für die spätere Verwendung auf.
Und das ist alles, was die Feuerbasis betrifft.
Arduino-Code zur Steuerung des Lüfterreglers mit NodeMCU
Ein einfacher Arduino-Code kümmert sich um die Kommunikation zwischen Firebase und dem ESP-12E-Modul. Die Erklärung der Schaltung und des Codes finden Sie unten. Zunächst definieren wir alle erforderlichen Bibliotheken. Sie können die folgenden Bibliotheken von den angegebenen Links der Arduino JSON-Bibliothek herunterladen und FirebaseArduino-Bibliothek
#einschließen
Wir werden die FirebaseArduino- Bibliothek verwenden, um die Kommunikation mit Firebase herzustellen.
// Setze diese, um Beispiele auszuführen. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #define WIFI_PASSWORD "
Als nächstes haben wir die definierten Feuerbasis Host, Feuerbasis Auth, die wir früher gerettet hatten, als wir die Feuerbasis Rechnung machten. Dann haben wir die SSID und das Passwort unseres Routers definiert.
String Resivedata; #define PWM_PIN 14;
Als nächstes haben wir eine Variable vom Typ String definiert, Resivedata, in der alle Daten gespeichert werden, und wir haben auch die PWM_PIN definiert, in der wir die PWM-Ausgabe erhalten.
Als nächstes führen wir im Abschnitt void setup () die erforderlichen Schritte aus:
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Verbinden"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); Verzögerung (500); } Serial.println (); Serial.print ("verbunden:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variable / Wert", "FirstTestStrig");
Zuerst aktivieren wir die Seriennummer, indem wir die Funktion Serial.begin () aufrufen. Als nächstes haben wir den PWM-Pin als OUTPUT gesetzt. Wir beginnen die Wi-Fi-Verbindung mit Hilfe der WiFi.begin () -Funktion und übergeben die SSID und das Passwort in der Funktion. Wir überprüfen den Verbindungsstatus in einer while-Schleife und sobald die Verbindung hergestellt ist, unterbrechen wir die Schleife und fahren fort. Als nächstes drucken wir die verbundene Nachricht mit der IP-Adresse.
Schließlich beginnen wir die Kommunikation mit der Firebase mit der Funktion Firebase.begin () und übergeben die zuvor definierten Parameter FIREBASE_HOST und FIREBASE_AUTH . Und wir setzen den String mit der Funktion setString () , die das Ende der Setup-Funktion markiert. Im Abschnitt void loop ()
Resivedata = Firebase.getString ("Variable / Wert"); Serial.println (Resivedata); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); Verzögerung (100);
Wir rufen die Funktion getString () mit Variable / Wert auf, in der die Daten in der Firebase gespeichert sind. Ein Beispiel wäre wie im Bild unten
Dann drucken wir den Wert nur zum Debuggen. Als nächstes verwenden wir die Abbildungsfunktion, um den Wert abzubilden. 80 wird verwendet, da wir im Bereich von 0 bis 80 das Gate des MOSFET genau steuern können und das RC-Tiefpassfilter in gewisser Weise für diesen Wert verantwortlich ist. Innerhalb dieses Bereichs arbeitet die Phasenwinkel-Steuerschaltung genau. Sie können den Wert als Hardware-Software-Sweetspot bezeichnen. Wenn Sie dieses Projekt durchführen und Probleme haben, müssen Sie mit dem Wert spielen und die Ergebnisse selbst bestimmen.
Danach verwenden wir die Funktion analogWrite () , um die Daten einzugeben und die PWM zu aktivieren. Danach verwenden wir die Funktion Serial.println () erneut, um das Ergebnis zu überprüfen, und schließlich verwenden wir eine Verzögerungsfunktion, um die zu reduzieren Trefferzahl für die Firebase-API, mit der unser Programm beendet wird.
Erstellen der Fan Regulator App mit MIT App Inventor
Mit Hilfe von AppInventor werden wir eine Android-App erstellen, die mit der Firebase kommuniziert und die Berechtigung hat, die in der Firebase-Datenbank gespeicherten Daten zu ändern.
Rufen Sie dazu die appInventors-Website auf, melden Sie sich mit Ihrem Google-Konto an und akzeptieren Sie die Allgemeinen Geschäftsbedingungen. Sobald Sie dies tun, wird Ihnen ein Bildschirm angezeigt, der wie im Bild unten aussieht.
Klicken Sie auf das Symbol zum Starten eines neuen Projekts, geben Sie ihm einen Namen und klicken Sie auf OK. Sobald Sie dies tun, wird ein Bildschirm wie im folgenden Bild angezeigt.
Sobald Sie dort angekommen sind, müssen Sie zuerst zwei Beschriftungen anbringen, um den Schieberegler ein wenig nach unten zu setzen. Als nächstes müssen Sie einige Module einziehen. Dies sind das FirebaseDB- Modul und das Web-Modul.
Das firebaseDB- Modul kommuniziert mit der firebase, das Webmodul wird verwendet, um die HTTP-Anforderung zu bearbeiten. Welches sieht aus wie das Bild unten.
Sobald dies erledigt ist, müssen Sie den Schieberegler und ein Etikett mit dem Namen PWM ziehen. Wenn Sie in diesem Moment verwirrt sind, können Sie einige andere Tutorials zum Erstellen einer App mit einem App-Erfinder lesen.
Nachdem wir mit dem Vorgang fertig sind, klicken Sie auf das Firebase-DB-Symbol und geben Sie das Firebase-Token und die Firebase-URL ein, die wir beim Erstellen des Firebase-Kontos gespeichert haben.
Jetzt sind wir mit dem Entwurfsabschnitt fertig und müssen den Blockabschnitt einrichten. Dazu müssen wir auf die Blockschaltfläche in der oberen rechten Ecke neben dem Designer klicken.
Sobald Sie auf den Schieberegler klicken, wird eine lange Liste von Modulen angezeigt. Ziehen Sie das erste Modul heraus und bewegen Sie die Maus über die Daumenpositionstaste. Sie werden mit zwei weiteren Modulen begrüßt. Ziehen Sie beide heraus. Wir werden diese später verwenden.
Jetzt hängen wir die Daumenpositionsvariable an , runden sie ab und erhalten den Daumenpositionswert . Als nächstes klicken wir auf das firebasedb und ziehen den Aufruf-FirebaseDB.storeValue-Tag-Wert heraus, um ihn zu speichern, zu modulieren und am unteren Rand des Daumenpositionswerts anzuhängen.
Sobald wir fertig sind, ziehen wir ein leeres Textfeld heraus, indem wir auf den Textblock klicken und ihn mit dem Tag anhängen. Dies ist das Tag, das wir in der Arduino IDE festgelegt haben, um die Daten auf Firebase zu lesen und zu schreiben. Fügen Sie nun die Daumenwertvariable dem Wert hinzu, um das Tag zu speichern. Wenn Sie alles richtig gemacht haben, können Sie durch Bewegen des Schiebereglers die Werte in der firebaseDB ändern.
- Die.aia (gespeicherte Datei) und.apk (kompilierte Datei)
Dies markiert das Ende unseres App-Erstellungsprozesses. Ein Schnappschuss der Android-Anwendung, die wir gerade erstellt haben (siehe unten).
Testen der ESP32-basierten Berührungssensorschaltung
Um die Schaltung zu testen, habe ich eine Glühbirne parallel zum Deckenventilator angeschlossen und die Schaltung mit einem 5-V-Gleichstromadapter mit Strom versorgt. Wie Sie im obigen Bild sehen können, ist der App-Schieberegler auf niedrig eingestellt Die Glühbirne leuchtet bei geringer Helligkeit. Und der Lüfter dreht sich auch langsam.
Weitere Verbesserungen
Für diese Demonstration wird die Schaltung auf einer handgefertigten Leiterplatte hergestellt, aber die Schaltung kann leicht auf einer Leiterplatte von guter Qualität aufgebaut werden. In meinen Experimenten ist die Größe der Leiterplatte aufgrund der Komponentengröße wirklich etwas, aber in einer Produktionsumgebung ist dies der Fall kann durch die Verwendung billiger SMD-Komponenten reduziert werden. Ich fand, dass die Verwendung eines 7555-Timers anstelle eines 555-Timers die Steuerung erheblich erhöht und außerdem die Stabilität der Schaltung erhöht.