Com dois desses chips é possível efetuar comunicações entre dois dispositivos eletrónicos, neste caso um Raspberry Pi 2 B e um arduino uno.
A primeira questão são so drivers necessários para ambas as plataformas. Existem diversas implementações, aqui será utilizada a RF24, fornecida por TMRh20 [2].
Ligações
nRF24L01+ possui oito pinos mas apenas se utilizam os primeiros 7.pin | nRF24L01+ | arduino UNO | RPi pin | RPi GPIO |
---|---|---|---|---|
1 | GND | GND | 25 | GND |
2 | VCC | 3.3V | 17 | 3v3 |
3 | CE | D7 | 15 | GPIO22 |
4 | CSN | D8 | 24 | GPIO8 |
5 | SCKL | D13 | 23 | SCKL |
6 | MOSI | D11 | 19 | MOSI |
7 | MISO | D12 | 21 | MISO |
É necessário efetuar as ligações de um nRF24L01+ ao arduino UNO e de outro nRF24L01+ ao Raspberry Pi.
Instalação do Software
arduinoAbrir o arduino IDE e ativar a biblioteca RF24 (testado em 1.6.5):
Sketch > Include Library > Manage Libraries...
Pesquisar por RF24 e clicar em Install
Obter o exemplo [3] fazer o upload para o arduino e abrir a consola CTRL+SHIFT+M, introduzir T para começar a enviar pings.
Raspberry Pi
No Raspbian garantir que o sistema está atualizado:
sudo apt-get update
sudo apt-get upgrade
Ativar o SPI
sudo raspi-config
Advanced > enable the SPI kernel module
Instalar as bibliotecas RF24 do TMRH20 [4]:
wget http://tmrh20.github.io/RF24Installer/RPi/install.sh
chmod +x install.sh
./install.sh
Depois resta entrar no diretório de exemplos para o RPi e experimentar:
cd rf24libs/RF24/examples_RPi
make
sudo ./gettingstarted
Depois é necessário pressionr 0 (zero) para receber os pings do arduino.
Referências
[1] - http://www.aliexpress.com/w/wholesale-nrf24l01.html[2] - http://tmrh20.github.io/RF24/index.html
[3] - http://tmrh20.github.io/RF24/GettingStarted_8ino-example.html
[4] - http://tmrh20.github.io/RF24/RPi.html
[5] - Projeto com comunicação entre o Raspberry Pi e o arduino (em inglês): https://www.coconauts.net/blog/2014/09/03/send-readings-from-arduino-to-raspberry-via-radio/
[6] - Referências para o arduino e o nRF24L01+ (em inglês): http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01
[7] - Projeto mais antigo para comunicação entre o Raspberry Pi e o arduino (em inglês): http://blog.the-jedi.co.uk/2013/10/07/nrf24l01-and-raspberry-pi/