Vevor linear fan control with esphome

I bought a linear fan, because I have to control the humidity in my warehouse, trying to change the air (VMC).
The model I got is a Vevor VV-GDFJ-EC8 with external control LCD.

The controller is connected to the fan with a 3pin cable. I believe positive/negative LCD power supply + data.

I bought a linear fan, because I have to control the humidity in my warehouse, trying to change the air (VMC).
The model I got is a Vevor VV-GDFJ-EC8 with external control LCD.

The controller is connected to the fan with a 3pin cable. I believe positive/negative LCD power supply + data.

I would like to be able to control the power and speed (temperature and humidity NO) of this fan with esphome, using a Nodemcu board (es8266) in Home Assistat. Do you think it’s possible?

I don’t know the voltage of the fan control signal. Could Nodemcu’s 3.3V be enough? I think the red and black cables are only used to power the LCD, only the third cable (yellow) controls the fan. Do you think this too?

Start with multimeter to measure voltage between wires. I expect 0-10V or PWM control.

I add photos of the external control and wiring

These are the 3 cables starting from the fan to the controller. I think the yellow wire is the one that controls the fan. the red and black are 24V power supply

These are or cable connections

rear fan board

Probably correct, but there’s no hint for control method. You don’t have a multimeter?

Yes I have the multimeter, but you have to help me use it, because I’m not very expert.
Do you want to measure the Volts supplied by the yellow pin, to understand if it is PWM or V?

Actually, it’s not even possible to do that with common multimeter because fast pwm is going to be measured as average voltage.
But to have an idea, measure some voltages at different speeds

I can measure the voltage of the yellow pin and change the fan speed, should that change the voltage? To measure voltage do I put one test lead on the yellow pin and the other on the black?

Yep, check the voltage between black and red and then between black and yellow at low and full speed.

Measurement done.

Red/Black = 24V
Black/Yellow - Speed ​​0 (off) = 0 / 0.3V
Black/Yellow - Speed ​​1(min) = 1.3V
Black/Yellow - Speed ​​10 (max) = 5V

So it’s either 0-5V analog or 0-10V Pwm with 50% duty. With cheap multimeter you probably can’t really see the difference. Can you find any 5V or 10V or PWM labels on that circuit board?

I managed to get it working. I used the esp8266_pwm component. The Nodemcu board delivers various voltages from 0 to 3.3V in 10 steps.
The fan has a range of 0 to 5V in 10 steps.
I have the problem of 3.3V max, I need 5V max in 10 steps.

How can I solve the 5V problem?

I believe that reaching 3.3V the fan does not spin at maximum

How you know that?
If you give solid 5v to it (gnd to black and 5v to yellow), does it run at full speed?

No, sorry I made a mistake. The fan uses 0 to 5v in 10 steps.
The programming I used is:

output:

  • platform: esp8266_pwm
    pin: GPIO0
    frequency: 25000 Hz
    id: controllo_ventola

fan:

  • platform: speed
    output: controllo_ventola
    name: “VMC Magazzino”
    speed_count: 10

I connected the GPIO0 to the fan PCB pin marked with M (see photo) + Nodemcu ground to the fan ground.

In your opinion, by delivering a maximum of 3.3v in 10 steps, I can’t turn the fan to maximum?
With the nodemcu connected, when I increase the speed I hear the noise increasing 10 times. I don’t have a tool to count fan rpm or air volume.

If it’s 0-5v control, you need 5v for max speed. Try what I wrote before (from 5v pin).

To get 5v control voltage from esp32 you need either DAC, optocoupler, mosfet, fast level shifter,.,… or even 5v MCU like arduino.
Dac would be correct choice for analog 0-5v, but since you can control it successfully with esp32 pwm, you could as well use some logic level mosfet module.

Is there something already ready? a PCM with MOSFET already mounted,

Example:

Not so easy to find ready made module for “unknown” receive circuit. Common mosfet modules from Amazon switch negative side, but you need positive. You could do it with spare arduino board if you have one lying around. Or try with logic level shifter, they are useful anyway to have on hands.