在這篇文章中,我們將構(gòu)建無線辦公室呼叫鈴,可用于從主管/老板的辦公桌或其他一些呼叫鈴類型的有趣項(xiàng)目中呼叫6個(gè)不同的人員。
使用 nRF24L01 2.4 GHz 模塊
我們將使用 Arduino 和 nRF24L01 2.4 GHz模塊構(gòu)建一個(gè)簡(jiǎn)單的無線呼叫鈴,它可以在您的家中或辦公室周圍工作,而不會(huì)出現(xiàn)任何打嗝或覆蓋問題。
建議的電路可以由5V智能手機(jī)適配器或任何廉價(jià)的5V適配器供電,使您的電路保持活力并準(zhǔn)備好聽到您的呼叫。
nRF24L01模塊利用2.4 GHz頻率,這是ISM頻段(工業(yè),科學(xué)和醫(yī)療頻段),它與Wi-Fi通信中使用的頻率相同。
它可以以2Mbps的速率發(fā)送或接收數(shù)據(jù),但在此項(xiàng)目中,由于數(shù)據(jù)要求較低,傳輸和接收限制為250 Kbps,降低數(shù)據(jù)速率將導(dǎo)致整體范圍增加。
它在峰值數(shù)據(jù)傳輸時(shí)僅消耗12.3 mA,這使得電池設(shè)備友好。它利用SPI協(xié)議與微控制器通信。
它的發(fā)射/接收范圍為100米,中間沒有障礙物,約30米范圍有一些障礙物。
您可以在流行的電子商務(wù)網(wǎng)站上找到此模塊,也可以在當(dāng)?shù)氐?a target="_blank">電子產(chǎn)品商店找到。
注意:該模塊可以在1.9至3.6V范圍內(nèi)工作,Arduino上的板載穩(wěn)壓器可以為模塊提供3.3V。如果將 nRF24L01 的 Vcc 端子連接到
Arduino 輸出的 5V,這將導(dǎo)致模塊故障。所以必須小心。
以上是對(duì) nRF24L01 模塊的簡(jiǎn)要介紹。
讓我們研究電路圖的細(xì)節(jié):
遙控器電路:
遠(yuǎn)程將與老板或辦公室負(fù)責(zé)人在一起。
遙控器由Arduino納米組成;順便說一下,您可以使用任何 Arduino 板、6 個(gè)用于振鈴六個(gè)不同接收器的按鈕、nRF24L01
模塊和一個(gè)用于確認(rèn)按下按鈕的 LED。
您可以使用 9V 電池或 5V 適配器為其供電。如果有電池,您應(yīng)該在通話后關(guān)閉此遙控器。
現(xiàn)在讓我們看一下代碼。
遠(yuǎn)程代碼:
// --------- Program Developed by R.GIRISH / homemade-circuits. com
-------//
#include 《RF24.h》
#include《SPI.h》
RF24 radio(9, 10);
const byte address_1[6] = “00001”;
const byte address_2[6] = “00002”;
const byte 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[] = “call”;
void setup()
{
pinMode(input_1, INPUT);
pinMode(input_2, INPUT);
pinMode(input_3, INPUT);
pinMode(input_4, INPUT);
pinMode(input_5, INPUT);
pinMode(input_6, INPUT);
pinMode(LED, OUTPUT);
digitalWrite(input_1, HIGH);
digitalWrite(input_2, HIGH);
digitalWrite(input_3, HIGH);
digitalWrite(input_4, HIGH);
digitalWrite(input_5, HIGH);
digitalWrite(input_6, HIGH);
radio.begin();
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop()
{
if (digitalRead(input_1) == LOW)
{
radio.openWritingPipe(address_1);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
if (digitalRead(input_2) == LOW)
{
radio.openWritingPipe(address_2);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
if (digitalRead(input_3) == LOW)
{
radio.openWritingPipe(address_3);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
if (digitalRead(input_4) == LOW)
{
radio.openWritingPipe(address_4);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
if (digitalRead(input_5) == LOW)
{
radio.openWritingPipe(address_5);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
if (digitalRead(input_6) == LOW)
{
radio.openWritingPipe(address_6);
radio.write(&text, sizeof(text));
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
}
}
// --------- Program Developed by R.GIRISH / homemade-circuits. com
-------//
遙控器/發(fā)射器到此結(jié)束。
現(xiàn)在讓我們看一下接收器。
接收器電路:
注意:您可以根據(jù)需要制作一個(gè)接收器或六個(gè)接收器。
接收器由Arduino板,nRF24L01模塊和一個(gè)蜂鳴器組成。與遙控器不同,接收器應(yīng)由 5V
適配器供電,這樣您就不會(huì)依賴會(huì)在幾天內(nèi)耗盡的電池。
現(xiàn)在讓我們看一下接收器的代碼:
接收器的程序代碼
// --------- Program Developed by R.GIRISH / homemade-circuits. com
-------//
#include 《RF24.h》
#include《SPI.h》
RF24 radio(9, 10);
const int buzzer = 2;
char text[32] = “”;
// ------- Change this ------- //
const byte address[6] = “00001”;
// ------------- ------------ //
void setup()
{
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
radio.begin();
radio.openReadingPipe(0, address);
radio.setChannel(100);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
}
void loop()
{
if (radio.available())
{
radio.read(&text, sizeof(text));
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
}
}
// --------- Program Developed by R.GIRISH / homemade-circuits. com
-------//
注意:
如果您要為此辦公室呼叫鈴系統(tǒng)構(gòu)建多個(gè)接收器,則應(yīng)在連續(xù)的接收器構(gòu)建中更改提到的值并上傳代碼。
對(duì)于第一個(gè)接收器(無需更改任何內(nèi)容):
------- 更改此------- //
const 字節(jié)地址[6] = “00001”;并上傳代碼。
// ------------- ------------ //
對(duì)于第二個(gè)接收器(您必須更改):
const 字節(jié)地址 [6] = “00002”;并上傳代碼。
對(duì)于第三個(gè)接收器(您必須更改):
const 字節(jié)地址 [6] = “00003”;并上傳代碼。
等等。。。直到“00006”或第六個(gè)接收器。
當(dāng)您按遙控器上的“S1”時(shí),地址為“00001”的接收器將響應(yīng)/嗡嗡聲。
當(dāng)您按遙控器上的“S2”時(shí),地址為“00002”的接收器將響應(yīng)/嗡嗡聲。
等等。..
接收器電路的細(xì)節(jié)到此結(jié)束。
-
無線
+關(guān)注
關(guān)注
31文章
5450瀏覽量
173238 -
nRF24L01
+關(guān)注
關(guān)注
17文章
330瀏覽量
69459 -
Arduino
+關(guān)注
關(guān)注
188文章
6468瀏覽量
186951
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論