Network with NRF24L



This is a home wireless network in which the already known Andruino board is called Base, while the other Andruino boards are called Nodes. The Base is connected to the ethernet LAN, while the Nodes are connected together with the popular wireless modules NRF24L01+. The network is a pseudo mesh network, so each node can communicate with the previous and the next one incrementing the wireless coverage.

Build an Andruino NRF network

  1. Andruino Base (one board): this is the main Arduino board. It is connected to internet using a LAN cable and can have local sensors and or actuators. This is like the first Andruino board.
  2. Andruino Node (single or different boards):
    • this is new, it is a remote Andruino board used to collect sensors and or to activate HVAC loads. It can be configured as:
      1. Router
      2. Leaf
    • Each Node has to be configured according to it topological position using a specific topological ID: 01, 011, 111
00 (base) 00 (base) unique Base (00)
01 04 (router) Nodes 1 level
011 021 014 (router) Nodes 2 level
111 (leaf) 121 221 114 (router) Nodes 3 level
1221 (leaf) 1114 (leaf) 2114 (leaf) 3114 (leaf) 3 Nodes 4 level

I have imported and adapted into my project a network library used to create a hierarchical wireless network (

In this way, I can connect many Arduino boards and I can both read sensors, command  relays and others.

Network Elements:

  • Base: the Main Arduino connected to internet using the Ethernet Shield is the Base: Base “00”
  • Router: will be supplied by a DC adapter and can contains sensors and actuators: Node “04”
  • Leaf: can be supplied by a DC adapter or battery. It can contains sensors and actuators. The sleep power down mode is implemented to reduce the life cycle of battery: Node “3114”

AndruinoApp can:  512

  • Scan all the Nodes connected to the network
  • See how many sensors/outputs are available for each sensor
  • Modify the sleep mode for each Node
  • Read and Modify the output state of each Node
  • Read sensors of each nodes
  • Read the battery
  • Know is a sensor is alive or not
  • Read variables on the Nodes: not yet implemented (TBD)
  • Set trigger events/notifications for each sensor on a Node: not yet implemented (TBD)
  • Use the timers on the Nodes: not yet implemented (TBD)

Hardware requirements and connections:

Arduino Base (only one): Arduino Mega 2560 is mandatory (big Flash and RAM)

  • NRF24L01+:  —> I suggest to use the NRF24L+ with the power amplifier (PA) and SMA antenna
  • Pin connection: : see connection page

Arduino Node (one or more): any Arduino version

  • NRF24L01+:
    • Router: I suggest to use the NRF24L01+ with the power amplifier (PA) and SMA antenna
    • Leaf: I suggest to use the standard NRF24L01+
    • Pin connections: see connection page


Comments are closed.