NRF24L01を使用したARDUINOとRASPBERRY PI間の通信

1. まとめ:

  • このブログでは、ArduinoとRaspberry Piをnrf24l01モジュールと通信する方法のプロセスを説明します。 最初に、Raspberry Piの基本を学び、次にHeadless Raspberry Pi setupを見ていきます。 実装のためにまず、ArduinoからArduinoへの簡単な通信を理解し、arduinoからraspberry piへの学習を行います。
  • 私はインターネット上でこれを達成するための多くのガイドを見つけましたが、それらのどれも完全ではなかったか、完全に私のために働いた。 ここでは、このプロセスのステップバイステップガイドを理解します。 そして最後に、同じのための実用的な例を示すことになります

2. 必要なコンポーネント:

  • 超音波センサー
  • 2Arduino Uno
  • Raspberry Pi3
  • 2nrf24l01送信機と受信機
  • ジャンプワイヤー
  • Arduinoケーブル
  • PI用ミニUSB2.0
  • ブレッドボード

3. 必要なソフトウェア:

  • raspbian for pi
  • Arduino IDEまたはVisual Studio
  • リモートコンピュータ上のPutty FOR SSH
  • リモートコンピュータ上のVNC viewer

4. Raspberry Piの紹介3:

4.1. 部品仕様:

  • 1.4 2.4/5GHzデュアルバンド802.11ac無線LAN、10/100/1000MbpsイーサネットBluetooth4.2
  • 4つのUSBポート、フルHDMIポート、組み合わせ3。5mmオーディオジャックとコンポジットビデオポート、40個のGPIOピン
  • Micro SDカードスロット、ビデオコアIV3Dグラフィックスコア、カメラインターフェイス(CSI)、ディス)

4.2 Raspberry Piピン配置:

4.3. ヘッドレスラズベリーパイセットアップ:

  • 私はちょうどraspberry piを買って、それがどのように機能するかをチェックしたいと思っています。 しかし、私が持っているのは、私のラップトップ、Pi、マイクロSDカード、そして私のWi-Fiネットワークです。 Piを接続して制御するにはどうすればよいですか?

1) ダウンロードRaspbian:

  • あなたのPiにはOSが必要です。 ダウンロードRaspbianからRaspberrypi.org ‘sのダウンロードセクション:
  • https://www.raspberrypi.org/downloads/raspbian/

2) ダウンロードSDメモリカードフォーマッタ:

  • ダウンロードした画像が点滅する前にsdカードが空である必要があるため、SDカードをフォーマットするために使用されます。 からダウンロードできますhttps://www.sdcard.org/downloads/formatter/eula_windows/

3) SDカードにフラッシュします:

  • ダウンロードした画像をmicro SDカードにフラッシュする必要があります。 あなたのラップトップは、SDカードスロットやマイクロSdカードリーダーを持っていると仮定すると、etcherのような点滅ソフトウェアが必要です。 先に行くとからダウンロードhttps://etcher.io/

4) Wi-Fiを設定する:

  • 2つのデバイスが同じネットワーク内にある場合は、2つのデバイスを互いに通信させる方が簡単です。 イーサネットケーブルは、簡単にPiにあなたのラップトップのネットワークを利用できるようにすることができます。 しかし、我々は一つを持っていません。 そこで、SDカードにファイルを追加して、事前に設定されたwifiでPiが起動するようにします。
  • SDカードは、ブートとrootfsの二つのボリュームとしてマウントされます。 ブートボリュームを開き、wpa_supplicantという名前のファイルを作成します。rpiを起動すると、このファイルは/rootfsパーティション内の/etc/wpa_supplicantディレクトリにコピーされます。 コピーされたファイルは、PiにWIFI設定情報を伝えます。 これにより、既存のWIFI設定が上書きされるため、piで既にWIFIを設定している場合は上書きされます。
  • 典型的なwpa_supplicant。confファイルは次のとおりです:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US network={ ssid=""your_SSID"" psk=""your_PSK"" key_mgmt=WPA-PSK}

注:あなたのSSIDはあなたのWIFIの名前です。 PskはWI-FIのパスワードです。

5)SSHを有効にする

  • 後でセキュリティで保護されたシェル(SSH)を使用してPiにアクセスしますが、RaspbianではSSHはデフォルトで無効になっています。 SSHを有効にするには、ブートパーティションにsshという名前のファイルを作成します。 Linuxを使用している場合は、touchコマンドを使用してそれを行います。

6) PiのIpアドレスを検索する:

  • raspberry piをオンにする前に、ネットワークに接続されている既存のデバイスを見つける必要があります。 上記のpiで設定したものと同じWIFIネットワークにラップトップが接続されていることを確認してください。
  • Advanced IP Scannerをダウンロードして、raspberry piのIPをスキャンします。 ここからダウンロードできますhttps://www.advanced-ip-scanner.com/

7) あなたのPiにSSH:

  • Linuxでセキュリティで保護されたシェル接続を作成するには、sshコマンドを使用できます。 Windowsを使用している場合は、Puttyをダウンロードしてみてくださhttps://www.putty.org/

既定の資格情報は次のとおりです:

username: pipassword: raspberry

8) Piへのリモートアクセス:

  • 私たちはマウスを使用することができない場合、時にはそれは右に感じていません。 そのためには、Raspbian desktopを調べる必要があります。
  • Piをグラフィカルに表示および制御するには、VNC(Virtual Network Connection)を設定する必要があります。 そうしよう
  • リモートデスクトップにアクセスするには、ラップトップ用のVNC-viewer(クライアント)が必要です。 幸いなことに、RealVNCは多くのOsで利用可能です。https://www.realvnc.com/en/connect/download/viewer/

9) vncserverのコマンド:

10) 今すぐあなたのリモートコンピュータ上のVNCビューアを開きます:

5. 実装と作業:

5.1. Nrf24l01とArduinoへのarduinoの無線通信:

  • これでは、NRF24L01を使用して二つのArduinoボード間の無線通信を行う方法を学びます。 そして超音波センサーとの間隔を測定し、トランシーバーモジュールが付いている別のArduinoに送信して下さい。

配線手順:

Nrf24L01+ワイヤレス送信者をArduinoに配線するには、次のピンを接続します:

  • VCCピンを3に接続します。3ボルト
  • GNDピンをグラウンドに接続(GND)
  • CEピンをArduinoに接続9
  • CSNピンをArduinoに接続10
  • SCKピンをArduinoに接続13
  • MOSIピンをArduinoに接続11
  • MISOピンをArduinoに接続12

超音波センサーをArduinoに配線するには、次のピンを接続します:

  • VccピンをArduino5voltsに接続
  • GNDピンをグラウンド(GND)に接続
  • TrigピンをArduino4に接続
  • EchoピンをArduinoに接続3

超音波センサーとNrf24L01

とArduino Unoの配線のための回路図NRF24L01+ワイヤレス送信者をArduinoに配線するには、次のピンを接続します:

  • VCCピンを3に接続します。3ボルト
  • GNDピンをグラウンドに接続(GND)
  • CEピンをArduinoに接続9
  • CSNピンをArduinoに接続10
  • SCKピンをArduinoに接続13
  • MOSIピンをArduinoに接続11
  • MISOピンをArduinoに接続12

Arduino Uno Nrf24L01

の配線のための回路図ノート: コードを実行するにはRF24モジュールが必須であるため、それに応じてライブラリを追加できます

  • Arduino IDEを起動してから、ダウンロードしたライブラ:

5.2. コード:

送信者側コード:

送信者側コード::

受信側コード:

データの送信

データの受信:

6. Nrf24l01を使用したArduinoからRaspberry Piへの無線通信:

6.1:RASPBERRY PiへのRF24モジュールのインストール:

  • ArduinoとRaspberry Piの間で通信するための最も重要で最も重要なステップは、ArduinoでRF24ライブラリを通信に使用しているため、Piでも同じライブラリが必要です。
  • さらに、ライブラリのインストールが必要な手順があります。 それについての明確な考えが存在しないので、それをインストールするのにほぼ一週間かかりました。

=> 移動する方法:

1。 Puttyを使用してRaspberry Piにログインします。

2. GUIのVNCサーバーに移動します。

3. 端子タイプでは、:

sudo raspi-config

configのインタフェースオプションからSPIをオンにする

4. Piを再起動します。 端末で、次のように入力します:

sudo reboot

5. 端子タイプでは、:

sudo apt-get update

6. ダウンロードinstall.sh http://tmrh20.github.io/RF24Installer/RPi/install.shからのファイルまたは端末でこれを実行します:

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

7. 実行可能にする:

chmod +x install.sh

8. それを実行し、オプションを選択します:

9. いずれかのライブラリから例を実行します:

cd rf24libs/RF24/examples_linux make sudo ./gettingstarted

プログラムを実行するには、次のコマンドを実行します。

10. さらに、同じ目的のためにPythonプログラムを実行したい場合は、これを行うことができます:

例を実行するEdit the pingpair_dyn.py 上記のマニュアルに従って適切なピンを設定する例:

nano pingpair_dyn.py
  • pingpair_dyn例を使用して別のデバイス、Arduino、またはRPiを設定します
  • 例を実行します
sudo python pingpair_dyn.py

6.2. Nrf24l01とArduinoへのarduinoの無線通信:

  • これでは、Nrf24L01を使用してArduinoとRaspberry Piの間で無線通信を行う方法を学びます。 そして、Arduino Unoの助けを借りて超音波センサーで距離を測定し、それをRaspberry Piに送信するとデータが受信されます。

:

Nrf24L01+ワイヤレス送信者をArduinoに配線するには、次のピンを接続します:

  • VCCピンを3.3ボルトに接続する
  • GNDピンをグランド(GND)に接続する
  • CSNピンをArduinoに接続する10
  • CEピンをArduinoに接続する9
  • SCKピンをArduinoに接続する13
  • MISOピンをArduinoに接続する12
  • >MOSIピンをArduinoに接続する11

超音波センサーをArduinoに配線するには、次のピンを接続します:

  • VccピンをArduino5voltsに接続
  • GNDピンをグラウンド(GND)に接続
  • TrigピンをArduino4に接続
  • EchoピンをArduinoに接続3

模式図:

超音波センサーとNrf24L01

を使用したArduino Unoの配線の模式図nrf24L01+ワイヤレスレシーバーをRaspberry Piに配線するには、次のピンを接続します:

  • VCCピンを3に接続します。3ボルト(ピン1)
  • GNDピンをグラウンド(GND)に接続(ピン6)
  • CEピンをラズベリー GPIOに接続22
  • CSNピンをラズベリー GPIOに接続8
  • SCKピンをラズベリー GPIOに接続11
  • MOSIピンをラズベリー GPIOに接続10
  • MisoピンをRaspberry Gpioに接続します09

模式図:

Raspberry PiとNRF24L01の配線の概略図

6.3. コード:

送信者側コード:

送信者側コード::

受信側コード:

  • 私の要件に従って私が微調整しているので、このコードを使用することは必須ではありません。

接続とコードの適切な機能を確認するには、pingpair_dynのようなライブラリに存在する例を実行できます。あなたのArduinoのinoとpingpair_dyn.py Raspberry Pi

  • 私の実行中の通信のスニペット:

結論: ヘッドレスのRaspberry Piセットアップ、Arduino、Raspberry piをお互いに通信してデータを送信したり、RF24モジュールをインストールしているときに直面したようなエラーや課題を克服したりするなど、IoTデバイスで実験したり遊んだりするのはいつも楽しいことです。 このチュートリアルの目的は、ステップバイステップのプロセスであなたを提供し、それが従うと同様に学ぶのは簡単だったことを願っています。 読んでくれてありがとう! 提案や修正は常に歓迎されています。



+