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

  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.