​​合宙Air103|LORA模组|LLCC68|数传模块|射频技术|远距离低功耗|无线通信|SPI|RDIF|GPIO|LED| LuatOS-SOC接口|官方demo|学习(10):LORA互联

目录

基础资料

探讨重点

实现功能

软件及工具版本

硬件准备

接线

工具版本

一、什么是LoRa

二、基本特性(摘自模块规格说明书)

三、Air103+Lora模组使用及分析

sys.taskInit:

sys.subscribe函数

1#模组消息回调函数功能:

主要代码:

2#模组消息回调函数功能:

主要代码:

日志log

LORA-1#模组LOG:

LORA-2#模组LOG:


基础资料

基于Air103开发板:🚗 Air103 - LuatOS 文档

上手:开发上手 - LuatOS 文档

探讨重点

对官方社区库接口lora模块库调用及示例进行复现及分析,了解RF射频技术及LORA模组的基本原理及操作方法。

实现功能

基于air103+lora模组组合,进行远距离无线数据传输应答,板载LED显示通讯状态,串口工具实时监测数据收发情况。

软件及工具版本

LuatOS@AIR103 base 22.12 bsp V0015 32bit

LuatOS-SOC接口文档:lora驱动模块

数据手册:LLCC68-datasheet

硬件准备

Air103开发板2块,面包板2块, KT-FCC68 LORA模组2个,Air103板载LED2个(组1:绿色,组2:红色)个,导线若干。

接线

2组Air103与Lora模块分别连接,组成LORA-1#通信模块和LORA-2#通信模块。

Lora管脚丝印

SPI功能

Air103

PIN

SCK

SPI0_SCK

(PB2)

MISO

SPI0_MISO

(PB3)

MOSI

SPI0_MOSI

(PB5)

NSS

SPI0_CS

(PB4)

SX NREST

res

(PB0)

BUSY

busy

(PB1)

DIO1

dio1

(PB6)

GND

GND

GND

VDD RFS

3V3

3V3

供电电压:1.8-3.6 V,直接采用3V3开发板输出。

 

标准SPI接口,使用SPI0:

可参考:

合宙Air105|摄像头|capture|SPI|Serial 串口|TFTLCD|Micro SD卡|GC032A|USB转TTL|官方demo|学习(2-1):摄像头camera-capture_Medlar_CN的博客

管脚设置(设备初始化):

  lora.init("llcc68",{id = 0,cs = pin.PB04,res = pin.PB00,busy = pin.PB01,dio1 = pin.PB06})

工具版本

Luatools  2.1.85

任意串口调试工具(本文使用llcom1.1.1.9,波特率9600)一、

一、什么是LoRa

LoRa是一种专用于远距离低功耗的无线通信技术,其调制方式相对于其他通信方式大大增加了通信距离,可广泛应用于各种场合的远距离低速率物联网无线通信领域。比如自动抄表、楼宇自动化设备、无线安防系统、工业监视与控制等。具有体积小、功耗低、传输距离远、抗干扰能力强等特点,可根据实际应用情况对天线增益进行调节。

本例中采用的KT-FCC68无线模块,基于美国Semtech 公司的射频芯片LLCC68。LLCC68 具有超过-129dBm 的高灵敏度,+22dBm 的功率输出,有LORA的加持下在抗干扰性能、通信距离都远超现在的FSK、GFSK 调制方式的产品,该模块具有体积小、功耗低、传输距离远、抗干扰能力强等特点,可广泛应用于物联网各种无线通信领域。由于传输距离增加,可以大幅减少中继器的使用,简化了系统设计

二、基本特性(摘自模块规格说明书)

● 频率范围:410MHz 到510MHz ● 最大输出功率:22dBm

● 最大工作电流140mA ● 休眠电流180nA

● 接受高灵敏度:129dBm@FSK 调制,速率1.2KBPS

● FSK、MSK、GFSK 和Lora TM 调制模式

● LoRa 模式下共道抑制19 dB ● 供电电压:1.8-3.6 V

● 数据传输率:@FSK,1.2-300kbps @Lora TM,1.76-62.5kbps

● 工作温度范围:-20 ~ +70°C

● 理想条件下,通信距离可达5km

● SPI 通信接口,可直接连接各种单片机使用

三、Air103+Lora模组使用及分析

2组Air103与Lora模块分别连接,组成1#通信模块和2#通信模块,硬件规格一致,便于调试。

sys.taskInit:

   

    --频道设置
    lora.set_channel(433000000)
    --LORA模组发送参数配置
    lora.set_txconfig("llcc68",
    {mode=1,power=22,fdev=0,bandwidth=0,datarate=9,coderate=4,preambleLen=8,
        fixLen=false,crcOn=true,freqHopOn=0,hopPeriod=0,iqInverted=false,timeout=3000}
    )
    --LORA模组接收参数配置
    lora.set_rxconfig("llcc68",
    {mode=1,bandwidth=0,datarate=9,coderate=4,bandwidthAfc=0,preambleLen=8,symbTimeout=0,fixLen=false,
        payloadLen=0,crcOn=true,freqHopOn=0,hopPeriod=0,iqInverted=false,rxContinuous=false}
    )
    --1#模组开机或重启后发送信息(仅1次)
lora.send("lora1's first PING  to lora2!!!")

sys.subscribe函数

采用sys订阅消息的方式,进行消息回调处理。

1#模组消息回调函数功能

1#通信模块发送完毕后打开红灯(LEDA),循环接收2#模组发送信息(Here is Lora2!Received your PING!)完毕发送提示信息"Got message True (Here is LORA-1)!! "之后LEDA关闭,之后按周期重新执行。

主要代码:

sys.subscribe("LORA_TX_DONE", function()
    LEDA(0)
    lora.recive(1000)
end)
sys.subscribe("LORA_RX_DONE", function(data, size)
    log.info("LORA_RX_DONE(lora1): ", data, size)
    lora.send("Got message True (Here is LORA-1)!! ")
    LEDA(1)
end)

2#模组消息回调函数功能

2#通信模块发送完毕后打开绿灯(LEDB),循环接收1#模组发送信息(Got message True (Here is LORA-1)!!)完毕发送提示信息"Here is Lora2!Received your PING! "之后LEDB关闭,之后按周期重新执行。

主要代码:

sys.subscribe("LORA_TX_DONE", function()
    LEDB(0)
    lora.recive(900)
end)
sys.subscribe("LORA_RX_DONE", function(data, size)
    log.info("LORA_RX_DONE(lora2): ", data, size)
    lora.send("Here is Lora2!Received your PING! ")
    LEDB(1)
end)

日志log

LORA-1#模组LOG:

[2022-12-24 13:20:12.245] AT+RESET
[2022-12-24 13:20:12.245] 
[2022-12-24 13:20:12.245] OK
[2022-12-24 13:20:12.462] I/main auth ok 85104250303938373512007********* AIR103
[2022-12-24 13:20:12.462] I/main LuatOS@AIR103 base 22.12 bsp V0015 32bit
[2022-12-24 13:20:12.462] I/main ROM Build: Dec 19 2022 13:21:10
[2022-12-24 13:20:12.465] D/main loadlibs luavm 180208 11680 12168
[2022-12-24 13:20:12.465] D/main loadlibs sys   12288 5184 5184
[2022-12-24 13:20:12.465] I/user.mainlorademo1.0.0
[2022-12-24 13:20:13.253] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:14.000] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:14.749] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:15.511] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:16.241] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:16.989] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:17.752] I/user.LORA_RX_DONE(lora1): Here is Lora2!Received your PING! 34
[2022-12-24 13:20:18.595] I/user.LORA_RX_DONE(lora1): lora2's first PING  to lora1!!!31

LORA-2#模组LOG:

[2022/12/24 13:20:18.2560] → I/main auth ok 85104250303938373506004A52145******** AIR103
I/main LuatOS@AIR103 base 22.12 bsp V0015 32bit
I/main ROM Build: Dec 24 2022 10:04:06
D/main loadlibs luavm 180208 11680 12168
D/main loadlibs sys   12288 5184 5184
I/user.mainlorademo1.0.0
[2022/12/24 13:20:39.7953] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
[2022/12/24 13:20:40.5400] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
[2022/12/24 13:20:41.2875] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
[2022/12/24 13:20:42.0185] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
[2022/12/24 13:20:43.1275] → I/user.LORA_RX_DONE(lora2): lora1's first PING  to lora2!!!31
[2022/12/24 13:20:43.8763] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
[2022/12/24 13:20:44.5916] → I/user.LORA_RX_DONE(lora2): Got message True (Here is LORA-1)!! 36
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

打酱油的工程师

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值