在这篇文章中,我们将构建无线办公室呼叫铃,它可以用来呼叫6个不同的人员,从头/老板的办公桌或一些其他呼叫铃类型的有趣项目为您的家。
使用nRF24L01 2.4 GHz模块
我们将使用Arduino和nRF24L01 2.4 GHz模块构建一个简单的无线呼叫铃,它可以在您的家庭或办公室工作,而不会出现任何打嗝或覆盖问题。
建议的电路可以从一个5V的智能手机适配器或任何便宜的5V适配器供电,使您的电路活,并准备好听到您的呼叫。
让我们来概述一下nRF24L01 2.4 GHz模块.
上述芯片称为nRF24L01模块。它是一个双工(双向)通信电路板设计的微控制器和单板计算机,如树莓派。
它使用的是ISM频段(工业、科学、医疗频段)的2.4 GHz频率,与Wi-Fi通信使用的频率相同。
它可以以2Mbps的速率传输或接收数据,但在本项目中,由于较低的数据需求,传输和接收被限制在250kbps,降低数据速率将导致整体范围的增加。
在峰值数据传输时仅消耗12.3 mA,对电池非常友好。它利用SPI协议与单片机进行通信。
它的发射/接收距离为100米,中间没有障碍物,距离约为30米,中间有一些障碍物。
你可以在流行的电子商务网站上找到这个模块,也可以在你当地的电子商店找到。
注意:模块可以工作在1.9到3.6V, Arduino上的板上调节器可以为模块提供3.3V。如果将nRF24L01的Vcc端子连接到Arduino输出的5V上,会导致模块故障。所以一定要小心。
以上是对nRF24L01模块的简要介绍。
让我们来看看电路图的细节:
遥控电路:
远程将与老板或办公室主管。
遥控器由Arduino nano组成;顺便说一下,你可以使用任何Arduino板,6个按钮,用于按响6个不同的接收器,nRF24L01模块和一个LED来确认按钮的按下。
你可以使用9V电池或5V适配器供电。为了防止电池电量不足,你应该在通话后关闭这个遥控器。
现在让我们看看代码。在此之前,您需要下载库文件,然后编译代码。
链接:github.com/nRF24/RF24.git
为远程代码:
// ---------由R.GIRISH开发的程序/自制电路。com -------//
# include < RF24.h >
# include < SPI.h >
RF24电台(9、10);
Const byte address_1[6] = "00001";
Const字节address_2[6] = "00002";
Const字节address_3[6] = "00003";
Const byte address_4[6] = "00004";
Const byte address_5[6] = "00005";
Const byte address_6[6] = "00006";
const int input_1 = A0;
const int input_2 = A1;
const int input_3 = A2;
const int input_4 = A3;
const int input_5 = A4;
const int input_6 = A5;
const int LED = 2;
Const char text[] = "调用";
无效的设置()
{
pinMode (input_1、输入);
pinMode (input_2、输入);
pinMode (input_3、输入);
pinMode (input_4、输入);
pinMode (input_5、输入);
pinMode (input_6、输入);
pinMode(领导、输出);
digitalWrite (input_1、高);
digitalWrite (input_2、高);
digitalWrite (input_3、高);
digitalWrite (input_4、高);
digitalWrite (input_5、高);
digitalWrite (input_6、高);
radio.begin ();
radio.setChannel (100);
radio.setDataRate (RF24_250KBPS);
radio.setPALevel (RF24_PA_MAX);
radio.stopListening ();
}
无效循环()
{
if (digitalRead(input_1) == LOW)
{
radio.openWritingPipe (address_1);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
if (digitalRead(input_2) == LOW)
{
radio.openWritingPipe (address_2);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
if (digitalRead(input_3) == LOW)
{
radio.openWritingPipe (address_3);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
if (digitalRead(input_4) == LOW)
{
radio.openWritingPipe (address_4);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
if (digitalRead(input_5) == LOW)
{
radio.openWritingPipe (address_5);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
if (digitalRead(input_6) == LOW)
{
radio.openWritingPipe (address_6);
收音机。写(之外,sizeof(文本));
digitalWrite(领导、高);
延迟(400);
digitalWrite(领导、低);
}
}
// ---------由R.GIRISH开发的程序/自制电路。com -------//
这就是遥控/发射机。
现在我们来看看接收器。
接收电路:
注:您可以根据需要制作一个接收器或六个接收器。
接收机由Arduino板、nRF24L01模块和蜂鸣器组成。与遥控器不同的是,接收器应该从5V适配器供电,这样你就不会依赖电池,因为电池会在几天内耗尽。
现在让我们看看receiver的代码:
接收者的程序代码
// ---------由R.GIRISH开发的程序/自制电路。com -------//
# include < RF24.h >
# include < SPI.h >
RF24电台(9、10);
Const int蜂鸣器= 2;
Char text[32] = "";
// -------更改------- //
Const字节地址[6]= "00001";
// ------------- ------------ //
无效的设置()
{
Serial.begin (9600);
pinMode(蜂鸣器、输出);
radio.begin ();
收音机。openReadingPipe(0,地址);
radio.setChannel (100);
radio.setDataRate (RF24_250KBPS);
radio.setPALevel (RF24_PA_MAX);
radio.startListening ();
}
无效循环()
{
如果(radio.available ())
{
收音机。读(之外,sizeof(文本));
digitalWrite(蜂鸣器、高);
延迟(1000);
digitalWrite(蜂鸣器、低);
}
}
// ---------由R.GIRISH开发的程序/自制电路。com -------//
注意:
如果您打算为这个办公室呼叫铃系统构建多个接收器,那么您应该在后续的接收器构建中更改所提到的值并上传代码。
对于第一个接收方(无需更改任何内容):
// -------更改------- //
Const字节地址[6]= "00001";然后上传代码。
// ------------- ------------ //
第二个接球手(你必须换):
Const字节地址[6]= "00002";然后上传代码。
第三接球手(必须换):
Const字节地址[6]= "00003";然后上传代码。
等等……到“00006”或第六个接收器。
当你按遥控器上的“S1”键时,地址为“00001”的接收器会响应/嗡嗡作响。
当你按遥控器上的“S2”时,地址为“00002”的接收器会发出嗡嗡声。
等等……
这就是接收电路的细节。
如果你有更多的问题,请在评论区表达,我们会尽快给你回复
您好先生,我是来自尼日利亚的Gerald Aka。我的问题是,我可以做什么改变,使一个单一的接收器响应所有的地址,并根据收到的地址点亮六(6)led ?我问这个问题是因为我喜欢把这个设备当作我房子的开关,谢谢你的回复。
嗨,杰拉尔德,
请检查这个项目是否符合你的要求://m.addme-blog.com/24-ghz-10-channel-remote-control-switch/
问候
你好花哨,
我有一个问题。
你能帮我设计一个Arduino控制的LC谐振槽电路自动频率“检测和维护”电路吗?
本质上,我需要能够首先确定LC罐的自然谐振频率,然后再给整个电路供电。
某种类型的LC传感触点首先会“ping”LC元件,从而产生自然谐振频率。这个频率可以连接到Arduino的输入,这将产生适当的可变输出信号为10 k欧姆,8pdip数字电位器。数字罐的电阻输出将控制提供给罐的输入时钟电路。目前,这是完成了一个Bourne 10 k /10转,线绕壶。
系统,减去锅,将在12 VDC供电,锅在5 VDC供电。该系统将需要电路,以提高壶的输出回到12 VDC。
你能而且愿意帮忙吗?
提前感谢你能帮助我完成这项任务。
你好,斯科特,
这是GR先生的邮箱号,你可以直接联系他:
girishisro7
@
gmail.com