Introduction: Breezefinder: Citizen Science Windpower Tool
If you've lived in a city, you've probably encountered something like New York City's Tenth Avenue after a rainstorm: a place that was so windy, the ground is littered with broken umbrellas. Why don't we use that impressive windpower? The answer lies partially in technology--the turbines able to take shifting, multidirectional urban winds were only developed recently--but largely in knowledge. We just don't have the scientific data to back up where wind turbines could be feasible.
Enter Breezefinder, a citizen science tool to help you find opportunities for wind energy. In this first iteration, I have packed all the sensors and goodies you need to power a windspeed-sensing anemometer and send your data to Twitter into a neat laser-cut box.
It's a long tutorial, but bear with me--it is really cool. Let's get started!
Step 1: Gather Materials
Although sending wind power data to the Internet can sound a little intimidating, there are really only three major parts to this project: an Arduino Uno board, a FONA cell phone chip, and the anemometer (the wonderful spinning sensor). I've listed these, along with the other accessories and some purchase links, below.
FONA 808 with GPS
Ting SIM card or other pre-paid card for use with FONA
half-size breadboard (to allow you to quickly move wires and troubleshoot)
solid-core wire for easy soldering
12x24" sheets of acrylic (optional)
acrylic cement (optional)
4 1/4" screws and matching nuts to hold down the anemometer (optional)
computer with Arduino installed
laser cutter (optional)
Step 2: Build the Housing
Since Breezefinder needs to go outside, you can't exactly take it out with all its wires and fiddly bits exposed, unless you enjoy carrying dangerous-looking metal bits in public and fielding accusatory questions from law enforcement. Your call.
I took advantage of a laser-cutting facility during the making of this housing, so I'm providing the templates for it if you want to make it out of 1/16" translucent acrylic like I did. Otherwise, a plywood housing could be very suitable, or even a cardboard one if you really want to take it low-fi. Just avoid using metal if you decide to experiment with materials; nobody likes an electrical fire.
(I will be experimenting with different housing types over the next few months; if you come up with a great one, make an Instructable and let me know in the comments!)
Step 3: Install Your SIM Card
If you haven't activated your SIM card, now is the time to do so. If you purchased a Ting card like I did, you can follow these instructions to activate it. The one I used is a GSM card.
On the back of the FONA chip, there is a little holster. Open it according to the instructions printed on the plastic, making sure that the metal plates on the back of your SIM card will line up with the metal connectors in the holster when it's closed. If you have put it in correctly, the holster will snap shut, and your SIM card is successfully installed on the FONA.
Step 4: Connect the Parts Together
To start to get the parts to work together, they will have to be wired together. The centerpiece of Breezefinder is the Arduino, which controls the whole sensor through its microprocessor. The anemometer and the FONA provide their own unique challenges, so make sure you have your soldering iron, "helping hands," or some way to hold parts and wires stable on hand. You'll also need your wire stripper/cutter, a razor blade or hobby knife, and extra wire.
If you've already opened up your anemometer, you'll see that it comes with a long, thick wire that screws onto the mount. While that may come in handy for other applications, it is way too large and bulky for the Breezefinder, and the connector on the other end is the wrong kind, as well. So, you're going to chop it off! I left about 3" (8cm) of wire. Don't worry too much about it being short, as long as there is enough room for you to strip the rubber off.
When you cut the cord, you'll notice that there are three wires on the inside: a blue, a black, and a brown one. Using the hobby knife, carefully cut the wire down the middle, separating the wires without cutting through them. Once you've cut through about an inch of rubber, you can slice it off and manually separate the wires. Using your wire strippers, expose a little bit of the copper wire inside each one of them.
Using your helping hands to hold the wire steady, heat the copper ends and apply solder to them, fusing them together. Cut a length of solid-core wire (preferably in a matching color) and do the same to it. Now that both wires are warm and solder-y, hold them together and melt the solder, allowing them to fuse. Repeat for all three wires, and wrap the exposed ends in electrical tape, or heat-shrink tubing, if you're fancy. If you leave electrical wires exposed, they are likely to touch each other and cause a fire, and nobody likes that.
The black wire, which connects to "Ground", needs special treatment, because it has to be grounded to both the battery pack and the Arduino's ground port. So, you will be soldering two extra wires to it instead of one.
Once all your wires are soldered to the main cord, get out your battery pack. Lop off the nice round power port on the end and treat the new cut just like you did the anemometer cord--separating red from black, and stripping the ends. Solder one of your black wires to the black battery wire, and the brown wire to the red battery wire. Connect the blue wire to the A0 port directly on the Arduino Uno, and plug the other black wire into the GND port, or to a (-) line on the breadboard.
Connect a wire (ideally red) from the Arduino's 5V port to the (+) line on the breadboard. Connect a wire (ideally black) from the GND port to the (-) line on the breadboard. This will ensure anything connected to the breadboard is receiving power and grounding.
To wire the FONA, follow this wiring guide, connecting the proper ports to the Digital ports on the Arduino Uno, and making sure all power and ground connections are sunk into the proper lines on the breadboard.
(I will post a wiring diagram soon so that you have more to look at than a wall of text! Please bear with me. Post any nags or helpful suggestions in the comments.)
Step 5: Dry-fit the Parts in the Housing
Now is the time to fit the parts into your housing, making sure that the wires are all the correct length and everything fits. Connect your wires between the Arduino, the anemometer, the battery packs, and the FONA, following the illustration in the previous step.
Make sure there are no batteries inside the AA pack so you don't get shocked! Even though I connected the FONA's battery pack in the picture, it would also be smart to leave the two disconnected for the time being.
If you are unhappy with the fit, now is the time to rearrange your components or decide to change your wire lengths accordingly. Unsoldering an already-soldered joint is as easy as melting the solder again with your iron and pulling the wires apart.
Step 6: Trim and Solder Wires
Now that you know how far apart your parts will be, you should trim your wires accordingly. While there's nothing wrong with lots of long wires, it can be hard to pack into the housing, not to mention a pain in the butt to see what wire goes where if you need to troubleshoot.
Step 7: Install the FONA Code Library
You'll need the Arduino software in order to run the Breezefinder program, so if you haven't installed it on your computer yet, you can find it here.
In order to make your life easier, the FONA comes with its own software library that allows you to use part-specific code commands in Arduino, allowing you to bypass writing lots and lots of lines of explanatory code. In order to use it, though, you will have to install it.
Open Arduino and select Sketch > Include Library > Manage Libraries. In the search bar, type "FONA" and select Adafruit FONA Library. An "Install" button should come up, and once you hit it, you should be all set! Restart Arduino, and you are ready to play.
Step 8: Test the Anemometer (optional)
Testing the anemometer was helpful for me in troubleshooting the Breezefinder while I was putting it together. If it has been wired correctly and there are no malfunctions, it should provide a clear and steady stream of data.
To test, download the Arduino sketch I've provided here and connect your Arduino to your computer via its USB tether, making sure the Arduino Uno is wired to the anemometer. Go to Tools > Board and select Arduino Uno, if you haven't already, and likewise go to Tools > Port and select the port your Arduino is tethered to; mine usually shows up as COM4 or COM5.
Then, hit the "Upload" button (the arrow button at the top of the window) and give it time to upload. Once you receive the "Done uploading" message, go to Tools > Serial Monitor and open it up. It should begin to transmit information from the anemometer. I have set the code to begin printing "YES" to the monitor when it spins at 2m/s or over, which you can easily do by spinning the anemometer with your finger.
If the numbers fluctuate wildly or do not seem to make any sense, check your wiring--you may not be properly connected to power, or your ground connection to the Arduino may be faulty.
Step 9: Test the FONA and Connect It to Twitter
The FONA 808 can be a testy creature, so I tested mine extensively before uploading my final code. Many people complain that the GPS capability only works outdoors, and I found that I could only catch a GPS signal in a certain corner of my apartment. If that is true for you, don't panic. You can always take your laptop outside, or just live without a GPS connection for the moment. We will be primarily testing the SMS function.
[NOTE: the Ting wireless network operates on Sprint's network. If you live in a rural area, or middle America, chances are you might not get service. Please make sure your card will work for you!]
To start, download the Arduino sketch I've provided here and connect your Arduino to your computer via its USB tether, making sure the Arduino Uno is wired to the FONA, and the FONA is connected to its own battery. Go to Tools > Board and select Arduino Uno, if you haven't already, and likewise go to Tools > Port and select the port your Arduino is tethered to; mine usually shows up as COM4 or COM5.
The FONAtest sample code is incredibly helpful for testing multiple functions of the FONA. Since it is a cell phone chip capable of most basic smart phone functions, you can make calls and browse very simple websites from it--but for our purposes, we will only be testing the GPS and SMS functions. To open the sample code, go to File > Examples > Adafruit FONA library > FONAtest. This will open up the test code you need. Upload it using the button at the top of the window.
Once the code is fuly uploaded, open the Serial Monitor in Tools > SerIal Monitor. In a few moments, if your wiring is correct and the battery is properly connected, the FONA should automatically start. "FONA is Ok" is a good message; "FONA not found" or repeated messages of "Initializing..." are not. (I found the Adafruit Customer Service forums incredibly helpful at this point.)
To turn on GPS services, make sure your cursor is active in the Serial Monitor's text bar, and press O+Enter. you may encounter an error here in the form of a lack of signal, which you can re-test in the outdoors if you like.
To test the SMS service, enter "s" for SMS. The FONA will prompt you to enter a phone number, and then a message. I tested this on my own cell phone first, and then messaged 40404 to start a Twitter account for my number. To read responses, as from Twitter, press "r" to read the latest one, or "R" to read the entire text history on your FONA.
If you would like to sign Breezefinder up for a Twitter account while you do this, you can follow instructions here and here to start an account and activate it from the FONA. If you do not sign up on the device itself, you can connect a new Twitter account to your SIM's mobile number at http://twitter.com. I named mine "@breezefinder", and while you can name yours whatever you like, I'd love it if you named yours with "breezefinder" and a number, so the project is findable in the Twitterverse.
(Should I have programmed a hashtag into Breezefinder's serial output? Comment if you agree!)
Step 10: Download the Code and Put It All Together
At last, the moment of truth! Download the Breezefinder code and upload it to your fully wired device. Once it's uploaded, open the Serial Monitor in Tools > Serial Monitor, and wait for the device to initialize. It should start to automatically print data on the perceived wind speed and GPS location.
Although I've set the code to only text your Twitter account if the threshold exceeds 10m/s (10m/s is the minimum for wind power generation), you can set it down to 2 in order to test it indoors or at low speeds, using the instructions I included in the code comments.
Step 11: Fit It All In!
Now that everything is soldered into place and the code is fully uploaded, put it all into your box! Make sure the anemometer is lined up with the screw holes, if you used my template. Although I didn't opt to screw the Arduino board down, I did use the sticky backing on the breadboard and a 3M velcro strip to hold the AA battery pack in place. As you will be carrying Breezefinder around, the less movement in the box, the better.
Push your 1/4" screws up through the provided holes and fasten down the anemometer so it doesn't slide. Put your lid on and power on the battery packs, and you are ready to go!
Step 12: Test It Out!