前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LoRa社区网关点亮活动】基于腾讯云IoT Explorer搭建开放的LoRaWAN网络

【LoRa社区网关点亮活动】基于腾讯云IoT Explorer搭建开放的LoRaWAN网络

原创
作者头像
forest-rain
修改2020-10-19 10:24:26
3.5K1
修改2020-10-19 10:24:26
举报
文章被收录于专栏:腾讯云IoT腾讯云IoT

1 前言

IoT Explorer是腾讯云打造的一站式物联网开发平台,腾讯云IoT Explorer从设备接入上提供多种完善的通信对接模式,本文内容主要涉及到IoT Explorer中的物联网操作系统TencentOS tiny与基于LoRa通信的LoRa社区网络(LoRaWAN)。

2 准备工作

搭建开放的LoRaWAN网络,主要包括LoRaWAN云服务器、LoRaWAN网关、LoRaWAN终端设备。其中LoRaWAN服务器采用IoT Explorer提供的LoRa社区网络,网关与节点采用ST公司的LoRaWAN网络评估套件P-NUCLEO-LRWAN3。

2.1 准备LoRaWAN服务器

LoRaWAN服务器采用腾讯云的物联网开发平台(IoT Explorer)提供的LoRa开放社区网络。 https://cloud.tencent.com/product/iotexplorer

2.2 准备LoRaWAN网关与LoRaWAN节点

ST公司的LoRaWAN网络评估套件P-NUCLEO-LRWAN3 包括一个LoRaWAN网关和一个LoRaWAN节点。

image
image
image
image

3 基于IoT Explorer搭建LoRaWAN网络

登录腾讯云物联网开发平台(IoT Explorer)

在IoT Explorer的主要操作大致可分为如下两部分:

  • 一是LoRa网络搭建(服务中心)
  • 二是应用产品开发(开发中心)

如下图所示

image.png
image.png

3.1 服务中心

“服务中心”->“LoRa网关管理”可用于搭建LoRaWAN网络与服务。

3.1.1 LoRa网关管理

点击“服务中心”->“LoRa网关管理”,即可进入LoRa社区网络。

image.png
image.png

“LoRa网关管理”-->“社区网络”-->“添加网关”,填写LoRa网关的相关信息,注意GwEUI必须与实际所使用LoRa网关EUI保持一致,否则LoRa网关将加入不了LoRa社区网络。

image.png
image.png

完成上述步骤后,LoRaWAN网络平台侧就准备就绪了,接下来是对接实际的LoRa网关。

3.1.2 对接LoRaWAN网关

LoRaWAN网关(以下简称为LoRa网关)是LoRaWAN终端设备与LoRaWAN服务器相互通信的桥梁。

3.1.2.1 LoRa网关参数配置

将P-NUCLEO-LRWAN3 中的LoRa网关上电,并将USB转串口连接到PC,打开串口调试工具(115200N81)。LoRa网关启动后,会通过串口打印当前网关的基础信息。

P-NUCLEO-LRWAN3 中的LoRa网关出厂缺省连接的LoRaWAN服务器是cnl.loriot.io,因此需修改为IoT Explorer的LoRa服务器地址(loragw.things.qcloud.com)。

image.png
image.png
3.1.2.1.1 LoRa网关的AT指令集

LoRa网关板连接到PC端后,可以通过串口调试工具(115200N81)发送相关的AT指令,查询与配置LoRa网关状态。

输入AT+HELP 获取帮助信息,查看当前支持的AT指令集,如下所示

image.png
image.png
3.1.2.1.2 修改网关连接的LoRaWAN服务器地址
  1. 在PC端的串口调试窗口输入AT+PKTFWD来设置LoRa网关连接的服务器地址与端口号:

// 设置ns服务器为loragw.things.qcloud.com AT+PKTFWD=loragw.things.qcloud.com,1700,1700

  1. 根据需要是否开启日志显示

// 开启日志显示 AT+LOG=ON

  1. 根据需要是否修改GWEUI

// 修改GWEUI,采用的是Nucleo-F746ZG的MAC地址,前3字节后面补0000 AT+EUI=3,00,4,00

  1. 重启网关

AT+RESET

3.1.2.1.3 修改网关的工作频点

IoT Explorer的LoRa社区网络当前支持的是LoRaWAN标准CN470频段。因此需按照CN470频段规范,结合实际应用来修改LoRa网关所使用频点。

LoRaWAN CN470频段有上行96个信道,下行48个信道,上下行异频,下行信道 = 上行信道 % 48。

image.png
image.png

本文设置如下:

  1. 上行工作频点为CN470上行信道表的CH0~CH7 (470.3~471.7 MHz)
  2. 对应的下行工作频点则为CN470下行信道表的CH0~CH7(500.3~501.7MHz)

AT+CH=0,470.3,A AT+CH=1,470.5,A AT+CH=2,470.7,A AT+CH=3,470.9,A AT+CH=4,471.1,B AT+CH=5,471.3,B AT+CH=6,471.5,B AT+CH=7,471.7,B AT+CH=8,OFF AT+CH=9,OFF

上述操作完成后,重启网关,等待网关上线。

image.png
image.png

然后进入“物联网开发平台(IoT Explorer)”-->“服务中心”-->“LoRa网关管理”-->“用户网关”,选中目标网关,查看该LoRa网关的当前状态信息(如网关名称、GwEUI、最后上报时间等等

image.png
image.png

完成LoRa网关接入IoT Explorer平台,就基本上搭建好了一个LoRaWAN网络。

3.1.2 更新LoRa网关固件

如果P-NUCLEO-LRWAN3 中的Nucleo-F746ZG中的LoRa网关固件被擦除,可以通过如下方式更新代码:

  1. 准备LoRa网关的配套固件
    • st-nucleo-lora-gw-at-fw-v2.2.0-cn470prequel.bin
  2. 更新固件
    1. 先给 LoRa网关板供电,然后通过USB连接线插入电脑
    2. Nucleo-F746ZG板载的ST-Link会识别成一个U盘
      1. 盘符:NODE_F746ZG(H:),容量为1.02MB
    3. 打开并进入U盘根目录文件夹
  3. 直接把bin文件拖拽到该文件夹,拷贝完成完后,ST-Link会自动烧入到目标芯片Flash,完成固件更新
image.png
image.png
image.png
image.png

3.2 开发中心

“开发中心”可用于创建基于LoRaWAN终端设备的应用产品。

3.2.1 新建项目

点击 “开发中心” ->“新建项目”,在“新建项目”页面填入实际项目的相关信息

image.png
image.png
3.2.1.1 新建产品

点击上述已创建的项目,在弹出的“新建产品”页面,本文要加入的产品为NUCLEO_LRWAN3_Sensor 传感器设备,填写相应产品信息。

image.png
image.png
image.png
image.png

创建完产品后,就可以根据实际产品需求,按照产品开发流程向导,完成所需要内容。

image.png
image.png
3.2.1.1.1 创建数据模板

在“数据模板”页面,“自定义功能”->“新建功能”。添加温度、湿度、上报周期三个属性。

image.png
image.png
image.png
image.png
image.png
image.png
3.2.1.1.2 设备开发

“设备开发”可用于配置LoRaWAN的部分通信参数(协议版本、入网方式、、设备类型、RX1 Delay等),同时定义二进制数据(终端侧)与JSON数据(平台侧)格式相互转换的脚本。

image.png
image.png
3.2.1.1.2 设备调试

添加一个LoRaWAN终端设备,填入设备DevEUI与设备密钥(AppKey)

image.png
image.png

3.2.2 对接LoRaWAN终端设备1

LoRaWAN终端设备1采用NUCLEO_STM32L073RZ+LoRaWAN串口模组,软件运行的是TencentOS-tiny的LoRaWAN示例程序。

TencentOS tiny 官方开源仓库 下载源码,进入<TencentOS-tiny\board\NUCLEO_STM32L073RZ\KEIL\lorawan>目录,打开 TencentOS_tiny.uvprojx 工程,该工程包含 STM32L073 外设驱动、TencentOS tiny 内核、AT 框架、LoRaWAN 模组驱动、LoRaWAN 温湿度上报示例。

注意终端设备的DevEUI、AppKey必须与IoT Explorer平台侧“设备调试”添加的终端设备保持一致。

基于TencentOS tiny的LoRaWAN终端部分实现如下

代码语言:javascript
复制
// CN470频段
#define RHF76_ATCMD_SET_BAND_CN470              "AT+DR=CN470\r\n"
#define RHF76_ATCMD_REPLY_BAND_CN470            "+DR: CN470"
// 信道使用CH0~7
#define RHF76_ATCMD_SET_CHANNEL                 "at+ch=num,0-7\r\n"

void application_entry(void *arg)
{
    int16_t temperature;
    int16_t humidity;

    HTS221_Init();
   
    rhf76_lora_init(HAL_UART_PORT_1);
    tos_lora_module_recvcb_register(recv_callback);

    /* 设置终端设备的deveui、appkey */
    tos_lora_module_join_otaa("1122334455667788","00112233445566778899AABBCCDDEEFF");
    
    while (1)
    {
        // 周期性上报数据,缺省为10s
        HTS221_Get_Temperature(&temperature);
        HTS221_Get_Humidity(&humidity);
        BSP_PRESSURE_Get_Press(&pressure);
        printf("temperature: %2.1f\n", temperature / 10.0);
        printf("humidity   : %2.1f\n", humidity / 10.0); 
        printf("pressure   : %.1f\n", pressure); 
        
        dev_data_wrapper.u.dev_data.temperature = temperature / 10;
        dev_data_wrapper.u.dev_data.humidity    = humidity / 10;
        dev_data_wrapper.u.dev_data.period      = report_period;

        tos_lora_module_send(dev_data_wrapper.u.serialize, sizeof(dev_data_t));
        tos_task_delay(report_period * 1000);
    }
}
image.png
image.png

在IoT Explorer平台侧,“设备调试”可以查看到该设备的历史数据等信息。

image.png
image.png

3.2.3 对接LoRaWAN终端设备2

LoRaWAN终端设备2采用EVB_WL评估板,软件运行的是TencentOS Tiny\board\RHF0M0E5_STM32WLE5xx_lorawan示例代码。该示例包含了TencentOS Tiny内核、LoRaWAN终端协议栈、LoRaWAN数据包上报应用的实现。

代码语言:javascript
复制
// 修改DevEUI、AppKey 、LoRaWAN终端终端的信道、入网方式、速率等参数配置
static lorawan_configuration_t lw_config =
{
    .otaa        = LORA_ENABLE,
    .duty_cycle  = LORA_ENABLE,
    .DevEui      = LORAWAN_DEVICE_EUI,
    .JoinEui     = LORAWAN_JOIN_EUI,
    .AppKey      = LORAWAN_APP_KEY,
    .NwkKey      = LORAWAN_NWK_KEY,
    .NwkSEncKey  = LORAWAN_NWK_S_ENC_KEY,
    .AppSKey     = LORAWAN_APP_S_KEY,
    .FNwkSIntKey = LORAWAN_F_NWK_S_INT_KEY,
    .SNwkSIntKey = LORAWAN_S_NWK_S_INT_KEY,
    .Rssi        = 0,
    .Snr         = 0,
    .ReqAck      = LORAWAN_UNCONFIRMED_MSG,
    .TxDatarate  = 0
};

void MX_LoRaWAN_Init(void)
{   
    /*channel 0-7*/
    LWChannel_mask_t ch={0x00FF,0,0,0,0,0x0000};    
    
    /*tx dr*/
    lw_config_tx_datarate_set(DR_3);
    
    /*OTAA*/
    lw_config_otaa_set(LORA_ENABLE);

    /*enable adr*/
    lw_adr_set(LORA_ENABLE);
    
    /*set retry*/
    lw_confirm_retry_set(3);
}

4 参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 前言
  • 2 准备工作
    • 2.1 准备LoRaWAN服务器
      • 2.2 准备LoRaWAN网关与LoRaWAN节点
      • 3 基于IoT Explorer搭建LoRaWAN网络
        • 3.1 服务中心
          • 3.1.1 LoRa网关管理
          • 3.1.2 对接LoRaWAN网关
          • 3.1.2 更新LoRa网关固件
        • 3.2 开发中心
          • 3.2.1 新建项目
          • 3.2.2 对接LoRaWAN终端设备1
          • 3.2.3 对接LoRaWAN终端设备2
      • 4 参考
      相关产品与服务
      物联网
      腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档