In den warmen Sommermonaten ist eine Verdunkelung des Raumes essenziell. Des Weiteren können mit einer Zeit geschalteten Verdunkelung auch der Schlafrhythmus und die Qualität verbessert werden.
In diesem Blogbeitrag wollen wir eine nachrüstbare Verdunkelung mit der Hilfe eines Mikrocontrollers bauen.
Hardware
Für die Umsetzung wird neben Löt Equipment auch ein 3D Drucker benötigt!
Sollten Sie keinen Zugang zu einem Drucker haben, können Sie die benötigten Teile auch bei 3D-Druck Dienstleistern online bestellen.
Für die komplette Umsetzung benötigen Sie folgende Komponenten:
Schrittmotortreiber (A4988 oder DRV8825)
Netzteil 12V (min. 1A)
Step down Modul (LM2596S)
Für den Testaufbau empfiehlt sich das
Falls noch nicht vorhanden, benötigen Sie auch noch:
Die Breite und Länge des Rollladens sollten so gewählt sein, dass dieser an der Mauer über dem Fenster montiert werden kann, damit der Motor auch an der Wand befestigt werden kann.
Die meisten Verdunkelungen werden mit einer Kette geliefert, um den Rolladen zu öffnen beziehungsweise zu schließen.
Da das Drehmoment des Motors nicht ausreichend ist, um die Kette zu bewegen, wird der Motor direkt mit einer passenden Befestigung anstatt der ursprünglichen Teile direkt an der Achse der Verdunkelung befestigt.
Die folgenden f3d-Dateien können im CAD-Programm Fusion 360 von Autodesk bearbeitet und exportiert werden.
Die Software ist für Privatanwender kostenlos.
Durch diese Befestigungsmöglichkeit ist es nun möglich, den Rolladen mit dem Motor zu bewegen. Das Problem ist aber, dass sobald der Motor nicht mehr mit Strom versorgt wird, die Rolle nicht mehr in Position gehalten wird und sich komplett abrollt.
Ein dauerhaftes Blockieren des Motors würde aber einen erhöhten und unnötigen Strombedarf mit sich bringen.
Deshalb wird das Rad an der Motorseite um Zähne erweitert, wodurch dieses mit dem Servomotor blockiert und in Position gehalten werden kann.
Drucken Sie folgende Dateien mit dem 3D Drucker aus:
Sollten Sie andere Abmessungen benötigen können Sie die f3d Dateien zum bearbeiten hier herunterladen:
Wenn Sie alle Komponenten ausgedruckt haben, geht es an den Zusammenbau.
Kleben Sie den ServoLock auf den, dem Servo beigelegten, Plastikarm. (Sekundenkleber oder zwei Komponentenkleber empfohlen)
Der Servomotor und der Schrittmotor können nun mit den Schrauben am Halter befestigt werden. (Schrittmotor mit M3 Gewindeschrauben; Servo mit den beiliegenden Schrauben)
Bevor Sie den ServoLock auf den Servo stecken, stellen Sie den Servowinkel im Programm auf 0° und stecken Sie den Lock senkrecht zur Schrittmotor-Achse auf den Servo und schrauben Sie diesen fest.

Abbildung 1: Schrittmotor mit Servomotor in 0° Position
Das Kugellager kann einfach in den Halter gesteckt werden und nach Bedarf mit Kleber befestigt werden.

Abbildung 2: Lagerung der anderen Seite
Für die Montage an der Wand muss der Schrittmotor wieder entfernt werden, da dieser die Befestigungsmöglichkeiten verdeckt.
Bauen Sie folgende Schaltung auf dem Breadboard auf:

Abbildung 3: Schaltplan des Testaufbaus
Hinweis: Der Mikrocontroller muss nicht aufgesteckt werden, die Kabel können auch in die Buchsenleisten gesteckt werden.
Motortreiber |
Servomotor |
||
GND |
GND |
Rot |
5V |
VDD |
5V |
Orange |
GPIO 23 (D7) |
1A |
Schrittmotor Blau |
Schwarz |
GND |
1B |
Schrittmotor Schwarz |
LM2596S |
|
2A |
Schrittmotor Grün |
IN+ |
12V |
2B |
Schrittmotor Rot |
OUT+ |
5V |
VMOT |
12V |
IN- / OUT- |
GND |
DIRECTION |
GPIO 18 (D5) |
Taster |
|
STEP |
GPIO 19 (D6) |
Kontakt 1 |
GND |
ENABLE |
GPIO22 (D1) |
Kontakt 2 |
GPIO 21 (D2) |
SLEEP |
RESET |
|
|
Tabelle 1: Verbindungen der Komponenten (GPIO beschriftung zum ESP32)
Bevor Sie die Schaltung mit Spannung versorgen, kontrollieren Sie die Ausgangsspannung(5V) des Spannungswandlers !
Um den Motor vor zu hohen Strömen zu schützen, kann die Strombegrenzung am kleinen Potentiometer auf dem Treiber geregelt werden. Um die Motoren nicht zu stark zu belasten, soll ein maximaler Strom von 1A am Motor anliegen. Die Referenzspannung, die am Metallring des Potentiometers gemessen werden kann, entspricht der hälfte des maximalen Stroms, dass heißt in unserem Aufbau müssen Sie das Potentiometer so lange drehen, bis Sie 0,5V am Metallring des Potentiometers gegen Masse messen.
Software
Nachdem Sie alle Komponenten richtig verbunden haben, können wir uns um die Software kümmern.
Falls Sie das erste Mal einen ESP32 in der Arduino IDE programmieren, kopieren Sie folgenden Link in der Arduino IDE unter:
File->Preferences->Additional boards manager URLs : https://dl.espressif.com/dl/package_esp32_index.json
und installieren Sie in der Boardverwaltung das ESP32 Paket.
Der Treiber(CP2102) für dieses Board ist bereits vom Betriebssystem installiert.
Der Motor kann durch zwei Pins am Motortreiber gesteuert werden. Zum einen kann mit dem DIR Pin die Drehrichtung des Motors eingestellt werden und mit dem STEP Pin durch Senden eines Pulses der Motor um einen Schritt gedreht werden.
Folgendes Programm steuert den Motor an, sodass dieser zwei Umdrehungen in beide Richtungen dreht:
#define dirPin 18 |
Im Code werden die einzelnen Schritte durch eine for-Schleife für die korrekte Anzahl an Schritten ausgeführt. Durch die Pausen zwischen den Impulsflanken kann die Geschwindigkeit angepasst werden.
Für die ersten Versuche ist dieses Programm völlig ausreichend, für den Schlussendlichen Antrieb des Rollladens gibt es aber bessere Alternativen wie die Verwendung einer Library.
Installieren Sie die AccelStepper Bibliothek. Dies ist entweder über die integrierte Bibliotheksverwaltung der Arduino IDE möglich, oder über GitHub als .zip Datei.
Das folgende Programm schließt und öffnet die Verdunkelung. Dabei wird der Servomotor als Verriegelung benutzt, um den Motor über den ENABLE Pin am Treiber stromlos zu schalten.
#include "Arduino.h" |
Das Programm können Sie hier herunterladen.
Am Anfang des Programms werden Konstanten definiert und ein Objekt der Bibliotheksklasse erstellt.
Die Methode setServoAngle() steuert den Servomotor mit einem PWM-Signal an, welches aus dem Zielwinkel berechnet wird.
Im setup() wird der PWM Kanal gestartet und die Einrichtungsbefehle des Schrittmotors aufgerufen.
Die Funktion abrollen() bewegt den Schrittmotor so lange, bis dieser die Zielposition erreicht hat.
In der loop() Routine wird erst der Servo geöffnet, danach der Schrittmotor zur Zielposition bewegt und am Ende wieder geschlossen. Der Ablauf wird danach für die Startposition wiederholt.
Passen Sie, bevor Sie das Programm auf den Mikrocontroller laden, die Anzahl der Motorumdrehungen und die Richtung an.
Der Servomotor sollte außerdem so eingestellt werden, dass der Arm in Nullstellung senkrecht zur Motorachse des Schrittmotors steht.
Fazit
Nachdem in diesem Teil die Verdunkelung mit einem Motor versehen wurde, sodass sie nun automatisch betrieben werden kann, widmen wir uns im nächsten Schritt der Umsetzung der Steuerung.
Dazu wird auf dem Mikrocontroller ein Webserver eingerichtet, über den sich der Rollladen steuern lässt. Zusätzlich wird ein Gehäuse für den Mikrocontroller und die Elektronik vorgesehen, um eine sichere Befestigung an der Wand zu ermöglichen.
Abschließend soll die Integration von MQTT und einem Taster erfolgen, sodass die Verdunkelung vollwertig in ein Smart-Home-System eingebunden werden kann.
Viel Spaß beim Nachbauen :)
3 commentaires
Anstela
Hallo @Jonas,
Gute Neuigkeiten: Teil 2 des Projekts ist ab heute verfügbar! Der Link dazu: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/diy-smarte-verdunkelung-steuerung-teil-2
Herzlichen Dank für die Geduld und das Interesse am Projekt.
Grüße, Anstela AZ-Delivery Blog
Tom
Coole Sache, werde ich in den nächsten Tagen mal nachbauen. Wann wird PART 2 des Projektes vorgestellt?
Jonas
Coole Idee. Gibt es auch Überlegungen zur Stromversorgung (netzunabhängig)? Nich an jedem Fenster hat man in der Regel die Möglichkeit auf Netzstrom zuzugreifen.