Playing around with the Xbee has led to a number of really interesting thoughts and ideas. Part of me is thinking that some of these ideas are far more interesting than the Solenoid project I’m currently working on. I have to keep reminding myself that I should really finish one thing before starting the next.
I’m still wrapping my head around the Xbee and what it does, and I can tell you what it doesn’t. Its not a bluetooth adapter (you might be looking for a BlueSMiRF radio instead). It operates on the 802.15.4 Zigbee protocol. Essentially it sets up a mesh network.
The node points for the Xbee OEM modules are 30m in radio frequency (RF) or 100m line of sight. The Xbee Pro’s go to 100m RF, and 300m line of sight. Where it gets interesting is the Xbee Pro-XSC at a range of 24 km in RF.
The modules are capable of being configured as a peer to peer, one-to-many, or many-to-many. They can hibernate, just broadcast or receive, and more. The spec sheet is quite impressive. If you send a message from one node, it could repeat till it finds its destination in the network. Imagine this on a scale of ~20 km node points.
Lets say we build a telemetry device and outfit it on a vehicle. That device could consist of a couple sensors, say a Hall Effect sensor typical in bicycle computers and ABMs on cars, and a compass module (I’ll explain my reasoning behind this over a GPS later). Other possibilities could include a heart rate monitor, air quality sensors, battery power. I’d love to integrate my heart rate monitor into the mix. A USB stick could connect to the Arduino (I’m loving the new Nano form factor) and act as a data-logger. Finally a localized Xbee controller would sit dormant on the device. As the vehicle moves an onboard timer records the data to a timestamped string:
20080519 20:55:59,4.5204,30
These fields would translate back to “Date/Time, Radians, RPM”. Over specified intervals new data would be recorded and stored locally. When the device comes within range of a broadcast node it would awake out of hibernation and deliver the data into the mesh network. A receiver station collects the data from the mesh and sends a confirmation signal. The broadcaster deletes the store of data and starts over, sending the local Xbee into hibernation mode again.
The data is then processed by the receiving station, plotted onto a mapping API, cross-referenced against other broadcasting modules, etc.
I’m going to play devil’s advocate on myself here:
Why a compass module over a GPS? Would that not deliver more accurate data? From what I’ve read, a compass module should provide a far lower drain on the power supply. It would also operate in situations where no sky visibility is provided. The form factor is much smaller, and no antenna would be required. The disadvantage is you need to know the precise starting point (found via GPS no less), and mounting considerations would apply.
The interesting thing is that I have all of the components working in isolation. Its just the small matter of getting everything to play as a team. Then moving it out into the field for some real world tests. Right now these are just some thoughts, but I can’t explain how exciting this little device is.