chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

文章目錄

一、概述

二、接線

三、燒錄(測試程序)

四、AT指令

五、通信測試

六、遠程燈控(開關)

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

01、概述

安信可 LoRa 系列模塊,用于超長距離擴頻通信,抗干擾性強,能夠最大限度降低電流消耗,高靈敏度,傳輸距離遠,可靠性高。(以下教程以安信可Ra-01、Ra-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系列的單片機開發(fā)的,僅提供測試參考用于驗證模塊的性能與良好,如需在此程序上進行二次開發(fā),則不提供源碼編寫支持)

示例固件燒錄

示例固件下載地址(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

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

wKgZO2i_3j2AS2miAAJMQzrHX1Q946.jpg

示例固件測試

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

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

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

wKgZPGi_3j6AULMtAABqq313ZDo541.jpg

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

04、AT指令

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

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

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

AT指令分為如下幾塊:

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

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

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

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

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

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

05、通信測試

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

點對點通信

步驟一(主機):

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

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

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

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

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

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

步驟三(主機):

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

wKgZO2i_3j6AFy-ZAAGjvhC23Mc430.jpg

一對多廣播通信測試示例

步驟一(主機):

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

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

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

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

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

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

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

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

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

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

步驟四(主機):

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

wKgZPGi_3j-ASfRJAAKZKYg40Ts328.jpg

06、遠程燈控(開關)

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

設備組成

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

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

遠程燈控(開關)

原理分析

目前手上有兩個同樣的設備,燒錄同樣的程序,程序運行在MCU中,通過外接的SPI驅動Ra-01射頻模塊發(fā)射和接收數(shù)據,接收端接收到這個數(shù)據做出響應,實現(xià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ù)據
						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;
			}
		}

編輯通信內容代碼

定義兩組通信,分別為內容分別為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);

應用層邏輯設計

如上所示,通信步驟就完成了,接下來就是觸發(fā)邏輯以及響應邏輯的應用層代碼了,這一部分需要結合應用設備功能來設計,硬件資源一共有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控制發(fā)射在470頻段,按鍵B控制發(fā)送在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處定義出按鍵數(shù)組,表示按下按鍵B模塊跳到480頻段發(fā)送數(shù)據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 頻率設置
//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 頻率設置

總結

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

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

審核編輯 黃宇

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

    關注

    4

    文章

    700

    瀏覽量

    36488
  • LoRa
    +關注

    關注

    353

    文章

    1819

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用單片機驅動多組LED實現(xiàn)呼吸效果電路

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

    智慧路燈如何實現(xiàn)遠程控制?

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

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

    基于STM32單片機智能電路圖設計 獲取資料可下載附件哦!?。。?/div>
    發(fā)表于 03-13 14:29

    物聯(lián)網單控制器:路燈單控制智能,更好用

    物聯(lián)網單控制器:路燈單控制智能,更好用
    的頭像 發(fā)表于 01-15 16:17 ?845次閱讀
    物聯(lián)網單<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>,更好用

    51單片機pwm和spwm

    51單片機pwm
    發(fā)表于 01-08 15:54 ?3次下載

    51單片機交通仿真

    交通直行控制,倒計時時間可調。資料包含程序源碼和proteus8.6仿真
    發(fā)表于 11-28 14:15 ?15次下載

    基于51單片機的停車場管理系統(tǒng)

    具體實現(xiàn)功能由51單片機+按鍵模塊+LCD1602顯示+報警模塊+74HC595模塊+LED指示等構成。具體功能:(1)根據紅外傳感器原理,用兩個按鍵代替駛入檢測紅外傳感器和駛出檢測紅外
    的頭像 發(fā)表于 10-22 14:12 ?910次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的停車場管理系統(tǒng)

    基于51單片機的遙控開關仿真(雙機通信)

    單片機最小系統(tǒng)、繼電器及LED構成;(4)由于仿真無法模擬無線模塊通信,故利用單片機RXD、TXD端口模擬,通過遙控器的開關實現(xiàn)對主機LED
    的頭像 發(fā)表于 10-22 14:12 ?1017次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的遙控開關仿真(雙機通信)

    設計分享|基于51單片機的電梯仿真系統(tǒng)設計

    具體實現(xiàn)功能由AT89C51單片機+數(shù)碼管+矩陣按鍵+ULN2003A模塊+電機+LED等構成。具體功能:(1)初始時電梯在1樓,當有按鍵按下時,步進電機轉動,電梯運行到相應樓層,數(shù)碼管顯示電梯
    的頭像 發(fā)表于 10-22 14:12 ?1109次閱讀
    設計分享|基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的電梯仿真系統(tǒng)設計

    仿真設計|基于51單片機的全自動洗衣模擬系統(tǒng)

    時電機交替正、反轉,洗衣和脫水時電機轉速不同,指示指示電機工作狀態(tài)。(5)故障報警時蜂鳴器報警、LED亮。仿真演示視頻:設計介紹 51單片機簡介 
    的頭像 發(fā)表于 10-22 14:12 ?777次閱讀
    仿真設計|基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的全自動洗衣<b class='flag-5'>機</b>模擬系統(tǒng)

    基于51單片機的紅外防盜報警系統(tǒng)模擬

    ,紅外檢測指示亮,發(fā)出聲光報警;(4)按下取消報警/布防按鍵,退出布防模式,取消報警。仿真演示視頻:設計介紹51單片機簡介51單片是一種低
    的頭像 發(fā)表于 10-22 14:12 ?951次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的紅外防盜報警系統(tǒng)模擬

    基于51單片機遠程防盜報警系統(tǒng)

    亮,蜂鳴器報警,表示檢測到聲音;(3)人體感應模式按鍵和聲音感應模式按鍵同時按下,聲光報警,將報警信息“Dangerous!!!”發(fā)送到串口調試助手,表示遠程報警。設計介紹51單片機簡介51
    的頭像 發(fā)表于 10-22 14:10 ?654次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>遠程</b>防盜報警系統(tǒng)

    【星閃派物聯(lián)網開發(fā)套件體驗連載】智能交通--云端查看,遠程控制視頻

    完整項目在這個帖子中: https://bbs.elecfans.com/jishu_2457322_1_1.html 本文是智能交通--云端查看,遠程控制視頻
    發(fā)表于 10-21 13:44

    基于51單片機智能防火GSM上報仿真

    設定的報警值時,蜂鳴器響,相應的指示亮;當測得的溫度和煙霧值同時超過報警值時,電機轉動,表示滅火; (4)報警時,利用GSM模塊(仿真中無GSM模塊,用串口模擬)將測得的溫度值與煙霧值發(fā)送到用戶手機上,實現(xiàn)遠程報警。 設計介紹 51
    的頭像 發(fā)表于 10-21 11:48 ?848次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>智能</b>防火GSM上報仿真

    普通空開怎樣遠程控制斷電

    遠程控制斷電技術的應用場景非常廣泛,包括但不限于: 智能家居系統(tǒng) :用戶可以通過手機應用或語音助手遠程控制家中的電器,實現(xiàn)節(jié)能和便捷。 工業(yè)自動化 :在生產線上,遠程控制斷電可以
    的頭像 發(fā)表于 10-17 14:02 ?3595次閱讀