国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何快速搭建遠程控制燈LoRa智能燈控(51單片機篇)?

AIoT行業洞察 ? 來源:AIoT行業洞察 ? 作者:AIoT行業洞察 ? 2025-09-09 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

文章目錄

一、概述

二、接線

三、燒錄(測試程序)

四、AT指令

五、通信測試

六、遠程燈控(開關)

七、遠程燈控(指定設備)

01、概述

安信可 LoRa 系列模塊,用于超長距離擴頻通信,抗干擾性強,能夠最大限度降低電流消耗,高靈敏度,傳輸距離遠,可靠性高。(以下教程以安信可Ra-01Ra-01HRa-02為例)

02、接線

如下是Ra-01,Ra-01H,Ra-02對應51測試板的接線:

(LoRa模塊上的8線分別與測試板上的,如下圖所示)

LoRa模塊 MCU
NSS CSN
MOSI MOSI
MISO MISO
SCK SCK
RESET CE
DIO0 IRQ
3.3V VCC
GND GND

03、燒錄(測試程序)

(本測試程序是使用51系列的單片機開發的,僅提供測試參考用于驗證模塊的性能與良好,如需在此程序上進行二次開發,則不提供源碼編寫支持)

示例固件燒錄

示例固件下載地址(https://docs.ai-thinker.com/lora)

測試板燒錄方法

●用串口工具連接51測試板RX,TX,GND,連接方法如下圖所示(燒錄時請對應相應的單片機型號,此程序對應的單片機為為安信可提供的STC15W408AS型號)。

wKgZPGi_3j2AMqydAABDTN4f7x8487.jpg

●軟件下載請到官網上(http://www.stcmcu.com/)下載

●打開STC-ISP工具,點擊檢測MCU選項,模塊會自動完成軟件配置

●點擊“打開程序文件”,選擇MCU的Hex固件,注意輸入用戶程序運行時的IRC頻為22.1184MHz

●點擊下載編程后工具會將所選擇的固件燒錄到單片機里,此時完成下載(注:如果點擊監測和下載工具界面無反應,那么請嘗試點擊以后進行一次復位啟動)

wKgZO2i_3j2AS2miAAJMQzrHX1Q946.jpg

示例固件測試

固件下載完成后,請重新復位測試板。

插上LoRa轉接板,此測試必須要兩塊測試板,一塊用來發送,另外一塊用來接收。

當模塊上電時不做任何操作,則LoRa模塊進入接收模式。當其中一個測試板按下按鍵,模塊進入發送模式,模塊右邊的燈會亮起,另外一個模塊處于接收模塊,如果收到數據,左邊的燈會閃爍。

wKgZPGi_3j6AULMtAABqq313ZDo541.jpg

按照如圖所示,在測試板上接入USB轉TTL工具,打開串口可以收到模塊發送的打印信息

04、AT指令

(本次測試基本參數均為出廠默認參數,均采用Ra-06的出廠固件,在測試串口時,需配置串口默認波特率9600,偶校驗才能進行數據收發和AT指令測試)

AT 指令采用基于 ASCII 碼的命令行,命令格式如下:

請求消息格式為:AT+[OPTION][para, …][r][n]。可以不加換行符(rn)!

AT指令分為如下幾塊:

(1)基本執行指令

(2)系統參數設置指令

(3)LoRa參數配置設置指令

(4)數據傳輸格式指令

詳細的指令語法以及參數調配請參照如下鏈接中的AT指令文檔:

https://docs.ai-thinker.com/_media/ra-06_at_command-20191104.pdf

05、通信測試

(本次測試基本參數均為出廠默認參數,均采用Ra-06的出廠固件,在測試串口時,需配置串口默認波特率9600,偶校驗才能進行數據收發和AT指令測試,測試時請加裝符合規格參數的天線,否則可能導致數據傳輸錯誤或者無法通信)

點對點通信

步驟一(主機):

AT+ADDR=2 //設置本機主機地址為2

AT+TADDR=3 //設置目標地址為3

步驟二(節點1):

AT+ADDR=3 //設置本機主機地址為2

AT+TADDR=1 //設置目標地址為1

AT+RECV=1 //接收數據

步驟三(主機):

AT+MSG=Ai-Tinker //主機發送數據

wKgZO2i_3j6AFy-ZAAGjvhC23Mc430.jpg

一對多廣播通信測試示例

步驟一(主機):

AT+ADDR=1 //設置本機主機地址為1

AT+TADDR=65535 //設置目標地址為廣播地址

步驟二(節點1):

AT+ADDR=2 //設置本機主機地址為2

AT+TADDR=1 //設置目標地址為1

AT+RECV=1 //接收數據

步驟三(節點2):

AT+ADDR=3 //設置本機主機地址為2

AT+TADDR=1 //設置目標地址為1

AT+RECV=1 //接收數據

步驟四(主機):

AT+MSG=1234567890 //主機發送數據

wKgZPGi_3j-ASfRJAAKZKYg40Ts328.jpg

06、遠程燈控(開關)

來深度解析一下Lora在照明設備中的應用原理。做過或者接觸過物聯網設備開發的朋友應該比較清楚,無線模塊在這個行業中所占的比重,無線控制其實就是A端發送一個信號,B端收到以后做出相應動作的一個過程。

設備組成

今天用的設備比較簡單,就是入門級的STC主控MCU,2個含SX1278芯片的Ra-01模塊,2根彈簧天線。

安信可淘寶店是默認一個Ra-01模組配送一根433MHz彈簧天線的,很方便。 推薦bug一個!另外生成的HEX文件,用串口燒錄。

遠程燈控(開關)

原理分析

目前手上有兩個同樣的設備,燒錄同樣的程序,程序運行在MCU中,通過外接的SPI驅動Ra-01射頻模塊發射和接收數據,接收端接收到這個數據做出響應,實現一個遠程控制燈開和關的方案。

基本通信

首先需要兩個模組間能夠進行通信,代碼中需要編輯發射機以及接收機;

這里定義出接收機和發送機的邏輯代碼,完成發送和接收,這部分直接放在了主函數中了,可以把它放在單獨文件中這樣就便于觀察條理了。

else {
			P32 = 1;
			RF_EX0_STATUS = SX1276ReadBuffer( REG_LR_IRQFLAGS);
if (RF_EX0_STATUS > 0) {
if ((RF_EX0_STATUS & 0x40) == 0x40) {
					CRC_Value = SX1276ReadBuffer( REG_LR_MODEMCONFIG2);
if (CRC_Value & 0x04 == 0x04) {
						SX1276WriteBuffer(REG_LR_FIFOADDRPTR, 0x00);
						SX1278_RLEN = SX1276ReadBuffer(REG_LR_NBRXBYTES);
						lpTypefunc.lpSwitchEnStatus(enOpen);
						lpTypefunc.lpByteWritefunc(0x00);
for (RF_REC_RLEN_i = 0; RF_REC_RLEN_i < SX1278_RLEN;RF_REC_RLEN_i++) {
recv[RF_REC_RLEN_i] = lpTypefunc.lpByteReadfunc();
						}
						lpTypefunc.lpSwitchEnStatus(enClose);
recv[RF_REC_RLEN_i] = '';
						RF_RECEIVE();						
						uartSendString(recv);
						P17 = 0;
					}
				} 
else if ((RF_EX0_STATUS & 0x04) == 0x04) {
if ((RF_EX0_STATUS & 0x01) == 0x01) { //表示CAD 檢測到擴頻信號 模塊進入了接收狀態來接收數據
						SX1276LoRaSetOpMode(Stdby_mode);
						SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value); //打開發送中斷
						SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
						SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X02);
						SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
						SX1276LoRaSetOpMode(Receiver_mode);
					} 
else {                          
						SX1276LoRaSetOpMode(Stdby_mode);
						SX1276WriteBuffer(REG_LR_IRQFLAGSMASK,IRQN_SEELP_Value);   //打開發送中斷
						SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X00);
						SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0X00);
						SX1276LoRaSetOpMode(Sleep_mode);
//PA_SEELP_OUT();
					}
				}
else {
					SX1276LoRaSetOpMode(Stdby_mode);
					SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value);  //打開發送中斷
					SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
					SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0x02);
					SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
					SX1276LoRaSetOpMode(Receiver_mode);
				}
				RF_REC_RLEN_i = 0;
				SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
				Delay1s(300);
			} else {
				P17 = 1;
			}
		}

編輯通信內容代碼

定義兩組通信,分別為內容分別為1和2,這個對應后面邏輯中的兩個按鍵。

SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
FUN_RF_SENDPACKET("1",1);
Delay1s(1000);
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);

SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
FUN_RF_SENDPACKET("2",1);
Delay1s(1000);
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);

應用層邏輯設計

如上所示,通信步驟就完成了,接下來就是觸發邏輯以及響應邏輯的應用層代碼了,這一部分需要結合應用設備功能來設計,硬件資源一共有10個LED和兩個按鍵,就以目前資源來來做一個按鍵控制燈的邏輯。

按照原理圖定義IO口

#ifndef __GPIO_H
#define __GPIO_H
#define KEY                                  P30
#define KEY2                                 P31
#define led                                  P16
#define led2                                 P35
#define UART_TX_PIN                          P31

按鍵控制邏輯

if (P30 == 0) {
P17 = 1;
P32 = 0;
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
FUN_RF_SENDPACKET("1",1);
Delay1s(1000);
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
		} 
else if (P31 == 0) {
P17 = 1;
P32 = 0;
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
FUN_RF_SENDPACKET("2",1);
Delay1s(1000);
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
		}

if(recv[0] == '1') 
						{
							P35 = ~P35;
						}
else if(recv[0] == '2')
						{
							P16=0;
							P35=1;
						}

至此就完成了遠程控制燈開關的邏輯編寫了,利用提供的源碼稍作修改就能做出這個效果。

07、遠程燈控(指定設備)

原理分析

上述的設備應用在實際場景中已經能做到星型組網,但是這個組網的通信方式就不是很符合燈控設備的控制邏輯。

因為在上述所寫的代碼中,這個設備是全頻段通信的,也就是說同一個固件,燒錄在不同設備中,只要按下按鍵,所有的設備都會響應。

所以接下來做的操作就是在這個代碼的基礎上做出修改讓主控可以隨意控制多個設備。一對多單個控制方式很多,先來做一種最簡單的方法,按鍵A控制發射在470頻段,按鍵B控制發送在480頻段。

主機代碼

下面是計算好的頻段

unsigned char Frequency[3] = { 0x6c, 0x80, 0x00 };//470Mhz
//unsigned char Frequency[3] = { 0x6c, 0x80, 0x00 };//430Mhz 頻率設置
//unsigned char Frequency[3] = { 0x6c, 0x80, 0x12 };//475.5Mhz 頻率設置
//unsigned char Frequency[3] = { 0x78, 0x10, 0x00 };//480.25Mhz 頻率設置
//unsigned char Frequency[3] = { 0x78, 0x20, 0x00 };//480.5Mhz 頻率設置

在按鍵B處定義出按鍵數組,表示按下按鍵B模塊跳到480頻段發送數據2

} else if (P31 == 0) {
Frequency[0] = 0x78;
Frequency[1] = 0x20;
Frequency[2] = 0x00;
SX1276LoRaSetRrequency();
		    SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
FUN_RF_SENDPACKET("2",1);
Delay1s(1000);
SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
		}

#define IRQN_TXD_Value                               0xF7
#define IRQN_RXD_Value                               0x9F
#define IRQN_CAD_Value                               0xFA
#define IRQN_SEELP_Value                             0xFF
#define PACKET_MIAX_Value                            0xff
extern unsigned char Frequency[3];

從機代碼

在這里,要單獨生成480和470頻段的接收機代碼固件,分別燒錄到我們的從機模塊中,我們只要控制以下代碼段就可以完成對不同頻段的控制效果。(這里的從機代碼,我們可以直接使用第一節中的燈控代碼即可)

unsigned char Frequency[3] = { 0x6c, 0x80, 0x00 };//470Mhz
//unsigned char Frequency[3] = { 0x6c, 0x80, 0x00 };//430Mhz 頻率設置
//unsigned char Frequency[3] = { 0x6c, 0x80, 0x12 };//475.5Mhz 頻率設置
//unsigned char Frequency[3] = { 0x78, 0x10, 0x00 };//480.25Mhz 頻率設置
//unsigned char Frequency[3] = { 0x78, 0x20, 0x00 };//480.5Mhz 頻率設置

總結

第一步:要確保能夠通信,然后在通信的基礎上再來對收到的值進行判斷,并且做出相對的輸出結果(控制燈的方案),到這里完成了最主要的內容——通信部分。

第二步:考慮需要實現的一個主機控制不同的設備,這樣可以把從機工作在不同頻段,主機切換頻段來完成通信。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 遠程控制
    +關注

    關注

    4

    文章

    727

    瀏覽量

    37043
  • LoRa
    +關注

    關注

    355

    文章

    1887

    瀏覽量

    238009
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    學習單片機快速方法

    的很不錯了。告訴大家我學51單片機只用了兩個星期。普通的應用差不多都會了,可以自己設計一個國旗升降系統、溫度自動控制系統之類的電路和程序。當然想要這么短的時間內精通是不可能的。 學習單片機
    發表于 01-14 07:42

    什么是WiFi遠程控制模塊?技術特點和應用場景有哪些?

    隨著科技的發展,智能家居逐漸走進了我們的生活,越來越多的人開始體驗到通過互聯網控制家電的便利。而WiFi遠程控制模塊作為智能家居的核心組成部分,其獨特的功能和優勢使得家庭和工作場所的設
    的頭像 發表于 11-29 14:10 ?476次閱讀
    什么是WiFi<b class='flag-5'>遠程控制</b>模塊?技術特點和應用場景有哪些?

    51單片機RS485編程實例資料

    詳細介紹51單片機RS485通信接線和編程代碼
    發表于 10-20 14:57 ?4次下載

    1個APP控制千盞?拆解睿澤物聯單控制器的智能奧秘

    睿澤物聯的單控制器,不僅是一臺設備,更是城市照明的智能化入口。1個APP控制千盞,看似簡單,背后卻是物聯網、大數據、節能技術的深度整合。
    的頭像 發表于 08-27 19:25 ?1058次閱讀
    1個APP<b class='flag-5'>控制</b>千盞<b class='flag-5'>燈</b>?拆解睿澤物聯單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>器的<b class='flag-5'>智能</b>奧秘

    單片機最小系統工作原理及搭建

    單片機最小系統是指使單片機正常運行所需的最簡電路配置,它是所有單片機應用的開發基礎。以下是其核心組成、工作原理及搭建指南: 一、最小系統核心組成
    的頭像 發表于 08-11 10:55 ?3527次閱讀
    <b class='flag-5'>單片機</b>最小系統工作原理及<b class='flag-5'>搭建</b>

    助力工業物聯網升級,智能遠程控制系統功不可沒

    在工業4.0的浪潮中,工業物聯網(IIoT)正從概念走向規模化落地,而智能遠程控制系統作為其核心組件,如同“神經傳導中樞”,將分散的設備、數據與決策端緊密連接。跨越時空的精準操作,都依賴于智能
    的頭像 發表于 08-06 16:23 ?1027次閱讀

    AT89C51 單片機中文資料

    電子發燒友網站提供《AT89C51 單片機中文資料.pdf》資料免費下載
    發表于 06-24 15:29 ?1次下載

    智能照明控制開關模塊,WiFi通訊,遠程調控照明效果

    智能化和場景化。 一、核心功能 1. 基礎開關控制 - 通過手機App、物理按鍵遠程控制燈光的開關。 - 支持單路或多路獨立控制(如控制
    的頭像 發表于 04-24 15:10 ?1482次閱讀

    50A磁保持遠程控制模塊是什么設備

    協議(如Wi-Fi、4G、LoRa等)進行遠程操作,兼具高可靠性與智能化管理能力。 一、技術原理 50A磁保持遠程控制模塊的核心部件是磁保持繼電器,其工作原理基于永磁體的磁場鎖定機制。
    的頭像 發表于 04-22 16:12 ?699次閱讀

    新概念51單片機C語言教程入門、提高、開發、拓展全攻略

    資料介紹 從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機C語言編程方法以及51單片機的硬件結構和功能應用。全書共分5
    發表于 04-15 13:57

    基于51/32單片機按鍵控制步進電機正反轉,A4988驅動

    基于51/32單片機按鍵控制步進電機正反轉,A4988驅動
    發表于 04-14 15:05 ?7次下載

    使用單片機驅動多組LED實現呼吸效果電路

    各位大佬,請教下,當前我需要使用單片機驅動控制20路并聯LED,需要PWM驅動實現呼吸的效果,目前我是直接使用三極管驅動,這種電路會有什么問題?跟有些使用三極管
    發表于 04-11 14:24

    物聯網單控制聯網單控制

    物聯網單控制聯網單控制
    的頭像 發表于 04-03 10:53 ?858次閱讀
    物聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>器 <b class='flag-5'>燈</b>聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>器

    智慧路燈如何實現遠程控制

    引言 在智慧城市建設的進程中,叁仟智慧路燈作為重要的基礎設施,其遠程控制功能發揮著關鍵作用。遠程控制使得叁仟智慧路燈能夠擺脫地域限制,實現高效、精準的管理,極大地提升了城市照明系統的運行效率與智能
    的頭像 發表于 03-18 12:27 ?1010次閱讀
    智慧路燈如何實現<b class='flag-5'>遠程控制</b>?

    基于STM32單片機智能電路圖設計

    基于STM32單片機智能電路圖設計 獲取資料可下載附件哦!!!!
    發表于 03-13 14:29