COMUNICAREA ÎNTRE ARDUINO ȘI RASPBERRY PI FOLOSIND NRF24L01

1. Rezumat:

  • acest blog vă conduce prin procesul de comunicare a unui Arduino și a unui Raspberry Pi cu modulul nrf24l01. Pentru a începe, vom învăța câteva elemente de bază ale Raspberry Pi, apoi vom arunca o privire la configurarea Raspberry Pi fără cap. Pentru punerea în aplicare în primul rând, vom înțelege comunicarea simplă a Arduino la Arduino, atunci vom învăța Arduino la raspberry pi.
  • am găsit multe ghiduri pentru a realiza acest lucru pe Internet, dar niciunul dintre ele nu a fost complet sau complet lucrat pentru mine. Aici vom înțelege ghidul pas cu pas al acestui proces. Și la sfârșitul va fi arată un exemplu de lucru pentru aceeași

2. Componente necesare:

  • senzor cu ultrasunete
  • 2 Arduino Uno
  • zmeură Pi 3
  • 2 nrf24l01 transmițător și receptor
  • sari fire
  • cablu Arduino
  • mini USB 2.0 Pentru Pi
  • Breadboard

3. Software Necesar:

  • Raspbian pentru pi
  • Arduino IDE sau Visual Studio
  • Putty pe un computer la distanță pentru SSH
  • VNC viewer pe un computer la distanță

4. Introducere în Raspberry Pi 3:

4.1. Specificații componente:

  • 1.4 GHz 64-bit quad-core ARM Cortex-A53, 1GB RAM
  • 2.4/5GHz dual-band 802.11 ac Wireless LAN, 10/100 / 1000Mbps Ethernet Bluetooth 4.2
  • 4 porturi USB, port HDMI complet, combinate 3.Mufă audio de 5 mm și port video compozit, 40 pini GPIO
  • slot pentru card Micro SD, nucleu video IV nucleu grafic 3D, Interfață cameră (CSI), interfață de afișare (DSI)

4.2 Raspberry Pi Pinout:

4.3. Configurarea Raspberry Pi fără cap:

  • spune, tocmai am cumpărat un raspberry pi și doresc să verifice cum funcționează. Dar tot ce am este laptopul meu, Pi, un card micro SD și rețeaua mea Wi-Fi. Cum conectez și controlez Pi?

1) Descărcați Raspbian:

  • Pi-ul dvs. are nevoie de un sistem de operare. Descărcați Raspbian de la Raspberrypi.org secțiunea Descărcare:
  • https://www.raspberrypi.org/downloads/raspbian/

2) Descărcați Formatare card de memorie SD:

  • este folosit pentru a formata cardul SD, deoarece este necesar ca cardul SD să fie gol înainte de imaginea intermitentă pe care ați descărcat-o. Îl puteți descărca de la https://www.sdcard.org/downloads/formatter/eula_windows/

3) Flash-l pe un card SD:

  • trebuie să blocați această imagine descărcată pe cardul micro SD. Presupunând că laptopul dvs. are un slot pentru card SD sau un cititor de carduri micro Sd, aveți nevoie de un software intermitent precum etcher. Mergeți mai departe și descărcați de la https://etcher.io/

4) configurează Wi-Fi:

  • este mai ușor să faci două dispozitive să vorbească între ele dacă se află în aceeași rețea. Un cablu ethernet poate face cu ușurință rețeaua laptopului dvs. disponibilă pentru Pi. Dar nu avem unul. Deci, vom adăuga un fișier pe cardul SD, astfel încât Pi să pornească cu un wifi preconfigurat.
  • cardul SD se montează ca două volume de boot și rootfs . Deschideți volumul de pornire și creați un fișier numit wpa_supplicant.conf la pornirea RPi, acest fișier va fi copiat în directorul /etc/wpa_supplicant din partiția /rootfs. Fișierul copiat spune Pi informațiile de configurare WIFI. Acest lucru ar suprascrie orice configurație WIFI existentă, deci dacă ați configurat deja WIFI pe pi, atunci acesta va fi suprascris.
  • un wpa_supplicant tipic.fișier conf este după cum urmează:

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

notă: SSID-ul dvs. este numele WIFI-ului dvs. Și psk este parola WI-Fi.

5) activați SSH

  • vom accesa ulterior Pi folosind un shell securizat (SSH), SSH este dezactivat în mod implicit în Raspbian. Pentru a activa SSH, creați un fișier numit ssh în partiția de boot. Dacă sunteți pe Linux, utilizați comanda tactilă pentru a face acest lucru.

6) Găsiți adresa Ip a lui Pi:

  • înainte de a porni raspberry pi, trebuie să aflăm dispozitivele existente conectate la rețea. Asigurați-vă că laptopul dvs. este conectat la aceeași rețea WIFI ca cea pe care ați configurat-o pe pi de mai sus.
  • descărcați scanerul IP avansat pentru a scana IP-ul raspberry pi. Îl puteți descărca de aici https://www.advanced-ip-scanner.com/

7) SSH în Pi:

  • pentru a crea o conexiune shell securizată în Linux, putem folosi comanda ssh. Dacă sunteți pe windows, încercați să descărcați Putty din https://www.putty.org/

acreditările implicite sunt:

username: pipassword: raspberry

8) accesați Pi de la distanță:

  • uneori nu se simte bine dacă nu putem folosi mouse-ul. Pentru asta, trebuie să ne uităm la desktopul Raspbian.
  • trebuie să setup VNC (Virtual Network Connection) pentru a vedea și de control Pi grafic. Să facem asta.
  • pentru a accesa desktopul la distanță, aveți nevoie de VNC-viewer (client) pentru laptop. Din fericire, RealVNC este disponibil pentru o mulțime de sisteme de Operare, alege unul pentru sistemul de operare de la https://www.realvnc.com/en/connect/download/viewer/

9) comenzi pentru vncserver:

10) Acum deschideți VNC Viewer pe computerul dvs. la distanță:

5. Punerea în aplicare și de lucru:

5.1. Comunicare Wireless de Arduino la Arduino cu nrf24l01:

  • în acest sens, vom învăța cum să realizăm comunicații fără fir între două plăci Arduino folosind nrf24l01. Și măsura distanța cu senzor ultrasonic și transmite-l la un alt Arduino cu modul de emisie-recepție.

instrucțiuni de cablare:

pentru a conecta expeditorul wireless nrf24l01 + la Arduino, conectați următorii pini:

  • conectați pinul VCC la 3.3 Volți
  • conectați pinul GND la masă (GND)
  • conectați pinul ce la Arduino 9
  • conectați pinul CSN la Arduino 10
  • conectați pinul SCK la Arduino 13
  • conectați pinul MOSI la Arduino 11
  • conectați pinul miso la Arduino 12

pentru a conecta senzorul ultrasonic la Arduino, conectați următorii pini:

  • conectați pinul VCC la Arduino 5volts
  • conectați pinul GND la masă (GND)
  • conectați pinul Trig la Arduino 4
  • conectați pinul Echo la Arduino 3

diagrama schematică pentru cablarea Arduino Uno cu senzor ultrasonic și nrf24l01

pentru a conecta expeditorul wireless nrf24l01 + la Arduino, conectați următorii pini:

  • conectați pinul VCC la 3.3 Volți
  • conectați pinul GND la masă (GND)
  • conectați pinul ce la Arduino 9
  • conectați pinul CSN la Arduino 10
  • conectați pinul SCK la Arduino 13
  • conectați pinul MOSI la Arduino 11
  • conectați pinul miso la Arduino 12

diagrama schematică pentru cablarea Arduino Uno NRF24L01

notă: Modulul RF24 este obligatoriu pentru ca Codul să ruleze, astfel încât să puteți adăuga biblioteca în consecință

  • porniți Arduino IDE apoi adăugați biblioteca descărcată de aici :

5.2. Cod:

Cod lateral expeditor:

Codul lateral al receptorului:

trimiterea datelor

primirea datelor:

6. Comunicații fără fir de Arduino la Raspberry Pi cu nRF24L01:

6.1: Instalarea modulului RF24 pe Raspberry Pi:

  • este cel mai important și cel mai important pas pentru ca orice comunicare să funcționeze între Arduino și Raspberry Pi, așa cum am folosit biblioteca RF24 din Arduino pentru comunicare, astfel încât aceeași bibliotecă este necesară pe Pi.
  • mai departe sunt pașii care implică instalarea bibliotecii. Mi-a luat aproape o săptămână să o instalez, deoarece nu există nicio idee clară despre aceasta.

=> Mod de a merge:

1. Conectați-vă la Raspberry Pi folosind Putty.

2. Accesați serverul VNC pentru GUI.

3. În tipul terminalului:

sudo raspi-config

activați SPI din opțiunile de interfață în config

4. Reporniți Pi. În terminal, tastați:

sudo reboot

5. În tipul terminalului:

sudo apt-get update

6. Descărcați install.sh fișier de la http://tmrh20.github.io/RF24Installer/RPi/install.sh sau rulați acest lucru pe terminal:

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

7. Faceți-l executabil:

chmod +x install.sh

8. Rulați-l și alegeți opțiunile:

9. Rulați un exemplu dintr-una din biblioteci:

cd rf24libs/RF24/examples_linux make sudo ./gettingstarted

Rulați următoarele comenzi pentru a rula programul.

10. Mai mult, dacă dorim să rulăm programe Python în același scop, putem face acest lucru:

rularea exemplului Editați pingpair_dyn.py exemplu pentru a configura pinii corespunzători conform documentației de mai sus:

nano pingpair_dyn.py
  • configurați un alt dispozitiv, Arduino sau RPi cu exemplul pingpair_dyn
  • rulați exemplul
sudo python pingpair_dyn.py

6.2. Comunicare Wireless de Arduino la Arduino cu nrf24l01:

  • în acest sens, vom învăța cum să realizăm comunicații fără fir între Arduino și Raspberry Pi folosind nrf24l01. Și măsurați distanța cu un senzor ultrasonic cu ajutorul Arduino Uno și transmiteți-l la Raspberry Pi și se primesc date.

Instrucțiuni De Cablare:

pentru a conecta expeditorul wireless nrf24l01 + la Arduino, conectați următorii pini:

  • conectați pinul VCC la 3,3 volți
  • conectați pinul GND la masă (GND)
  • conectați pinul CSN la Arduino 10
  • conectați pinul CE la Arduino 9
  • conectați pinul SCK la Arduino 13
  • conectați pinul MISO la Arduino 12
  • conectați pinul Mosi la Arduino 11

pentru a conecta senzorul ultrasonic la Arduino, conectați următorii pini:

  • conectați pinul VCC la Arduino 5volts
  • conectați pinul GND la masă (GND)
  • conectați pinul Trig la Arduino 4
  • conectați pinul Echo la Arduino 3

diagrama schematică:

diagrama schematică pentru cablarea Arduino Uno cu senzor ultrasonic și nrf24l01

pentru a conecta receptorul Wireless nrf24l01 + la Raspberry Pi, conectați următorii pini:

  • conectați pinul VCC la 3.3 Volți (pinul 1)
  • conectați pinul GND la masă (GND) (pinul 6)
  • conectați pinul ce la Raspberry GPIO 22
  • conectați pinul CSN la Raspberry GPIO 8
  • conectați pinul SCK la Raspberry GPIO 11
  • conectați pinul MOSI la Raspberry GPIO 10
  • conectați pinul miso la Raspberry GPIO 09

diagrama schematică:

schema schematică pentru cablarea Raspberry Pi și NRF24L01

6.3. Cod:

Cod Lateral Expeditor:

Codul lateral al receptorului:

  • nu este obligatoriu să folosiți acest cod, deoarece este modificat de mine conform cerințelor mele.

pentru a verifica buna funcționare a conexiunii și a codului, puteți rula exemplele prezente în bibliotecă, cum ar fi pingpair_dyn.ino pe Arduino și pingpair_dyn.py pe Raspberry Pi

  • fragmentul comunicării mele de funcționare:

concluzie: Va fi întotdeauna distractiv să experimentați și să vă jucați cu dispozitivele IoT, cum ar fi învățarea despre setarea Raspberry Pi fără cap, Arduino și Raspberry pi, făcându-le să comunice între ele și să trimită date și să depășească erorile și provocările cu care m-am confruntat în timpul instalării modulului RF24. Scopul acestui tutorial este de a vă servi cu un proces pas cu pas și sperăm că a fost ușor de urmărit și de învățat. Vă mulțumim pentru lectură! Sugestiile și corecțiile sunt întotdeauna binevenite.



+