NRF24L01: модул за безжична комуникация за Arduino

NRF24L01

Със сигурност трябва да създадете проект за „направи си сам“, използвайки Arduino или друг елемент и трябва да се възползвате от него безжична комуникация. И това се случва, като имате някакъв тип модул или устройство, което ви позволява да предавате чрез IR, RF, Bluetooth, WiFi и т.н. Тоест трябва да сте наясно с необходимостта да знаете какъв тип сигнал би бил най-подходящ във вашия случай.

В този случай имаме a ръководство за NRF24L01 за теб. Това е чип за безжична комуникация, който ще ви предостави това, от което се нуждаете за изпращане и получаване на сигнали. Типът сигнали, които обработва, е RF или радиочестота, тоест вълни с голяма дължина на вълната и следователно с ниска енергия, които в електромагнитния спектър са с честота между 3 Hz и 300 Ghz.

Какво е NRF24L01?

NRF24L01

El NRF24L01 е чип, произведен от Nordic Semiconductor. Ако то Няма намерени продукти, чипът се монтира на малка платка с някои помощни елементи, от които се нуждаете, и следователно съставя модул. Можете да го използвате по няколко начина, включително да го свържете с Adruino, както ще ви покажа по-късно.

NRF24L01, както може да се заключи от името му, е безжично комуникационно устройство, което използва RF или радиочестота с възможност за работа при 2,4 Ghz - 2,5 Ghz. Това е безплатната лента за безплатна употреба. Вече знаете, че други ленти са запазени и трябва да платите, ако искате да ги използвате за предаване на информация. В допълнение, той интегрира предавател + приемник.

По-конкретно, честотната лента, която можете да използвате, е от 2.400 2.525 Mhz до XNUMX XNUMX MHz, с възможност за избор между 125 канали с интервали от 1 MHz между тях. Не се препоръчва обаче да използвате честоти 2.4 Ghz, ако използвате WiFi мрежи, дронове, които работят с тази честота и т.н., или ще има смущения. Ето защо е за предпочитане да се използва от 2.501Mhz нататък.

По отношение на неговите характеристики, работи от 1.9 до 3.6v, Така че ще ви е лесно да го захранвате със самата платка Arduino с връзката 3.3, като използвате батерии и дори с захранване, което има това напрежение. Освен това можете да конфигурирате скоростта на предаване между 250 Kbps, 1Mbps и до 2Mbps.

Чипът в емисиите и приеманията може да работи едновременно с до 6 връзки на различни устройства. С това можете да излъчвате или приемате от различни точки без никакъв проблем. И ако се притеснявате за стабилността или надеждността на комуникацията, самият чип има логическа схема за коригиране на грешки в данните и препращане на информация, ако е необходимо. Следователно освобождава процесора от тази задача.

За да го контролирате, можете да използвате шината SPI, така че управлението му с Arduino е много просто. Освен това щифтовете за данни на NRF24L01 поддържат до 5v без проблеми. Консумацията на енергия в режим на готовност е доста ниска, така че няма да е елемент, за който да се притеснявате, а когато работи, той не е един от най-скъпите, тъй като се нуждае само от 15 mA за изпращане и получаване на данни.

На пазара ще намерите няколко различни модули, които монтират чипа NRF24L01, те се променят само в спомагателните елементи, които имат или в някои детайли. Например в типа антена. Някои имат антена, отпечатана на печатната платка в зигзагообразна форма с обхват около 20-30 метра. Други признават, че малко по-мощна външна антена с усилвател може да премине от 700 метра на 1 км.

Въпреки това, действителният обхват е ограничен от някои факторикато пътни препятствия, шум или смущения от други налични елементи или сигнали, скорост на предаване, захранващо напрежение (по-високо напрежение, по-голямо разстояние) и др. Например, ако искате да предавате с максимална скорост от 2Mbps, това ще има голямо наказание в далечината, което ще бъде само 2 или 3 метра максимум. При по-ниски скорости може да успеете да изкачите това разстояние.

ESP8266
Свързана статия:
ESP8266: WIFI модулът за Arduino

Какво трябва да знаете, преди да го купите?

NRF40L01 антена

El NRF24L01 е много евтин чип които могат да се използват в множество проекти. Например, ако нямате външна антена, можете да я закупите до 0.65 евро, като моделът на външната антена е малко по-скъп от този, но все пак е много евтин и обикновено не надвишава 1.7 евро.

Ако нямате друг елемент за излъчване или приемане, вече знаете, че трябва да закупите два модула NRF24L01, единия за използване от едната страна, а другия от другата страна на мястото, където искате да предадете. И двамата ще се държат като подател или получател както искаш.

Pinout и монтаж на NRF24L01

пиноут NRF40L01

Що се отнася до сглобяването, то е съвсем просто. The NRF24L01 има 8 щифта, следователно неговото пиноут е много лесно за да разберете как можете да видите на това изображение, което ви оставям. Вдясно можете да видите щифтовата схема на дъска Arduino UNO и как всеки от щифтовете на модула ще бъде свързан с него.

Както можете да заключите, плочата NRF24L01 се захранва с помощта на GND и 3.3v щифтове от Arduino. Не забравяйте да не го правите с 5v сигнал или ще повредите модула.

Интеграция с Arduino

2 NRF24L01 с Arduino (верига)

След като разберете какво е NRF24L01 и как може да бъде свързан и захранван, в допълнение към броя на проектите, които можете да направите с няколко от тези евтини устройства, следващото нещо е да покажете пример за програмиране така че можете да започнете да експериментирате с вашия Arduino IDE. Не забравяйте, че форматът на данните, който можете да предавате, може да бъде модифициран в изходния код.

l298n
Свързана статия:
L298N: модул за управление на двигатели за Arduino

Можете да изберете да изпращате и получавате низ, цяло число, данни с плаваща запетая и т.н. Препоръчвам ви нашето ръководство за програмиране на Arduino ако започвате. С него можете да създадете първите си проекти. И като конкретен пример за NRF24L01, тук ви оставям кодовете, необходими за низ.

Код, който трябва да напишете в IDE на Arduino и да програмирате платката Arduino, свързана към NRF24L01, която ще присвоите като предавател:

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
 
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio(pinCE, pinCSN);
 
// Single radio pipe address for the 2 nodes to communicate.
const uint64_t pipe = 0xE8E8F0F0E1LL;
 
char data[16]="Aquí tu mensaje" ;
 
void setup(void)
{
   radio.begin();
   radio.openWritingPipe(pipe);
}
 
void loop(void)
{
   radio.write(data, sizeof data);
   delay(1000);
}

Тук кодът, който трябва да въведете в IDE на Arduino и да запишете на платката, която сте свързали към специалния NRF24L01 като приемник:

#включете <nRF24L01.h>
#включете <RF24.h>
#include &lt;RF24_config.h&gt;
#включете <SPI.h>

const int pinCE = 9;
const int pinCSN = 10;
RF24 радио (pinCE, pinCSN);

// Единичен адрес на радиоканала за комуникация на 2-те възли.
const uint64_t тръба = 0xE8E8F0F0E1LL;

char данни [16];

настройка за невалидни (void)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, тръба);
radio.startListening ();
}

цикъл void (void)
{
ако (radio.available ())
{
int done = radio.read (данни, размер на данните);
Serial.println (данни);
}
}

С това ще имате всичко необходимо и можете да опитате да изпратите думи или текстови низове на единия и да видите как другият ги получава. Използвайте два компютъра, свързани чрез USB към платката Arduino, за да използвате конзолата като средство за преглед на данните. Разделете им разумно разстояние според модула, който имате или конфигурацията, която сте му дали и ще започнете да виждате на екрана на другия компютър символите, които сте въвели в първия код ...


Коментар, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Stefan каза той

    Здравей Исак
    Искам да завърша проект с arduino, rasberry или нещо друго.
    Можете ли да изпратите имейл за обяснение?
    Мина - a01b02@abv.bg
    благодаря