COMUNICACIÓN ENTRE ARDUINO Y RASPBERRY PI UTILIZANDO NRF24L01

1. Resumen:

  • Este blog lo guía a través del proceso de cómo comunicar un Arduino y una Raspberry Pi con el módulo nRF24L01. Para empezar, aprenderemos algunos conceptos básicos de Raspberry Pi y luego echaremos un vistazo a la configuración de Raspberry Pi sin cabeza. Para la Implementación en primer lugar, entenderemos la comunicación simple de Arduino a Arduino y luego aprenderemos Arduino a raspberry pi.
  • Encontré muchas guías para lograr esto en Internet, pero ninguna de ellas estaba completa o funcionaba completamente para mí. Aquí entenderemos la guía paso a paso de este proceso. Y al final se mostrará un ejemplo de trabajo para el mismo

2. Los Componentes necesarios:

  • Sensor de Ultrasonidos
  • 2 Arduino Uno
  • Raspberry Pi 3
  • 2 nRF24l01 transmisor y el receptor
  • Salto de cables
  • Arduino cable
  • MINI USB 2.0 para Pi
  • Breadboard

3. Software Necesario:

  • Raspbian para pi
  • Arduino IDE o Visual Studio
  • Putty en un ordenador remoto para SSH
  • Visor VNC en un ordenador remoto

4. Introducción a Raspberry Pi 3:

4.1. Especificaciones de los Componentes:

  • 1.4 ARM Cortex-A53 de núcleo cuádruple de 64 bits GHz, 1 GB de RAM
  • LAN inalámbrica de doble banda 802.11 ac de 2,4/5 GHz, Ethernet de 10/100 / 1000 Mbps Bluetooth 4.2
  • 4 puertos USB, puerto HDMI completo, Combinado 3.conector de audio de 5 mm y puerto de video compuesto, 40 pines GPIO
  • Ranura para tarjeta Micro SD, Núcleo de video IV Núcleo de gráficos 3D, Interfaz de cámara (CSI), Interfaz de pantalla (DSI)

4.2 Pinout de Raspberry Pi:

4.3. Configuración de Raspberry Pi sin Cabeza:

  • Acabo de comprar una raspberry pi y quiero ver cómo funciona. Pero todo lo que tengo es mi portátil, la Pi, una tarjeta micro SD y mi red Wi-Fi. ¿Cómo puedo conectar y controlar la Pi?

1) Descargar Raspbian:

  • Su Pi necesita un sistema operativo. Descargar Raspbian desde Raspberrypi.org sección de descargas:
  • https://www.raspberrypi.org/downloads/raspbian/

2) Descargar Formateador de Tarjetas de Memoria SD:

  • Se utiliza para formatear la tarjeta SD, ya que es necesario que la tarjeta SD esté vacía antes de la imagen parpadeante que descargó. Se puede descargar desde https://www.sdcard.org/downloads/formatter/eula_windows/

3) Flash en una tarjeta SD:

  • Necesita flashear esta imagen descargada en la tarjeta micro SD. Suponiendo que su computadora portátil tenga una ranura para tarjeta SD o un lector de tarjetas micro Sd, necesita un software parpadeante como etcher. Siga adelante y descargue desde https://etcher.io/

4) Configurar Wi-Fi:

  • Es más fácil hacer que dos dispositivos se comuniquen entre sí si están en la misma red. Un cable ethernet puede hacer que la red de su computadora portátil esté disponible para el Pi. Pero no tenemos. Por lo tanto, vamos a agregar un archivo a la tarjeta SD para que la Pi arranque con un wifi preconfigurado.
  • La tarjeta SD se monta como dos volúmenes de arranque y rootfs . Abra el volumen de arranque y cree un archivo llamado wpa_supplicant.conf al arrancar el RPi, este archivo se copiará al directorio/etc /wpa_supplicant en la partición / rootfs. El archivo copiado le indica al Pi la información de configuración de WIFI. Esto sobrescribiría cualquier configuración de WIFI existente, por lo que si ya había configurado WIFI en la pi, se sobrescribirá.
  • Un wpa_supplicant típico.el archivo de configuración es el siguiente:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US network={ ssid=""your_SSID"" psk=""your_PSK"" key_mgmt=WPA-PSK}

NOTA: Tu SSID es el nombre de tu WIFI. Y psk es la contraseña del WI-FI.

5) Habilitar SSH

  • Más tarde accederemos a la Pi usando un shell seguro (SSH), SSH está deshabilitado por defecto en Raspbian. Para habilitar SSH, cree un archivo llamado ssh en la partición de arranque. Si está en Linux, use el comando táctil para hacerlo.

6) Encontrar Pi de la dirección Ip:

  • Antes de encender su raspberry pi, necesitamos averiguar los dispositivos existentes conectados a la red. Asegúrese de que su computadora portátil esté conectada a la misma red WIFI que la que configuró en pi anteriormente.
  • Descargue el Escáner avanzado de IP para escanear la IP de nuestra raspberry pi. Se puede descargar desde aquí https://www.advanced-ip-scanner.com/

7) SSH en tu Pi:

  • Para crear un seguro de shell de conexión en Linux podemos usar el comando ssh. Si estás en windows, intente descargar la Masilla de https://www.putty.org/

las credenciales Predeterminadas son:

username: pipassword: raspberry

8) Acceso Pi de forma remota:

  • a Veces no se siente bien si no podemos usar el ratón. Para ello, tenemos que buscar en el escritorio Raspbian.
  • Necesitamos configurar VNC (Conexión de red Virtual) para ver y controlar Pi gráficamente. Hagámoslo.
  • Para acceder al escritorio remoto, necesita VNC-viewer (cliente) para su computadora portátil. Afortunadamente, RealVNC está disponible para una gran cantidad de sistemas operativos, elegir uno para su sistema operativo a partir de https://www.realvnc.com/en/connect/download/viewer/

9) Comandos para vncserver:

10) Ahora abra el Visor de VNC en el equipo remoto:

5. Ejecución y funcionamiento:

5.1. Comunicación inalámbrica de Arduino a Arduino con nRF24L01:

  • En esto, aprenderemos cómo hacer comunicación inalámbrica entre dos placas Arduino utilizando el NRF24L01. Y mida la distancia con un sensor ultrasónico y transmítala a otro Arduino con módulo transceptor.

Instrucciones de cableado:

Para conectar su remitente inalámbrico NRF24L01+ a su Arduino, conecte los siguientes pines:

  • Conecte el pin VCC a 3.3 Voltios
  • Conecte el pin GND a tierra (GND)
  • Conecte el pin CE a Arduino 9
  • Conecte el pin CSN a Arduino 10
  • Conecte el pin SCK a Arduino 13
  • Conecte el pin MOSI a Arduino 11
  • Pin de MISO a Arduino 12

Para conectar el sensor ultrasónico a su Arduino, conecte los siguientes pines:

  • Conecte el pin VCC para Arduino 5Volts
  • Conecte el pin GND a tierra (GND)
  • Conecte el Trig pin de Arduino 4
  • Conecte el Eco pin de Arduino 3

Diagrama esquemático para el cableado de Arduino Uno con sensor de ultrasonidos y NRF24L01

en el hilo De su NRF24L01+ transmisor inalámbrico para tu Arduino, conectar los siguientes pines:

  • Conecte el pin VCC a 3.3 Voltios
  • Conecte el pin GND a tierra (GND)
  • Conecte el pin CE a Arduino 9
  • Conecte el pin CSN a Arduino 10
  • Conecte el pin SCK a Arduino 13
  • Conecte el pin MOSI a Arduino 11
  • Pin de MISO a Arduino 12

Diagrama esquemático para el cableado de Arduino Uno NRF24L01

NOTA: El módulo RF24 es obligatorio para que el código se ejecute, por lo que puede agregar la biblioteca en consecuencia

  • Iniciar Arduino IDE y luego agregar la biblioteca descargada desde Aquí :

5.2. Código:

Remitente de código del Lado del:

Receptor de código del Lado del:

el Envío de los Datos

la Recepción de los datos:

6. Comunicación inalámbrica de Arduino a Raspberry Pi con nRF24L01:

6.1: Instalación del módulo RF24 en Raspberry Pi:

  • Es el paso más importante y principal para que cualquier comunicación funcione entre Arduino y Raspberry Pi, ya que hemos utilizado la biblioteca RF24 en Arduino para la comunicación, por lo que se necesita la misma biblioteca en Pi.
  • Además están los pasos a los que implica la instalación de la Biblioteca. Me llevó casi una semana instalarlo, ya que no hay una idea clara al respecto.

=> Camino a seguir:

1. Inicie sesión en Raspberry Pi con Masilla.

2. Vaya al servidor VNC para la interfaz gráfica de usuario.

3. En el tipo de terminal:

sudo raspi-config

Gire en el SPI de la Interconexión de las opciones de config

4. Reinicie la Pi. En el terminal, escriba:

sudo reboot

5. En el tipo de terminal:

sudo apt-get update

6. Descargar el install.sh archivo desde http://tmrh20.github.io/RF24Installer/RPi/install.sh o Ejecute esto en la terminal:

wget http://tmrh20.github.io/RF24Installer/RPi/install.sh

7. Hacerlo ejecutable:

chmod +x install.sh

8. Ejecutarlo y elegir sus opciones:

9. Ejecutar un ejemplo desde una de las bibliotecas:

cd rf24libs/RF24/examples_linux make sudo ./gettingstarted

Ejecute los siguientes comandos para ejecutar el programa.

10. Además, si queremos ejecutar Programas Python para el mismo propósito, podemos hacer esto:

Ejecutando el ejemplo Editar el pingpair_dyn.py ejemplo para configurar los pines adecuados según la documentación anterior:

nano pingpair_dyn.py
  • Configurar otro dispositivo, Arduino o RPi con el pingpair_dyn ejemplo
  • Ejecutar el ejemplo
sudo python pingpair_dyn.py

6.2. Comunicación inalámbrica de Arduino a Arduino con nRF24L01:

  • En esto, aprenderemos cómo hacer comunicación inalámbrica entre Arduino y Raspberry Pi usando el NRF24L01. Y mida la distancia con un sensor ultrasónico con la ayuda de Arduino Uno y transmítala a Raspberry Pi y se reciben los datos.

Instrucciones De Cableado:

Para conectar su remitente inalámbrico NRF24L01+ a su Arduino, conecte los siguientes pines:

  • Conecte el pin VCC a 3,3 Voltios
  • Conecte el pin GND a tierra (GND)
  • Conecte el pin CSN a Arduino 10
  • Conecte el pin CE a Arduino 9
  • Conecte el pin SCK a Arduino 13
  • Conecte el pin MISO a Arduino 12
  • Conecte el pin MOSI a Arduino 11

Para conectar el sensor ultrasónico a su Arduino, conecte los siguientes pines:

  • Conecte el pin VCC para Arduino 5Volts
  • Conecte el pin GND a tierra (GND)
  • Conecte el Trig pin de Arduino 4
  • Conecte el Eco pin de Arduino 3

Diagrama Esquemático:

Diagrama Esquemático para el cableado de Arduino Uno con sensor de ultrasonidos y NRF24L01

en el hilo De su NRF24L01+ Receptor Inalámbrico para tu Raspberry Pi, conectar los siguientes pines:

  • Conecte el pin VCC a 3.3 Voltios (Pin 1)
  • Conecte el pin GND a tierra (GND) (Pin 6)
  • Conecte el pin CE a Raspberry GPIO 22
  • Conecte el pin CSN a Raspberry GPIO 8
  • Conecte el pin SCK a Raspberry GPIO 11
  • Conecte el pin MOSI a Raspberry GPIO 10
  • Conecte el pin de MISO a Raspberry GPIO 09

Diagrama Esquemático:

Diagrama esquemático para el cableado de Raspberry Pi y NRF24L01

6.3. Código:

Código del lado del remitente:

Código del Lado del Receptor:

  • No es obligatorio usar este código, ya que lo ajusté según mis requisitos.

Para verificar el correcto funcionamiento de su conexión y código, puede ejecutar los ejemplos presentes en la biblioteca como pingpair_dyn.ino de su Arduino y pingpair_dyn.py en Raspberry Pi

  • El fragmento de mi carrera de comunicación:

Conclusión: Siempre será divertido experimentar y jugar con los dispositivos IoT, como aprender sobre la configuración de Raspberry Pi sin cabeza, Arduino y Raspberry pi haciéndolos comunicarse entre sí y enviar datos, y superar los errores y desafíos como los que enfrenté al instalar el módulo RF24. El propósito de este tutorial es servirle con un proceso paso a paso y esperar que también sea fácil de seguir y aprender. Gracias por leer! Sugerencias y correcciones son siempre bienvenidas.



+