Goal
I'm trying to make a IOT radiator valve so I can manage the heating of every room in my house automatically with a system I'm building.
Context
I've pulled apart a cheap "smart" radiator valve to salvage its 3.0V (25 Ohm) motorised worm-screw component, that adjusts the flow of water through the actual TRV valve that is on the radiator (to regulate its heat).
I'm using a 3.3V battery power supply (0.5 Amps) to power the ESP-01S control board I'm using along with the wormscrew motor.
I've allocated two GPIO pins on the ESP-01S board (represented as A and B below) for controlling the direction of the motor, since it is not a servo. I've coded the board so that the pins will never be both +ve at the same time (to prevent the following control circuit from short circuiting).
Above is an image of the circuit diagram I've developed to handle the polarity switching that the motor requires, in order for the flow of water through the TRV valve to be increased/decreased on demand. When the wormscrew is fully retracted, the valve is closed, but when it is fully extended, the valve is fully open.
When A is "on" (+ve), B will be "off", resulting in A's NPN transistor (Aₜ) to be on, while B's NPN transistor (Bₜ) stays off. This allows current to flow from A to Ground through the motor making it spin in one direction and vice-versa when the polarity of A and B are swapped.
The transistors are 'S8050'.
The problem
The motor spins fine when connected straight to +ve pin and ground. However in my circuit, it runs much slower and the power supply for the board and motor gets so hot that it almost blows out and it's scalding to touch. Any ideas to why this is happening and how I can stop it would be much appreciated!
I've played around putting some resistors on the base pins of the transistors to reduce the current going through them, but that just makes the motor stop all together. Is the resistance of the circuit too high and so it is pulling too much power, or is the opposite true?
I am a complete noob when it comes to electronics, but I don't want that to stop me making this project for my Dad, so any advice would be greatly received! If I have missed any crucial information, please feel free to ask and I will try my best to supply it.