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
[...] 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 [...]
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.
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
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.
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?
It shouldn't. Could you paste it?
solved it.
Stupid me has misplaced the library.
Going to test now.
Thanks a lot.