I am designing a experiment of controlling 6 small wind turbines wirelessly. For each wind turbine, I need to measure power time series (or voltage or current time series) from the generator, and control blade pitch angle, yaw angle, and generator load (using variable resistance). The control input will be all PWM signal.

I am planning to put an Arduino UNO with a ZigBee wireless module to each wind turbine, making it measure the power time series and transmit to the central node, as well as receive the control input from the central node and command the control input to servo motors. The central node will be additional Arduino UNO.

Here are my questions:

  1. Is it possible for each Arduino to send time series signal to central node wirelessly without interference with other Arduino? (6 wind turbines transmitting time series to a central server). If it is possible, How can I implement such network ? recommending a source for learning would be also greatly helpful.

  2. Interface between the central node and the computer software: The algorithm in the computer need to process the received power time series and determine the optimum control input for 6 wind turbines. Then these control input should be transmitted to wirelessly to 6 wind turbines. In such case, what is the good option to interface the algorithm and the Arduino connected to the computer? Currently the algorithm is written in Matlab. I heard there is the sketch interfacing Arduino and Matlab, is it efficient enough for such project?

4 Answers 4


It is very interesting project. In my opinion, i would not do like you want to control generators from one point.

  1. Look at ZigBee and Wireless sensor network. It is possible. Do more search, also there are several books about networking.

  2. I think that would be more efficient to control the wind turbine with an Arduino and send only data to the main computer. Main computer should do some calculations or send some main configuration data or control on/off wind turbine basis of:

    2.1 Metrological data (wind speed or else);

    2.2 Storage SOC(if you will store it in batteries or somewhere);

    2.3 Required power of grid and etc. etc.

Arduino UNO like you said, connected to computer could do just data collection and making it compatible with computer(MatLab or whatever) and spread control data from PC to targeted Arduino.

Added links

Could not add more than 2 links due to low reputation :)

http://www.digi.com/pdf/wp_zigbeevsdigimesh.pdf , http://forum.arduino.cc/index.php?topic=105273.0


In such a case I would use HTTP requests from a web server using PHP to arduino.

In a simple explanation the PHP sends a string in its url and then the arduino checks for that string and do something.

I have used such method and it served me well and actually fast too.


I have done a similar project in the past; for simplicity's sake, lets call the 6 arduino's + turbines "Endnode" and the central receiving and sending arduino the "Controller"

The general idea is that each endnode periodically sends a zigbee package(it's important that it is an actual zigbee package, do some research on this subject) to the controller. The controller can receive these packages in the form of a serial interrupt. that way, whenever a package is send, the controller instantly starts to handle it.

The controller can send the data to the computer, I recommend using http transfer, as it's easy and probably fast enough.

This proces can be reversed in order to send a command to the endnodes to control the turbine.

If you're interested in my previous work on this subject, I reccomend you check out: Libraries of my previous work

And The sketch used for the project I appologize for any weirdness, as it was a student project. But it worked flawless ;)

Good Luck!


From experience my recommendation would be to use Arduino nanos and NRF24L01 modules, using this library: http://tmrh20.github.io/RF24/

Use nanos for monitoring and one for acting as host. I presume you are comfortable writing a vb.net app or similar for reading the host serial data via usb?

Quite simply, your six monitors will await signals addressed to them. Depending on that signal, they can either transmit their current data, or change turbine settings, etc.

With clever coding you can avoid multiple arduinos attempting to transmit simultaneously, and avoid any interference issues.

Good luck, drop me a line for more info if needed. Using nano clones and pack of NRF24L01 modules for < $10 you'll be able to set this experiment up very cheaply - aside from the turbines!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.