Sending your data through the air

The Greatest of Ease

Build a low-powered wireless system for your outdoor weather station using inexpensive hardware.

At SwitchDoc Labs, we like weather stuff and are always building more weather stations and adding new sensors; I have written about these in several articles [1]-[3]. This time, I decided I didn't want to run wires from the wind sensors on the weather station into the lab. It was a pain because of the way the building is constructed. What to do? Build a wireless system, christened WXLink, to send the data, make it solar powered, and give it a pretty good range through walls. My goal was to consume an average of less than 5mA.

Although I'm using this setup to transmit weather information, you can use it to send any data wirelessly. I'm running at 9600bps, but you can get more range with slower bit rates or bump up the speed to send data faster.

The first prototype of the wireless system I built was a proof of concept using Arduino Unos, Grove shields, and the Grove Serial Pro transmitter. The current for that system ran way over 100mA (about 0.5W) and would have required a big solar panel. With clever software (putting the computer to sleep between readings and turning off the transmitter module), I got the average current down to about 50mA. This prototype worked functionally, but still used too much power. One point became clear: I had way more computer and speed than I needed using an Arduino Uno, so I moved on to prototype 2 (Figure 1).

Figure 1: WXLink prototype 2.

The second prototype was built using an Arduino Pro Mini, the Grove Serial Pro transmitter, and a bunch of wires (Figure 2). With this system I got the current down to about an average of 15mA, so I was getting close. As you can see in Figure 1, it was a rat's nest of wires, but it worked. As I was building this prototype, I started thinking about how to reduce the average current further, so I looked at the Arduino Pro Mini and thought that if I redesigned it by removing the power regulator (5V to 3.3V), which burned a lot of power, made the power LED optional, and cut the frequency down to 8MHz, I should be able to hit my goal. It would have been good to go down to 3.3V, but the transmitter I am using only works at 5V; therefore, I designed the board to work at both 3.3V and 5V, although I am only using it at 5V for now. The Grove connectors [4] made it easy to build the entire setup by reducing the soldering job down to exactly one optional pin on the Serial RF Pro (Figure 3), which is required if you want to disable the Serial RF Pro when you aren't using it, saving about 28mA of current.

Figure 2: The block diagram.
Figure 3: The final hardware. The Grove WXLinkWR (top) is hooked up with the Grove Pro Mini LP (center) and the Grove Serial RF Pro (right).

After making the design in the EAGLE board designer, I called my buddies at TinySine [5] and sent the design off to manufacturing. When the board came back, it worked perfectly. That did it. I was down to an average of less than 5mA of current – 4mA to be exact. Design criteria met.

The Hardware

Note that you don't have to use the same hardware I used for this project. I just wanted the lowest power I could get while still being compatible with the world. The software will work with a lot of different Arduinos and wireless transmitters. Although the rat's nest prototype 2 worked pretty well, I used the following parts for the final project:

  • Grove Serial RF Pro – long-range, low-power wireless transmitter [6]
  • Grove Pro Mini LP – low-power Arduino Pro Mini-compatible computer [7]
  • Grove WXLinkWR (optional) – converter for the WeatherRack or SparkFun Weather Sensors; part of the WXLink Kit [7]
  • 5V micro-USB power supply

Grove Pro Mini LP

The Arduino Pro Mini is built on an ATmega328P, which has 32KB of flash memory, 1KB of EEPROM, and 2KB of internal SRAM. It doesn't have a ton of memory, but it's enough for what I'm doing. It also contains a four-channel, 10-bit analog-to-digital converter (ADC) and has 8-bit PWM capability. I have 12 digital GPIO pins available and a hardware serial port. The unit is programmed using an FTDI, rather than a USB, cable. The USB cable is on the Grove Pro Mini LP strictly for a power supply connection. Figure 4 shows all of the pinouts of the Arduino Pro Mini, and Figure 5 shows the Grove Pro Mini LP and its connections.

Figure 4: Arduino Pro Mini pinout diagram.
Figure 5: Annotated Grove Pro Mini LP.

Buy this article as PDF

Express-Checkout as PDF

Pages: 6

Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content