教大家使用NRF24L01做一個無線遙控開關,遠程控制很方便!

2021-02-14 創客e工坊

大家好,我是阿樂,今天教大家做一個無線遙控開關。

如下圖:

我想要實現的功能是,遙控端輸出一個高電平或者低電平,接收端也能同時輸出一個高電平或者低電平,這樣就能隔空控制很多東西,也不用拉線布線。

手頭正好有2.4G模塊,型號是NRF24L01,那我們就用它來實現。這個模塊也不算貴,如下圖:

這種外接膠棒天線帶PA放大的也就十塊錢左右,號稱距離可達1100米,當然實際我也沒去試過。

然後更常見更便宜的是板載天線的,體積也更小,價格也就四五塊錢,非常值得入手玩玩。實物如下圖:

今天我以這個外接膠棒天線帶PA放大的NRF24L01作為例子來給大家講解。先來講講它的引腳,把它反過來,令光滑沒有元器件的一面對著我們,這面就是背面,它的正面有密密麻麻的小小個的元器件。示意圖如下:

將模塊翻過來,看到它的背面,它有兩排排針,如下圖:

最上面兩個排針,左邊是電源輸入引腳,可輸入3V-3.6V的直流電,推薦是用3.3V。過來右邊是電源地,GND,是電源負極。下來第二排兩個排針,左邊是CSN,右邊是CE。下來第三排兩個排針,左邊MOSI,右邊是SCK。最後一排兩個排針,左邊是IRQ,右邊是MISO。

接下來給大家解釋一下這些引腳對應的功能:

CSN,它是Chip Select Not的縮寫,是接收端選擇引腳, Not代表低電平有效。

CE是Chip Enable的縮寫,是發射/接收狀態選擇引腳。

MOSI是Master Out Slave In的縮寫,主出從入,是控制端輸出,接收端輸入引腳,通常簡寫成MO。

SCK是Serial Clock的縮寫,是時鐘信號腳。

IRQ是Interrupt Request的縮寫,是中斷請求腳,今天我們不會用到這個腳。

MISO是Master In Slave Out的縮寫,主入從出,是控制端輸入,接收端輸出引腳,通常簡寫成MI。

單獨的這個NRF24L01模塊自己還不能完成通訊去收發數據,我們需要一個單片機通過編程給它設置,一個當做發射端,另一個當做接收端,這樣才能用來一對一通訊收發數據。當然它也可以用來設置一對多通訊。

這樣子的話我們就會需要兩個NRF24L01模塊,兩個單片機。單片機我用Arduino pro mini,如下圖:

上圖中的這個小東西,它相當於一個小開發板,用它來控制設置NRF24L01模塊,別人已經寫有很多庫了,我直接調用就可以,就不用去底層設置寄存器,不用什麼都親歷親為,可以省下很多時間,這對於初學者來說很容易上手,可以快速開發,這個就是用Arduino的好處。一會兒我們直接用別人寫好的庫,直接修改例程就得了。

好,看硬體連接,我簡單畫了個接線圖,如下圖:

Arduino和NRF24L01模塊的連線,無論發射端還是接收端都是這樣連。

看到下面發射端的接線圖:

在發射端我增加了一個按鍵,當按鍵沒按下時,Arduino的D3號腳檢測到的是低電平,因為直接接一個10K電阻到負極了嘛,所以是0。當按鍵按下時,接通5V的直流電到D3號埠,D3號埠又對地接一個10K電阻,所以在埠這裡得到的是高電平,是1。

好,看接收端,如下圖:

我在接收端的Arduino D3號腳接了一個4.7K歐姆的電阻和8550三極體,用來驅動蜂鳴器。當我們從D3給一個低電平的時候,蜂鳴器就會響起來,蜂鳴器負極的100Ω的電阻是限流電阻。

接下來講一下編程思路:當發射端檢測到我按下這個按鍵時,也就是檢測到一個高電平時,就把這個高電平的數據發送到接收端,接收端接收到這個高電平的數據後就輸出一個低電平,驅動蜂鳴器響起來,否則輸出一個高電平,蜂鳴器不響。在這裡不詳細講2.4G模塊的具體設置方式,我只講整體程序的實現過程。

在開始編程前我們需要下載一個庫,就是別人編好的函數與例程,到時候方便我們直接調用。這個庫可以自己到github去下載,也可以私聊我要,庫名稱是RF24-master,下好後把它丟到我們安裝Arduino這個軟體的根目錄下的libraries文件夾中就可以了。

好,看程序,下圖是發射端的程序:

紅色方框1中#include是我們要引用的程序庫,把它們包含進來。紅色橫線2是定義Arduino3號引腳把它命名為buttonPin,後面當出現buttonPin的地方說明是要控制3號引腳。往下,紅色橫線3是定義一個整型變量buttonState,用來存放按鍵的鍵值。

看到下面這張圖片:

紅色橫線1的語句是把7腳設置為CE腳, 8腳設置為CSN腳。紅色橫線2是設置通訊通道地址00001,接下來紅色方框中的是初始化函數,先設置3腳為輸入引腳,啟動nRF24模組,設定通道地址。在這裡多說幾句,nRF24L01模塊在2.4GHz~2.525GHz這個頻帶上,在這個頻帶上劃分了0-125個頻道,我們通過程序可以自由設定使用的頻道,只要發射端和接收端所處的頻道相同就可以了。然後每個頻道內可容納6個通道(pipe),每個通道可對應一個發射器;一個接收器可接收來自6個發射器的訊號。一個頻道內,至少要有一個發射器和一個接收器,才能連線通訊。發射器可以位於0-5任一通道,並且指定一個唯一的地址值。接下來是設定廣播功率,設置功率為RF24_PA_MIN,然後停止偵聽,就是設定成發射模式。

如上截圖,在循環函數中,讀取3號腳的狀態,使用radio.write()函數將數據發送出去。發射端的完整程序就是這樣,內容並不多。驗證一下,沒問題後選好板子的對應型號,選埠,上傳就完成發射端的程序寫入。

接下來講講接收端的函數,如下圖:

前面的設置基本是一樣的,不同的是接收端定義3號腳是用來控制蜂鳴器,同樣也定義一個整型變量buttonState,用來存放收到的按鍵的鍵值。這裡設置引腳和通道地址跟前面一樣的,發射端和接收端必須處於同一地址。

如上截圖,在初始化函數中,將3腳設置為輸出引腳,將3腳置為高電平,啟動NRF24模組,設定通道地址,設定廣播功率。

如上截圖,在循環函數中,開始監聽無線廣播,檢查是否有可用的數據傳輸過來,當有數據可用時,我們將讀取它,將其保存到buttonState中去,if函數判斷,如果發射端按下按鍵了,則輸出低電平,驅動蜂鳴器響起;否則,如果發射端沒有按下按鍵,則保持高電平,蜂鳴器不響。這就是接收端的整個程序,也驗證一下,沒問題後選好板子的對應型號,選埠,上傳就完成了。

最後看一下演示效果圖:

在室內測試,信號傳輸穩定,通訊效果很好;在室外休閒公園裡測試,以發射端為圓心,在大概800米空曠(有一些樹和景觀石的遮擋)的半徑內,信號傳輸依舊穩定,通訊效果也很好,更遠的距離沒去測試過。

最後附上詳細視頻教程:

好的,我製作這個無線傳輸開關的作用可不是為了遙控這個蜂鳴器而已,我是想把語音識別模塊和這個結合起來,對家裡的家電進行遠程無線遙控,這樣我們離智能生活豈不是又更近了一步?

好啦,本期教程就講這麼多,我們下期再見,拜拜!

相關焦點

  • 做一個遙控開關控制家電,實用電子製作
    大家好,今天來學習315/433M頻無線收發模塊RXC6,教大家做一個遙控開關,用來控制家電,非常實用。先來看實物模塊長啥樣:這是模塊的正面圖我們將T2焊上,將模塊的輸出方式改為自鎖,接下來DIY一個無線遙控開關。
  • T69-2(220V)二路遙控開關
    當發現遙控器距離變短或者遙控器指示燈變暗請更換遙控器電池.使用很靈活,客戶可以根據自己的需要來跳線,接線.有一個安裝外殼,方便安裝.******************************************* 單路遙控開關(12V) T69A出廠價18元
  • 五款自製遙控開關電路
    遙控開關分發射(遙控器)和接收(開關)兩部分,發射器把控制電信號編碼,然後調製(紅外調製,電磁波調製和網絡數據信號調製),轉換成無線信號發送出去;接收原理:收到載有信息的無線電波信號,然後放大、解碼,得到原先的控制電信號,將電信號再進行功率放大用來驅動相關的電氣元件(可控矽、繼電器和莫斯管)。本文主要介紹了五種自製遙控開關電路。
  • 航模遙控開關電路圖大全
    超再生檢波的調試方法是用800Ω的高阻耳機串聯一個10uF電容器跨接在VT2的發射極與集電極之間,用無感起子細調電位器RP2及線圈L3的磁芯,直至耳機中有明顯響亮的「沙沙」聲為止。下一步將發射機天線靠近接收機,接通通控開關S,微調發射機和接收機中線圈的磁芯,直至耳機中能聽到清晰的工頻聲為止,然後拉開兩機距離,再進一步細調。其餘電路無須調試,一般裝好後即可正常工作。
  • 防噴器遠程控制裝置
    使用硬管線連接,具有安全、可靠等優點,缺點是安裝布置不方便。軟管線連接具有簡單、方便等優點,但使用中應注意其安全性。氣控液型控制裝置的工作過程可分為液壓能源的製備;儲存和補充壓力油的調節與其流動方向的控制;氣壓遙控三部分。
  • Arduino + 3D列印製造無線遙控汽艇
    》,由水下螺旋槳驅動,而遙控是使用手機通過 WIFI 實現。下面給大家介紹另一款遙控汽艇,基於 Arduino 製造。不同的是這艘船採用水上的風力驅動,遙控部分使用 NRF24L01 無線模塊實現,無需依賴手機,同樣樂趣多多!材料清單
  • 【學習筆記】智能家居(12):家電遙控器控制多門電源開關電路設計
    1 電路組成及各模塊的功能       本電子產品由家電紅外線遙控器、主機無線遙控電路和各路被無線遙控控制的電源開關3個模塊組成。其中模塊一主要用來發送要控制的各門開關的紅外線信號;模塊二主要由紅外線信號接收電路、單片機最小系統與外部存儲器電路、無線遙控發射電路組成,用來接收紅外線遙控器發送過來的信號並進行解密,再重新編碼以無線電信號發送給對應控制開關;模塊三主要由無線接收電路和繼電器電路組成,用來接收無線信號並進行解碼,將信號送給繼電器動作,使電源插座得電或斷電來控制相應家用電器。 其結構如圖1所示。
  • 【光之韻】尚慧:智能開關,你的生活
    觸控螢幕開關的安裝,接線與普通機械開關完全相同,可適用於各種類型的各種燈具,並帶有背光功能。【無線智能開關有哪些功能特點?】1、安裝方便——標準86式牆壁開關外型設計,不需接零線,不需對燈具改動任何接配件,可直接替換原有牆壁開關。
  • 無線麥克使用常識
    演出前20分鐘換新鹼性電池,演出前10分鐘在次檢查無線話筒電池指示是滿電,防止不合格電池。 在演出中更換電池時應方便、快速、簡單。這裡需要說明一點,如果利用關閉通道推子的方法更換電池則較為煩瑣,在演唱中一般話筒都加有效果處理聲,如果一個話筒使用時,另一個無線話筒需更換電池,這時如果關閉該通道推子,則同時還應相應關閉用於混響、延時的輔助通道電位器,如果忘記關閉輔助通道電位器,更換電池時形狀無線話筒發射機的電源衝擊聲就會從輔助通道經效果器輸出至混頻,直接影響音響效果;再者,如果更換電池後漏開輔助電位器也會出現沒有效果聲而影響音響效果
  • WiFi遠程遙控3D印表機玩過沒?
    WiFi遠程遙控3D印表機玩過沒?桌面3D印表機生產商Zortrax發布了新版M200 3D印表機,它可以連接WiFi,配置新型擠出機設計,還能為新材料提供支撐。 把WiFi和乙太網連接到3D印表機上之後,用戶可以遠程遙控3D列印工作。藉助Zortrax的Z-SUITE軟體應用,用戶可以通過印表機上的攝像頭,近距離觀察列印過程。
  • 無線話筒使用技巧
    三、怎樣在演出中途更換電池在演出中更換電池時應方便、快速、簡單。這裡需要說明一點,如果利用關閉通道推子的方法更換電池則較為煩瑣,在演唱中一般話筒都加有效果處理聲,如果一個話筒使用時,另一個無線話筒需更換電池,這時如果關閉該通道推子,則同時還應相應關閉用於混響、延時的輔助通道電位器,如果忘記關閉輔助通道電位器,更換電池時形狀無線話筒發射機的電源衝擊聲就會從輔助通道經效果器輸出至混頻,直接影響音響效果;再者,如果更換電池後漏開輔助電位器也會出現沒有效果聲而影響音響效果
  • 無線通信SCADA系統的簡介與設計
    監控中心又稱主站,是SCADA系統的核心,負責控制管理整個系統的運行;RTU又稱外圍站點,是採用微處理器或DSP的可獨立運行的智能測控模塊,完成各種遠端現場數據的採集與處理、現場執行機構的控制以及與遠程控制中心的通信,具有易擴展性和易維護性特點;通信介質根據實際需求和應用對象的不同有多種實現方式,下面稍作分析。  2 通信介質的選取  數據傳輸介質分為有線和無線兩類。
  • GnuRadio Hacking ①:使用GnuRadio+SDR破解固定碼無線遙控
    *Author:雪碧0xroot @漏洞盒子安全團隊    0×01 信號捕獲在這篇文章中,我們將使用GnuRadio+SDR硬體對某品牌型號的無線跳蛋進行無線重放攻擊的演示
  • 水塔全自動無線上水控制器
    系統簡介:無線水塔全自動上水控制器採用遠距離無線數傳系統控制,由安裝在水塔上的水位信號發射器與安裝在泵房的接收控制器兩部分組成,水塔內的液位浮球開關根據水塔水位將開泵和停泵的2個信號提供給遙控發射器,經無線傳輸至泵房的接收控制器,泵房的接收控制器收到信號後經處理後由繼電器輸出
  • 如何設置DJI無線跟焦器
    DJI Focus,DJI最新的高端無線跟焦器看起來像是許多有理想的電影製作者和那些之前使用過大疆無人機和平衡器並想要利用遠程遙控來控制他們攝影機的航拍攝影師們的最佳選擇
  • 無線話筒的正確使用技巧方法
    三、怎樣在演出中途更換電池在演出中更換電池時應方便、快速、簡單。這裡需要說明一點,如果利用關閉通道推子的方法更換電池則較為煩瑣,在演唱中一般話筒都加有效果處理聲,如果一個話筒使用時,另一個無線話筒需更換電池,這時如果關閉該通道推子,則同時還應相應關閉用於混響、延時的輔助通道電位器,如果忘記關閉輔助通道電位器,更換電池時形狀無線話筒發射機的電源衝擊聲就會從輔助通道經效果器輸出至混頻,直接影響音響效果;再者,如果更換電池後漏開輔助電位器也會出現沒有效果聲而影響音響效果
  • 遙控農業採摘機器人設計
    通過人工現場觀察判斷,使用無線遙控遠程控制機器人動作。這種方式現有技術比較成熟,使得機器人研發周期縮短,造價成本低,雖然不能夠完全代替人勞動,但能夠降低人的勞動強度,對於目前中國農業的水平,能夠更好的普及。
  • macbook雙系統安裝-【技術在線】重裝遠程優化藍屏卡頓問題虛擬機
    一對一遠程維修,服務認真有耐心1macbook雙系統安裝-專業団隊方便快捷,普通電腦蘋果電腦系統卡頓,驅動安裝藍屏死機便捷,電腦加速藍屏死機,文檔去失上網異常,驅動安裝沒有聲音2macbook雙系統安裝-Win10Win7專業版快速?
  • 第一人稱視角(FPV)遙控履帶車
    ,《Arduino 遙控汽艇》和《WIFI 遙控螺旋槳船》。控制部分採用 Arduino,實現了 FPV(第一人稱主視角)攝像頭技術。材料清單履帶車組件:Arduino Uno × 1L298N 電動機驅動器 × 1鋰電池 × 3TT 馬達 × 2SG90 伺服電機 × 1帶天線的 NRF24L01 無線收發器模塊 × 1FPV 攝像頭 × 1撥動開關 × 2跳線 × 若干M3 十字盤頭螺釘 × 4
  • SOCOMEC型雙電源開關控制模塊選型
    目前國內PC級雙電源開關主要有電機驅動隔離型和電磁式驅動型兩大類。今天小編給大家介紹幾款適用於電機驅動隔離型SOCOMEC以及國內同類型雙電源開關的自動切換控制模塊。1、三種安裝方式:櫃內導軌安裝、櫃內螺絲安裝、面板式安裝;2、櫃內接線距離短,安裝方便;3、具有過壓、欠壓、過頻、欠頻、缺相、逆相序檢測功能; 4、面板 LED 可清楚顯示 ATS 工作狀態;5、可實現一路主用、二路主用、自投自復、自投不自復。