- Erforderliche Komponenten für den Bau von automatisierten Arduino-Jalousien
- Steuern von Rollos mit Arduino
- Entwerfen und bauen Sie die Jalousie
- 3D-Druck des Motorhalters und des Blindgetriebes
- Schaltplan für die Steuerung von Arduino-Jalousien
- Blynk-Anwendung für Arduino Blind Control
- Programmieren von NodeMCU zur Steuerung von Jalousien mit Blynk
- Steuern von Jalousien mit Google Assistant
- Arduino-basierte automatische Jalousiesteuerung - Demonstration
"Guten Morgen. Es ist 7 Uhr morgens. Das Wetter in Malibu ist 72 Grad… “Dies waren die ersten Worte von JARVIS, als er im Marvel Cinematics Universe vorgestellt wurde. Die meisten Iron Man-Fans sollten sich an diese Szene erinnern und sich daran erinnern können, dass JARVIS am Morgen ein Fenster öffnen konnte, um Zeit und Wetter zu aktualisieren. Im Film bestand die Fensterbrille tatsächlich aus durchsichtigen Touch-Displays, und daher konnte JARVIS die Umstellung von Schwarz auf Transparent vornehmen und auch Wetterstatistiken anzeigen. In Wirklichkeit sind wir jedoch weit entfernt von durchsichtigen Touchscreens, und je näher wir kommen können, desto mehr werden Jalousien oder Einschränkungen automatisch gesteuert.
In diesem Projekt werden wir genau das bauen. Wir werden eine automatisierte motorisierte Jalousie bauen, die sich zu vordefinierten Zeiten automatisch öffnet und schließt. Zuvor haben wir viele Hausautomationsprojekte erstellt, in denen wir die Lichter, Motoren usw. automatisiert haben. Sie können sie bei Interesse überprüfen. Wenn Sie also zurückkehren, können diese von Arduino gesteuerten Jalousien auch Befehle vom Google-Assistenten entgegennehmen, sodass Sie Ihre Jalousien über Sprachbefehle aus der Ferne öffnen oder schließen können. Faszinierend? Dann lass es uns bauen.
Erforderliche Komponenten für den Bau von automatisierten Arduino-Jalousien
Das Projekt ist relativ einfach und es sind nicht viele Komponenten erforderlich. Sammeln Sie einfach die unten aufgeführten Gegenstände.
- NodeMCU
- Schrittmotor - 28BYJ-48
- Schrittmotortreibermodul
- LM117-3.3V
- Kondensatoren (10uf, 1uf)
- 12V DC Adapter
- Perf Board
- Lötkit
- 3D Drucker
Steuern von Rollos mit Arduino
Jetzt gibt es viele Arten von Jalousien auf dem Markt, aber die am häufigsten verwendete hat ein Seil mit Perlen (wie unten gezeigt), die gezogen werden können, um die Jalousien zu öffnen oder zu schließen.
Wenn wir dieses kreisförmige Seil im Uhrzeigersinn ziehen, öffnen sich die Jalousien, und wenn wir dieses Seil gegen den Uhrzeigersinn ziehen, schließen sich die Jalousien. Wenn wir diesen Prozess automatisieren wollen, müssen wir nur einen Motor verwenden, um dieses Seil im oder gegen den Uhrzeigersinn zu ziehen, und wir sind damit fertig. Genau das werden wir in diesem Projekt tun. Wir werden den 28BYJ-48 Schrittmotor zusammen mit einer NodeMCU verwenden, um das Perlenseil zu ziehen.
Entwerfen und bauen Sie die Jalousie
Der Elektronik-Teil dieses Projekts war ziemlich einfach und unkompliziert. Der herausfordernde Teil bestand darin, das Blind Gear zu bauen, mit dem das Perlenseil gezogen werden konnte. Beginnen wir diesen Artikel mit dem Design des Blindgetriebes. Ich werde nicht näher auf das Design des Zahnrads eingehen, aber diese Grundidee sollte Ihnen helfen. Ein Bild des Seils mit den Perlen darauf ist unten gezeigt.
Auch hier gibt es viele Arten von Seilen, aber die am häufigsten verwendeten Seile sind der Abstand von Mitte zu Mitte jeder Perle 6 mm und der Durchmesser jeder Perle 4 mm. Mit diesen Informationen können wir mit dem Design unserer Ausrüstung beginnen. Wenn das Seil an Ihren Jalousien die gleichen Abmessungen wie beschrieben hat, können Sie diesen Schritt einfach überspringen und die in diesem Artikel bereitgestellte STL-Datei herunterladen und das Zahnrad ausdrucken. Wenn Ihr Seil eine andere Perlenanordnung hat, sollten Sie das Blindgetriebe auf diese Weise neu gestalten.
Ich habe mich für 24 Perlen an meinem Zahnrad entschieden, um eine optimale Zahnradgröße zu erhalten. Sie können eine beliebige Zahl in der Nähe auswählen, damit Ihr Zahnrad groß oder klein ist. Jetzt wissen wir also, dass der Abstand zwischen den einzelnen Perlen 6 mm beträgt und wir 24 Perlen für unsere Ausrüstung benötigen. Wenn Sie beide multiplizieren, erhalten Sie den Umfang des Zahnrads. Mit diesen Daten können Sie den Radius des Zahnrads berechnen. Wie Sie im obigen Bild sehen können, wurde der Durchmesser meines Zahnrads mit etwa 46 mm berechnet. Denken Sie jedoch daran, dass dies nicht der tatsächliche Durchmesser des Zahnrads ist, da wir den Durchmesser der Wulst von 4 mm nicht berücksichtigt haben. Der tatsächliche Durchmesser des Zahnrads beträgt also 42 mm. Ich habe viele Zahnräder gedruckt und getestet, bevor ich das gefunden habe, das am besten funktioniert. Wenn Sie nicht in Designs sind,Laden Sie einfach die STL-Dateien aus dem nächsten Absatz herunter, drucken Sie sie aus und fahren Sie mit Ihrem Projekt fort.
3D-Druck des Motorhalters und des Blindgetriebes
Zusammen mit dem Zahnrad benötigen wir auch ein kleines Gehäuse, das an die Wand gebohrt werden kann und den Schrittmotor in Position hält. Sowohl das Gehäuse als auch das in diesem Projekt verwendete Zahnrad sind unten dargestellt.
Vollständige Designdateien und STL-Dateien finden Sie auf der unten angegebenen Seite Arduino Blind Control Thingiverse. Sie können einfach Ihr Blindgetriebe und Ihr Motorgehäuse herunterladen und ausdrucken.
Laden Sie STL-Dateien für Blind Gear und Motor Case herunter
Schaltplan für die Steuerung von Arduino-Jalousien
Sobald Sie mit dem Getriebe und der Baugruppe fertig sind, können Sie problemlos mit dem Elektronik- und Softwareteil fortfahren. Das vollständige Schaltbild für das IoT Blind Control-Projekt ist unten dargestellt.
Wir haben einen 12-V-Adapter verwendet, um das gesamte Setup mit Strom zu versorgen. Der Regler LM1117-3.3V wandelt die 12V in 3.3V um, mit denen die NodeMCU-Karte mit Strom versorgt werden kann. Das Schrittmotortreibermodul wird direkt über den 12-V-Adapter mit Strom versorgt. Ich habe versucht, den Schrittmotor mit 5 V zu betreiben, aber dann lieferte er nicht genügend Drehmoment, um die Jalousien zu ziehen. Stellen Sie daher sicher, dass Sie auch 12 V verwenden.
Abgesehen davon ist die Schaltung ziemlich einfach. Wenn Sie mit Schrittmotoren noch nicht vertraut sind, lesen Sie die Grundlagen des Artikels über Schrittmotoren, um zu verstehen, wie sie funktionieren und wie sie mit einem Mikrocontroller verwendet werden können.
Blynk-Anwendung für Arduino Blind Control
Bevor wir uns mit dem Arduino-Programm zur Steuerung von Jalousien befassen, öffnen wir die Blynk-Anwendung und erstellen einige Schaltflächen, mit denen wir unsere Jalousien öffnen oder schließen können. Wir werden dies auch später benötigen, um von Google aus zu steuern.
Ich habe gerade zwei Tasten zum Öffnen und Schließen der Jalousien und einen Timer zum täglichen Öffnen der Jalousien um 10:00 Uhr hinzugefügt. Sie können mehrere Timer hinzufügen, um die Jalousien in verschiedenen Tagesintervallen zu öffnen oder zu schließen. Wenn wir die Jalousien schließen müssen, müssen wir grundsätzlich den virtuellen Pin V1 auslösen, und wenn wir die Jalousien öffnen müssen, müssen wir den virtuellen Pin V2 auslösen. Das Programm zur Steuerung des Schrittmotors basierend auf der hier gedrückten Taste wird auf die Arduino IDE geschrieben, dasselbe wird unten diskutiert.
Programmieren von NodeMCU zur Steuerung von Jalousien mit Blynk
Den vollständigen ESP8266-Code für dieses Blind Control-Projekt finden Sie unten auf dieser Seite. Unser Programm muss auf einen Befehl aus der blynk-Anwendung warten und basierend auf diesem Befehl müssen wir den Schrittmotor entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn drehen. Die wichtigen Segmente des Codes werden unten erläutert.
Gemäß unserem Schaltplan haben wir die digitalen Pins 1, 2, 3 und 4 auf nodemcu verwendet, um unseren Schrittmotor zu steuern. Wir müssen also eine Instanz namens Stepper mit diesen Pins erstellen, wie unten gezeigt. Beachten Sie, dass wir die Pins in der Reihenfolge 1, 3, 2 und 4 definiert haben. Dies wurde absichtlich gemacht und ist kein Fehler. Wir müssen die Stifte 2 und 3 austauschen, damit der Motor richtig funktioniert.
// eine Instanz der Stepper-Klasse mit den Schritten und Pins erstellen Stepper Stepper (STEPS, D1, D3, D2, D4);
Im nächsten Schritt müssen wir unser Blynk-Anwendungsauthentifizierungstoken und die Wi-Fi-Anmeldeinformationen, mit denen unser IoT Blind-Controller verbunden sein muss, gemeinsam nutzen. Wenn Sie nicht sicher sind, wie Sie dieses Blynk-Authentifizierungstoken erhalten, lesen Sie das Blynk LED Control-Projekt, um die Grundlagen der Blynk-Anwendung und deren Verwendung zu verstehen.
// Sie sollten Auth Token in der Blynk App erhalten. // Gehe zu den Projekteinstellungen (Muttersymbol). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Ihre WiFi-Anmeldeinformationen. // Setzen Sie das Passwort für offene Netzwerke auf "". char ssid = "CircuitDigest"; char pass = "dummy123";
Nachdem wir mit unserem Code fortgefahren sind, haben wir nach der Setup-Funktion zwei Methoden für blynk definiert. Wie bereits erwähnt, müssen wir definieren, was die virtuellen Pins V1 und V2 tun sollen. Der Code dafür ist unten angegeben.
BLYNK_WRITE (V1) // SCHLIESSEN SIE DIE BLINDS {Serial.println ("Blinds schließen"); if (opens == true) {for (int c_val = 0; c_val <= 130; c_val ++) // zum Schließen gegen den Uhrzeigersinn drehen {stepper.step (c_val); Ausbeute(); } geschlossen = wahr; geöffnet = falsch; disable_motor (); // Schrittmotoren nach Gebrauch immer deaktivieren, um Stromverbrauch und Heizung zu reduzieren}} BLYNK_WRITE (V2) // BLINDS ÖFFNEN {Serial.println ("Blinds öffnen"); if (geschlossen == wahr) {for (int cc_val = 0; cc_val> = -130; cc_val--) // zum Öffnen im Uhrzeigersinn drehen {stepper.step (cc_val); Ausbeute(); } opens = true; geschlossen = falsch; } disable_motor (); // Schrittmotoren nach Gebrauch immer deaktivieren, um Stromverbrauch und Heizung zu reduzieren}
Wie Sie sehen können, wird V1 zum Schließen der Jalousien und V2 zum Öffnen der Jalousien verwendet. Eine for-Schleife wird verwendet, um die Motoren für 130 Schritte im oder gegen den Uhrzeigersinn zu drehen. Ich habe mit meinen Jalousien experimentiert und festgestellt, dass ich mit 130 Schritten meine Jalousien vollständig öffnen und schließen kann. Ihre Nummer kann variieren. Die for-Schleife zum Drehen des Schrittmotors im Uhrzeigersinn und gegen den Uhrzeigersinn ist unten gezeigt.
for (int c_val = 0; c_val <= 130; c_val ++) // zum Schließen gegen den Uhrzeigersinn drehen {stepper.step (c_val); Ausbeute(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // zum Öffnen im Uhrzeigersinn drehen {stepper.step (cc_val); Ausbeute(); }}
Sie können auch zwei boolesche Variablen in unserem Programm "geöffnet" und "geschlossen" bemerken. Diese beiden Variablen werden verwendet, um zu verhindern, dass der Motor die Jalousien zweimal öffnet oder schließt. Das heißt, die Jalousien öffnen nur, wenn sie zuvor geschlossen wurden, und sie schließen nur, wenn sie zuvor geöffnet wurden.
Wie kann die Drehzahl des Schrittmotors 28BJY-48 erhöht werden?
Ein Nachteil der Verwendung des Schrittmotors 28BJY-48 ist, dass er sehr langsam ist. Diese Motoren wurden ursprünglich für hochpräzise Anwendungen mit niedriger Drehzahl hergestellt. Erwarten Sie daher nicht, dass sich diese Motoren mit hoher Drehzahl drehen. Wenn Sie die Drehzahl des Schrittmotors mit Arduino erhöhen möchten, können Sie zwei Parameter ändern. Eines ist das #define STEPS 64, ich fand heraus, dass der Motor vergleichsweise schneller war, wenn Schritte als 64 definiert sind. Ein weiterer Parameter ist stepper.setSpeed (500); wieder fand ich 500 als optimalen Wert, alles andere macht den Schrittmotor tatsächlich langsamer.
Kennen Sie einen anderen Weg, um die Drehzahl dieser Motoren zu erhöhen? Wenn ja, lassen Sie sie im Kommentarbereich unten.
Wie kann verhindert werden, dass der Schrittmotor überhitzt?
Schrittmotoren sollten immer deaktiviert werden, wenn sie nicht verwendet werden, um eine Überhitzung zu vermeiden. Das Deaktivieren eines Schrittmotors ist sehr einfach. Ändern Sie einfach den Pin-Status aller vier GPIO-Pins, die den Schrittmotor steuern, auf niedrig. Dies ist sehr wichtig, da Ihr Motor sonst bei +12 V sehr heiß werden und sich dauerhaft beschädigen kann. Das Programm zum Deaktivieren des Schrittmotors ist unten angegeben.
void disable_motor () // schalte den Motor aus, wenn du fertig bist, um ein Aufheizen zu vermeiden {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }}
Steuern von Jalousien mit Google Assistant
Wir werden die blynk-API verwenden, um die Jalousien über den Google-Assistenten zu steuern. Sie ähnelt unserem sprachgesteuerten Hausautomationsprojekt. Überprüfen Sie dies bei Interesse. Grundsätzlich müssen wir den folgenden Link auslösen, wenn wir Google Assistant eine vordefinierte Phrase sagen.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Stellen Sie sicher, dass Sie das Authentifizierungstoken in das von Ihrer blynk-Anwendung bereitgestellte ändern. Sie können diesen Link sogar in Ihrem Chrome-Browser testen, um festzustellen, ob er wie erwartet funktioniert. Nachdem der Link fertig ist, müssen wir nur noch zu IFTTT wechseln und zwei Applets erstellen, die die virtuellen Pins V1 und V2 auslösen können, wenn wir die Jalousien schließen und öffnen möchten. Auch hier gehe ich nicht auf die Details ein, weil wir dies schon oft getan haben. Wenn Sie weitere Hilfe benötigen, lesen Sie dieses sprachgesteuerte FM-Radioprojekt. Ersetzen Sie einfach die Adafruit-Dienste durch Webhooks. Ich teile auch einen Screenshot meines Snippets als Referenz.
Arduino-basierte automatische Jalousiesteuerung - Demonstration
Nachdem die Schaltung und die 3D-gedruckten Gehäuse fertig sind, montieren Sie das Gerät einfach an der Wand, indem Sie zwei Löcher in die Wand bohren. Mein Montage-Setup ist in den folgenden Bildern dargestellt.
Stellen Sie danach sicher, dass Ihre Jalousien geöffnet sind, und schalten Sie den Stromkreis ein. Jetzt können Sie versuchen, die Jalousien in der Blynk-Anwendung oder über Google Assistant zu schließen, und es sollte funktionieren. Sie können in der blynk-Anwendung auch Timer einstellen, um die Jalousie zu einer bestimmten Tageszeit automatisch zu öffnen und zu schließen.
Die vollständige Arbeitsweise des Projekts finden Sie im folgenden Video. Wenn Sie Fragen haben, können Sie diese gerne im Kommentarbereich unten schreiben. Sie können unsere Foren auch für andere technische Diskussionen nutzen.