Lora模块距离测试-新大陆物联网竞赛-物联网Lora开发

目录

一、概述

 二、程序编写与实现

三、源码实现

四、场地实测

        <1>30m复杂环境

        <2>50m复杂环境

        <3>100m空旷环境

        <3>500m空旷环境

        <3>1000m空旷环境

        五、总结


一、概述

​        LoRa是semtech公司开发的一种低功耗局域网无线标准,其名称“LoRa”是远距离无线电(Long Range Radio),它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍。 ​

        据悉,Lora传输距离,城区可实现2-3Km,郊区可达15Km。

 二、程序编写与实现

        程序开发环境使用Keil5。

        程序本身的实现比较简单,本文不做太多赘述,源码比较简单,贴出来供大家学习。 

三、源码实现

#include "NS_Radio.h"

uint8_t SendData[]={0xff,0xaa};
uint8_t data[255];
void show(int flag)
{
	OLED_Clear();
	
	OLED_ShowCHinese(32,0,18);
	OLED_ShowCHinese(48,0,19);
	OLED_ShowCHinese(64,0,24);
	OLED_ShowCHinese(80,0,25);//反馈节点
	
	OLED_ShowCHinese(0,3,26);
	OLED_ShowCHinese(16,3,27);
	OLED_ShowCHinese(32,3,2);
	OLED_ShowCHinese(48,3,3);
	OLED_ShowCHinese(64,3,28);//当前状态:
	switch(flag)
	{
		case 0:
				OLED_ShowCHinese(32,6,0);
				OLED_ShowCHinese(48,6,1);
				OLED_ShowCHinese(64,6,2);
				OLED_ShowCHinese(80,6,3);//监听状态
			break;
		case 1:
				OLED_ShowCHinese(32,6,4);
				OLED_ShowCHinese(48,6,5);
				OLED_ShowCHinese(64,6,6);
				OLED_ShowCHinese(80,6,7);//收到请求
			break;
		case 2:
				OLED_ShowCHinese(32,6,8);
				OLED_ShowCHinese(48,6,9);
				OLED_ShowCHinese(64,6,6);
				OLED_ShowCHinese(80,6,7);//回复请求
			break;
		case 3:
				OLED_ShowCHinese(32,6,6);
				OLED_ShowCHinese(48,6,7);
				OLED_ShowCHinese(64,6,12);
				OLED_ShowCHinese(80,6,13);//请求成功
			break;
		
	}

	
};
int main( void )
{
    Init();
		NS_RadioInit(433300000,20,5000,5000);
		OLED_Init();
		OLED_Display_On();
		show(0);
    while( 1 )
    {		
				
		ReadRadioRxBuffer(data);
		if(data[0]==0xaa && data[1]==0xff)
		{
			GpioToggle(&Led2);
			show(1);
			HAL_Delay(1000);
			SX1276Send(SendData,2);
			show(2);
			HAL_Delay(1000);
			show(3);
			GpioToggle(&Led2);
			memset(data,'\0',255);
			HAL_Delay(1000);
			show(0);
		}

    }
}

四、场地实测

        本次将lora模块调整至最大频率,一切以保证远距离传输为主,下图为调试图。

1300817ec9254832b645aef6275023b4.png

        完成主副节点配置,按下按键,主节点发送帧,反馈节点收到并返回帧,随后主节点收到完成请求。

        本文仅选择性的测试了部分环境,供参考可得出大致数据。

        <1>30m复杂环境

        情况:正常收发数据

        <2>50m复杂环境

        情况:信号出现丢失情况

1d5046993a1c424caf27a92b2598afe7.png

        随后我们将反馈节点放到窗口,并下楼测试。

        <3>100m空旷环境

        情况:正常收发数据

1b8f908f188342a6aa1539c08f28d926.png

        <3>500m空旷环境

        情况:正常收发数据

1a377bea7bac46d08487b2d8bfa14834.png

        <3>1000m空旷环境

        情况:信号偶尔丢失

431df07d6834479e98cd4af4eb55ff5c.png

        五、总结

        由于我测试的复杂环境非常复杂,处于机房环境,干扰较多,表现差属于正常。空旷环境表现十分优异,基于本Lora模块本身功耗不足,因此,Lora模块传输距离依然值得肯定!

基于Semtech SX1280 LoRa 之2.4G电波测距技术的动物追踪器方案 现今LoRa已经广泛的使用在不管是城市级的LoRaWAN或是如工厂,农场类的区域型专用网之物联网上。基本上有些客户LPWAN频率都是使用在Sub 1G 频道,但因为不同国家的政策而有着不同的使用频道也会不同如欧洲使用868MHz、美国使用915MHz、大陆使用470MHz等等。为使客户能使用在世界上通用的免授权的2.4G ISM Band,Semtech开发出可以使用在此频段的LoRa芯片。其还包含(BLE) Bluetooth Low Energy低功耗蓝牙的兼容物理层供客户开发。 此处要推出的是基于在此SX1280架构下的无线测距方案! 现今测距方式有许多种,如利用RSSI方式来依电场强度或是许多的Beacon布建来推算出距离;但其中都有误差或是架设上的问题。在这个方案里我们是使用LoRa直接序列展频DSSS (Direct Sequence Spread Spectrum) 的TOF (Time of Flight)测距方法 ,该测距技术可以视为利用飞行时差来测距。其不同于传统单、双向测距技术,TOF 是利用无线信号在两个异步收发机往返的传递时间来测量两点之间的距离。 为什么在物联网中会需要使用到测距功能? 因为虽然无线测距虽然精准度不如GPS,但是功耗却是差很大。就于这点可以大大增加电池的使用寿命,另外也可使用在室内如医院或是养老院、学校、工厂中的人员定位。 产品实体图展示板照片方案方块图方案来源于大大通
### 新大陆 LoRa 模块开发教程 #### 了解 LoRa 技术基础 LoRa 是一种低功耗广域网通信技术,适用于远距离无线传输新大陆 LoRa 模块支持多种应用场景下的物联网设备连接。 #### 准备工作环境 为了顺利进行新大陆 LoRa 模块开发,需准备好必要的软硬件设施: - **硬件需求** - 新大陆 LoRa 模块及其配套开发- USB转串口调试工具 - 计算机一台(用于编程) - **软件安装** - 安装 Arduino IDE 或其他兼容IDE - 下载并配置特定于新大陆 LoRa 模块的库文件[^1] ```cpp // 示例代码:初始化 LoRa 模块设置 #include <SPI.h> #include <LoRa.h> const int ss = 10; const int rst = 9; const int dio0 = 2; void setup() { Serial.begin(9600); while (!Serial); SPI.begin(); LoRa.setPins(ss, rst, dio0); if (!LoRa.begin(915E6)) { // 设置频率为 915 MHz Serial.println("Starting LoRa failed!"); while (true); } } ``` #### 数据发送接收测试 通过编写简单的程序来验证模块能否正常收发数据包,这是后续复杂应用的前提条件之一。 ```cpp void loop() { String message = "Hello LoRa!"; // 发送消息给另一台设备 LoRa.beginPacket(); LoRa.print(message); LoRa.endPacket(); delay(2000); // 每隔两秒发送一次 // 接受来自其它节点的信息 int packetSize = LoRa.parsePacket(); if (packetSize) { while (LoRa.available()) { char receivedChar = (char)LoRa.read(); Serial.print(receivedChar); } } } ``` #### 构建实际项目案例 当掌握了基本操作之后,可以尝试构建更复杂的系统,比如智能家居控制系统、环境监测网络等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西西菜鸟

打赏支持获得问题解答机会

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值