0
\$\begingroup\$

Conceptually what I'm trying to build (using arduino) is a network of X number of nodes that include a number of sensors in each. Each node wirelessly reports their data back to a base unit, which does 2 things:

  1. controls a solenoid
  2. publishes the data to the internet

What is the best way to accomplish this? I'm thinking of using xbees for each of the nodes to report back to the base unit. Does each node require an individual arduino or is there a simpler way? Maybe RF? Bluetooth?

Then in the base unit I have an arduino, relay to control the solenoid, and a wifi adapter to send data to the web.

Conceptually is this the right approach? Technically how difficult is it to implement?

Also, I would like the setup process for someone else (after I build everything and get it ready) to be as simple as possible. Should be plug in + turn on simple if possible.

Lastly, is it possible to have a "mesh network" for the xbees to communicate if some of them are too far away from the base?

\$\endgroup\$
1
\$\begingroup\$

Based on your component list, it appears cost is no object. At least for the prototype you're developing.

There are many wireless modules that have built in GPIO (general purpose input/output) for controlling solenoids and analog inputs for sensors. Like the RN-41 for Bluetooth or the RN171 for WiFi. Those would work well as nodes and would save the necessity for an Arduino for each node. I'm not sure on their mesh networking ability, but it's unlikely. Zigbee will give you that ability, I think they have a decent pre-built solution for that actually, but maybe with the range of WiFi you wouldn't need it.

Conceptually you have the right idea. It's difficulty is hard to say. I think it wouldn't be too much trouble for someone with very decent embedded programming skills; the modules are going to handle the hardware difficulties. The only circuit you'd probably build is the activator for the solenoid, of which I'm sure you could find a lot of examples on this site and the wider internet. I would estimate this project being 90% programming.

Handing it off to someone else will work if you try to limit the options as much as possible. If you try to include things like an adjustable threshold for activating the solenoid then you're going to have provide software, perhaps a GUI, to configure your board or the customer is going to need the tool chain and programming skills.

\$\endgroup\$
  • \$\begingroup\$ thanks, this is helpful. I want the nodes to be as minimal as possible...just sensors and wireless transmission. I want to be able to control the base unit (the solenoid) from the internet as well. The base station will both send the data from the nodes to the web and can also be controlled from the web (turn on/off the solenoid). Also, the the modules with input/output don't require an arduino? they need to be programmed or they just act as a remote serial? \$\endgroup\$ – Matthew Berman Nov 17 '13 at 2:52
  • \$\begingroup\$ @MatthewBerman The modules do not require an Arduino, but they certainly require programming, it's minimal though. Once setup, you can poll them for samples quite easily. \$\endgroup\$ – Samuel Nov 17 '13 at 3:11
0
\$\begingroup\$

For a concrete example, I used a Xbee (Zigbee protocol version) to do this at my house. I have a heating element in a dog house, with monitored temperature, and a pool temperature monitor. These devices run in a deep sleep mode for about 55 seconds, take a measurement from any number of one-wire devices, power up the radio, and transmit their values. They then wait 1 second for any incoming commands before powering down the radio and going into sleep mode.

One runs on solar (been there almost a year) and one runs on A/C wall-wart.

Some (minor) details are on http://blog.flame.org, and live data (and graphs) are on http://www.flame.org/~explorer/pool/

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.