KOMMUNIKATION MELLAN ARDUINO OCH RASPBERRY PI MED NRF24L01

1. Sammanfattning:

  • den här bloggen går igenom processen för hur man kommunicerar en Arduino och en Raspberry Pi med NRF24L01 modul. Till att börja med kommer vi att lära oss några grunderna i Raspberry Pi då kommer vi att ta en titt på Headless Raspberry Pi setup. För genomförandet först kommer vi att förstå den enkla kommunikationen av Arduino till Arduino då lär vi oss Arduino till raspberry pi.
  • jag hittade många guider för att uppnå detta på Internet, men ingen av dem var komplett eller helt fungerade för mig. Här kommer vi att förstå steg för steg guide för denna process. Och i slutet kommer att visa ett fungerande exempel för samma

2. Nödvändiga komponenter:

  • ultraljudssensor
  • 2 Arduino Uno
  • Raspberry Pi 3
  • 2 NRF24L01 sändare och mottagare
  • hoppa ledningar
  • Arduino kabel
  • MINI USB 2.0 för Pi
  • Breadboard

3. Programvara Som Krävs:

  • Raspbian för pi
  • Arduino IDE eller Visual Studio
  • Putty på en fjärrdator för SSH
  • VNC viewer på en fjärrdator

4. Introduktion till Raspberry Pi 3:

4.1. Komponenter SPECIFIKATIONER:

  • 1.4 GHz 64-bitars quad-core ARM Cortex-A53, 1GB RAM
  • 2.4/5GHz dual-band 802.11 ac trådlöst LAN, 10/100 / 1000Mbps Ethernet Bluetooth 4.2
  • 4 USB-portar, full HDMI-port, kombinerad 3.5 mm ljuduttag och kompositvideoport, 40 GPIO-stift
  • micro SD-kortplats, Videokärna IV 3D-grafikkärna, kameragränssnitt (CSI), displaygränssnitt (DSI)

4.2 Raspberry Pi Pinout:

4.3. Headless Raspberry Pi Setup:

  • säg, Jag har precis köpt en raspberry pi och vill kolla hur det fungerar. Men allt jag har är min bärbara dator, Pi, ett micro SD-kort och mitt Wi-Fi-nätverk. Hur ansluter jag och styr Pi?

1) Ladda Ner Raspbian:

  • din Pi behöver ett operativsystem. Ladda ner Raspbian från Raspberrypi.org nedladdningssektionen:
  • https://www.raspberrypi.org/downloads/raspbian/

2) Ladda ner SD-minneskort Formaterare:

  • det används för att formatera SD-kortet eftersom det behövs att SD-kortet ska vara tomt innan den blinkande bilden du laddade ner. Du kan ladda ner den från https://www.sdcard.org/downloads/formatter/eula_windows/

3) Flash det på ett SD-kort:

  • du måste blinka den nedladdade bilden till micro SD-kortet. Förutsatt att din bärbara dator har en SD-kortplats eller en micro Sd-kortläsare behöver du en blinkande programvara som etcher. Gå vidare och ladda ner från https://etcher.io/

4) Konfigurera Wi-Fi:

  • det är lättare att få två enheter att prata med varandra om de är i samma nätverk. En ethernet-kabel kan enkelt göra din bärbara dators nätverk tillgängligt för Pi. Men vi har ingen. Så vi ska lägga till en fil på SD-kortet så att Pi startar med en wifi-förkonfigurerad.
  • SD-kortet monteras som två volymer boot och rootfs . Öppna startvolymen och skapa en fil med namnet wpa_supplicant.conf vid uppstart av RPi, kommer den här filen att kopieras till/etc /wpa_supplicant katalog i / rootfs partition. Den kopierade filen berättar för Pi WIFI-inställningsinformationen. Detta skulle skriva över någon befintlig WIFI-konfiguration, så om du redan hade konfigurerat WIFI på pi, kommer det att skrivas över.
  • en typisk wpa_supplicant.conf-filen är som följer:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US network={ ssid=""your_SSID"" psk=""your_PSK"" key_mgmt=WPA-PSK}

Obs: ditt SSID är ditt WIFI-namn. Och psk är lösenordet för WI-FI.

5) aktivera SSH

  • vi kommer senare att komma åt Pi med ett säkert skal (SSH), SSH är inaktiverat som standard i Raspbian. För att aktivera SSH, skapa en fil med namnet ssh i startpartitionen. Om du är på Linux, Använd touch-kommandot för att göra det.

6) hitta Pi: s Ip-adress:

  • innan du slår på din raspberry pi måste vi ta reda på de befintliga enheterna som är anslutna till nätverket. Se till att din bärbara dator är ansluten till samma WIFI-nätverk som den du konfigurerade på pi ovan.
  • ladda ner Advanced IP Scanner för att skanna IP för vår raspberry pi. Du kan ladda ner det härifrån https://www.advanced-ip-scanner.com/

7) SSH i din Pi:

  • för att skapa en säker skalanslutning i Linux kan vi använda SSH-kommandot. Om du är på windows, försök ladda ner Putty från https://www.putty.org/

standard referenser är:

username: pipassword: raspberry

8) Få åtkomst till Pi på distans:

  • ibland känns det inte rätt om vi inte kan använda musen. För det måste vi titta på Raspbian-skrivbordet.
  • vi måste installera VNC (Virtual Network Connection) för att se och styra Pi grafiskt. Låt oss göra det.
  • för att komma åt fjärrskrivbordet behöver du VNC-viewer (klient) för din bärbara dator. Lyckligtvis är RealVNC tillgängligt för många operativsystem, välj en för ditt operativsystem från https://www.realvnc.com/en/connect/download/viewer/

9) kommandon för vncserver:

10) Öppna nu VNC Viewer på din fjärrdator:

5. Implementering och arbete:

5.1. Trådlös kommunikation av Arduino till Arduino med nRF24L01:

  • i detta kommer vi att lära oss hur man gör trådlös kommunikation mellan två Arduino-kort med NRF24L01. Och mäta avstånd med ultraljudssensor och överföra den till en annan Arduino med transceiver modul.

Ledningsinstruktioner:

för att koppla din NRF24L01 + trådlösa avsändare till din Arduino, Anslut följande stift:

  • Anslut VCC-stiftet till 3.3 volt
  • Anslut GND-stiftet till jord (GND)
  • Anslut CE-stiftet till Arduino 9
  • Anslut CSN-stiftet till Arduino 10
  • Anslut SCK-stiftet till Arduino 13
  • Anslut MOSI-stiftet till Arduino 11
  • Anslut Miso-stiftet till Arduino 12

för att koppla din ultraljudssensor till din Arduino, Anslut följande stift:

  • Anslut VCC-stiftet till Arduino 5Volts
  • Anslut GND-stiftet till jord (GND)
  • Anslut Trig-stiftet till Arduino 4
  • Anslut Echo-stiftet till Arduino 3

schematiskt Diagram för anslutning av Arduino Uno med ultraljudssensor och NRF24L01

för att koppla din NRF24L01+ trådlösa avsändare till din Arduino, Anslut följande stift:

  • Anslut VCC-stiftet till 3.3 volt
  • Anslut GND-stiftet till jord (GND)
  • Anslut CE-stiftet till Arduino 9
  • Anslut CSN-stiftet till Arduino 10
  • Anslut SCK-stiftet till Arduino 13
  • Anslut MOSI-stiftet till Arduino 11
  • Anslut Miso-stiftet till Arduino 12

schematiskt Diagram för anslutning av Arduino Uno NRF24L01

OBS: Rf24-modulen är obligatorisk för att koden ska köras så att du kan lägga till biblioteket i enlighet därmed

  • starta Arduino IDE och lägg sedan till det nedladdade biblioteket härifrån :

5.2. Kod:

Avsändarsidans kod:

mottagarens sidokod:

skicka Data

ta emot data:

6. Trådlös kommunikation av Arduino till Raspberry Pi med NRF24L01:

6.1: Installation av Rf24-Modul på Raspberry Pi:

  • det är det viktigaste och främsta steget för all kommunikation att fungera mellan Arduino och Raspberry Pi eftersom vi har använt rf24-biblioteket i Arduino för kommunikation så att samma bibliotek behövs på Pi.
  • vidare är de steg som innebär installation av biblioteket. Det tog mig nästan en vecka att installera det eftersom ingen klar uppfattning om det är närvarande.

=> sätt att gå:

1. Logga in på Raspberry Pi med Putty.

2. Gå till VNC-servern för GUI.

3. I terminaltypen:

sudo raspi-config

slå på SPI från gränssnittsalternativ i config

4. Starta om Pi. I terminalen skriver du:

sudo reboot

5. I terminaltypen:

sudo apt-get update

6. Ladda ner programmet install.sh fil från http://tmrh20.github.io/RF24Installer/RPi/install.sh eller kör detta på terminal:

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

7. Gör det körbart:

chmod +x install.sh

8. Kör det och välj dina alternativ:

9. Kör ett exempel från ett av biblioteken:

cd rf24libs/RF24/examples_linux make sudo ./gettingstarted

kör följande kommandon för att köra programmet.

10. Vidare, om vi vill köra Python-program för samma ändamål, kan vi göra det här:

kör exemplet redigera pingpair_dyn.py exempel för att konfigurera lämpliga stift enligt ovanstående dokumentation:

nano pingpair_dyn.py
  • konfigurera en annan enhet, Arduino eller RPi med pingpair_dyn-exemplet
  • kör exemplet
sudo python pingpair_dyn.py

6.2. Trådlös kommunikation av Arduino till Arduino med nRF24L01:

  • i detta kommer vi att lära oss hur man gör trådlös kommunikation mellan Arduino och Raspberry Pi med NRF24L01. Och mäta avstånd med en ultraljudssensor med hjälp av Arduino Uno och överföra den till Raspberry Pi och Data tas emot.

Ledningsinstruktioner:

för att koppla din NRF24L01 + trådlösa avsändare till din Arduino, Anslut följande stift:

  • Anslut VCC-stiftet till 3,3 volt
  • Anslut GND-stiftet till jord (GND)
  • Anslut CSN-stiftet till Arduino 10
  • Anslut CE-stiftet till Arduino 9
  • Anslut SCK-stiftet till Arduino 13
  • Anslut MISO-stiftet till Arduino 12
  • Anslut Mosi-stiftet till Arduino 11

för att koppla din ultraljudssensor till din Arduino, Anslut följande stift:

  • Anslut VCC-stiftet till Arduino 5Volts
  • Anslut GND-stiftet till jord (GND)
  • Anslut Trig-stiftet till Arduino 4
  • Anslut Echo-stiftet till Arduino 3

schematiskt Diagram:

schematiskt Diagram för anslutning av Arduino Uno med ultraljudssensor och NRF24L01

för att ansluta din NRF24L01+ trådlösa mottagare till din Raspberry Pi, Anslut följande stift:

  • Anslut VCC-stiftet till 3.3 volt (stift 1)
  • Anslut GND-stiftet till jord (GND) (stift 6)
  • Anslut CE-stiftet till Raspberry GPIO 22
  • Anslut CSN-stiftet till Raspberry GPIO 8
  • Anslut SCK-stiftet till Raspberry GPIO 11
  • Anslut MOSI-stiftet till Raspberry GPIO 10
  • Anslut Miso-stiftet till Raspberry GPIO 09

schematiskt Diagram:

schematiskt Diagram för anslutning av Raspberry Pi och NRF24L01

6.3. Kod:

Avsändarsidans Kod:

mottagarens Sidokod:

  • det är inte obligatoriskt att använda den här koden eftersom den är tweaked av mig enligt mitt krav.

för att kontrollera att din anslutning och kod fungerar korrekt kan du köra exemplen som finns i biblioteket som pingpair_dyn.ino på din Arduino och pingpair_dyn.py på Raspberry Pi

  • utdraget av min löpande kommunikation:

slutsats: Det kommer alltid att vara roligt att experimentera och leka med IoT-enheterna som att lära sig om Headless Raspberry Pi set-up, Arduino och Raspberry pi genom att få dem att kommunicera med varandra och skicka data och för att övervinna de fel och utmaningar som jag mötte när jag installerade rf24-modulen. Syftet med denna handledning är att hjälpa dig med en steg-för-steg-process och hoppas att det var lätt att följa och lära sig också. Tack för att du läste! Förslag och korrigeringar är alltid välkomna.



+