KOMMUNIKATION ZWISCHEN ARDUINO UND RASPBERRY PI MIT NRF24L01

1. Zusammenfassung:

  • Dieser Blog führt Sie durch den Prozess, wie ein Arduino und ein Raspberry Pi mit nRF24L01 Modul zu kommunizieren. Zu Beginn werden wir einige Grundlagen des Raspberry Pi lernen, dann werden wir einen Blick auf das Headless Raspberry Pi Setup werfen. Für die Implementierung werden wir zunächst die einfache Kommunikation von Arduino zu Arduino verstehen und dann Arduino zum Raspberry Pi lernen.
  • Ich habe viele Anleitungen gefunden, um dies im Internet zu erreichen, aber keiner von ihnen war vollständig oder funktionierte vollständig für mich. Hier werden wir Schritt für Schritt Anleitung dieses Prozesses verstehen. Und am Ende wird ein Arbeitsbeispiel für das gleiche zeigen

2. Benötigte Komponenten:

  • Ultraschall Sensor
  • 2 Arduino Uno
  • Raspberry Pi 3
  • 2 nRF24l01 sender und empfänger
  • Jump drähte
  • Arduino kabel
  • MINI USB 2.0 für Pi
  • Breadboard

3. Benötigte Software:

  • Raspbian für pi
  • Arduino IDE oder Visual Studio
  • Putty auf einem Remote-Computer für SSH
  • VNC Viewer auf einem Remote-Computer

4. Einführung in Raspberry Pi 3:

4.1. Komponenten Spezifikationen:

  • 1.4 GHz 64-bit quad-core ARM Cortex-A53, 1 GB RAM
  • 2,4/5 GHz dual-band 802.11ac Wireless LAN, 10/100/100 0 Mbps Ethernet Bluetooth 4,2
  • 4 USB ports, Volle HDMI port, Kombiniert 3.5mm audio jack und composite video port, 40 GPIO pins
  • Micro SD card slot, Video Core IV 3D grafiken core, Kamera interface (CSI), Display interface (DSI)

4.2 Pinbelegung für Raspberry Pi:

4.3. Kopflose Raspberry Pi-Einrichtung:

  • Sagen wir, ich habe gerade einen Raspberry Pi gekauft und möchte herausfinden, wie es funktioniert. Aber alles, was ich habe, ist mein Laptop, der Pi, eine Micro-SD-Karte und mein Wi-Fi-Netzwerk. Wie verbinde und steuere ich den Pi?

1) Raspbian herunterladen:

  • Ihr Pi benötigt ein Betriebssystem. Laden Sie Raspbian von herunter Raspberrypi.org Downloadbereich:
  • https://www.raspberrypi.org/downloads/raspbian/

2) Herunterladen SD Memory Card Formatter:

  • Es wird verwendet, um die SD-Karte zu formatieren, da die SD-Karte vor dem heruntergeladenen Flash-Image leer sein muss. Sie können es herunterladen von https://www.sdcard.org/downloads/formatter/eula_windows/

3) Flashen Sie es auf eine SD-Karte:

  • Sie müssen dieses heruntergeladene Bild auf die Micro SD-Karte flashen. Angenommen, Ihr Laptop verfügt über einen SD-Kartensteckplatz oder einen Micro-SD-Kartenleser, benötigen Sie eine Flash-Software wie Etcher. Gehen Sie voran und laden Sie von https://etcher.io/

4) WLAN konfigurieren:

  • Es ist einfacher, zwei Geräte miteinander kommunizieren zu lassen, wenn sie sich im selben Netzwerk befinden. Ein Ethernet-Kabel kann das Netzwerk Ihres Laptops problemlos für den Pi verfügbar machen. Aber wir haben keins. Wir fügen der SD-Karte eine Datei hinzu, damit der Pi mit einem vorkonfigurierten WLAN gestartet werden kann.
  • Die SD-Karte wird als zwei Volumes boot und rootfs bereitgestellt . Öffnen Sie das Startvolume und erstellen Sie eine Datei mit dem Namen wpa_supplicant.conf beim Booten des RPi wird diese Datei in das Verzeichnis /etc/wpa_supplicant in der Partition /rootfs kopiert. Die kopierte Datei teilt dem Pi die WLAN-Setup-Informationen mit. Wenn Sie also bereits WLAN auf dem Pi konfiguriert haben, wird dies überschrieben.
  • Ein typischer wpa_supplicant.conf-Datei ist wie folgt:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US network={ ssid=""your_SSID"" psk=""your_PSK"" key_mgmt=WPA-PSK}

HINWEIS: Ihre SSID ist der Name Ihres WLANs. Und psk ist das Passwort des WI-FI.

5) Aktivieren Sie SSH

  • Wir werden später über eine gesicherte Shell (SSH) auf den Pi zugreifen. Um SSH zu aktivieren, erstellen Sie eine Datei mit dem Namen ssh in der Startpartition. Wenn Sie unter Linux arbeiten, verwenden Sie dazu den Befehl touch.

6) IP-Adresse von Pi ermitteln:

  • Bevor Sie Ihren Raspberry Pi einschalten, müssen wir die vorhandenen Geräte herausfinden, die mit dem Netzwerk verbunden sind. Stellen Sie sicher, dass Ihr Laptop mit demselben WLAN-Netzwerk verbunden ist wie das, das Sie oben auf dem Pi konfiguriert haben.
  • Laden Sie den Advanced IP Scanner herunter, um die IP unseres Raspberry Pi zu scannen. Sie können es hier herunterladen https://www.advanced-ip-scanner.com/

7) SSH in Ihren Pi:

  • Um eine gesicherte Shell-Verbindung unter Linux herzustellen, können wir den Befehl ssh verwenden. Wenn Sie unter Windows arbeiten, laden Sie Putty von https://www.putty.org/

Standard-Anmeldeinformationen sind:

username: pipassword: raspberry

8) Fernzugriff auf Pi:

  • Manchmal fühlt es sich nicht richtig an, wenn wir die Maus nicht benutzen können. Dazu müssen wir uns den Raspbian-Desktop ansehen.
  • Wir müssen VNC (Virtual Network Connection) einrichten, um Pi grafisch zu sehen und zu steuern. Lass uns das machen.
  • Um auf den Remote-Desktop zugreifen zu können, benötigen Sie VNC-viewer (Client) für Ihren Laptop. Glücklicherweise ist RealVNC für viele Betriebssysteme verfügbar, wählen Sie eines für Ihr Betriebssystem aus https://www.realvnc.com/en/connect/download/viewer/

9) Befehle für vncserver:

10) Öffnen Sie nun VNC Viewer auf Ihrem Remotecomputer:

5. Implementierung und Arbeiten:

5.1. Drahtlose Kommunikation von Arduino zu Arduino mit nRF24L01:

  • In diesem Artikel erfahren Sie, wie Sie mit dem NRF24L01 drahtlose Kommunikation zwischen zwei Arduino-Boards herstellen. Und messen abstand mit ultraschall sensor und übertragen es zu einem anderen Arduino mit transceiver modul.

Verdrahtung Anweisungen:

Zu draht ihre NRF24L01 + drahtlose Sender zu ihre Arduino, verbinden die folgenden pins:

  • Verbinden Sie den VCC-Pin mit 3.3 Volt
  • Verbinden die GND pin zu boden (GND)
  • Verbinden die CE pin zu Arduino 9
  • Verbinden die CSN pin zu Arduino 10
  • Verbinden die SCK pin zu Arduino 13
  • Verbinden die MOSI pin zu Arduino 11
  • Verbinden die MISO pin zu Arduino 12

Um Ihren Ultraschallsensor mit Ihrem Arduino zu verbinden, verbinden Sie die folgenden Pins:

  • Verbinden die VCC pin zu Arduino 5 Volt
  • Verbinden die GND pin zu boden (GND)
  • Verbinden die Trig pin zu Arduino 4
  • Verbinden die Echo pin zu Arduino 3

Schematische darstellung für verdrahtung von Arduino Uno mit ultraschall sensor und NRF24L01

Zu draht ihre NRF24L01 + drahtlose sender zu ihre Arduino, verbinden die folgenden pins:

  • Verbinden Sie den VCC-Pin mit 3.3 Volt
  • Verbinden die GND pin zu boden (GND)
  • Verbinden die CE pin zu Arduino 9
  • Verbinden die CSN pin zu Arduino 10
  • Verbinden die SCK pin zu Arduino 13
  • Verbinden die MOSI pin zu Arduino 11
  • Verbinden die MISO pin zu Arduino 12

Schaltplan für verdrahtung von Arduino Uno NRF24L01

HINWEIS: Das RF24-Modul ist obligatorisch, damit der Code ausgeführt werden kann, sodass Sie die Bibliothek entsprechend hinzufügen können

  • Starten Sie die Arduino IDE und fügen Sie dann die heruntergeladene Bibliothek von hier hinzu :

5.2. Code:

Absender Seite code:

Empfänger Seite code:

Senden der Daten

Empfang der Daten:

6. Drahtlose kommunikation von Arduino zu Raspberry Pi mit nRF24L01:

6.1: Installation von RF24 Modul auf Raspberry Pi:

  • Es ist der wichtigste und wichtigste Schritt für jede Kommunikation zwischen Arduino und Raspberry Pi, da wir die RF24-Bibliothek in Arduino für die Kommunikation verwendet haben, sodass dieselbe Bibliothek auf dem Pi benötigt wird.
  • Weiter sind die Schritte, die die Installation der Bibliothek beinhalten. Ich habe fast eine Woche gebraucht, um es zu installieren, da keine klare Vorstellung davon vorhanden ist.

=> Weg zu gehen:

1. Melden Sie sich mit Putty bei Raspberry Pi an.

2. Gehen Sie zum VNC-Server für die GUI.

3. Im Terminal-Typ:

sudo raspi-config

Aktivieren Sie SPI über die Schnittstellenoptionen in der Konfiguration

4. Starten Sie den Pi neu. Geben Sie im Terminal Folgendes ein:

sudo reboot

5. Im Terminal-Typ:

sudo apt-get update

6. Laden Sie die install.sh datei von http://tmrh20.github.io/RF24Installer/RPi/install.sh oder führen Sie dies auf dem Terminal aus:

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

7. Mach es ausführbar:

chmod +x install.sh

8. Führen Sie es aus und wählen Sie Ihre Optionen:

9. Führen Sie ein Beispiel aus einer der Bibliotheken aus:

cd rf24libs/RF24/examples_linux make sudo ./gettingstarted

Führen Sie die folgenden Befehle aus, um das Programm auszuführen.

10. Wenn wir Python-Programme für denselben Zweck ausführen möchten, können wir Folgendes tun:

Ausführen des Beispiels Bearbeiten Sie die pingpair_dyn.py beispiel zum Konfigurieren der entsprechenden Pins gemäß der obigen Dokumentation:

nano pingpair_dyn.py
  • Konfigurieren Sie ein anderes Gerät, Arduino oder RPi mit dem pingpair_dyn Beispiel
  • Führen Sie das Beispiel aus
sudo python pingpair_dyn.py

6.2. Drahtlose Kommunikation von Arduino zu Arduino mit nRF24L01:

  • In diesem Artikel erfahren Sie, wie Sie mit dem NRF24L01 drahtlose Kommunikation zwischen Arduino und Raspberry Pi herstellen. Und messen abstand mit einem ultraschall sensor mit hilfe von Arduino Uno und übertragen es zu Raspberry Pi und Daten empfangen wird.

Verdrahtung Anweisungen:

Um Ihren NRF24L01 + Wireless Sender mit Ihrem Arduino zu verbinden, verbinden Sie die folgenden Pins:

  • Verbinden die VCC pin zu 3,3 Volt
  • Verbinden die GND pin zu boden (GND)
  • Verbinden die CSN pin zu Arduino 10
  • Verbinden die CE pin zu Arduino 9
  • Verbinden die SCK pin zu Arduino 13
  • Verbinden die MISO pin zu Arduino 12
  • Verbinden die MOSI pin zu Arduino 11

Um Ihren Ultraschallsensor mit Ihrem Arduino zu verbinden, verbinden Sie die folgenden Pins:

  • Verbinden die VCC pin zu Arduino 5 Volt
  • Verbinden die GND pin zu boden (GND)
  • Verbinden die Trig pin zu Arduino 4
  • Verbinden die Echo pin zu Arduino 3

Schematische Darstellung:

Schaltplan für verdrahtung von Arduino Uno mit ultraschall sensor und NRF24L01

Zu draht ihre NRF24L01 + Drahtlose Empfänger zu ihre Raspberry Pi, verbinden die folgenden pins:

  • Verbinden Sie den VCC-Pin mit 3.3 Volt (Pin 1)
  • Verbinden die GND pin zu boden (GND) (Pin 6)
  • Verbinden die CE pin zu Raspberry GPIO 22
  • Verbinden die CSN pin zu Raspberry GPIO 8
  • Verbinden die SCK pin zu Raspberry GPIO 11
  • Verbinden die MOSI pin zu Raspberry GPIO 10
  • Verbinden die MISO pin zu Raspberry GPIO 09

Schematische Darstellung:

Schaltplan für verdrahtung von Raspberry Pi und NRF24L01

6.3. Code:

Absender Seite Code:

Empfänger Seite Code:

  • Es ist nicht zwingend erforderlich, diesen Code zu verwenden, da er von mir gemäß meinen Anforderungen optimiert wird.

Um die ordnungsgemäße Funktion Ihrer Verbindung und Ihres Codes zu überprüfen, können Sie die in der Bibliothek vorhandenen Beispiele wie pingpair_dyn .ino auf Ihrem Arduino und pingpair_dyn.py auf Raspberry Pi

  • Der Ausschnitt meiner laufenden Kommunikation:

Fazit: Es wird immer Spaß machen, mit den IoT-Geräten zu experimentieren und zu spielen, z. B. etwas über das Headless Raspberry Pi-Setup, Arduino und Raspberry Pi zu lernen, indem sie miteinander kommunizieren und Daten senden und die Fehler und Herausforderungen überwinden, mit denen ich bei der Installation des RF24-Moduls konfrontiert war. Der Zweck dieses Tutorials ist es, Ihnen einen schrittweisen Prozess zu bieten und zu hoffen, dass es einfach war, ihm zu folgen und zu lernen. Danke fürs Lesen! Anregungen und Korrekturen sind jederzeit willkommen.



+