目次
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ボード