Smart Dining Table Lamp; Motorized and Height Adjustable
by robinheilmann in Workshop > Lighting
3056 Views, 56 Favorites, 0 Comments
Smart Dining Table Lamp; Motorized and Height Adjustable
For the living room we wanted a dining table lamp. For the basic design, my girlfriend also quickly had concrete ideas. It should be a hanging lamp, with 4-5 individual lamps and a branch as a pendant. The only problem was that this pendant would then hang between the movie projector and the canvas. Thanks to high ceilings, I had the idea to make the lamp adjustable in height, so that it would be out of the way when we wanted to watch a movie. And so I built a height-adjustable pendant lamp that can be controlled thanks to the motor and smartphone app.
Supplies
- Window opening Motor (5-15€) used on Ebay
- 3D Printer (i used my old Anet A8)
- Adafruit HUZZAH32 – ESP32 Feather Board (~17€)
- old micro-USB cabel
- LM2596 360 Mini Step Down Module Converter (~2€)
- 12V Power Supply (from an old laptop) (0-45€)
- Pololu G2 High-Power Motor Driver 18v17 (2021: ~17€; today crazy 49$)
- Slip ring from an old vacuum cleaner
- Miniature thrust ball bearing F10-18M-M 10x18x5.5 mm (~2€)
- Pulley Wheels (~6$)
- Textile cable with steel rope (from my local cable shop)
- E27 sockets from your local hardware store
- Philips Hue White E27 LED Filament Giant (30$)
- a nice looking branch
- Welding machine
- Soldering Iron
General Planning
For any complicated project, I start by making a quick hand sketch of the entire project to get an overview. This helps to create a basic idea and consider different solutions. For example, instead of pulling the lamp up, you could pull it to the side. But then you would need a hook or something similar on the wall to fix the lamp. This would not look nice and the cables would probably still hang in the picture. Also a manual solution would be possible, where the lamp is pulled upwards by a rope with a pulley and the rope is fixed to a wall. Here, too, there would be the problem that the power cable is not shortened with and therefore hangs in the picture. So the solution is a cable spool, which rotates under the ceiling and at the same time the power cable serves as a holding rope.
Now to the planning of the details.
Switching the Lamp / Brightness:
I didn't want to build my own solution for this, as I also wanted to keep the flexibility open to control the lamps individually. Therefore, I choose smart bulbs from Phillips Hue, which I would later connect with the motor control in my home assistant to one device.
Holding Rope / Cable:
Since the cable is also to be the holding rope, attention must be paid to how much the lamp may weigh and which type of cable is used.
The following applies: max. weight = number of wires * cross-section *(kg/mm^2)
Ex: 2x 3 wire cable with 0,75mm^2 --> 2 * 3*0,75 = 4,5 Kg
At the time I bought the cables I didn't know how heavy the lamp will be and the lamp should not only hang steady on the cable, but also get additional loads by driving up and down. So I dimensioned the whole thing generously and used a cable with steel wire. This also has the advantage that I could attach the steel cable directly to the wood.
Winder
This is the most complicated part of the whole project.
The motor as well as the lamp should all be powered by the same power cable hanging from the ceiling.
For safety reasons and to be able to save power, I want to be able to periodically disconnect any power from the system when the lamp is not in use simply by using the wall light switch. This means that the winder must not unwind as soon as the motor runs out of power. Conceivable would be to use a complicated braking system that holds the cable drum without power. But since the motor has to reach a relatively high torque anyway and a gearbox is needed for this, I thought why not use a motor with a worm gear, which is self-locking. The internet search for motor and worm gear turned out to be difficult. Very high prices or very long delivery times.
Since I wanted to implement the project quickly, I thought about where such motors are used and came to the idea on Ebay-Kleinanzeigen (the German Craigslist) to look for car window motors and was found for 5 € in my neighborhood.
To be able to plan the construction further in Fusion 360 I needed a 3D model of the motor. Unfortunately I didn't find anything on the internet, so I created a photogrammetry with Meshroom (https://alicevision.org/) and took about 100 pictures with my cell phone. I was then able to import this into Fusion 360 as an STL file and scale it correctly with a caliper.
To make it look tidy under the ceiling, I want the cable drum to move around all the other components. It should remain as small as possible for optical reasons and for dynamic reasons. Here is a short calculation .
mass lamp m_lamp ~= 5,0 Kg
radius of drum ~= 0,12 m
necessary driving torque ~= 5,0 Kg* 9,81m/s^2 *0,12m ~=5,9 Nm
So if my lamp weighs about 5 Kg and the radius of the cable drum would be 12cm, I would already need a drive torque of almost 6 Nm, which would be quite a lot. If I would make the radius of the drum even larger, the required drive torque would also increase.
So it would be best if the output of the motor was centered on the motor. To achieve this, I had to add another gear ratio made from 3D-printed gears, and weld a new gear axle to the metal housing of the motor. The area where the old electronics of the window motor was installed I could cleverly use for the new electronics.
So that the two lamp cables do not twist when turning the cable drum, a slip ring had to be installed in the cable drum. I removed this slip ring from the cable drum of a defective vacuum cleaner, took the dimensions and constructed suitable grooves in the output gear wheel.
Software
The software of the ESP32 I simply implemented with ESPHome. For this I pretended to control a fan, because the configuration "Speed Fan" allows to switch a motor on and off, set the speed via a slider and also set the direction of rotation - so everything I needed. Also the integration into HomeAssistend is easily possible.