Skip to content

RF24SH – Smart Home

RF24 Smart Home Protocol.

Is a library to let you connect your Arduino (atmega), Teensy (arm) and Raspberry using wifi module NRF24L01+. This library uses Maniacbug RF24 Library and add a new layer to it allowing easy communication between many nodes (up to 250). This let user to create a network of any stuff and move then to Internet of Things if Master is connected to internet.



Provides an easy to use Network Library for NRF24L01+.


RF24 Library (Arduino) - librf24/arduino/ -
RF24 Library (Teensy) - librf24/teensy/ -
RF24 Library (RPi) - librf24/rpi/ -

How this library works:
The NRF24L01+ module can listen up to 6 channels. First channel can be 0x7878787878 for example all other channels must be in the same range for example 0xABABABABYY. More information about this you can get on NRF24L01+ datasheet. Channels:

Channel 0 is for protocol communication
Channel 1 is for parent communication
Channel 2-5 is for child communication

Master station is responsible to ID/Parent/Channels distribution (every network must have one)
Stations are peers connected to the Network

How to use it:

Setup your NRF24L01+ and make sure they are working with RF24 Library and their examples. (Guarantee everything is wired correctly)
Create a MASTER station
Create less then 250 regular stations
Just connect one STATION by time (1 minute to stabilish connection - This is a huge secure factor)

Basic example of communication:

Master ON listening on Protocol Channel
Child connects without an ID - SENDS WHO_LISTEN (Every station that listen to it, will send a message I_LISTEN)
Master sends I_LISTEN
Child keep track of 5 nodes that he can talk to. If station receives more then 5 I_LISTEN it will preserve the smaller level ones (So it keeps near MASTER station)
Child send ASK_CONFIG
Master reply with SET_CONFIG sending ID, PARENT, LEVEL and other informations
If a child can't communicate directly to MASTER who can listen to him will forward the ASK_CONFIG (and the SET_CONFIG later)

Source Code:


  1. [...] momento, estou trabalhando pesado no meu RF24SH Protocolo, o qual é um protocolo para o modulo wifi NRF24L01+ que provê um Protocolo para criação de uma [...]

  2. CJ Sneevliet CJ Sneevliet

    I just have short question, in the RF24 examples you can set the RF24L01 radio on SPI bus plus pins on other pins then 9 & 10.
    Been looking at all your libraries and sketches could not find where I could change this.
    As I also want to use a W5100 Ethernet shield , I will have to do this.

  3. Dolf Traanberg Dolf Traanberg

    Hi Matheus,
    I have loaded your system on 2 Arduino's and they are talking happy to each other.
    I'm a bit overwhelmed by the complexity of the system. For instance I am not able to find out how to send data between stations or stations and master. Could you give me a hint what functions I should call with their parameters?


  4. Dolf, there is an example inside the example folder and iirc, there is some messages being sent... The idea is really complex sadly.

    Take a look at example and let me know.

  5. Dolf Traanberg Dolf Traanberg

    Thanks Matheus for your response.
    I think you are referring to the examples:
    I loaded both packages, but failed to compile them both, giving me loads of errors.
    I'm afraid that this stuff is too complex for me to debug.
    Am I doing something wrong?

  6. Dolf Traanberg Dolf Traanberg

    solved it.
    Stupid me has misplaced the library.
    Going to test now.
    Thanks a lot.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.