Internet connected Windmeter

I’ve a holiday home in Zeeland (Netherlands) at the lake and I love to windsurf.

Checkout the view! If the wind blows here, here’s where I want to be :)

A friend gave me this windmeter (anemometer) from Adafruit (https://www.adafruit.com/products/1733).

As you can see, the wire just ends there, it really needs some digital loving.

My mission: Get this windmeter working on top of my house, and find some way to see the windspeed and characteristics on the web somewhere.

Buy more stuff

So, I bought a Particle Photon (https://store.particle.io/) for $19 each (ordered more because I think I might accidentally might kill one).
I chose a Photon because it can measure analog inputs directly without an extra board, has Wifi onboard and can be programmed remotely with a Javascript like setup, is cheap and very small.

Excellent.

This weekend, my Photons came in (yay!) so I got started right away.

Connect the windmeter with the Photon

Although the windmeter officially required 7V or more, lets see if it works with a basic 5V battery I had laying around.

Connecting the black wire to Ground, brown wire to 5V and if I measure the signal wire (blue), there the nice 0.4V. Yay! The meter works just fine, even with only 5V. (And that’s nice because the basic USB charger I’ll be using to power the Photon outputs 5V and now I know I can use that).

How does a Particle Photon work anyway?

Setting up a Photon is really straightforward. Connect via USB once, pass the wifi settings and whee: all up and running.

Once connected, you can use some JavaScript like coding to read, write and compute things on it. Particle provides an online IDE to code, find examples, compile and upload the code to your Photon. Also, there’s a log interface to see how things are going.

Me as a software engineer, I felt right at home. But things are so straightforward and there’s a lot of online help, tips and example that I think that basically everybody can do this. So far, so good.

Get the windmeter connected to Photon

I connected the black wire to the GND, brown wire to the VIN connector (Voltage IN from USB, which is easy enough 5V in my case), and the blue wire to A0.

And, with this initial code (see below), I just log the numbers the Photon sends me to see if everything is working.

Workses! readings show up nicely in the log on the Particle Dashboard.

Wind speeds

Now, I want to measure the wind speeds, average out spikes but learn about wind gusts too.

We know that 0.4V means 0 m/s, and 2.0V means 32.4 m/s. Assuming a linear volt-to-speed mapping, we can easily create a function to map a Photon analog reading (0 to 4095 means 0V to 3.3V).

Also, I want to read out several readings, and average it out a little bit. I’m only interested in wind gusts that hold on for at least half a second.

Yay! this nicely logs a m/s every second to the dashboard.

My gut feeling says I need to average out several readings but I not sure, looks like the windmeter itself already eases out the readings quite well. Easy to add later, so I’ll just keep this as it is.

Next; I want to create code that measures a whole day of wind speeds, log gusts and send them over to an app when requested, and sends the data regularly to a webpage somewhere.

I used the ParticleJS Api, Meteor (http://www.meteor.com), Meteorhacks:npm module to include the NPM module “Spark” to show the current speed.

Check it out: http://windmeter.meteor.com (0 m/s now because the meter is placed in the house right now)

Things to do now:

  • the wifi signal is not strong enough when I place the Photon outside, so I need to hook it up to a longer wire, or see a way to ramp up the wifi signal.
  • put it at the Holiday house instead of my own house :)
  • Make/find a solid casing for my Photon (any idea’s?)

You can checkout the Photon and Meteor code here:

https://github.com/karsveling/windmeter