I bought a wind speed sensor from china, it’s a spare part for the “misol” weather stations, just search for “wind speed misol sensor aliexpress” for the product, it was less than 15€.



I unscrewed it to see how it works, technically it’s just a hall sensor.
For my test-setup, I simply cut off the connector and connected the wires directly to GND and GPIO4 and used the internal pull-up resistor:

Adding it to esphome is straight forward and easy. I’m using the pulse counter component, it uses the pulse counter peripheral of the ESP32 and works in standby-modes:
substitutions:
update_interval: 5s
sensor:
- platform: pulse_counter
name: "Wind Speed Counter"
id: windspeed_pulse_counter
use_pcnt: true
count_mode:
falling_edge: INCREMENT
rising_edge: DISABLE
pin:
number: GPIO4
inverted: true
mode:
input: true
pullup: true
unit_of_measurement: "km/h"
icon: "mdi:windsock"
update_interval: ${update_interval}
filters:
- multiply: 0.04
- debounce: 10ms
total:
name: "Wind Speed Counter Total Pulses"
The value “0.04” is 2.4kmh/60s (to convert it from esphome’s pulses/min to km/h). The value 2.4km/h is explained here in the datasheets I found in this wiki that seem to match my hardware:
datasheet_1
datasheet_2
Leave a Reply