Comments on: MicroPython: ESP32/ESP8266 with Anemometer (Wind Sensor) https://randomnerdtutorials.com/micropython-esp32-esp8266-anemometer-wind-sensor/ Learn ESP8266, ESP32, Arduino, and Raspberry Pi Tue, 26 Nov 2024 17:05:21 +0000 hourly 1 https://wordpress.org/?v=6.8.2 By: Richard https://randomnerdtutorials.com/micropython-esp32-esp8266-anemometer-wind-sensor/#comment-986750 Tue, 26 Nov 2024 17:05:21 +0000 https://randomnerdtutorials.com/?p=163194#comment-986750 Sarah,

Although the wind speed sensor is nice, using the highly nonlinear ADC on the ESP32 or ESP8266 is not a good idea. I notice you did not show any calibration data, which will be very inaccurate due to the ADC hysteresis and nonlinearity.

May I suggest that you find a pulse output anemometer and use pulse counting, which eliminates the ADC nonlinearity. However, you really need more than one pulse per revolution in order to have accuracy, and something like a grey code rotation sensor. (so you can have near real time response, and not have to count say 100 rotations for 1% accuracy, which would limit the response time).

The other option is to do the same thing but use an Arduino. The old R3 10 bit ADC is much more accurate/linear than the ESP devices, but you could try the R4 WiFi, 14 bit accuracy. The problem here is that the R4 appears to have a lot of self noise on the ADC, so probably the old faithful R3, 10 bit Arduino would be good, if you scale the output voltage properly to fill up the entire 0-5 Volt range of the Arduino ADC.

]]>