日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

文章目錄

一、概述

二、接線

三、燒錄(測試程序)

四、AT指令

五、通信測試

六、遠程燈控(開關(guān))

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

01、概述

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

02、接線

如下是Ra-01,Ra-01H,Ra-02對應(yīng)51測試板的接線:

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

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

03、燒錄(測試程序)

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

示例固件燒錄

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

測試板燒錄方法

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

wKgZPGi_3j2AMqydAABDTN4f7x8487.jpg

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

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

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

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

wKgZO2i_3j2AS2miAAJMQzrHX1Q946.jpg

示例固件測試

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

插上LoRa轉(zhuǎn)接板,此測試必須要兩塊測試板,一塊用來發(fā)送,另外一塊用來接收。

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

wKgZPGi_3j6AULMtAABqq313ZDo541.jpg

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

04、AT指令

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

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

請求消息格式為:AT+[OPTION][para, …][r][n]??梢圆患訐Q行符(rn)!

AT指令分為如下幾塊:

(1)基本執(zhí)行指令

(2)系統(tǒng)參數(shù)設(shè)置指令

(3)LoRa參數(shù)配置設(shè)置指令

(4)數(shù)據(jù)傳輸格式指令

詳細的指令語法以及參數(shù)調(diào)配請參照如下鏈接中的AT指令文檔:

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

05、通信測試

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

點對點通信

步驟一(主機):

AT+ADDR=2 //設(shè)置本機主機地址為2

AT+TADDR=3 //設(shè)置目標(biāo)地址為3

步驟二(節(jié)點1):

AT+ADDR=3 //設(shè)置本機主機地址為2

AT+TADDR=1 //設(shè)置目標(biāo)地址為1

AT+RECV=1 //接收數(shù)據(jù)

步驟三(主機):

AT+MSG=Ai-Tinker //主機發(fā)送數(shù)據(jù)

wKgZO2i_3j6AFy-ZAAGjvhC23Mc430.jpg

一對多廣播通信測試示例

步驟一(主機):

AT+ADDR=1 //設(shè)置本機主機地址為1

AT+TADDR=65535 //設(shè)置目標(biāo)地址為廣播地址

步驟二(節(jié)點1):

AT+ADDR=2 //設(shè)置本機主機地址為2

AT+TADDR=1 //設(shè)置目標(biāo)地址為1

AT+RECV=1 //接收數(shù)據(jù)

步驟三(節(jié)點2):

AT+ADDR=3 //設(shè)置本機主機地址為2

AT+TADDR=1 //設(shè)置目標(biāo)地址為1

AT+RECV=1 //接收數(shù)據(jù)

步驟四(主機):

AT+MSG=1234567890 //主機發(fā)送數(shù)據(jù)

wKgZPGi_3j-ASfRJAAKZKYg40Ts328.jpg

06、遠程燈控(開關(guān))

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

設(shè)備組成

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

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

遠程燈控(開關(guān))

原理分析

目前手上有兩個同樣的設(shè)備,燒錄同樣的程序,程序運行在MCU中,通過外接的SPI驅(qū)動Ra-01射頻模塊發(fā)射和接收數(shù)據(jù),接收端接收到這個數(shù)據(jù)做出響應(yīng),實現(xiàn)一個遠程控制燈開和關(guān)的方案。

基本通信

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

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

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 檢測到擴頻信號 模塊進入了接收狀態(tài)來接收數(shù)據(jù)
						SX1276LoRaSetOpMode(Stdby_mode);
						SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value); //打開發(fā)送中斷
						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);   //打開發(fā)送中斷
						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);  //打開發(fā)送中斷
					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;
			}
		}

編輯通信內(nèi)容代碼

定義兩組通信,分別為內(nèi)容分別為1和2,這個對應(yīng)后面邏輯中的兩個按鍵。

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);

應(yīng)用層邏輯設(shè)計

如上所示,通信步驟就完成了,接下來就是觸發(fā)邏輯以及響應(yīng)邏輯的應(yīng)用層代碼了,這一部分需要結(jié)合應(yīng)用設(shè)備功能來設(shè)計,硬件資源一共有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;
						}

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

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

原理分析

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

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

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

主機代碼

下面是計算好的頻段

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

在按鍵B處定義出按鍵數(shù)組,表示按下按鍵B模塊跳到480頻段發(fā)送數(shù)據(jù)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頻段的接收機代碼固件,分別燒錄到我們的從機模塊中,我們只要控制以下代碼段就可以完成對不同頻段的控制效果。(這里的從機代碼,我們可以直接使用第一節(jié)中的燈控代碼即可)

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

總結(jié)

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

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 遠程控制
    +關(guān)注

    關(guān)注

    4

    文章

    735

    瀏覽量

    37275
  • LoRa
    +關(guān)注

    關(guān)注

    355

    文章

    1925

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    拆解風(fēng)扇帶你看國產(chǎn)32位MCU控場--【其利天下技術(shù)】

    風(fēng)扇方案,采用32位單片機控制,兼容性良好,帶語音、wifi等控制,
    的頭像 發(fā)表于 04-18 14:27 ?132次閱讀
    拆解風(fēng)扇<b class='flag-5'>燈</b>帶你看國產(chǎn)32位MCU控場--【其利天下技術(shù)】

    8XC51FX:高性能8位單片機的全方位解析

    8XC51FX:高性能8位單片機的全方位解析 在單片機的世界里,8XC51FX系列以其卓越的性能和豐富的功能脫穎而出,成為眾多電子工程師在設(shè)計項目時的熱門選擇。今天,我們就來深入探討一
    的頭像 發(fā)表于 03-29 13:15 ?364次閱讀

    2026工業(yè)遠程控制設(shè)備:宏集IXON打造PLC遠程監(jiān)控與智能管理新標(biāo)桿

    宏集 IXON 工業(yè) IoT 解決方案深耕機械制造領(lǐng)域,以 “強大卻不復(fù)雜” 的產(chǎn)品體系,為全球 2500 + 機械制造商打造了從 PLC 遠程監(jiān)控到智能遠程管理的全鏈路解決方案,成為工業(yè)遠程
    的頭像 發(fā)表于 02-14 16:47 ?9141次閱讀
    2026工業(yè)<b class='flag-5'>遠程控制</b>設(shè)備:宏集IXON打造PLC<b class='flag-5'>遠程</b>監(jiān)控與<b class='flag-5'>智能</b>管理新標(biāo)桿

    類似51單片機可以能驅(qū)動智能顯示模塊嗎?

    51單片機就可以驅(qū)動智能顯示模塊嗎?
    發(fā)表于 01-19 15:50

    學(xué)習(xí)單片機快速方法

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

    什么是WiFi遠程控制模塊?技術(shù)特點和應(yīng)用場景有哪些?

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

    Lora技術(shù)應(yīng)用領(lǐng)域

    1. 物聯(lián)網(wǎng)應(yīng)用:Lora技術(shù)的遠距離傳輸特性使其在物聯(lián)網(wǎng)應(yīng)用中得到廣泛應(yīng)用。通過Lora技術(shù),可以實現(xiàn)智能城市、智能家居、智能農(nóng)業(yè)等多種物
    發(fā)表于 11-26 08:10

    程序的構(gòu)建與調(diào)試

    在上一文章中我們成功了搭建了環(huán)境,那么接下來就用閃程序來認識一下編譯和調(diào)試工具吧!
    的頭像 發(fā)表于 11-05 14:52 ?4479次閱讀
    閃<b class='flag-5'>燈</b>程序的構(gòu)建與調(diào)試

    51單片機RS485編程實例資料

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

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

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

    單片機最小系統(tǒng)工作原理及搭建

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

    助力工業(yè)物聯(lián)網(wǎng)升級,智能遠程控制系統(tǒng)功不可沒

    在工業(yè)4.0的浪潮中,工業(yè)物聯(lián)網(wǎng)(IIoT)正從概念走向規(guī)模化落地,而智能遠程控制系統(tǒng)作為其核心組件,如同“神經(jīng)傳導(dǎo)中樞”,將分散的設(shè)備、數(shù)據(jù)與決策端緊密連接??缭綍r空的精準(zhǔn)操作,都依賴于智能
    的頭像 發(fā)表于 08-06 16:23 ?1213次閱讀

    單片機怎么驅(qū)動電機?

    在各類自動化設(shè)備和智能裝置中,電機是重要的執(zhí)行部件,而單片機作為控制核心,需要通過特定的方式驅(qū)動電機運轉(zhuǎn)。單片機驅(qū)動電機并非直接連接即可,而是要根據(jù)電機類型和功率,搭配合適的驅(qū)動電路,
    的頭像 發(fā)表于 07-25 09:31 ?1366次閱讀

    AT89C51 單片機中文資料

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

    手機APP遠程控制智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)實例項目打包下載

    手機APP遠程控制智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)實例項目打包,推薦下載!
    發(fā)表于 05-29 21:47
    芦山县| 申扎县| 盘锦市| 蓬溪县| 英吉沙县| 雷州市| 黔西县| 贵定县| 虞城县| 柘荣县| 叶城县| 师宗县| 门源| 册亨县| 沧源| 堆龙德庆县| 山阳县| 金华市| 谷城县| 三江| 玉树县| 宁陵县| 商丘市| 龙里县| 巫溪县| 灵台县| 张家港市| 陇西县| 华宁县| 西峡县| 洪泽县| 廉江市| 柘城县| 宜宾县| 永泰县| 泽州县| 临朐县| 闸北区| 成安县| 桃源县| 平顺县|