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.

THIS IS UNDER DEVELOPMENT!

Goals:

Provides an easy to use Network Library for NRF24L01+.

Dependencies:

RF24 Library (Arduino) – librf24/arduino/ – https://github.com/maniacbug/RF24
RF24 Library (Teensy) – librf24/teensy/ –
RF24 Library (RPi) – librf24/rpi/ – https://github.com/gnulnulf/RF24

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:
https://github.com/x-warrior/RF24SH

7 Comments

  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

    Matheus,
    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?

    Thanks

  4. Dolf Traanberg Dolf Traanberg

    Thanks Matheus for your response.
    I think you are referring to the examples:
    arduino_master_mod_message
    and
    arduino_station_mod_message
    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?

  5. 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 *