Go Down

Topic: Build a Wireless sensor mesh network (Read 4071 times) previous topic - next topic

puller

Apr 05, 2011, 09:49 pm Last Edit: Apr 05, 2011, 09:53 pm by puller Reason: 1
Hi everybody,
I'd like to use the arduino UNO board along with the XBee shield and some sensors to create a mote (similar to the squidbee module I think).
Once the motes are created, is there some support to automatically build a WSN in a mesh topology, with a sink module operating as a gateway and data collector? Have the routing protocols already been implemented?
Thank you very much.

puller

After some hours spent analyzing the arduino boards, its features, the xbee modules by digi, zigbee protocol etc., I realized the support to build a WSN is fully provided by the XBee modules, wheter using ZigBee or DigiMesh protocols.
I am totally new to the Arduino world!
Thanks.

Jack Christensen

Yep, it all just sort of works.  I haven't used DigiMesh but the ZigBee modules work great with very little trouble.  Just configure them and they do their thing and you just have to worry about what to send and what to do with it on the other end!  Use API mode (AP=2); this library works great: http://code.google.com/p/xbee-arduino/
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

puller

Thank you for your reply.
Is an "Arduino mote" suitable for the coordinator role as well (I am uncertain about the sram available amount)?

Jack Christensen


Is an "Arduino mote" suitable for the coordinator role as well (I am uncertain about the sram available amount)?

Not sure I'm tracking with your question, but I have one Arduino connected to the XBee network controller, and the rest of the nodes are Arduinos (or clones) with XBee routers.  (Haven't had a real need to use end devices, yet.)  Of course YMMV depending on application.  My controller node also connects to the internet via an Ethernet shield, haven't had SRAM issues, at least that I am aware of  ;)
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

puller


My controller node also connects to the internet via an Ethernet shield, haven't had SRAM issues, at least that I am aware of  ;)


Yes, that was exactly what I wanted to know :)!
Many thanks.

arduinokid

Hello guys,I was searching materials about xbee mesh networking.I have a small doubt hope you guys would show me some directions.
I am also trying to build a xbee mesh.I have two xbee series 2 as remote sensors.I am using  xbee-1 temperature sensor and xbee-2 as switch device.Both Xbees are in API mode and I am reading the temperature value and status of switch(digital pin) on the base station xbee which is my co-ordinator.Things work fine and I can read all xbee packet clearly and nicely.
Now I want to extend my project and throw some routers in between just to increase the range.I need help in configuring these routers.Can I just put these routers in same PAN ID and DH=0 DL=0(for destination co-ordinator) and will they start routing  ?How would I know which router is transmitting which remote device.How do I need to configure these routers?
Thanks in advance

PaulS

Quote
Can I just put these routers in same PAN ID and DH=0 DL=0(for destination co-ordinator) and will they start routing  ?

Yes, and they should.

Quote
How would I know which router is transmitting which remote device.

The beauty of a mesh network is that you need not be concerned about this. So, why are you?


arduinokid

Ok.I tried and it didnt work.My set up is as follows:
Zigbee A: Zigbee End device API
               DH:0
               DL:0
               This is transmitting analog values read by the DIOo Pin
Zigbee B: Zigbee Router API
               DH:0
               DL:0
Zigbee C: Zigbee Co-ordinator API
They all have same PAN ID and same channel.
Without Zigbee B it works fine,i can see all the API frames and print it on serial monitor on the co-ordinator side.
With this Router set -up the router is not doing anything.It neither receive anything or do anything.
What am I doing wrong here.I really want to build a tree network and get into mesh networking.

robtillaart


Do you have the book: - http://www.amazon.com/Building-Wireless-Sensor-Networks-Processing/dp/0596807732 - imho worth the money....
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Jack Christensen

@robtillaart++; I'd recommend that book as well.

Regarding it not working, how do you know?  From the description it sounds like the information is getting from A to C just fine.  The network will dynamically decide whether to use the router B, but it will favor the direct route A -> C.  Even if packets are routed through B, there will be no indication of this on B's serial port.  The use of B could be forced by locating A and C out of range of each other, but both within range of B.

Packet routes can also be specified via the API, but normally this is to be avoided as it will add network overhead and reduce reliability.  That's the whole point of mesh networking, let the network decide what's the most efficient route.

MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

arduinokid

Thankyou all for your help.I am successfully created a co-ordinator,router and two end devices zigbee network.Two end devices talk to each other thourgh the router.I forced the use of router by putting the co-ordinator out of range of two end devices but router in the range co-ordinator and end devices.
I want to grow my network after getting more zigbees.I have one concern here.Lets say I have a network like below:

                                                                        Zigbee A(co-ordinator)

          Zigbee B (router)                Zigbee C (router)                Zigbee D (router)                         Zigbee E(router)

                               Zigbee F (End Device)                                                     Zigbee G (End Device)

And I want to send data from F to G-two end devices.Lets assume co-ordinator and end devices are out of range.
All routers are in range of End Devices.
Which path will be the data transmitted,which router will take the lead?
As Jack mentioned, there is no indication on any router's serial port (I see no RSSI LED blinking on router and co-ordinator during my experiment),so is there any way I can know when a router routers a data or atleast print on a file or serial port or something.Is it even possible?
Thank you in advance.

Jack Christensen

Indeed the RSSI LED will not illuminate when a node handles pass-through traffic.  Not sure there is such a concept as a "lead" router.  While each end device must form a parent-child relationship with a router or the coordinator, it is possible for this to change as the network operates.  This is a good thing, part of the beauty of mesh networking.  I'm not sure it's possible to discover the entire route that a packet took after the fact.  There is a concept called Source Routing, see the product manual, but I'd avoid it unless I had a good reason to use it, as there are always compromises.

If it were me, I wouldn't be too concerned with all these details, and unless the network wasn't performing satisfactorily, I'd just let it do it's thing.  XBees continually monitor the quality of the links with neighboring devices, this is used to help determine the best routes.
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

Go Up