当然,您需要使用Arduino或任何其他元素创建DIY项目,并且必须利用 无线通信。 发生这种情况的原因是拥有某种类型的模块或设备,可让您使用IR,RF,Bluetooth,WiFi等进行传输。 也就是说,您必须清楚了解哪种信号最适合您的情况。
在这种情况下,我们有一个 NRF24L01上的指南 为你。 它是一种无线通信芯片,将为您提供发送和接收信号所需的信息。 它处理的信号类型是RF或射频,即波长很长的波,因此能量很低,在电磁频谱中的频率在3 Hz至300 Ghz之间。
什么是NRF24L01?
El NRF24L01是Nordic Semiconductor生产的芯片。 如果它 没有找到产品。,将芯片安装在带有所需辅助元件的小型PCB上,从而组成一个模块。 您可以通过多种方式使用它,包括将其连接到Adruino的方法,稍后我将向您展示。
从其名称可以推断出,NRF24L01是一种使用RF或射频并能够在 2,4Ghz-2,5 Ghz。 那是免费使用的免费乐队。 您已经知道其他频段已预留,如果要使用其他频段来传输信息,则必须付费。 此外,它还集成了发送器+接收器。
具体来说,您可以使用的频段为2.400 Mhz至2.525 Mhz,并且可以选择 125 canales 它们之间有1Mhz的空间。 但是,如果您使用的是WiFi网络,使用该频率的无人机等,则不建议使用2.4Ghz频率,否则会产生干扰。 这就是为什么最好从2.501Mhz开始使用。
关于它的特点 工作于1.9至3.6v, 因此,使用带有3.3连接的Arduino板本身,使用电池甚至使用具有该电压的电源,您将很容易为它供电。 此外,您可以在250 Kbps,1Mbps和最高2Mbps之间配置传输速度。
发射和接收中的芯片可以与 最多6个连接 各种设备。 这样,您就可以毫无问题地从不同的点进行广播或接收。 而且,如果您担心通信的鲁棒性或可靠性,则芯片本身具有逻辑电路,可以纠正数据错误并在必要时转发信息。 因此,它将处理器从此任务中解放出来。
要控制它,您可以使用 SPI总线,因此使用Arduino进行控制非常简单。 此外,NRF24L01的数据引脚最高可支持5v电压。 待机状态下的功耗非常低,因此不必担心,并且在运行时也不是最昂贵的一项,因为它仅需要15mA的数据即可发送和接收数据。
在市场上,您会发现几个 安装NRF24L01芯片的不同模块,它们只会更改其具有的辅助元素或某些细节。 例如天线类型。 有些天线以锯齿形的形状印刷在PCB上,其范围约为20至30米。 其他人则承认,带有放大器的外置天线的功能要强一些,可以从700米延伸到1公里。
然而, 实际范围受某些因素限制,例如道路障碍物,存在的噪音或来自其他元素或信号的干扰,传输速度,电源电压(更高的电压,更大的距离)等。 例如,如果您要以2Mbps的最大速度进行传输,则距离的损失将很大,最大距离仅为2米或3米。 在较低的速度下,您可能可以爬升该距离。
购买之前,您需要了解什么?
El NRF24L01是非常便宜的芯片 可用于多种项目。 例如,如果您没有外部天线,则可以以0.65欧元的价格购买,外部天线的型号比该型号贵一些,但它仍然非常便宜,通常不超过1.7欧元。
如果没有其他发射或接收元件,则您已经知道必须购买两个NRF24L01模块,一个模块要在要传输的一侧使用,另一侧要在要传输的另一侧使用。 他们俩都会像 发件人或收件人 随你心意。
NRF24L01的引脚排列和安装
至于组装,这很简单。 这 NRF24L01具有8个引脚,因此其引脚排列非常简单 了解您如何在这张图片中看到我离开了您。 在右侧,您可以看到电路板的引脚图 Arduino UNO 以及每个模块的引脚如何连接到它。
可以推断,盘子 NRF24L01使用GND和3.3v引脚供电 来自Arduino。 切记不要对5v信号进行此操作,否则会损坏模块。
与Arduino集成
了解NRF24L01是什么以及如何连接和供电后,除了可以使用几个这类廉价设备进行的项目数量外,接下来的事情是展示 一个编程例子 因此您可以开始尝试使用Arduino IDE。 请记住,可以在源代码中修改可以传输的数据格式。
您可以选择发送和接收字符串,整数,浮点数据等。 我推荐你 我们的Arduino编程指南 如果您开始。 有了它,您可以创建您的第一个项目。 作为NRF24L01的具体示例,在此我留给您 字符串所需的代码.
您必须在Arduino IDE中编写的代码并对连接到要分配为的NRF24L01的Arduino板进行编程 发射机:
#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); }
在这里,您必须输入Arduino IDE并在板上连接到专用NRF24L01的代码记录为 接收器:
#include <nRF24L01.h>
#include ;
#include ;
#include ;
常量 int pinCE = 9;
常量 int pinCSN = 10;
RF24无线电(pinCE,pinCSN);
// 2个节点进行通信的单个无线电管道地址。
const uint64_t管道= 0xE8E8F0F0E1LL;
字符数据[16];
无效设置(无效)
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,管道);
radio.startListening();
}
无效循环(无效)
{
如果(radio.available())
{
完成完成= radio.read(数据,数据大小);
Serial.println(数据);
}
}
接着就,随即 您将拥有所需的一切,并且可以尝试发送其中一个的单词或文本字符串,并查看另一个如何接收它们。 使用通过USB连接到Arduino板的两台计算机,将控制台用作查看数据的一种方式。 根据您拥有的模块或给定的配置,将它们分开谨慎的距离,您将开始在另一台计算机的屏幕上看到在第一个代码中输入的字符...
你好艾萨克
我想用arduino,rasberry或其他东西完成一个项目。
您可以给我们的电子邮件联系人进行解释吗?
一个地雷- a01b02@abv.bg
谢谢