NRF24 Arduino-Raspberry Pi (bidireccional)

Hola de nuevo! En este tutorial vamos a enviar datos mediante el módulo NRF24 entre Arduino y Raspberry Pi. Hace unos meses escribimos un tutorial para enviar datos con el módulo NRF24 entre Arduinos.

 

El material que vamos a necesitar es el siguiente:

  • Módulo NRF24L01
  • Arduino
  • Raspberry Pi (está probado con la Raspberry Pi B)
  • Cable HDMI
  • Jumpers

Librerias

La libreria que usaremos tanto en Arduino como en Raspberry Pi será la RF24. En el anterior tutorial se explicó como funciona en Arduino, así que ahora vamos a instalarla en la Raspberry Pi.

Lo primero de todo mirar si existe alguna actualización:

sudo apt-get update
sudo apt-get upgrade

 

Ahora habilitamos los GPIO de la Raspberry Pi

sudo apt-get install python-dev

#comentar las líneas con los módulos spi-bcm2708 y i2c-bcm2708
sudo vim /etc/modprobe.d/raspi-blacklist.conf

#aseguraros de tener el módulo i2c-dev en /etc/module
sudo vim /etc/modules

sudo adduser pi i2c
sudo apt-get update

#reiniciamos
sudo shutdown -r now

#obtenemos el software GPIO
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.3a.tar.gz

#descomprimimos e instalamos
tar -xzvf RPi.GPIO-0.5.3a.tar.gz
cd RPi.GPIO-0.5.3a/
sudo python setup.py install
sudo apt-get install i2c-tools

 

Llega el momento de descargarse la biblioteca RF24 para la Raspberry Pi.

#instalamos git
sudo apt-get install git

#vamos al directorio general
cd ~

#clonar las reposiciones RF24 del github de edoardoo
git clone https://github.com/edoardoo/RF24RaspberryCommunicator.git#recuperar la libreria RF24
cd ~/RF24RaspberryCommunicator/
git submodule init
git submodule update
#instalamos la libreria
cd ~/RF24RaspberryCommunicator/RF24
sudo make install

Montaje

Las conexiones tanto para Arduino como para Raspberry Pi se muestran en la siguiente tabla

Tabla conexiones NRF24L01
Tabla conexiones NRF24L01

 

El NRF24L01 se conecta a los puertos GPIO de la Raspberry Pi siguiendo el siguiente esquema

esquema NRF24L01 en Raspberry Pi

 

El Arduino, para este caso, tiene un montaje diferente que para la conexión entre Arduinos.esquema NRF24L01 en Arduino

Código

Una vez instalada la libreria tanto en Arduino como en Raspberry Pi vamos a realizar nuestro código.

Arduino

Para hacer la prueba de si funciona, abriremos GettingStarted.ino de la libreria RF24. A continuación os dejo el código por si no le encontrais:

 

Raspberry Pi

Abrimos un archivo de texto con extension *.cpp y ahí es donde escribiremos nuestro código. Después para compilar en el terminal teneis que abrir la carpeta donde está guardado el archivo y seguidamente escribir:

Supongamos que nuestro archivo se llama arduino-raspberry.cpp

g++ -lstdc++ -lrt -lrf24-bcm -lpthread arduino-raspberry.cpp -o arduino-raspberry

sudo ./arduino-raspberry

 

Aquí es donde se complica la cosa, dado que tenemos un código para enviar datos a Arduino y otro para recibir datos.

Se puede usar el archivo GettingStarted directamente pero hay que comentar algún apartado y cuando compilas hay que pulsar un 0 en el terminal si queremos enviar datos Arduino – Raspberry Pi; y un 1 si queremos Raspberry Pi – Arduino.

 

Enviar datos

 

Después de compilar, el resultado sería el siguiente:

Terminal de la Raspberry Pi
Terminal de la Raspberry Pi
Serial Terminal del Arduino
Serial Terminal del Arduino (hay que pulsar R para recibir datos)

 

Recibir datos

 

Después de compilar, el resultado es:

Serial Terminal del Arduino (hay que pulsar T para enviar datos)
Serial Terminal del Arduino (hay que pulsar T para enviar datos)
Terminal de la Raspberry Pi
Terminal de la Raspberry Pi

 

Todos estos tutoriales sobre NRF24L01 vienen de un proyecto, el cuál es un riego automatizado. Poco a poco os iremos poniendo más tutoriales hasta completar el proyecto.

Si os habeis quedado con ganas de más, el próximo tutorial será como enviar datos Arduino(1) – Raspberry Pi – Arduino (2) mediante radiofrecuencia.

Hasta la próxima!!

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Spread the love

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *