“SX1262 915M LoRa HAT”的版本间的差异

来自Waveshare Wiki
跳转至: 导航搜索
(Text replace - "<br /><big>批量下载教程——请戳<big><big><big>☛</big></big></big></big>link=批量下载教程" to "")
第15行: 第15行:
 
<div class="tabbertab" title="说明">
 
<div class="tabbertab" title="说明">
 
==产品概述==
 
==产品概述==
* 本产品是基于SX1262芯片,具有LoRa调制功能无线串口模块的树莓派扩展板<br \>
+
* 本产品是基于SX1268/SX1262芯片,具有LoRa调制功能无线串口模块的树莓派扩展板<br \>
 
* 具有多级中继实现超远距离通信,低功耗唤醒通信、加密传输等优点<br \>
 
* 具有多级中继实现超远距离通信,低功耗唤醒通信、加密传输等优点<br \>
 +
* 本产品使用私有协议,不支持LoRaWAN<br \>
 
==产品特点==
 
==产品特点==
* 支持全球免许可ISM 915MHz频段
+
* 支持全球免许可ISM 433MHz/868MHz频段
 
* 支持空中唤醒,即超低功耗功能,适用于电池供电的应用方案
 
* 支持空中唤醒,即超低功耗功能,适用于电池供电的应用方案
 
* 支持定点传输、广播传输、信道监听,多级中继用于超远距离通信
 
* 支持定点传输、广播传输、信道监听,多级中继用于超远距离通信
 
* 支持 RSSI 信号强度指示功能,用于评估信号质量、改善通信网络
 
* 支持 RSSI 信号强度指示功能,用于评估信号质量、改善通信网络
 
* 支持 LBT 功能,在发送前监听信道环境噪声,可极大提高模块在恶劣环境下的通信成功率
 
* 支持 LBT 功能,在发送前监听信道环境噪声,可极大提高模块在恶劣环境下的通信成功率
* LoRa扩频技术,多达81信道可选
+
* LoRa扩频技术,多达84信道/81信道(SX1268,SX1262)可选
 
* 支持空中唤醒,在线配置,载波监听,自动中继,通信密钥,低功耗休眠
 
* 支持空中唤醒,在线配置,载波监听,自动中继,通信密钥,低功耗休眠
 
* 理想环境下通信距离可达5KM
 
* 理想环境下通信距离可达5KM
 
 
==产品参数==
 
==产品参数==
{| class="wikitable" style="margin:auto;text-align:center;"
+
{| class="wikitable" style="margin: left;text-align:center;"
 
|-
 
|-
 
| rowspan=3 | 功耗  
 
| rowspan=3 | 功耗  
 
| 发射电流  
 
| 发射电流  
|133mA(瞬时功耗)
+
|100mA(瞬时功耗)
 
|-
 
|-
 
| 接收电流
 
| 接收电流
第50行: 第50行:
 
|-
 
|-
 
| colspan=2 | 工作频段
 
| colspan=2 | 工作频段
| 850.125~930.125MHz
+
| 410.125~493.125MHz
 
|-
 
|-
 
| colspan=2 | 接收灵敏度
 
| colspan=2 | 接收灵敏度
第76行: 第76行:
 
==硬件介绍==
 
==硬件介绍==
  
[[File:SX1262-LoRa-HAT-002.jpg|700px|thumb| 实物标识图]]
+
[[File:SX1268-LoRa-HAT-002.jpg|600px|thumb| 实物标识图]]
{| class="wikitable" style="text-align:center;"
+
{| class="wikitable" style="margin: left;text-align:center;"
 
|-
 
|-
 
! 序号 !! colspan=2 | 描述
 
! 序号 !! colspan=2 | 描述
 
|-
 
|-
| 1 || colspan=2 |SX1262模组
+
| 1 || colspan=2 |SX1268/SX1262模组
 
|-
 
|-
 
| 2 || colspan=2 | 74HC125V电平转换芯片
 
| 2 || colspan=2 | 74HC125V电平转换芯片
第130行: 第130行:
  
 
==寄存器配置==
 
==寄存器配置==
<span style="color: red;">配置模式(模式2:M0短接,M1不接)下,支持的指令列表如下(设置时,只支持9600,8N1格式),'''以下数值为16进制'''</span>
+
<span style="color: red;">配置模式('''模式2:M0短接,M1不接''')下,支持的指令列表如下(设置时,只支持9600,8N1格式),'''以下数值为16进制'''</span>
{| class="wikitable" style="margin:auto;text-align:center;"
+
{| class="wikitable" style="margin: left;text-align:center;"
 
|-
 
|-
 
! 指令功能  
 
! 指令功能  
第473行: 第473行:
 
|rowspan=14|04H
 
|rowspan=14|04H
 
|rowspan=14|读/写
 
|rowspan=14|读/写
|rowspan=14|REG1
+
|rowspan=14|REG0
 
|style="background-color:#1E90FF;"|7
 
|style="background-color:#1E90FF;"|7
 
|style="background-color:#1E90FF;"|6
 
|style="background-color:#1E90FF;"|6
第497行: 第497行:
 
|style="background-color:#1E90FF;"|5
 
|style="background-color:#1E90FF;"|5
 
|style="background-color:#1E90FF;" colspan=3|环境噪音使能
 
|style="background-color:#1E90FF;" colspan=3|环境噪音使能
|rowspan=3 style="text-align:left;"|启用后,可在传输模式或 WOR 发送模式发送指令 C0 C1 C2 C3读取寄存器;<br \>寄存器 0x00 :当前环境噪声 RSSI;<br \> 寄存器 0X01 :上一次接收数据时的 RSSI (当前信道噪声为:dBm =-RSSI/2);<br \>指令格式:C0 C1 C2 C3+起始地址+读取长度; <br \>返回格式:C1 + 地址+读取长度+读取有效值;如: 发送 C0 C1 C2 C3 00 01 返回 C1 00 01 RSSI(地址只能从 00 开始)
+
|rowspan=3 style="text-align:left;"|启用后,可在传输模式或 WOR 发送模式发送指令 C0 C1 C2 C3读取寄存器;<br \>寄存器 0x00 :当前环境噪声 RSSI;<br \> 寄存器 0X01 :上一次接收数据时的 RSSI (当前信道噪声为:dBm =-(256-RSSI);<br \>指令格式:C0 C1 C2 C3+起始地址+读取长度; <br \>返回格式:C1 + 地址+读取长度+读取有效值;如: 发送 C0 C1 C2 C3 00 01 返回 C1 00 01 RSSI(地址只能从 00 开始)
 
|-
 
|-
 
|0
 
|0
第536行: 第536行:
 
|REG2
 
|REG2
 
|colspan=4|信道控制(CH)0-83分别代表总共84个信道
 
|colspan=4|信道控制(CH)0-83分别代表总共84个信道
|实际频率= 850.125 + CH *1MHz,默认868.125MHz
+
|实际频率= 410.125 + CH *1MHz,默认433.125MHz或850.125+CH*1MHz,默认868.125MHz
 
|-
 
|-
 
|rowspan=24|06H
 
|rowspan=24|06H
第655行: 第655行:
 
|}
 
|}
  
==串口调试==
+
==PC串口调试==
 
# 准备两个SX1268 LoRa HAT 模块(以下统称Lora模块),两根Micro USB线,装配SMA天线,跳帽置于A上,M0和M1连接GND
 
# 准备两个SX1268 LoRa HAT 模块(以下统称Lora模块),两根Micro USB线,装配SMA天线,跳帽置于A上,M0和M1连接GND
 
# WINDOWS PC上安装CP2102驱动,两个Lora模块使用Micro USB连接至PC
 
# WINDOWS PC上安装CP2102驱动,两个Lora模块使用Micro USB连接至PC
 
# 打开PC设备管理器,查找CP2102对应的两个COM口,使用SSCOM串口软件分别连接两个Lora模块,波特率都设置为9600
 
# 打开PC设备管理器,查找CP2102对应的两个COM口,使用SSCOM串口软件分别连接两个Lora模块,波特率都设置为9600
 
# 其中一个SSCOM串口软件的输入栏输入数据,点击发送按钮,在另一个SSCOM串口软件显示栏可以看到LoRa模块收到的数据。
 
# 其中一个SSCOM串口软件的输入栏输入数据,点击发送按钮,在另一个SSCOM串口软件显示栏可以看到LoRa模块收到的数据。
[[File:SX1268-LoRa-HAT-003.png|center|800px| LoRa与PC连接]]<br \>
+
<gallery>
[[File:SX1268-LoRa-HAT-004.png|center|1000px| 串口收发测试]]
+
File:SX1268-LoRa-HAT-003.png|800px|LoRa link to PC
 
+
File:SX1268-LoRa-HAT-004.png|800px| sscom diagram
==接入树莓派使用==
+
</gallery>
===下载示例程序===
 
[[File:SX1268-LoRa-HAT-005.png|100px|thumb| 下载示例程序]]
 
# 使用[https://{{SERVERNAME}}/w/upload/5/56/Putty.zip putty]等软件登录RaspberryPi 3B+或Zero W,[https://{{SERVERNAME}}/study/portal.php?mod=view&aid=741 不熟悉SSH或Serial登录用户可点击我参考]
 
# 在RaspberryPi 3B+控制台界面下载示例程序,输入下面命令:
 
mkdir -p ~/RaspberryPi
 
wget -P ~/RaspberryPi/ https://{{SERVERNAME}}/w/upload/1/16/SX1262_LoRa_HAT_Code.7z
 
sudo apt-get install p7zip
 
cd ~/RaspberryPi/
 
p7zip --uncompress SX1268_LoRa_HAT_Code.7z
 
  
 +
==Raspberry Pi==
 
===安装函数库,打开树莓派SERIAL串口===
 
===安装函数库,打开树莓派SERIAL串口===
需要安装必要的函数库(python库),否则以下的示例程序可能无法正常工作。<span style="color:red;">(如果是新系统请按照如下进行操作,若已经安装好以下的库可跳过)</span>
+
需要安装必要的函数库(python库),否则以下的示例程序可能无法正常工作。安装方法详见:<span style="color:red;">(如果是新系统请按照如下进行操作,若已经安装好以下的库可跳过)</span>
 
<br \>'''安装python库:'''
 
<br \>'''安装python库:'''
 
  sudo apt-get install python-pip  
 
  sudo apt-get install python-pip  
第682行: 第674行:
 
  sudo apt-get install python-serial
 
  sudo apt-get install python-serial
 
'''打开树莓派SERIAL串口'''
 
'''打开树莓派SERIAL串口'''
<br \>若用户使用SSH登录树莓派终端,[https://{{SERVERNAME}}/study/portal.php?mod=view&aid=606 请点击我参阅使能树莓派SERIAL串口]
+
<br \>若用户使用SSH登录树莓派终端,[https://{{SERVERNAME}}/study/portal.php?mod=view&aid=606 请点击我参阅使能树莓派SERIAL串口]<br \>
 +
[[File:L76X_GPS_Module_rpi_serial.png|800px]]
 +
===下载示例程序===
 +
<!--[[File:SX1268-LoRa-HAT-005.png|100px|thumb| 下载示例程序]]-->
 +
# 使用[https://{{SERVERNAME}}/w/upload/5/56/Putty.zip putty]等软件登录RaspberryPi 3B+或Zero W,[https://{{SERVERNAME}}/study/portal.php?mod=view&aid=741 不熟悉SSH或Serial登录用户可点击我参考]
 +
# 在RaspberryPi 3B+控制台界面下载示例程序,输入下面命令:
 +
mkdir -p Documents/sx126x_lora_hat && cd Documents/sx126x_lora_hat
 +
wget https://www.waveshare.net/w/upload/6/68/SX126X_LoRa_HAT_Code.zip
 +
unzip SX126X_LoRa_HAT_Code.zip
 +
===透传通信===
 +
* 准备RaspberryPi 3B+,LoRa模块直接接入Pi 3B+的40Pin口,跳帽置于B,<span style="color:red;">M0和M1由Pi 3B+的IO控制,不再使用跳帽,如下图所示</span>
 +
<!-- [[File:SX1268-LoRa-HAT-006.png|800px]] -->
 +
<gallery>
 +
File:SX1268-433M-LoRa-HAT-006.jpg
 +
</gallery>
  
===透传通信===
+
<!--
 
<div><ul>  
 
<div><ul>  
 
<li style="display: inline-block;"> [[File:SX1268-LoRa-HAT-010.png|thumb|none|500px|透传广播通信示意图]] </li>
 
<li style="display: inline-block;"> [[File:SX1268-LoRa-HAT-010.png|thumb|none|500px|透传广播通信示意图]] </li>
第690行: 第696行:
 
</ul>
 
</ul>
 
</div>
 
</div>
* 准备RaspberryPi 3B+,LoRa模块直接接入Pi 3B+的40Pin口,跳帽置于B,<span style="color:red;">M0和M1由Pi 3B+的IO控制,不再使用跳帽</span>
+
-->
* 另一个LoRa模块通过Micro USB连接至PC,跳帽置于A,M1和M0连接GND,打开SSCOM串口软件连接LoRa模块
+
* 执行下面命令后,节点接收其它节点发送的数据时自动打印到终端,当节点需要发送数据给其它节点时候,按下键盘i,然后按提示输入输入即可,如下图所示
[[File:SX1268-LoRa-HAT-006.png|center|800px|透传通信实物连接图]]
+
cd ~/Documents/sx126x_lora_hat/RaspberryPi/transparent
 +
sudo python3 main.py
 +
<gallery>
 +
File:SX1268-433M-LoRa-HAT-104.jpg|node 1
 +
File:SX1268-433M-LoRa-HAT-105.jpg|node 2
 +
File:SX1268-433M-LoRa-HAT-103.jpg| transpareant transfer diagram
 +
</gallery>
 +
 
 +
<!--
 
* 进入RaspberryPi/transparent目录,输入下面命令,连接Pi 3B+的LoRa模块约两秒广播一次数据,连接PC的LoRa模块收到并打印数据。同时,用户也可以在SSCOM串口软件输入并发送数据,Pi 3B+收到后打印数据
 
* 进入RaspberryPi/transparent目录,输入下面命令,连接Pi 3B+的LoRa模块约两秒广播一次数据,连接PC的LoRa模块收到并打印数据。同时,用户也可以在SSCOM串口软件输入并发送数据,Pi 3B+收到后打印数据
 
  cd ~/RaspberryPi/RaspberryPi/transparent
 
  cd ~/RaspberryPi/RaspberryPi/transparent
第700行: 第714行:
 
  sudo python transparent.py P2P
 
  sudo python transparent.py P2P
 
[[File:SX1268-LoRa-HAT-008.png|center|1000px|透传点对点通信]]
 
[[File:SX1268-LoRa-HAT-008.png|center|1000px|透传点对点通信]]
 +
-->
  
 
===中继通信===
 
===中继通信===
 
中继通信是为实现超远距离通信一种方法,将LoRa模块设置成中继模式,中继模式的LoRa模块地址寄存器只作为NETID转发配对,不再有主动收发功能,也无法低功耗操作
 
中继通信是为实现超远距离通信一种方法,将LoRa模块设置成中继模式,中继模式的LoRa模块地址寄存器只作为NETID转发配对,不再有主动收发功能,也无法低功耗操作
 
<br \><span style="color:red;">注意:实现中继功能'''至少需要三个LoRa模块'''</span>
 
<br \><span style="color:red;">注意:实现中继功能'''至少需要三个LoRa模块'''</span>
[[File:SX1268-LoRa-HAT-011.png|center|900px|中继通信示意图]]
+
<!-- [[File:SX1268-LoRa-HAT-011.png|900px|中继通信示意图]] -->
  
 
* 将当前三个LoRa模块假设为LoRa模块A,LoRa模块B,LoRa模块C。
 
* 将当前三个LoRa模块假设为LoRa模块A,LoRa模块B,LoRa模块C。
 +
* 使用Windows端[https://www.waveshare.net/w/upload/8/8d/RF_Setting%28E22-E90%28SL%29%29_V1.0.zip 上位机]设置中继LoR模块B和LoRa模块C,LoRa模块A直接接入树莓派,如下图所示
 +
<gallery>
 +
File:SX1268-LoRa-HAT-011.jpg|relay transfer diagram
 +
File:SX1268-433M-LoRa-HAT-106.jpg| lora module B setting
 +
File:SX1268-433M-LoRa-HAT-107.jpg| lora module C setting
 +
File:SX1268-433M-LoRa-HAT-006.jpg| lora module A setting
 +
</gallery>
 +
<!--
 
* 使用SSCOM串口软件(9600 8N1)设置LoRa模块B为中继模式,ADDH寄存器设置为0x01,ADDL寄存器设置为0x02,REG3寄存器设置为0x23,其它寄存器参数不变,则设置指令为'''C1 00 09 01 02 00 62 00 12 23 00 00''',设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后,将M1、M0连接GND。
 
* 使用SSCOM串口软件(9600 8N1)设置LoRa模块B为中继模式,ADDH寄存器设置为0x01,ADDL寄存器设置为0x02,REG3寄存器设置为0x23,其它寄存器参数不变,则设置指令为'''C1 00 09 01 02 00 62 00 12 23 00 00''',设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后,将M1、M0连接GND。
 
* 使用SSCOM串口软件(9600 8N1)设置LoRa模块C为收发节点,ADDH寄存器设置为0x03,ADDL寄存器为0x04,NETID寄存器设置为0x02,其它寄存器参数不变,则设置指令为'''C1 00 09 00 00 02 62 00 12 03 00 00''',<span style="color:red;">设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后,将M1、M0连接GND,打开串口软件。</span>
 
* 使用SSCOM串口软件(9600 8N1)设置LoRa模块C为收发节点,ADDH寄存器设置为0x03,ADDL寄存器为0x04,NETID寄存器设置为0x02,其它寄存器参数不变,则设置指令为'''C1 00 09 00 00 02 62 00 12 03 00 00''',<span style="color:red;">设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后,将M1、M0连接GND,打开串口软件。</span>
 
[[File:SX1268-LoRa-HAT-012.png|center|800px]]
 
[[File:SX1268-LoRa-HAT-012.png|center|800px]]
 
[[File:SX1268-LoRa-HAT-013.png|center|1200px]]
 
[[File:SX1268-LoRa-HAT-013.png|center|1200px]]
 +
-->
 
* LoRa模块A接入Pi 3B+,'''拔掉M0、M1跳帽''',进入/RaspberryPi/relay目录,执行下面命令,LoRa模块A约2秒会重复自动发送数据,LoRa模块C收到数据会从串口打印数据,而中继LoRa模块B不会从串口打印任何数据,输入下面命令:
 
* LoRa模块A接入Pi 3B+,'''拔掉M0、M1跳帽''',进入/RaspberryPi/relay目录,执行下面命令,LoRa模块A约2秒会重复自动发送数据,LoRa模块C收到数据会从串口打印数据,而中继LoRa模块B不会从串口打印任何数据,输入下面命令:
  cd ~/RaspberryPi/RaspberryPi/relay
+
  cd ~/Documents//sx126x_lora_hat/RaspberryPi/relay
 
  sudo python relay.py
 
  sudo python relay.py
[[File:SX1268-LoRa-HAT-014.png|center|1200px]]
+
<!-- [[File:SX1268-LoRa-HAT-014.png|center|1200px]]-->
 +
 
 
===唤醒通信===
 
===唤醒通信===
 
唤醒通信是一种低功耗操作的通信方式,数据接收会延迟,但<span style="color:red;">模块的功耗小,'''可用于电池供电的应用'''</span>
 
唤醒通信是一种低功耗操作的通信方式,数据接收会延迟,但<span style="color:red;">模块的功耗小,'''可用于电池供电的应用'''</span>
* 使用串口软件SSCOM设置LoRa模块为WOR接收模式,<span style="color:red;">'''设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后M1接GND,M0不接'''</span>
+
<!--
 +
* 使用串口软件SSCOM设置LoRa模块为WOR接收模式,<span style="color:red;">'''设置时将M1跳帽去掉,M0跳帽连接GND。设置完成后M1接GND,M0不接'''</span> ,如下图所示
 +
<gallery>
 +
File:SX1268-433M-LoRa-HAT-108.jpg|WOR mode setting
 +
</gallery>
 +
-->
 +
<!--
 
[[File:SX1268-LoRa-HAT-015.png|1200px|]]
 
[[File:SX1268-LoRa-HAT-015.png|1200px|]]
* LoRa模块B接入Pi 3B+,进入目录/RaspberryPi/wor,输入下面命令:
+
-->
  cd ~/RaspberryPi/RaspberryPi/wor
+
* LoRa模块B接入Pi 3B+,进入目录~/Documents/sx126x_lora_hat/RaspberryPi/wor,Xshell上显示已经发送消息时,另一节点会延迟一段时间才能接收到数据,输入下面命令:
  sudo python wor.py
+
  cd ~/Documents/sx126x_lora_hat/RaspberryPi/wor
* Xshell上显示已经发送消息时,SSCOM软件会延迟一段时间才能接收到
+
#wor 发送节点
[[File:SX1268-LoRa-HAT-016.png|center|1200px]]
+
  sudo python wor_transmission.py
 +
#wor 接收节点
 +
sudo python wor_transmission.py
 +
<!-- [[File:SX1268-LoRa-HAT-016.png|center|1200px]] -->
  
==接入STM32使用==
+
==STM32==
 
本例程使用的开发板 Open103C,芯片为STM32F103CBT6,程序是基于HAL库
 
本例程使用的开发板 Open103C,芯片为STM32F103CBT6,程序是基于HAL库
 
===硬件连接===
 
===硬件连接===
 
跳帽连接B,M0、M1跳帽移除改用STM32F103C的GPIO使用,如下图所示<br \>
 
跳帽连接B,M0、M1跳帽移除改用STM32F103C的GPIO使用,如下图所示<br \>
[[File:SX1268-LoRa-HAT-017.jpg|center|500px]]<br \>
+
[[File:SX1268-LoRa-HAT-017.jpg|500px]]<br \>
 
图中GPIO连接接线图为
 
图中GPIO连接接线图为
{| class="wikitable" style="margin: auto;text-align:center;"
+
{| class="wikitable" style="margin: left;text-align:center;"
 
|-
 
|-
 
!  SX1268 LoRa HAT !!  STM32F103C
 
!  SX1268 LoRa HAT !!  STM32F103C
第757行: 第791行:
  
 
==== 透传通信====
 
==== 透传通信====
[[File:SX1268-LoRa-HAT-018.png|center|500px]]
+
[[File:SX1268-LoRa-HAT-018.png|500px]]
 
====中继通讯====
 
====中继通讯====
[[File:SX1268-LoRa-HAT-019.png|center|500px]]
+
[[File:SX1268-LoRa-HAT-019.png|500px]]
 
====唤醒通信(WOR模式)====
 
====唤醒通信(WOR模式)====
 
图中Open103C发送数据时LED1同发送模块的LoRa的LED亮起,但PC端上接收延迟约2S左右才收到数据。
 
图中Open103C发送数据时LED1同发送模块的LoRa的LED亮起,但PC端上接收延迟约2S左右才收到数据。
[[File:SX1268-LoRa-HAT-020.png|center|600px]]
+
[[File:SX1268-LoRa-HAT-020.png|600px]]
 
</div>
 
</div>
  
第770行: 第804行:
  
 
===文档===
 
===文档===
* [https://{{SERVERNAME}}/w/upload/0/09/SX1262_LoRa_HAT_SchDoc.pdf 原理图]
+
* [https://{{SERVERNAME}}/w/upload/a/af/SX1268_LoRa_HAT_SchDoc.pdf 原理图]
 
 
 
===程序===
 
===程序===
* [https://{{SERVERNAME}}/w/upload/1/16/SX1262_LoRa_HAT_Code.7z 示例程序]
+
<!-- * [https://{{SERVERNAME}}/w/upload/2/2b/SX1268_LoRa_HAT_Code.7z 示例程序] -->
 +
* [https://www.waveshare.net/w/upload/6/68/SX126X_LoRa_HAT_Code.zip 示例程序]
  
 
===软件===
 
===软件===
第779行: 第813行:
 
* [https://{{SERVERNAME}}/w/upload/6/62/CP210x_USB_TO_UART.zip CP2102驱动]
 
* [https://{{SERVERNAME}}/w/upload/6/62/CP210x_USB_TO_UART.zip CP2102驱动]
 
* [https://{{SERVERNAME}}/w/upload/5/56/Putty.zip putty]
 
* [https://{{SERVERNAME}}/w/upload/5/56/Putty.zip putty]
 
+
* [https://www.waveshare.net/w/upload/8/8d/RF_Setting%28E22-E90%28SL%29%29_V1.0.zip 参数设置上位机]
 
===数据手册===
 
===数据手册===
 
* [https://{{SERVERNAME}}/w/upload/6/62/DS_SX1261-2_V1.1.pdf SX1262]
 
* [https://{{SERVERNAME}}/w/upload/6/62/DS_SX1261-2_V1.1.pdf SX1262]
 
 
 
 
  
 
</div>
 
</div>

2021年6月8日 (二) 14:26的版本

SX1262-915M-LoRa-HAT
SX1268 433M LoRa HAT
{{{name2}}}
{{{name3}}}
板载接口
RPi USB TO UART

产品概述

  • 本产品是基于SX1268/SX1262芯片,具有LoRa调制功能无线串口模块的树莓派扩展板
  • 具有多级中继实现超远距离通信,低功耗唤醒通信、加密传输等优点
  • 本产品使用私有协议,不支持LoRaWAN

产品特点

  • 支持全球免许可ISM 433MHz/868MHz频段
  • 支持空中唤醒,即超低功耗功能,适用于电池供电的应用方案
  • 支持定点传输、广播传输、信道监听,多级中继用于超远距离通信
  • 支持 RSSI 信号强度指示功能,用于评估信号质量、改善通信网络
  • 支持 LBT 功能,在发送前监听信道环境噪声,可极大提高模块在恶劣环境下的通信成功率
  • LoRa扩频技术,多达84信道/81信道(SX1268,SX1262)可选
  • 支持空中唤醒,在线配置,载波监听,自动中继,通信密钥,低功耗休眠
  • 理想环境下通信距离可达5KM

产品参数

功耗 发射电流 100mA(瞬时功耗)
接收电流 11mA
休眠电流 2uA(LoRa模组深度休眠)
最大发射功率 22.0dBm(10、13、17、22dBm软件选择)
发射长度 240Byte(32、64、128、240Byte软件选择)
缓存容量 1000Byte
工作频段 410.125~493.125MHz
接收灵敏度 -147dBm@0.3Kbps空中速率
空中速率 0.3K~62.5Kbps(可软件选择)
通信接口 UART
参考距离 5KM(晴朗空旷,天线增益5dBi,天线高度2.5米,空中速率2.4kbps)
供电电压 5V
逻辑电平 3.3V
工作温度 -40~85℃

硬件介绍

实物标识图
序号 描述
1 SX1268/SX1262模组
2 74HC125V电平转换芯片
3 CP2102 USB转UART芯片
4 RPi接口
5 USB TO UART接口
6 UART接口方便外接其它MCU
7 SMA天线接口
8 IPEX天线接口
9 指示灯 RXD/TXD:串口指示灯
AUX:辅助指示灯
PWR:电源指示灯
10 UART选择跳帽 A:USB转串口控制LoRa
B:树莓派控制LoRa
C:USB转串口访问树莓派
11 LoRa模式选择跳线 模式0: M0短接,M1短接:传输模式
模式1:M0不接,M1短接:WOR模式
模式2:M0短接,M1不接:配置模式
模式3:M0不接,M1不接:深度休眠模式

1、将M1、M0进行高低电平组合,确定工作模式,其中M1、M0不接跳帽时为高电平,切换工作模式后,若模块空闲,则进入新的工作模式,否则将处理完当前发射接收后再进入新工作模式
2、模式0,用户串口输入数据后,模块启动无线发射,空闲时,无线接收功能打开,接收到数据串口TXD输出
3、模式1,当定义为发射时,发射前自动增加一定时间唤醒码,接收等同于模式0
4、模式2,无线收发功能关闭,用户可以参造寄存器配置设置寄存器
5、模式3,无线收发关闭,进入深度休眠模式,当进入其他工作模式,模块重新配置参数

寄存器配置

配置模式(模式2:M0短接,M1不接)下,支持的指令列表如下(设置时,只支持9600,8N1格式),以下数值为16进制

指令功能 详细说明
设置寄存器
指令格式:C0+起始地址+长度+参数
响应格式:C1+起始地址+长度+参数
例1:配置信道为0x11
指令头 起始地址 长度 参数
发送: C0 05 01 11
返回: C1 05 01 11
例2:同时配置模块地址(0x1234)、网络地址(0x00)、串口(9600 8N1)、空速(1.2K)
指令头 起始地址 长度 参数
发送: C0 00 04 12 34 00 61
返回: C1 00 04 12 34 00 61
读取寄存器
指令格式:C1+起始地址+长度
响应格式:C1+起始地址+长度+参数
例1:读取信道
指令头 起始地址 长度 参数
发送: C1 05 01
返回: C1 05 01 11
例2:同时读取模块地址、网络地址、串口、空速
指令头 起始地址 长度 参数
发送: C0 00 04
返回: C1 00 04 12 34 00 61
设置临时寄存器 指令格式:C2+起始地址+长度+参数
响应格式:C1+起始地址+长度+参数
例1:配置信道为0x11
指令头 起始地址 长度 参数
发送: C2 05 01 11
返回: C1 05 01 11
例2:同时配置模块地址(0x1234)、网络地址(0x00)、串口(9600 8N1)、空速(1.2K)
指令头 起始地址 长度 参数
发送: C2 00 04 12 34 00 61
返回: C1 00 04 12 34 00 61
无线配置
指令格式:CF+CF+C0+起始地址+长度+参数
响应格式:CF+CF+C1+起始地址+长度+参数
例1:配置信道为0x11
无线指令头 指令头 起始地址 长度 参数
发送: CF CF C0 05 01 11
返回: CF CF C1 05 01 11
例2:同时配置模块地址(0x1234)、网络地址(0x00)、串口(9600 8N1)、空速(1.2K)
无线指令头 指令头 起始地址 长度 参数
发送: CF CF C0 00 04 12 34 00 61
返回: CF CF C1 00 04 12 34 00 61
格式错误 格式错误响应
FF FF FF

注意:

  1. 使用无线配置时,应先配置两个模块地址、NETID、空速和密钥,使之参数相同,再使用CFCF指令格式进行无线配置。例如:模块A地址、NETID、空速和密钥为1、1、2.4Kbps和1,模块B地址、空速和密钥为2、2、62.5kbps和2,若模块A要无线配置模块B,须先将模块A的地址、NETID、空速和密钥设置为模块B的参数,然后再使用CF CF指令无线配置模块B。
  2. 设置临时寄存器后,LoRa模组将使用临时寄存器的值工作,掉电重启后,临时寄存器的值丢失, LoRa模块会重新设置寄存器。设置值为上次使用C1指令格式配置的值

寄存器描述

寄存器地址 读写 名称 描述 备注
00H 读/写 ADDH ADDH(默认0) 模块地址高字节和低字节,
注意:当模块地址等于FFFF时,可作为广播和监听地址,此时模块将不再进行地址过滤
01H 读/写 ADDL ADDL(默认0)
02H 读/写 NETID NETID(默认0) 网络地址,用于区分网络,相互通信时,应设置为相同
03H 读/写 REG0 7 6 5 UART串口速率(bps) 相互通信的两个模块,串口波特率可以不同,校验方式也可以不同;
当连续发射较大数据包时,用户需要考虑波特率相同带来的数据阻塞,甚至可能丢失;一般建议通信双方波特率相同
0 0 0 串口波特率为1200
0 0 1 串口波特率为2400
0 1 0 串口波特率为4800
0 1 1 串波特率为9600(默认)
1 0 0 串口波特率为19200
1 0 1 串口波特率为38400
1 1 0 串口波特率为57600
1 1 1 串口波特率为115200
4 3 串口校验位 通信双方串口模式可以不同
0 0 8N1(默认)
0 1 8O1
1 0 8E1
0 1 8N1等于00
2 1 0 无线空中速率(bps) 通信双方空中速率必须相同;
空中速率越高,延迟越小,传输距离越短。
0 0 0 空中速率0.3
0 0 1 空中速率1.2
0 1 0 空中速率2.4(默认)
0 1 1 空中速率4.8K
1 0 0 空中速率9.6K
1 0 1 空中速率19.2K
1 1 0 空中速率38.4K
1 1 1 空中速率62.5K
04H 读/写 REG0 7 6 分包设定 用户发送数据小于分包长度,接收端串口输出呈现为不间断连续输出;
用户发送数据大于分包长度,接收端串口会分包输出。
0 0 240字节(默认)
0 1 128字节
1 0 64字节
1 1 32字节
5 环境噪音使能 启用后,可在传输模式或 WOR 发送模式发送指令 C0 C1 C2 C3读取寄存器;
寄存器 0x00 :当前环境噪声 RSSI;
寄存器 0X01 :上一次接收数据时的 RSSI (当前信道噪声为:dBm =-(256-RSSI);
指令格式:C0 C1 C2 C3+起始地址+读取长度;
返回格式:C1 + 地址+读取长度+读取有效值;如: 发送 C0 C1 C2 C3 00 01 返回 C1 00 01 RSSI(地址只能从 00 开始)
0 禁用(默认)
1 启用
4 3 2 保留
1 0 发射功率 功率和电流是非线性关系,最大功率时,电源效率最高; 电流不会随功率降低而同比例降低
0 0 22dBm(默认)
0 1 17dBm
1 0 13dBm
1 1 10dBm
05H 读/写 REG2 信道控制(CH)0-83分别代表总共84个信道 实际频率= 410.125 + CH *1MHz,默认433.125MHz或850.125+CH*1MHz,默认868.125MHz
06H 读/写 REG3 7 启用RSSI字节 启用后,模块收到无线数据,通过串口 TXD 输 出后,将跟随一个 RSSI 强度字节。
0 禁用(默认)
1 启用
6 传输方式 定点传输时,模块会将串口数据的前三个字节 识别为:地址高+地址低+信道,并将其作为无线发射目标。
0 透明传输(默认)
1 定点传输
5 中继功能 中继功能启用后,如果目标地址不是模块自身,模块将启动一次转发; 为了防止数据回传,建议和定点模式配合使 用;即:目标地址和源地址不同
0 禁用中继功能(默认)
1 启用中继功能
4 LBT使能 启用后,无线数据发射前会进行监听,可以在 一定程度上避开干扰,但可能带来数据延迟; LBT 最大停留时间 2 秒,达到两秒会强制发出
0 禁用(默认)
1 启用
3 WOR模式收发控制 仅针对模式 1 有效; WOR 接收方收到无线数据并通过串口输出后, 会等待 1000ms 后才再次进入 WOR,用户可以在 此期间输入串口数据并通过无线返回; 每个串口字节都会刷新 1000ms 时间; 用户必须在 1000ms 内发起第一个字节。
0 WOR发射(默认)模块收发打开,且在发射数据时,加入一定时间的唤醒码
1 WOR接收方。模块无法发射数据,工作再WOR监听模式,可以节省大量功耗
2 1 0 WOR周期 仅针对模式 1 有效; 周期 T= (1+WOR)*500ms,最大 4000ms,最 小为 500ms; WOR 监听间隔周期时间越长,平均功耗越低, 但数据延迟越大;收发双方必须一致(非常重要)
0 0 0 500ms
0 0 1 1000ms
0 1 0 1500ms
0 1 1 2000ms
1 0 0 2500ms
1 0 1 3000ms
1 1 0 3500ms
1 1 1 4000ms
07H CRYPT_H 密钥高字节(默认0) 只写,读取返回 0; 用于加密,避免被同类模块截获空中无线数据; 模块内部将使用这两个字节作为计算因子对空 中无线信号进行变换加密处理
08H CRYPT_L 密钥低字节(默认0)
80H~86H PID 产品信息7字节 产品信息7个字节

PC串口调试

  1. 准备两个SX1268 LoRa HAT 模块(以下统称Lora模块),两根Micro USB线,装配SMA天线,跳帽置于A上,M0和M1连接GND
  2. WINDOWS PC上安装CP2102驱动,两个Lora模块使用Micro USB连接至PC
  3. 打开PC设备管理器,查找CP2102对应的两个COM口,使用SSCOM串口软件分别连接两个Lora模块,波特率都设置为9600
  4. 其中一个SSCOM串口软件的输入栏输入数据,点击发送按钮,在另一个SSCOM串口软件显示栏可以看到LoRa模块收到的数据。

Raspberry Pi

安装函数库,打开树莓派SERIAL串口

需要安装必要的函数库(python库),否则以下的示例程序可能无法正常工作。安装方法详见:(如果是新系统请按照如下进行操作,若已经安装好以下的库可跳过)
安装python库:

sudo apt-get install python-pip 
sudo pip install RPi.GPIO
sudo apt-get install python-smbus
sudo apt-get install python-serial

打开树莓派SERIAL串口
若用户使用SSH登录树莓派终端,请点击我参阅使能树莓派SERIAL串口
L76X GPS Module rpi serial.png

下载示例程序

  1. 使用putty等软件登录RaspberryPi 3B+或Zero W,不熟悉SSH或Serial登录用户可点击我参考
  2. 在RaspberryPi 3B+控制台界面下载示例程序,输入下面命令:
mkdir -p Documents/sx126x_lora_hat && cd Documents/sx126x_lora_hat
wget https://www.waveshare.net/w/upload/6/68/SX126X_LoRa_HAT_Code.zip
unzip SX126X_LoRa_HAT_Code.zip

透传通信

  • 准备RaspberryPi 3B+,LoRa模块直接接入Pi 3B+的40Pin口,跳帽置于B,M0和M1由Pi 3B+的IO控制,不再使用跳帽,如下图所示
  • 执行下面命令后,节点接收其它节点发送的数据时自动打印到终端,当节点需要发送数据给其它节点时候,按下键盘i,然后按提示输入输入即可,如下图所示
cd ~/Documents/sx126x_lora_hat/RaspberryPi/transparent
sudo python3 main.py


中继通信

中继通信是为实现超远距离通信一种方法,将LoRa模块设置成中继模式,中继模式的LoRa模块地址寄存器只作为NETID转发配对,不再有主动收发功能,也无法低功耗操作
注意:实现中继功能至少需要三个LoRa模块

  • 将当前三个LoRa模块假设为LoRa模块A,LoRa模块B,LoRa模块C。
  • 使用Windows端上位机设置中继LoR模块B和LoRa模块C,LoRa模块A直接接入树莓派,如下图所示
  • LoRa模块A接入Pi 3B+,拔掉M0、M1跳帽,进入/RaspberryPi/relay目录,执行下面命令,LoRa模块A约2秒会重复自动发送数据,LoRa模块C收到数据会从串口打印数据,而中继LoRa模块B不会从串口打印任何数据,输入下面命令:
cd ~/Documents//sx126x_lora_hat/RaspberryPi/relay
sudo python relay.py

唤醒通信

唤醒通信是一种低功耗操作的通信方式,数据接收会延迟,但模块的功耗小,可用于电池供电的应用

  • LoRa模块B接入Pi 3B+,进入目录~/Documents/sx126x_lora_hat/RaspberryPi/wor,Xshell上显示已经发送消息时,另一节点会延迟一段时间才能接收到数据,输入下面命令:
cd ~/Documents/sx126x_lora_hat/RaspberryPi/wor
#wor 发送节点
sudo python wor_transmission.py 
#wor 接收节点
sudo python wor_transmission.py

STM32

本例程使用的开发板 Open103C,芯片为STM32F103CBT6,程序是基于HAL库

硬件连接

跳帽连接B,M0、M1跳帽移除改用STM32F103C的GPIO使用,如下图所示
SX1268-LoRa-HAT-017.jpg
图中GPIO连接接线图为

SX1268 LoRa HAT STM32F103C
5V 5V
GND GND
RXD PA10
TXD PA9
M1 PB15
M0 PB14

例程演示

  • 连接电脑USB的LoRa模块的设置同以上三个例程相同。
  • 打开Keil工程文档,在main.c文件第75行到77行使用不同的定义使用不同的通信方式
#define TRASNSPARENT
//#define RELAY
//#define WOR
  • 选择好上面的通讯方式按F7编译,按F8下载到STM32。

透传通信

SX1268-LoRa-HAT-018.png

中继通讯

SX1268-LoRa-HAT-019.png

唤醒通信(WOR模式)

图中Open103C发送数据时LED1同发送模块的LoRa的LED亮起,但PC端上接收延迟约2S左右才收到数据。 SX1268-LoRa-HAT-020.png


国内使用SX1268 433M LoRa HAT,SX262 868M LoRa HAT,SX262 915M LoRa HAT只能是用来开发产品,不能大面积覆盖区域网络,国内使用SX1268 470M LoRa HAT覆盖区域网络



联系人:苏工

EMAIL:3004517899@qq.com
电话:0755-83040712
QQ:3004517899
微信:扫下方二维码添加
Syq.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证