Introductie
Een aantal jaar geleden speeld ik met het idee om mijn shutters (van Veneta) te automatiseren. Het gaat daarbij om het automatisch tilten van de shutter. Niet het op en neer halen. Ik weet dat er ook commerciele mogelijkheden zijn, maar die zijn vrij prijzig. Helemaal als je meerdere shutters hebt, loopt dit snel op. Mijn domotica draait op HomeAssistant en het doel zal dus ook zijn om het daarmee aan te sturen. Door de komst van 2 kids heeft dit project in de ijskast gestaan. Recent heb ik besloten het weer op te pakken.Naast het tilten van de shutters ga ik ditzelfde concept ook gebruiken voor het aansturen van een WTW bypass. Hierover later meer.
Het concept
Door middel van een stappenmotor en 2 microswitches die dienst doen als eind schakelaar, wil ik het gaan aansturen. Een ESP gaat dienst doen als de brains.Dus de onderdelen lijst is erg beperkt:
- 1x ULN2003 met driver 28BYJ-48-5v
- 1x NodeMcu V3 ESP8266
- 2x Microswitch (merk onbekend)
De WTW bypass
Naast shutters, ben ik in het bezit van een gedateerde maar goed werkende WTW. Het doel van de bypass is om op warme zomers avonden, koele lucht de woning in te blazen. Hiervoor was het vroeger mogelijk om een bypass als addon te bestellen, maar deze is inmiddels niet meer leverbaar. Na het lezen van de documentatie kwam ik er achter dat het niet meer is dan een eenvoudige klep die open en dicht gaat. De regeling is erg eenvoudig en werk op basis van 2 temperatuur sensoren. Voor nu focus ik me vooral op het mechanisme op de klep aan te sturen, aangezien dit overeen komt met het tilten van de shuttersDit is de enige foto die ik kan vinden welke enigsinds het idee geeft van het apparaat.
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/m4cAwlQb5zipDtY2tiMlK87d.jpg?f=user_large)
De shutters
Als programmeur verwacht ik geen gekke problemen bij het schrijven van de code. Dus focus ik me eerst op het fysieke component. Een tijdje geleden heb ik een 3d printer gekregen, deze zal dienst doen om de componenten mee te printen.De eerste stap is het maken van een manier waarop ik de motor en de microswitch aan elkaar kan bevestigen. Met ook de mogelijkheid om de uiteindelijke positie van de motor te kunnen afstellen. Middels sketchup heb ik een aantal onderdelen gemaakt om het geheel wat modulair te maken. Van links naar rechts:
Stappenmotor houder, Microswitchhouder, As-positie-ding.
/f/image/NhFIRTaG4fltYY8q6IimJGcS.png?f=fotoalbum_large)
Als platform heb ik gekozen voor ESPHome, aangezien hier al een groot deel van de basis opgelost is. Connectie met Home Assistant is geregeld, wifi updates, status uitlezen, etc. ec.
De eerste opzet is weer eenvoudig, ik moet ESPHome ook nog leren kennen, dus we doen baby steps. Het doel was het aansturen van de positie van de stappenmotor en het uitlezen van de eind schakelaar.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| # Define buttons for writing tags via HA button: - platform: template name: Start calibration #id: write_tag_random # Optional variables: icon: "mdi:pencil-box" on_press: then: - stepper.set_target: id: my_stepper target: 0 number: - platform: template name: Stepper Control min_value: 0 max_value: 5000 step: 1 set_action: then: - stepper.set_target: id: my_stepper target: !lambda 'return x;' binary_sensor: - platform: gpio pin: number: D5 mode: input: true pullup: true name: "Position closed" filters: - invert: # Example configuration entry stepper: - platform: uln2003 id: my_stepper pin_a: D0 pin_b: D1 pin_c: D2 pin_d: D3 max_speed: 250 steps/s sleep_when_done: True # Optional: acceleration: inf deceleration: inf |
En hier een korte video van de werking.
Vervolgstappen
De volgende stappen zullen allemaal gaan om het klaar maken van deze eerste POC. De tweede microswitch zal er ook bij komen en de code moet verder uitgewerkt worden.De positie is momenteel nog de absolute positie van de stappenmotor, iets wat na een spanningsuitval helmaal niets zegt. Na spanningsuitval verandert de positie van de stappenmotor namelijk niet, maar denk hij dat hij op stap 0 is. Ik wil een calibratie knop toe voegen welke de stappenmotor net zo lang aanstuurt tot deze de sensor bereikt, dan de andere kant op gaat tot hij de andere sensor bereikt. Wanneer de absolute positie bekend is, wil ik deze omrekenen en met een schaal van 0-100 aan kunnen sturen.
Een uitdaging die ik momenteel nog heb, is dat ik de waarde van het ESPHome number component wel kan schrijven, maar ik nog geen waarde terug krijg. Hier moet ik nog mee gaan spelen om het concept te gaan snappen.
Ik hoop vooral op wat leuke reacties en alle feedback is uiteraard welkom.