TencentOS tiny 定制开发板直接操作LoRa模组

2021-12-07 14:33:40 浏览数 (2)

文章目录

代码语言:txt复制
- [前言](https://cloud.tencent.com/developer)
- [1 硬件连接介绍](https://cloud.tencent.com/developer)
- [2 AT操作介绍](https://cloud.tencent.com/developer)
    - [基础格式](https://cloud.tencent.com/developer)
    - [基础命令](https://cloud.tencent.com/developer)
    - [ID及密钥相关命令](https://cloud.tencent.com/developer)
    - [速率及频点相关命令](https://cloud.tencent.com/developer)
    - [加网命令](https://cloud.tencent.com/developer)
    - [数据收发命令](https://cloud.tencent.com/developer)
        - [PORT](https://cloud.tencent.com/developer)
        - [字符发送](https://cloud.tencent.com/developer)
        - [HEX发送](https://cloud.tencent.com/developer)
- [3 更多灵活设置](https://cloud.tencent.com/developer)
    - [单频点通信](https://cloud.tencent.com/developer)
- [4 腾讯云物联网开发平台](https://cloud.tencent.com/developer)

前言

有的时候想灵活的操作模组进行一些自定义的频点和数据发送操作,这时候编写代码肯定是不方便的,一款得心应手的串口AT模组将会大大提升我们的效率。

这篇文章将使用 TencentOS tiny 定制开发板直接操作板载E53接口的LoRa模组,通过对其AT命令操作来实现一些自定义操作。

原本打算使用 ST 原厂主推的 LoRa 评估套件 P-NUCLEO-LRWAN3 ,在研究了 《UM01723ST Nucleo LoRa Sensor getting started user manual》后,发现 Nucleo 底板与 Arduino Shiled 之间并没有硬件的跳线,需要对底板烧写相应的 USB-UART Bridge 的特殊固件,没办法直接操作到 Shiled 的 LoRa 模组,因此放弃这个方式。

腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,IoT 小能手从设备侧开发、平台功能操作、应用侧开发三个部分来进行学习分享,另外还分享了一些动手实践作品及收录官方发布的产业合作案例,帮助读者更好地理解整个开发链路。详情可点此查看。

1 硬件连接介绍

经过分析,发现 TencentOS tiny 定制开发板上具有相关的串口跳线,可以很方便的对其中任何一方的数据进行分析。

模组管脚

跳线引脚

模组的TX

AT_RX

模组的RX

AT_TX

只需要将 AT_RX 连接 PC_RX,AT_TX 连接 PC_TX,就可以直接使用板载的 USB串口来操作瑞兴恒方的LoRa模组。

2 AT操作介绍

串口配置为:115200-8-1

AT命令主要参考《RHF-PS01709Long Range LoRa® Class ABC AT Command Specification v1.2.pdf》。

基础格式

代码语言:javascript复制
查询
 AT COMMAND
 AT COMMAND?
 AT COMMAND=?
代码语言:javascript复制
配置/控制
AT COMMAND=DATA
代码语言:javascript复制
返回
  COMMAND: “RETURN DATA”

基础命令

代码语言:javascript复制
AT测试
 AT
  AT: OK
代码语言:javascript复制
查看版本
 AT VER
  VER: 3.5.9
代码语言:javascript复制
使能日志
 AT LOG=DEBUG
  LOG: DEBUG
代码语言:javascript复制
复位
 AT RESET
  RESET: OK

ID及密钥相关命令

代码语言:javascript复制
AT ID
  ID: DevAddr, 00:00:4E:0F
  ID: DevEui, 8C:F9:57:20:00:00:4E:0F
  ID: AppEui, 70:B3:D5:7E:D0:0E:00:17

AT KEY // 出于安全考虑,只能写入,不能查询

速率及频点相关命令

确认当前使能的信道

代码语言:javascript复制
AT CH=NUM
  CH: NUM, 0-7, 64

加网命令

代码语言:javascript复制
AT MODE
  MODE: LWOTAA
 JOIN: Start
  JOIN: NORMAL
  LOG: DEBUG 11022761 LORA TX, 486300000, SF9, 125KHz, 20
  LOG: DEBUG 11022763 LORA TX, 0017000ED07ED5B3700F4E00002057F98CD3D4DF4DE72D
  LOG: DEBUG 11027954 LORA RX, 506700000, SF9, 125KHz
  LOG: DEBUG 11028137 LORA RX, 20BD6623406561250D47C4F9680A674FA3, -68, 8
  JOIN: Network joined
  JOIN: NetID 000035 DevAddr 6A:6B:16:CE
  JOIN: Done

数据收发命令

PORT
代码语言:javascript复制
AT PORT=?
  PORT: 8
字符发送
代码语言:javascript复制
AT MSG=“Data to send”
 AT CMSG=“Data to send”
AT MSG=“2”
  MSG: Start
  LOG: DEBUG 11185443 LORA TX, 486300000, SF9, 125KHz, 20
  LOG: DEBUG 11185445 LORA TX, 40CE166B6A00020008544D455CA8
  LOG: DEBUG 11186596 LORA RX, 506700000, SF9, 125KHz
  LOG: DEBUG 11186778 LW MACCMD, RX, 0330FF0051
  LOG: DEBUG 11186780 LORA RX, 60CE166B6A8501000330FF00513BA7F222, -59, 9
  MSG: FPENDING
  MSG: RXWIN1, RSSI -59, SNR 8.5
  MSG: Done
HEX发送
代码语言:javascript复制
确认帧
 AT CMSGHEX=“12345678”
  CMSGHEX: Start
  CMSGHEX: Wait ACK
  CMSGHEX: Done

3 更多灵活设置

单频点通信

1.仅使能80信道

代码语言:javascript复制
AT CH=NUM,80
  CH: NUM, 80

2.仅使用80信道的DR3进行通信

代码语言:javascript复制
AT CH=80
  CH: 80,486300000,DR0:DR5
AT CH=80,486.3,3
  CH: 80,486300000,DR3:DR3

4 腾讯云物联网开发平台

1.端侧上报数据

代码语言:javascript复制
[17:45:11.507]发→◇AT MSG="1234"
□
[17:45:11.517]收←◆ MSG: Start
 LOG: DEBUG   165368 LW      MACCMD, TX, 0307
 LOG: DEBUG   165369 LORA    TX, 486300000, SF9, 125KHz, 20
 LOG: DEBUG   165371 LORA    TX, 408BDED96B020100030708711FE371F37D3B88

[17:45:12.694]收←◆ LOG: DEBUG   166541 LORA    RX, 506700000, SF9, 125KHz

[17:45:13.698]收←◆ LOG: DEBUG   167551 LORA    RX, 505300000, SF12, 125KHz

[17:45:14.515]收←◆ MSG: Done

2.平台侧查看

腾讯云 IoT Explorer 上我则使用之前创建的一个浇花器项目,13块钱DIY微信小程序远程浇花神器,会将模组上报的第一字节以土壤湿度的属性呈现出来。

0 人点赞