I'd like to make a digital wind meter using the Hall sensor (?) from a pc fan, a spare 2x16 LCD display (HD4880 or whatever it is) and the arduino. This is more of a work log as I don't have the arduino yet, but I should in a few weeks, and I'm probably going to use a 120mm fan as it should be easier to turn in lighter wind making it more sensitive, otherwise I'll have to fashion my own somehow.
Getting info to display on the LCD should be pretty straight foward, there's numerous tutorials on that in the arduino playground. I need to find someway of translating the rpm from the hall effect sensor to a wind speed. I'll probably use a tried and true method of emperical testing (have it outside my car window while I drive at a certain speed).
Getting the wind speed seems like it would be pretty easy; it looks like basic trigonometry. It would be basically the same as a digital speedometer for a bicycle, wouldn't it? If you know the diameter of your scoops (vanes?), you how how far the scoop ends are traveling per rotation.
A sensor from a floppy drive might work better than one from a fan, though; it's larger and is mounted on a sturdier bearing.
Thanks, I'll keep that in mind, though I will have to find a floppy drive. I've found a few sites with with using the hall effect sensor on the PC fan for other uses, taking it off the blades. What I might do is take it off and find/make/use better bearings so that the vanes spin easier, making it a little more sensitive.
Just remember that the wind can more powerful than it looks. If you just want a project, dont worry too much. If you want something more sturdy, you might want to try and build a more robust system.
well my arduino will be in today, according to CanadaPost's tracking system, as long as my gf is home to accept it I'll be good to start today (good thing I cleaned up my work area/computer desk last night). So I did a little research, I'm going to start off with a 80mm fan I have kicking around, I'll find a 120mm with a hall sensor after I get this going as I think the 120mm will be more accurate. My plan of action goes like this: - Isolate hall effect sensor on fan cutting the traces that turn the blades - from what I've been reading using 'the Google' the hall effect sensor puts out square waves, but I don't have anything to measure this besides a digital multimeter, so I'm going to apply a 5V load to the fan and turn the fan blades somehow and measure the voltage across the sensor wire and ground and hopefully luck will be on my side with this. - After that's done I'll have to figure out my next step which I probably won't be able to get to until at least tomorrow as I have to take my dog to the vet tonight.
I don't think the diameter of the blades will make a difference, since the diameter of the center is more or less the same size.
It should be easy to tell if it's working... just hook a multimeter up between the tach wire and ground. You should see it jumping between 'high' and 'low' as the blade turns. It basically just sends a pulse every <i>x</i> degrees. Off the top of my head, I don't know how many degrees per pulse; it might be a full rotation.
The diameter of the blades will make a difference as it will dictate how much wind it will take to turn the blades. The bearings on PC fans aren't the greatest so every little bit helps.
The size of the fan will have -no- effect on the accuracy of your anemometer. The accuracy will depend on how precisely you calibrate the system once it is assembled.
The blade size -will- effect both sensitivity and responsiveness however. The larger the blades, the lower the wind speed you'll be able to measure (presuming the motor armature mass is about the same for each). But, larger blades will not be as responsive to changes in wind speed (gusts) because of the larger overall mass of the rotating parts. It's a trade off. You'll have to decide which is more important in your application: being able to measure very light breeze, or being able to measure the instantanious speed of a gust.
The software will have to be pretty tightly written since the arduino has no timer functions. Further, if you want to be -really- accurate, I'd replace the resonator on the arduino board with a crystal clock oscillator. That would make it significantly less temperature sensitive.
F.W.I.W... I also built an anemometer that has an embedded arduino, but I took the pulses from the sensor and ran them into a frequency-to-voltage converter (LM2917) , and then just ran the analog voltage into one of the arduino analog input pins.
Good luck, and keep letting us know how it's going!
Thanks for the tips john, I was thinking that it would be better to go with an external clock rather than the internal, but I think for just a proof of concept, and so that I can learn the arduino IDE and inputs, I'll use the internal one and live with the error until I get this one doing roughly what I want.
Did you use the <a href="http://www.arduino.cc/en/Tutorial/Smoothing">smoothing</a> tutorial for analog input to calculate the average of inputs? I think I might do that, I tried turning my fan attached to multimeter, and it would go from 0 - 100Ohms(? can't remember multiplier) every revolution.
Just out of curiosity what did you do with your anemometer? I used to windsurf a lot, and just started getting back into it after moving to the west coast, and I'm interested in gust speeds, as it can sometimes dictate sail size.
I didn't do any smoothing at the arduino, it's just acting as a data concentrator. In short, it reads the annemometer, a wind direction sensor, a temperature sensor, a rain sensor, and a light sensor. (I still have a barometer, a UV sensor, and a humidity sensor on the drawing board) The arduino takes all the readings and sends them down a serial link to my server.
I essentially accomplish wind speed averaging mechanically by having a large and heavy (and pretty indestructable) wind cup assembly.
The sensor hardware is up a small tower at my house. Right now it just updates a webpage on my local HTTP server. Eventually it will feed my home automation system where the data will be used by the irrigation, swimming pool, and a few other systems.
I might not do smoothing, or maybe try to impliment it as an option, I'm still in the learning the programming phase of the arduino, and just about have my LCD ready to fool around with (I forgot the pins on my LCD are labelled backwards, it was previously a Parallel port LCD display for my comp).
BTW are those ladels? I didn't think of making a weather station for home automation but that would come in handy for when I move into my own house and am not renting anymore.
Are you going to try to do intelligent home automation, i.e : if it rains over x amount you don't water your lawn/garden, if it rains under that amount you water you lawn, x amount - rain fall amount?
Yup, 4-ounce stainless steel ladels. I got them from the dollar store for ... well ... a dollar. They might not be the ideal solution from a data collection standpoint, but they are inexpensive, effective, and really look damn cool up there on the tower. (grin) I took pictures and put together a VERY rough naritive about building the sensor because eventually I'm going to put the whole project up on my website. You can see what's there to this point <A HREF="http://www.hackersbench.com/Projects/anemometer/index.html" TARGET="_blank">here</A>.
I'm less concerned with rain (since we get so little of it here in Phoenix) than the wind.
Eventually, if the wind exceeds a given setpoint for a given amount of time, it's safe to assume that we're having a dust storm and several things will happen;
- the outside blinds over the west-facing windows will retract - if the pool filter is off, it will turn on - if the aerator for the pool in on, turn it off (the aerator is on if the water temp exceeds 80F) - if the pool filter is set to floor jets it will switch to the side jets - change the chlorine setpoint from 1.25ppm to 3.0ppm for 24 hours
Ultimately I will also use the rain data to regulate the irrigation system, but that's a MUCH lower priority that managing the pool.
Well John it looks like you have a good long project ahead of you.
So I managed to get the Arduino IDE working with Vista x64, I can make an led blink, now onto trying out my 20x2 LCD then working on the fan stuff which shouldn't be hard, yesterday I saw some guide or tutorial on reading a fan's rpm and outputting it to serial so I'm going to nick some of the code, maybe put in a second function and do smoothing so that I can get 'real-time' wind to catch the gusts, and do smoothing to get the average wind speed.
I was looking at the 120mm fan I have, and I think that the vanes will be too hard to move at the wind speeds that I want to measure 20 - 60 km/hr (12-40 mph). so I grabbed a dead SCSI harddrive from work. Does anyone know if harddrives have hall effect sensors? I imagine they do, and if not that I'll use a sensor from a fan and bearing assembly from a harddrive.
I presume you already thought of this, but just to have it on the record...
a pretty easy way to test the fan is to hold it outside your car window while driving 12 mph, or any other target speed. That's precisely how I calibrated my anemometer (using a handheld GPS unit for the speed reading).
I don't know if hard drives have hall sensors in them. I do know for certain, however, that old floppy disk drives have them. They can also be found in some (most?) old VCRs and audio cassette recorders.
I actually have a couple hundred sensors packaged for some automotive application that I picked up on eBay (you gotta love auctions with 99-cent opening bids where the description is bad, and NO ONE else knows what they're looking at [grin]). I haven't gotton around to reverse engineering them. If the postage is reasonable I'd be happy to send you a couple.
Curious... why are you going for hall sensors instead of an optical arrangement?
To quote my first post: "...I need to find someway of translating the rpm from the hall effect sensor to a wind speed. I'll probably use a tried and true method of emperical testing (have it outside my car window while I drive at a certain speed)."
I found out that harddrives do have hall sensors. I'm trying to make something a portable as possible as I go windsurfing at different locations that have different windspeeds and directions, AND my house is in the interior where we don't get much wind.
Also I knew about hall sensors and they seem pretty straight forward. I don't know what an optical arrangement is so that's why I'm not using it.
On a related note to mechanical methods of measuring, my parents bought a beach place which came with a 70s(?) era wind-speed thingy that used FLUID to indicate wind speed. I never got to see inside it since my parents got rid of it pretty fast (it was "UV Exposed Yellow and didn't fit the decor"), but I imagined that the vanes turned a pump which increased the pressure on the fluid, which came down a big old tube into the meter itself.
How it was calibrated I have no idea. Pretty freakin cool though.
My dad was telling me about a beach bar in the caribbean where they had a wind meter that was a fluid filled tube bent into a U with one end in the wind and the other end inside, and the fluid level at the end inside the bar woudl go up and down depending on the wind.
lol, actually could probably make one with a flat stick and have it facing into the wind and do some calibration from outside my car window, but that's too simple, I like to make my life harder sometimes... but not too hard.
Ok, I can't remember who suggested using an optiosensor, and my reply was I didn't know what it was so I was going to stick with a hall effect sensor, well I just read <a href:"http://www.instructables.com/id/EDTP9R3F6B7T1Q9/?ALLSTEPS">this</a>, and thought that this would be easier to house (smaller portable housing) and could possibly be better on batteries (although I don't know that for sure).
Does anyone know if this would be a more power efficient approach?
I thought about that too, but I can make the LEDs and uC and LCD weatherproof far easier than trying to weatherproof a PC fan, or making a custom, balanced fan/vane with magnets.
I was think that I would use a RC prop, or make my own prop/vane, and have the vanes interrupt the IR receiver like in the above Instructables. This way the only the LED, IR receiver and prop/vanes are really exposed, and the prop vanes, wouldn't have resistance caused by the magnets.
I'm still in the getting my LCD module to work with the Arduino, my LCD might have gone south since I last used it. So I have time to figure something out. I was reading that the PC fan hall effect sensor needs 5V to operate properly, and LED's working on less, I'm more inclined to use the IR method. I'll have to scrounge up some parts somewhere to get this going.
Ok so I got optosensors working on my breadboard, but when I soldered leads onto the IR LED and IR Sensor everything stopped working ... well sort of. The IR LED is still putting out, I confirmed this using my digital camera, I can see that it's on. But the IR Sensor isn't sensing the IR anymore, I even bought a new IR sensor and tried via breadboard again, and it still doesn't work, I'll post code and schematic when I get home tonight.
Anyways I have the IR transmitter inside the fan, and the IR sensor on the outside, below in the pics, the wires going into the back of the fan are for the transmitter, the blob of gray is epoxy putty. The fan looks broken, that's because it is, I had to break it to gut it, that's why the universe made Locktite ;)
Very cool - I might have to try setting this up myself (the Arduino Optical Tach Instructable is mine - it was the first thing I did with my new Arduino after flashing an LED).
cmpalmer: If the instructable was yours, I thank you very much, it was exactly what I was looking for when I started this project.... although I didn't know it was exactly what I was looking for ;)