マイクロコントローララボ

目次

NRF24L01 は現代のアプリケーションのための法的RFコミュニケータの1つです。 NRF24L01は最も安価なもので、素晴らしい機能を備えています。 1つのモジュールが2.4GHzの周波数で通信を行うため、合法的なものとなります。 1つのモジュールでデータの送信と受信が可能です。 送受信だけでなく、同じNRF24L01のモジュールと合計6台同時に通信することができます。 このデバイスは、Arduinoアプリケーションとのインタフェースがあり、あらゆる種類のリモートコントロールアプリケーションをカバーします。 このワイヤレスモジュールはSPI通信プロトコルを使用し、10MBのデータレートと125のアドレス範囲を提供し、最も信頼性の高いRFモジュールとなっています。

NRF24L01のピン配置

NRF24L01には特別なピンはなく、すべてのマイクロコントローラおよびボードに備わっているピンで通信が可能です。 これらのピンを介して、外部のマイコンやArduinoとインターフェイスして動作させることになります。 8本のピンで構成されています。 5565>

電源ピン

VCC

モジュールの電源ピンはVCCで、電源と接続します。

GND

nRF24L01は他のマイクロコントローラーと動作し、それと動作するには共通グラウンドが必要になります。 5565>

通信端子

CE

CE は、モジュールの送受信を有効にするためのイネーブル端子です。 5565>

CSN

このピンは、マイコンからのデータのリスニングと処理をアクティブにするためのものです。 マイコンとモジュール間のデータ通信を維持するために、HIGHにする必要があります。

SCK

nRF24L01のSPI通信のクロックパルス端子です。

MOSI

マイコンからSPI端子で送信されたデータは、MOSI端子でnRF24L01が受信することになります。

MISO

SPIピンを使用してnRF24L01から送信された命令は、MISOピンでマイクロコントローラが受信します。

IRQ 割り込みピン

IRQ は、SPIピンに新しいデータがあるたびにイベントを生成する割り込みピンです。

NRF24L01 RFモジュールの特長

  • 2.4GHzで動作するため、ほとんどの国で合法です。
  • 1つのモジュールで送信機または受信機として機能します。
  • モジュールnRF24L01は、同時に最大6つの他のモジュールと通信できます。
  • 動作には3.3ボルトが必要ですが、電圧は3.6Vまでしか拡張できません。そうしないと、加熱して燃えるまでにそれほど時間がかかりません。
  • デバイスには、16MHzの内蔵オシレータがあります。
  • nRF24L01の伝送速度は256kbpsから2Mbpsです。
  • デバイスは125のチャネル範囲を持ち、1つの場所で125の異なるネットワークを操作することができます。
  • チャネル周波数は2400MHzから2525MHzまで変動します。

NRF24L01アプリケーション

  • 小さなメッシュネットワークの作成では、nRF24L01が使用するのに最も適しています。
  • 開発中および商業用のリモートコントロールアプリケーションは、nRF24L01で素晴らしく動作します。
  • 家庭レベルのほとんどのIoTアプリケーションでは、この無線モジュールを使用していますが、小さなレベルです。

NRF24L01通信モジュールの使い方

nRF24L01はすべてのマイクロコントローラーおよびスマートボードで使用できますが、使用するにはいくつかのピンとデータ情報に関して理解している必要があります。 このモジュールを使用するには、他のマイコンとSPIプロトコルで接続します。

接続した後、nRF24L01は2つの方法で動作することに留意してください。 1つ目はトランスミッター、2つ目はレシーバーです。 送信機と受信機として通信するには、まずマイコンが知っている必要があります。

Arduino

nRF24L01については、インターネット上で多くの研究が行われており、多くのアプリケーションで使用することができますが、開発者が理解すべきArduinoのこのモジュールの基礎があります。 nRF24L01の基本的な動作は送信と受信ですが、Arduinoでは以下の方法でどちらも実現可能です。 以下は、Arduino UNOの回路です。

送信機としての使い方例

nRF24L01を送信機として動作させると、他のモジュールに1チャンネルのデータを送信するだけで、送信はできません。 送信機として使用するためには、Arduinoのプログラムを知っている必要があります。 プログラムをアップロードした後、送信機と受信機のモードを変更するには、プログラムなしではどうしようもありません。

送信機コードの詳細

ArduinoとnRF24L01の通信は、以下のライブラリに依存します:

#include <nRF24L01.h>#include <RF24.h>#include <SPI.h>

Arduinoボードには、MISO、MOSI、SCKという特定のSPIピンがあることはご存知のとおりです。 そのため、Arduinoはこれらについて説明する必要はありませんが、CSNとCEピンは初期化する必要があります。 nRF24L01のライブラリには、CSNとCEのPINを取得する関数が組み込まれており、

RF24 radio(3, 2);

数字の3がCEピン、2がCSNピンを表わします。

その後、次のコマンドで初期化します。

radio.begin();

アドレスは、レシーバと通信するデバイスを5ビットで定義できます。

radio.openWritingPipe(10101);

その後、モジュールはそのモードを知る必要があります。 それは、受信機または送信機として動作しているいずれか。 次のコマンドは、nRF24L01をトランスミッターにします。

 radio.stopListening();

すると、デバイスはトランスミッターとして使用できるようになります。 初期化で知られているのは、データの送信だけです。 モジュールの制限により、一度に送信できるデータは32バイトであることを常に念頭に置いてください。

const char data = "DATA";radio.write(&data, sizeof(data));

送信データは、プログラムのセットアップやループで定義できます。

NRF24L01を受信機として使う方法 例

上の部分は送信方法ばかりですが、受信方法は送信機と変わりありません。 送信機では、3つの命令だけが変わります。

  • 送信機にはなかったアドレスチャネル
  • 受信機としてのモジュールの初期化
  • データの受信とチェック方法

ここでは、受信機のコードを以下に示します。

受信機コードの詳細

送信機と異なるのは、3つの部分だけです。 最初の “0 “の部分はチャネルを定義しています。

2つ目の部分は、送信機としてのモジュールの初期化です。 送信機としてモジュールを初期化するには、次のコマンドで初期化します:

radio.startListening();

3つ目はデータの受信です。

if (radio.available())

受信データを知るのに役立ちます

radio.read( data, size );

データを読み込むのに役立ちます

radio.startListening();

受信データを読むのに役立ちます。

NRF24L01の例

nRF24L01が使えるアプリケーションはたくさんありますが、メッシュを作ることは、他のモジュールとは違うnRF24L01の最も優れた能力の1つです。 メッシュとして使用するためには、3~7個のモジュールが必要です。

次に、受信機側で異なるチャネルを初期化するために、次の命令を使用する必要があります。

2D ダイアグラム

代替モジュール。

  • XBee S2C モジュール
  • SX1278 LoRa RF モジュール
  • SIM900A GSM モジュール
  • ESP12E WiFi モジュール
  • PN532 NFC RFID モジュール
  • HM-10 Bluetooth モジュール
  • HC-」
    • SIM900A GSM モジュール
    • SX1278 LoRa モジュール
    • SIM900A WiFi モジュール
    • 433MHz RF受信モジュール
    • 433MHz RF送信モジュール
    • TSOP1738 IR受信機
    • Arduino MKR1000 WiFiボード

コメントを残す

メールアドレスが公開されることはありません。