6

I need low cost wind direction sensor.

Requirements (edited)

  • low power
  • low cost ($5 or less)
  • wide temperature and humidity range (it will be part of weather station)
  • at least 5 degrees acurracy and resolution
  • response time - it may be few seconds, but faster is better

Optional:

  • low complexity
  • small size

It's for solar powered weather station based on Raspberry Pi. I have 1 ADC input there and i2c exposed. I can use microcontroller between Raspberry and sensor (and more ADC channels if necessary).

I was thinking about synchro, but I'm worried about power consumption.

My best idea so far is sensor with magnet or few magnets and hall sensor.

  1. Is this good idea? I expect wide temperature and humidity changes.

  2. If not - anyone got better idea?

Kamil
  • 5,926
  • 9
  • 43
  • 58
  • The field from a permanent magnets changes with temperature. I assume a wind vane, and then I think you might want a rotary encoder. Disk with some some slots, LED and some detectors. – George Herold Jul 28 '14 at 15:04
  • Accuracy, response time, stiction levels? – Andy aka Jul 28 '14 at 16:46
  • @GeorgeHerold I could use 2 magnets or 2 hall sensors and make some kind of differential measurement. – Kamil Jul 28 '14 at 17:47
  • OK maybe two hall sensors at right angles and one magnet. That would work. You get the Sine and Cosine of the angle of the magnet and as long as you scale the reading to the magnitude of the signal it should be fine. (no temperature effects from the magnet) There are zero offsets in the Hall sensors. I don't if those change with temperature. – George Herold Jul 28 '14 at 18:15

3 Answers3

5

AFAIK the standard way is to use a Gray-codes sensor disk, which you can read with a few reflex sensors. From https://sites.google.com/site/controlandelectronics/wind-vane-project :

enter image description here

A reflex sensor:

enter image description here

Wouter van Ooijen
  • 48,407
  • 1
  • 63
  • 136
  • 2
    I'm picking nits, but that encoder wheel shown above is NOT a gray code encoder. That's a standard binary encoder. In gray code, only 1 bit changes between adjacent values. Either way, an encoder wheel is an option. A 6-bit encoder would get you 5.625 degrees resolution, 7 bits would get you about 2.8 degrees resolution. – jwygralak67 Jul 28 '14 at 17:39
  • 1
    That's not nitpicking! Using a gray-coded disk is essential for this type of application. Replaced it with another picture & link. – Wouter van Ooijen Jul 28 '14 at 18:09
  • 1
    Actually, so long as you're using an absolute encoder of some type, I'm not sure why gray code is required. – Scott Seidman Jul 28 '14 at 18:35
  • 7
    @ScottSeidman: If the readouts associated with adjacent positions differ in more than one bit, a reading taken when the unit is on the threshold between two positions may yield a result which combines some bits from each. For example, reading a binary sensor which is on the threshold between 0111 and 1000 might yield any combination of zeros and ones. If instead it was on the threshold between 0100 and 1100, the value might read as 0100 or 1100, but it couldn't read as anything else. – supercat Jul 28 '14 at 18:48
4

Why not just attach a compass to a piece of sturdy material on a pole that gets blown around by the wind? These things are tiny and communicate via i2c. I'm sure you could find a cheaper one on eBay or make one yourself.

enter image description here

Funkyguy
  • 3,558
  • 1
  • 21
  • 45
  • 1
    Interesting idea. I was thiking about something similar (magnets, hall sensors). But my idea was to use permanent magnet(s) on moving part. – Kamil Jul 28 '14 at 17:49
  • Yea, Its what I'm currently planning on using once I decide to finally get back to the project. – Funkyguy Jul 28 '14 at 17:52
  • Sorry, I edited my comment few times and now I don't know what exactly are u planning :) – Kamil Jul 28 '14 at 17:54
  • To use a compass to do what you are asking about. – Funkyguy Jul 28 '14 at 17:58
  • 1
    I think the problem with a compass attached to a pole is the pole is going to spin around and around... So either the wire gets all wrapped up, or you need slip rings (Yuck.) Keeping the compass fixed and moving the magnet sounds promising. – George Herold Jul 28 '14 at 19:06
  • Yea, I never thought about that limitation although your solution would actually work very well. I mean still better than an optical gray-code disk. – Funkyguy Jul 28 '14 at 19:08
0

How much power is "low?" You could build a form of hot-wire anemometer with a central heating element and 4 temperature sensors around it, 90 degrees apart. Wind will cause the sensors to be heated according to wind direction. Reading the differential voltages across the sensors that are 180 degrees apart will give the ability to measure wind direction with an accuracy of the resolution of the voltage measurement. The only problem is that sensitivity is a function of how hot the heater is.

I've done this with a soldering iron as the heater and a couple of diodes as sensors. It easily detects me breathing on it. If you can spare a few watts, a heater made from a few turns of steel wire might work nicely.

lyndon
  • 4,366
  • 1
  • 16
  • 11
  • Few watts is waaay too much in my case. It will be battery/solar powered, I don't want to add extra battery and solar cell for that sensor. – Kamil Jul 29 '14 at 09:42
  • Interesting idea! - But exactly the opposite of "low power" for me. Didn't think a solution could be *so* power-hungry :o) – JimmyB Jul 29 '14 at 10:12