Wind speed and DC energy data logger

by Suneil Tagore

Contact: suneil dot tagore at googlemail dot com

April 2011

Energy and wind speed datalogger

Earlier this year the DIY renewable energy cooperative - V3 Power commissioned me to build a wind speed and DC energy monitor for a wind turbine installation and workshop at Bath University.  The wind turbine is a Hugh Piggott design with the following specifications:

48V DC

800W  (3 metre diameter blades)

3 phase

Main component parts used for this build were:

Allegro Hall current sensor ACS715, 30A rating (on a pololu breakout board) – see 

Nuelectronics datalogging sheild – with built in Real time Clock (RTC) and SD card slot

Arduino 328

60V regulator  - as the arduino requires approx. 7 - 12V supply, and the turbine will reach up to 58V when charging batteries.

Some LED indicators 

Vortex anemometer

Push switch to halt program execution

Software libraries used are SD.h (which is built into the arduino IDE libraries) and DS1302.h Thanks to all the authors of those libraries.

The whole unit was encased in a water tight container rated at IP65, with water proof cable glands.



Calibration for wind speed was calculated according to the manufacturers datasheet for this anemometer.  2.5mph per Hz. This was converted to metres per second.  See source code for this calculation. Note the the anemometer has a virtually linear characteristic, see  for full specification.  Apologies for the brief explanations of this design.  Please comment on this page, and I'll do my best to get back to you.

Voltage sensing was done using a simple voltage divider circuit.  Resistors used for this were 3.3K and 56K.  The current sensor has a built in circuit which outputs 0 to 5V, thus did not not need any further external circuitry and could be attached directly to the arduino.  Both voltage and current were then calibrated against a multimeter.


PINs used on the arduino were as follows:

RX, TX of arduino: 0,1

Wind pulse counting on interupt : 2

RTC: 3,4,6

Jumper for SD shield: 10, 5  (chip select line)

SD shield: 11,12,13

Analog pins used:

0 – current

1 – voltage

3 – wind (but jumper to pin 2, as this is the way the JST plug on nuelectronic shield is wired)

2 – used to halt program execution and allow safe removal of SD card.  see here on how to implement a push button circuit.



Further work/ improvements:

The current sensor is rated at 30A which is 14A within our maximum operating current ( and 800W @ 50V would give 16A)   It also has 5 times over current protection, so will handle well over 100A if need be, thus we are well within range.  However, it is still a surface mount component, in the safety critical path of the circuit;  a big heavy shunt resistor would probably feel much safer! For this build, we will be keeping a careful eye on this turbine, so should there be any problems, they will be diagnosed fast.  A better alternative might be to non-invasively measure the AC current, thus there is a lower chance of a circuit failure.   The sample rate and memory of the arduino might start becoming a constraint here, especially as we are writing to the SD card, thus a more powerful Atmega chip may be required.  Another advantage of measuring AC is that we'll be able to derive RPM of the turbine, which will be interesting to measure and characterise the generator.

Another alternative is to use hall effect sensor, however these are known to have current offset problems, but could potentially be solved by filtering at the software level.  It will depend on the hardware configuration for a particular sensor.

At the moment, data is logged at 10 second intervals.  This will give a very large amount of data for a whole year.  Ideally, the code needs to be improved to log each day or week in a separate file.  I made  a start on this (see source code comments), but ran into a problem/bug converting an array of characters into a string.  If you have any idea on how to improve this, please get in touch.Note: 10 second intervals were chosen to get some idea of gusts of wind.  10 minute intervals I believe is the EU standard for windspeed logging, however gusts of wind that occur around the 3 second range will be missed)  Also note that over this 10 second period, is an average of many samples over that period.


Wiring Layout:



We will be getting wind speed and energy data from this project over the coming year, to build up a power curve of this turbine, thus helping us to understand how well the turbine performs.  If the budget permits, we will also be able to web link the data in real time.  Any questions you have about the design and implementation, please feel free to comment.  I hope to add more information soon.