Wind speed and direction again.

PaulRB

Senior Member
Remember this thread?

Beginnings of a new idea:

Get 5 of those BMP085 barometric pressure sensors. Place 4 of them on the 4 vertical sides of a cube. Place the 5th on the top surface or even inside the cube with a small hole on to allow pressure equalization. Measure the difference between the sensors and calculate/interpolate the windspeed and direction. The sensors are said to be accurate to 3 Pa. I have no idea what change in pressure a given wind speed causes, but Bernoulli's Principle should enable its calculation.

I'm not proposing to use a picaxe for those calculations, just take readings, maybe average, store and/or transmit them to PC/RPi/whatever.

Problems: weatherproofing; addressing each sensor on same i2c bus.

Thouhts?

Paul
 
Last edited:

Jeremy Harris

Senior Member
Dynamic pressure?

1mph wind speed gives a dynamic pressure of 0.122 Pa. Standard air pressure at sea level is 101325 Pa.

You need a massively more sensitive sensor than the BMP085 to work as a low speed pitot sensor, but other than that the idea is sound and does work OK.
 

MPep

Senior Member
Problems: ...; addressing each sensor on same I2C bus.
From what I've just read, the only way to enable more than 1 BMP085, is to select the required unit using the XCLR input, and disable all the others. Also, check the EOC output, possibly via an OR gate (diode matrix) to only require 1 PICAXE input for this.
OR gate example


EDIT: the BMP180 does not allow for this :confused:
Unless you use a I2C multiplexer like this one
 
Last edited:

g6ejd

Senior Member
Using ultrasonic Tx/Rx units is still the best solution and can be done with the PICAXE, cost about £5 per axis. If wind speed then just are required.
 

Jeremy Harris

Senior Member
The lowest noise mode for the BMP180 gives 2 Pa noise, and 1mph gives a dynamic pressure of 0.122 Pa, so the answer is no, that sensor is nowhere near sensitive enough.

For pitot sensing you need a differential, not absolute, pressure sensor, with the reference port connected to the static reference pressure (a port that's top or bottom of your array and not subject to any dynamic pressure variation).

As already suggested, ultrasonic is the way to go. One way to do this cheaply and without building any circuitry (if you don't mind a fairly large array) is to modify two of the cheap distance sensors. These have a trigger pulse and output a pulse width proportional to the distance between the two sensors. If you unsolder the sensors from the boards and mount them remotely so they face each other in pairs then they work as a conventional ultrasonic wind speed and direction sensor (with a bit of signal processing). The downside I found when playing with this idea was that the array needs to be quite big to get reasonable resolution, around 1m between pairs of sensors.

The raw signals are two pulses whose width represents the wind vector magnitude in each sensor axis. A bit of maths can derive the wind speed and direction from the two measured vectors.
 
Last edited:

AllyCat

Senior Member
The downside I found when playing with this idea was that the array needs to be quite big to get reasonable resolution, around 1m between pairs of sensors.
Hi,

An alternative "ultrasonic time-of-flight" method is to compare the relative phase of the transmitted and received signals. Then, the path needs to be quite short (say 5 - 10 cms) to keep the maximum phase change within generally half a revolution (180 degrees). Probably the easiest way to measure relative phase is with a Set-Reset flip-flop, followed by a low-pass filter and an A/D converter. [EDIT: Or of course, measure the mark and space times with PULSIN.]

Since all the M2s contain a S-R flip-flop (and of course an A-D converter) it might be possible to implement almost everything (except a single R + C filter) within a PICaxe. The raw silicon only has one S-R input, but the F-F can also be triggered from one of the Comparators (there is another current thread on the topic), which have a 4 input multiplexer. So in principle, the "transmit" and "receive" ends on two axes can be monitored with a single 14M2 (the 08M2 only has two comparator inputs).

For a range of only a few cms it may not even be necessary to use ultrasonic transducers, perhaps just a couple of headphone inserts from a Pound/Dollar Store? Many years ago I did indeed successfully construct such a microcontroller-based "time-of-flight" anemometer, but sorry I have no current plans to repeat it on a PICaxe. ;)

Cheers, Alan.
 
Last edited:

Jeremy Harris

Senior Member
I looked at doing phase measurement, but the application I had in mind was measuring the flow rate in an MVHR duct and I was after a dead simple unit. I bought a few of the cheap ebay distance modules and found they were dead easy to modify - just unsolder the sensors and fit them on the ends of longer wires. This works fine if the sensors are a metre or so apart, easy enough to do in my ventilation ducts.
 

g6ejd

Senior Member
Ultrasound time of flight delay/phase - I recall I published the maths on this site some time back, it's is quite straightforward.
 
Top