Skip to content

Pierowheelz/ac-vent-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ducted Air Conditioner Vent Controller

This project uses and ESP32-based controller, along with stepper motors and endstop switches (from a 3d printer kit) to control the circular Air Conditioner vents used in many ducted systems.

Parts Required

  • ESP32 Dev Board (NodeMCU-ESP32 DEVKITV1 - 30 pins - based on ESP-WROOM-32)
  • 3D Printer Kit (from ebay or Aliexpress)
    • 3x Nema 17 stepper motors + cables
    • 3x Nema 17 mounting brackets
    • 3x Stepper motors drivers - A4988 or DRV8825 or TMC2208 (for quieter operation)
    • 3x RAMPS 1.4 switch endstops + cables
  • Perfboard 24 x 18 pins
  • Capacitor (100µF or thereabouts)
  • 3x 150mm Lead screws + copper nuts (4mm pitch ideal, but any will work)
  • DC-DC Buck convertor (LM2596S or similar)
  • DC power supply (8-35 V)
  • (optional) header-pin sockets for ESP32 and Stepper Drivers to allow quick removal/replacement
  • A handfull of M4 screws & nuts
  • Duct tape

Process

  1. Print 3x Motor Bracket, Motor Cover, Endstop Clip in PLA or PETG (or other hard-plastic).
  2. Print 3x Coupler, Damper and 6x End Holder in TPU (for vibration damping - PLA will work in a pinch though).
  3. Tune your Buck convertor to output 3.3v with your DC power supply.
  4. Assemble the circuitboard per the schematic.
    • The Engage pins of Stepper Drivers should face toward the top of the board (the top is the side with the capacitor).
    • The 3v3 and VIN pins (and USB port) of the ESP32 board should face downwards (the ESP32 is on the back of the board).
    • (optional) Join the M0, M1 (and M2 if present on your drivers) to 3.3v to set your MicroStepping mode (more microsteps = less vibration but higher-pitch operation). Lookup your driver to find out the MicroStepping setting (you will need this below).
  5. Tune the stepper motor current limit (Try this guide: https://www.makerguides.com/a4988-stepper-motor-driver-arduino-tutorial/).
    • Using USB for power (do not plug in the power supply for this).
  6. Set the ventNames, microStepping, WiFi parameters in the firmware. Check pin numbers, speed settings (stepDelay) and limit (fullyOpen)
  7. Compile and flash the firmware onto your ESP32 dev board using Arduino IDE.
  8. Bench test by connecting motors and endstop switches.
  9. Connect the power supply to the high-voltage side of the buck convertor. This will power up the ESP32.
  10. On a computer, navigate to the IP Address of the device.
  11. Click to open one of the Vents.
    • It will first spin counter-clockwise to close the vent until the endstop switch is triggered, then clockwise until the limit position is reached.
  12. Assemble components and install into vents. Use CAT6 Ethernet cable to extend leads as neccessary (I used RJ45 breakout modules but you could crimp connectors).

Note: There is no security or authentication in this system. Do not open up the port in your Router! For use on your internal network only.

Usage via Rest API

Get vents status: GET http://192.168.2.110/?&t=1

Sample return:

{
	"0": {
		"name": "Room #1",
		"pos": 30
	},
	"1": {
		"name": "Room #2",
		"pos": 60
	},
	"2": {
		"name": "Room #3",
		"pos": 100
	}
}

Open vent #1 to 100%: GET http://192.168.2.110/?a=6&t=1&m=0&d=100 Here a is the operating mode, where mode 6 corresponds to: open to ratio set by &d= (eg. ?d=050:open50%, ?d=000:close, ?d=100:open100%). Also, t is the response type (1 = JSON). And, m is the motor number (0-2).

The return format is identical to the 'get status' request.

Images

Some images are from an older version.

AllParts

Assembled

BoartTop

BoardRear

BoardAssembled

BoardAssembled2

About

ESP32-based controller for Aircon Vents with stepper motors.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors