I started thinking of a physical display, and have an LCD desktop monitor planned. But, I thought having a weather station display that physically moved things to indicated current conditions would make a unique and fun project.
Here’s a picture of something I slapped together in few minutes to mount some motors to, and work on the Arduino code to indicate conditions. I’ll play with different motors and decide how to go there.
I thought of using factory bought panel meters, but had a few problems with that idea. They’re expensive in small quantities, and it’s really hard to find a style that would look good for a weather station, and getting an attractive and appropriately scaled background looked to be challenging.
But, you can get servos and stepper motors for pocket change, and you can print really nice looking scale templates, and it’s trivial to control these using an Arduino.
Servos are the easiest from a design point of view, they auto-center, and you just give it a degree to point to, and you can drive a ton of them directly with an Arduino, but they can be noisy, and sometimes hum even when they’re not moving, depending on the motor and the position. I want something silent that you can put on a desk. But, perhaps if I have the servo in a sound-dampening wooden case, it’ll be quiet enough. Have to do some experimentation.
Steppers are virtually silent and can be moved very accurately, but since they rotate continuously, I don’t have a way of reading a position. I have no way of knowing where the power-on starting point is, so if I unplugged and plugged a unit back in, I don’t know where the indicator is pointing. I can create a “calibration” mode, releasing the motors to free-spin, and requiring movement the indicators to a known position on power-up, or add a potentiometer that can move the stepper left and right, but that means it’ll only be fun for hardcore hobbyists. I can’t make one and give it to a friend and expect them to be impressed unless it’s a “plug in and it just works” unit. It also really requires the use of a motor controller. You can only control one stepper per L293D, and my favorite driver board, the Adafruit motor shield, only drives two steppers. I could design a stepper circuit daisy chaining 74HC595N serial to parallel latches driving a bank of L293D’s, but seems like finding quiet servos will be a lot more cost-effective in terms of parts cost, circuit design, and the resulting time writing driver software. And, if I make this into a kit, simplicity is also a good thing.
My initial thought was to simply plug an XBee into the same Arduino, have it parse the output from my sensor pack, and display it. It’s still going to do that, but when I mocked this up, I didn’t have a spare XBee lying around, UPS is still driving them across the country.
Right now, this is driven by a laptop reading the instantaneous weather data from a file. I’m writing the datafile in a Dropbox directory. This is cool because if I picked up and moved the laptop and display box to a friends house, it would continue to just work, displaying the sensor data from home.
I’m going to have to think of a configuration where the station can display multiple sensor pack outputs. I think if I use an Arduino Mega, given it has 3 serial ports, I can make it all work.
I think the final version will have at least 7 indicators:
- Temp (internal/external)
- Humidity (internal/external)
- Barometric pressure
- Wind speed
- Wind direction
- Rainfall rate
- Daily rainfall
I may double some of these up, so you flip a switch or press a button and it’ll indicate internal/external temperatures, and might supplement some of them with LED’s. Also considering continuing with the Fabulous Five project, and having a dollhead spin when the wind really picks up.
I may also add an LCD, especially if I display remote sensor pack data. Doing all of this using one Arduino may be a challenge. I think the Mega has enough horsepower to do everything I want, though, if I can’t do it all through a regular Arduino.