2025年lora sx1268 sx1302通信与实际测试结论

lora sx1268 sx1302通信与实际测试结论概念 Lora 是一种无线通信的调频技术 特点 低功耗 通信距离远 城镇可达 2 5 Km 郊区可达 15 Km 抗干扰强 LoRa 抗干扰性能是比较优秀的 但是通信距离远 功耗又低 抗干扰又强

大家好,我是讯享网,很高兴认识大家。

概念

Lora是一种无线通信的调频技术

特点

• 低功耗:
• 通信距离远:城镇可达2-5 Km , 郊区可达15 Km,
• 抗干扰强:LoRa抗干扰性能是比较优秀的,但是通信距离远,功耗又低,抗干扰又强,这三者是不可能三角距离较近容易出现信号干扰,造成丢包

lora频率范围: 470-510
sx1268\sx1302 芯片范围:470-490,
天线范围,中心频点490,增益3dbi


数据发送时间

使用SX1261Calculator_setup.exe工具,计算一个包发送的时间

  • SF小,发送的时间短,意味着相同的时间内,可以发送更多的数据
  • 发送数据越长,时间越大
  • 数据长度是阶梯形状上涨;例如:20 21 22 字节长度 发送时间是相同的
    在这里插入图片描述
    讯享网
    在这里插入图片描述
    例如2s发送一次数据的节点容量
    Sx1268的容量 = 通道数*(2s*1000/每个包发送的时间)
    Sx1302的容量:8通道,并且有不同的扩频因子。不同的扩频因子下,不同的通道的数据是不干扰的。
    总容量 = sf5(容量)+sf6(容量)+sf7(容量) + sx12(容量)

SF越小,频率越高,发送越快
SF越大,灵敏度越小,可接收到的距离越远

理论计算

工具下载链接
在这里插入图片描述


信号值与信号衰减

1)影响信号的因素
在这里插入图片描述
2)介质损耗
在这里插入图片描述

3)信号值的参考
在这里插入图片描述

4)

  • lora节点模块间不能靠的太近,容易产生干扰
  • 天线位置和放置的角度对信号有影响,天线需要根据实际的结构空间进行定制(将中心频点拉正)

通信距离实测

基站安装在与节点平行高度
在这里插入图片描述
金属的实际测试
测试方法:使用天花板,铝扣板制作一个封闭空间,测试铝扣板对信号的影响
测试结论:金属遮挡有严重衰减,大约-20dbm
在这里插入图片描述


节点到节点通信

硬件:两块sx1268
使用串口通信
参数:
发送方的发送频点 = 接收方的接收频点
SF 发送与接收需要使用相同的扩频因子

在这里插入图片描述


程序理解

sx1268

SPI接口,收发函数 static void transfer(int fd, uint8_t const *tx, uint8_t const *rx, size_t len) { int ret; struct spi_ioc_transfer tr = { .tx_buf = (unsigned long)tx, .rx_buf = (unsigned long)rx, .len = len, .delay_usecs = delay, .speed_hz = SPI_SPEED, .bits_per_word = bits, }; ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);//只有一组 if (ret < 1) pabort("can't send spi message"); } 

讯享网

sx1302
packforward 启动脚本

讯享网#!/bin/sh # This script is intended to be used on SX1302 CoreCell platform, it performs # the following actions: # - export/unpexort GPIO23 and GPIO18 used to reset the SX1302 chip and to enable the LDOs # # Usage examples: # ./reset_lgw.sh stop # ./reset_lgw.sh start # GPIO mapping has to be adapted with HW # # SX1302_RESET_PIN=64 SX1302_POWER_EN_PIN=60 WAIT_GPIO() { sleep 1 } init() { # setup GPIOs echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/export; WAIT_GPIO # set GPIOs as output echo "out" > /sys/class/gpio/gpio$SX1302_RESET_PIN/direction; WAIT_GPIO echo "out" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/direction; WAIT_GPIO } reset() { #echo "CoreCell reset through GPIO$SX1302_RESET_PIN..." #echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..." #write output for SX1302 CoreCell power_enable and reset echo "1" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/value; WAIT_GPIO echo "1" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO echo "0" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO #echo "1" > /sys/class/leds/hy_stationboard_rola0_power/brightness; WAIT_GPIO #echo "1" > /sys/class/leds/hy_stationboard_rola0_rest/brightness; WAIT_GPIO #echo "0" > /sys/class/leds/hy_stationboard_rola0_rest/brightness; WAIT_GPIO } term() { # cleanup all GPIOs if [ -d /sys/class/gpio/gpio$SX1302_RESET_PIN ] then echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO fi if [ -d /sys/class/gpio/gpio$SX1302_POWER_EN_PIN ] then echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/unexport; WAIT_GPIO fi } case "$1" in start) #term # just in case init reset ;; stop) reset term ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 
小讯
上一篇 2025-03-06 09:57
下一篇 2025-01-11 08:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/73127.html