Solar-Powered Weather Station: Part II

This is the second (and final) part to the weather station I am building. If you haven’t read the first part of this blog then you can read it here:

Solar-Powered Weather Station: Part I

In the first part we discussed the parts needed to build the weather station and how to assemble them. Lastly I discussed how it communicated. In this part I will cover how to provide solar power to the weather board and the final preparations before putting the weather station outside.

How to Provide Solar Power

I plan on having my weather station attached to the top of the house, so it needs to have its own power such as a solar panel. This requires a couple parts. The first piece is the actual solar panel. I chose a Voltaic Solar Panel. To power the solar panel, it needs to be connected to a solar charger. For my set up I am using the Sparkfun Sunny Buddy. This is a maximum power point tracking (MPPT) solar charger intended for single-cell Lithium Polymer Batteries. We need a battery to store the power, so for this I purchased a LiPo battery with an output of 3.7V at 1000mAh which is suitable for the Sunny Buddy. The battery plugs directly into the Sunny Buddy. There is also a spot on the weather board for a two wire power connector. The connector end plugs in to the weather board, and the other end can either be soldered to the Sunny Buddy, or mounted with a 2-pin screw terminal. I would recommend the screw terminal because you will be disconnecting it quite often.


LiPo battery (left) plugs in to Sunny Buddy (right). Two-wire cable from Sunny Buddy connects to Weatherboard (center).

Bringing It All Together

At this point we have everything we need to power our weather station, as well as communication that we covered in Part I. There is only one thing left to do, and that is assembling it all together so we can test it.

You should have already soldered on the RJ11 terminals to the bottom of the weatherboard. After that you can also solder on two 10-pin headers so you can attach an Xbee. At this point the weatherboard is ready to communicate.

Next we want to take care of the Sunny Buddy. Like I said in the Power section above, you can attach a 2-pin terminal to the Sunny Buddy so you can connect the weatherboard, or you can just solder the power wires directly to the board. I would recommend the terminals so you’re able to disconnect the weatherboard whenever you wish (i.e. troubleshooting). The LiPo battery is attached to the weatherboard, as shown in the above picture, and the solar panel connects to the Sunny Buddy via a barrel plug.


Solar Panel plugs in to Sunny Buddy via a 3.5×1.1mm barrel plug. LiPo battery plugs in to Sunny Buddy via connecter labeled ‘BATT’.

Now we need to set up the Xbee on the computer side so the weatherboard is able to relay weather information to us. This requires an Xbee Explorer, an Xbee module, and a mini USB cable. Attach the Xbee to the Explorer (also note the proper orientation!). Finally, plug the Explorer in to your computer using a mini USB cable. The Explorer should find the previous driver you downloaded earlier and install successfully. If not, you may need to install manually. Just follow the same steps mentioned in part one.

If you take a look at your weatherboard, you will notice two switches. One switch allows you to switch between USB power and BAT (battery/solar) power. The other switch is for communication, and allows you to switch between USB and RF (radio frequency). For the two Xbee modules to communicate with each other, the weatherboard needs to be set to RF. Once set to RF, and both weatherboard and Explorer are supplied power, the weatherboard Xbee will automatically connect to the Explorer Xbee and transmit information.


Switches (bottom center) for Communication and Power.

In order to see the output from the weatherboard, you will need a terminal emulation program that communicates with serial COM ports. There are many free, open-source terminal emulators out there such as Tera Term, PuTTY, and HyperACCESS. I use Tera Term but you can use any program you wish. Just make sure you select the correct COM port that your weatherboard is using from within the terminal emulator. Once you do so you should get an output like in the picture below. Outputs will show up as ‘FAIL’ if there is no data to display. This can be changed by editing the code.


Weather Data Displayed through Tera Term

Yours may look a bit different than mine. I modified my output to metric since I live in Europe. It’s all too easy to do so – just press CTRL + Z from within the terminal and you will get the weatherboard menu.

Note: Changing the wind speed from miles per hour to a metric reading will instead give you meters per second (m/s) rather than the usual kilometers per hour (km/h). After much aggravation, a simple way of changing this was found. If you need help with this switch just let me know.

Final Preparations

Now that our communications are working and have external power, we are able to house it all in an outdoor case to place outside. In these outdoor cases it is easy to cut the foam in to square sections for the electronics. Cut out the foam and place in the weatherboard, battery, and Sunny Buddy solar charger to suit your needs.

After you are satisfied with your layout, you need to remove everything (including foam) so you can drill the side holes for the solar panel and two RJ11 wires, including a hole for the duck antenna. You want to size these holes so you are able to screw in at least two cable gland joints big enough to insert the wires, but small enough so they can tighten around the cable to prevent water seeping inside. I also sealed the glands with waterproof sealant. I made three holes altogether: one for solar panel wire, one for both RJ11 connectors, and lastly the duck antenna.


Once the holes and gland joints are in place, replace the foam and electronics. Insert wires, connect, and tighten joint caps.

Note: For a tighter, more secure hold, you can wrap the wires in electrical tape at the point where they are secured by the gland joints.

For connections, you should:

  • Connect the two RJ11 connectors to corresponding terminals on weatherboard.
  • Connect the U.FL antenna wire to the Xbee module on the weatherboard.
  • Plug in solar panel cable to Solar Buddy
  • Make sure Solar Buddy is plugged in to weatherboard
  • Attach LiPo battery to weatherboard
  • Make sure switches are set to RF and BAT

Finally – put it outside and be able to know exactly what the weather is in your own back yard! I have still been unable to attach this friggin’ thing to the top of the house. I’ll edit the last picture (and title picture) once it is finally in place. In the meantime, here is a picture of it lifting weights while doing its thing on the balcony.


Thank you for following along. I hope you enjoyed this article and that your weather station is suiting your needs!

== Errata / Corrections ==

  • The wire coming off solar panel is way too short so I added a Voltaic 4 FT extension cable for ease of use and mobility.
    • Voltaic 4 ft. Extension Cable for Solar Panel: 3.5×1.1mm
  • When drilling holes through outdoor box, be sure to drill them through the bottom and not the sides. Helps prevent against moisture! Obvious mistake I made and noticed right after.
  • Edited Firmware v1.4 code:
    • Changed metric wind speed values from m/s to km/h
    • Increased ranges on all readings to bypass “FAIL” message.
  • FAILED light reading due to weatherboard inside dark enclosure:
    • I will eventually add a light tube of some sort, or a see-through opening on the box so light can pass through to the light sensor.
  • I ended up removing the two-pin terminal I used for easy disconnection of Solar Buddy from weatherboard. I couldn’t get a solid connection with it so I just soldered the wires to the board. It has worked great since, but unfortunately I lose the ability to disconnect the solar charger.
  • Due to sensors being inside outdoor box, there is a rough difference of about 3 degrees compared to the actual outside temperature. Seeing this, I adjusted the code to take in this difference.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s