0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

与LoRaWAN服务器连接进行数据收发

亿佰特物联网应用专家 2023-09-22 08:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

与Chirpstack服务器数据交互

准备:使用MQTTX软件订阅目标服务器,此处为自己搭建的chirpstack服务器,IP为192.168.0.84,用户名和密码均为admin,通过应用服务器订阅TOPIC来接受设备服务器发布的信息。

29ef2e14-58de-11ee-9788-92fbcf53809c.png


设备信息位置如图:

2a03ad26-58de-11ee-9788-92fbcf53809c.png

语法:

卡片的背景色需要调出布局工具栏来设置

// 设备服务器上传的TOPIC

// display everything for the given APPLICATION_ID

application/APPLICATION_ID/#

// display only the uplink payloads for the given APPLICATION_ID

application/APPLICATION_ID/device/+/event/up

// 应用服务器下发TOPIC

application/APPLICATION_ID/device/DEV_EUI/command/down

注意:'#'和'+'为MQTT协议中的通配符

单级通配符(Single-level wildcard):用符号"+"表示。当一个主题中的某个级别使用"+"通配符时,它可以匹配一个层级的任意名称。例如,"home/+"可以匹配"home/bedroom"、"home/livingroom"等主题,但不能匹配"home/bedroom/temperature"等超过一个层级的主题。

多级通配符(Multi-level wildcard):用符号"#"表示。当一个主题中的某个级别使用"#"通配符时,它可以匹配多个层级的任意名称。"#"必须作为主题的最后一个级别,可以匹配当前级别以及所有更深层级的主题。例如,"home/#"可以匹配"home/bedroom"、"home/livingroom",以及"home/bedroom/temperature"等任意层级的主题。


每个卡片都可以嵌套插入图片或其它模板。

设备推送信息:

//接收TOPIC:

//订阅单个设备的数据上传TOPIC

application/ded77c98-1249-44d1-9a14-c4b312f71d77/device/a1b117f518a3ba80/event/up

//订阅当前app下的所有设备

application/ded77c98-1249-44d1-9a14-c4b312f71d77/#

/* 终端节点上传数据的AT指令

1:需要确认帧 // 0不需要确认

2:最大重发次数2次

10:当前包的byte数量

xx:data */

AT+DTRX=1,2,10,3435363738

应用服务器接收到的信息如图:

2a2331a0-58de-11ee-9788-92fbcf53809c.png

应用服务器下发信息:

//下发TOPIC:

application/ded77c98-1249-44d1-9a14-c4b312f71d77/device/a1b117f518a3ba80/command/down

//下发数据格式

{

"devEui": "a1b117f518a3ba80", #设备ID

"confirmed": true, #是否需要确认

"fPort": 10, #目标应用层端口

"data": "cnVub29i" #数据,注意:需要使用base64编码格式 eg:cnVub29i == 72756E6F6F62(runoob)

}

2a36b48c-58de-11ee-9788-92fbcf53809c.png

//终端设备从接收缓冲区中读取数据并清空缓冲区

AT+DRX?

设备接收到的信息如图:

2a4a35de-58de-11ee-9788-92fbcf53809c.png

注意:MQTT通配符只能在订阅时使用,无法在发送时使用。

工具网站

ASCII转字符:https://www.asciim.cn/m/tools/convert_ascii_to_string.html

base64加解密:https://c.runoob.com/front-end/693/

与TTN服务器数据交互

之前的文章我们主要说明了如何在thethingsnetwork.org上面注册网关、创建应用、创建设备等,thethingsnetwork.org(下称TTN)只是一个网络服务器(network server),不会保存应用数据,因此实际项目中还需要一个应用服务器(application server),thethingsnetwork.org提供了多种方式供应用平台获取数据以及管理设备。

主要分为3大类:

APIs:又分为数据API和应用管理API,数据API主要用MQTT方式接收和下发数据,应用管理API主要使用HTTP方式管理注册设备。

SDKs:提供了Go、JavaNode.js等各种语言。

Integrations(集成):ThingSpeak、AWS IOT等。

多数情况下只需要关注上报和下发数据,因此本文主要说明如何使用MQTT方式获取数据和下发数据,官方说明:https://www.thethingsnetwork.org/docs/applications/mqtt/api.html

这里使用MQTT.fx这个客户端来演示,在实际应用中可能使用其他高级语言MQTT客户端的方式。

连接

2a62e9b2-58de-11ee-9788-92fbcf53809c.png

主要是上面框图中的四个参数,其中:

Broker Address:.thethings.network,其中是所选的地区。

这个参数也是我们注册应用的时候选择的Handler,就是下图中右边的地址:

2a770f78-58de-11ee-9788-92fbcf53809c.png2a9b5f22-58de-11ee-9788-92fbcf53809c.png

Broker Port:1883(非加密方式)。

Client ID:随便给一个。

User Name:应用ID,这个是注册应用的时候自定义的,这里是ff08。

2ab0a30a-58de-11ee-9788-92fbcf53809c.png

Password:应用访问密钥,base64格式,这个是系统生成的,当然也可以自己添加,这里使用系统生成的:

2ad197f4-58de-11ee-9788-92fbcf53809c.png


订阅(Subscribe)节点上行数据

TTN提供了一个主题Topic:/devices//up,其中和都是注册的时候自己定义的,进入相应的设备就可以看到,如下:

2aef3cb4-58de-11ee-9788-92fbcf53809c.png2aff5dba-58de-11ee-9788-92fbcf53809c.png

可以看到节点ID、上报的端口号、计数器、频点、时间戳等,其中payload_raw字段就是我们上传的数据,是以base64格式显示的。

发布(Publish)下行数据

TTN提供了一个主题Topic:/devices//down,其中和都是注册的时候自己定义的,进入相应的设备就可以看到。

2b1ef666-58de-11ee-9788-92fbcf53809c.png

数据是json格式,上面3个字段是必须的,payload_raw字段就是我们要下发的数据,是base64格式的。

“MTIzNDU2Nzg5”对应的明文是“123456789”。

2b33f67e-58de-11ee-9788-92fbcf53809c.png

在节点查看下发的应用数据:

2b46c1a0-58de-11ee-9788-92fbcf53809c.png

节点收到的数据以hex格式打印出来,刚好对应字符串“123456789”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    14

    文章

    10345

    浏览量

    91739
  • WAN
    WAN
    +关注

    关注

    1

    文章

    162

    浏览量

    19747
  • 数据收发
    +关注

    关注

    0

    文章

    10

    浏览量

    7910
  • LoRa
    +关注

    关注

    355

    文章

    1916

    浏览量

    238396
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    服务器数据恢复】断电致UFS2文件系统损坏的虚拟机数据恢复案例

    本次需要进行数据恢复的设备为一台服务器,该服务器通过FreeNAS提供iSCSI块存储服务,并借助另外两台服务器构建虚拟化系统。
    的头像 发表于 03-10 17:36 616次阅读
    【<b class='flag-5'>服务器</b><b class='flag-5'>数据</b>恢复】断电致UFS2文件系统损坏的虚拟机<b class='flag-5'>数据</b>恢复案例

    服务器数据恢复】从崩溃到重生:16盘服务器RAID与EXT4文件系统深度修复实录

    服务器运维过程中,硬盘掉线是导致服务器故障、数据丢失的常见原因。针对普通服务器硬盘掉线引发的数据丢失问题,存在一套常规的
    的头像 发表于 03-10 16:52 440次阅读

    服务器数据恢复】服务器raid5阵列raid模块损坏的数据恢复案例

    某品牌服务器上面有一组由多块硬盘组建的riad5阵列。意外断电后管理员重启服务器发现该服务器无法使用。 根据用户方描述的情况,服务器数据
    的头像 发表于 01-29 16:46 323次阅读

    服务器数据恢复—一文读懂服务器高频故障排查+标准数据恢复流程

    服务器数据恢复到底是一个什么样的流程? 服务器数据丢失后,进行数据恢复前应该做哪些准备? 服务器
    的头像 发表于 01-08 11:11 447次阅读

    服务器数据恢复—供电不稳引发服务器EXT4分区挂载失败的数据恢复案例

    服务器在运行过程中突然关机且无法启动。服务器管理员对故障服务器进行修复后,虽然服务器可以正常启动,但服务
    的头像 发表于 01-04 17:10 431次阅读

    服务器远程连接超时以及拒绝连接的真实缘由和解决办法

    ,这类问题在Linux的SSH、Windows的RDP、数据连接以及API接口访问中都挺常见。 最常见的情形包含:SSH没办法连接服务器、RDP不能远程登录Windows、
    的头像 发表于 11-19 15:34 1557次阅读

    服务器数据恢复—意外断电!Linux服务器数据恢复大揭秘

    某品牌服务器+存储,安装的linux操作系统。 机房意外断电导致服务器操作系统无法正常启动,服务器管理员故障服务器进行修复操作后进入系统查
    的头像 发表于 11-18 11:20 695次阅读

    libmodbus库问题:TCP模式下客户端超时断开后无法再次重连怎么解决?

    情况1 :用libmodbus的TCP demo,发现用客户端软件连接收发如果超时后在启动连接就无法连接上libmodbus服务器了,声明:客户端此时不会主动断开
    发表于 10-14 08:17

    服务器数据恢复—RAIDZ多块硬盘离线导致服务器崩溃的数据恢复案例

    服务器数据恢复环境&故障: 一台服务器有32块硬盘,采用Windows操作系统。 服务器在正常运行的时候突然变得不可用。没有异常断电、进水、异常操作、机房不稳定等外部因素。
    的头像 发表于 09-18 12:29 1051次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b>恢复—RAIDZ多块硬盘离线导致<b class='flag-5'>服务器</b>崩溃的<b class='flag-5'>数据</b>恢复案例

    SSH 远程连接内网 Linux 服务器

    利用 ZeroNews,您可对用内网的 Linux 服务器进行统一的 SSH 远程连接管理,当用户外出时,可通过 ZeroNews 分配的公网域名地址,快速访问企业内部、家庭的 Linux
    的头像 发表于 09-17 19:52 575次阅读
    SSH 远程<b class='flag-5'>连接</b>内网 Linux <b class='flag-5'>服务器</b>

    服务器数据恢复—服务器断电导致raid模块损坏的数据恢复案例

    某品牌服务器中有12块硬盘,组建了一组raid5磁盘阵列,服务器内存储的是普通文件。 机房供电不稳定导致服务器断电,管理员重启服务器后发现服务器
    的头像 发表于 09-04 12:57 1031次阅读

    怎样在阿里ECS服务器上架设自己的OpenVPN服务器

    需要自己架设服务器,让现场的IR615路由连接自己的服务器。能通过自己的服务器进行数据采集和远
    发表于 08-06 06:56

    【教程】LoRaWAN节点模块如何接入LoRaWAN网络并实现通信?

    一准备本文以模组E77-400M22S为例,演示如何加入LoRaWAN网络,进行数据收发通信。硬件:•E77模组+USB转串口工具(或者E77套件)•LoRaWAN网关一台(这里
    的头像 发表于 05-29 19:33 1728次阅读
    【教程】<b class='flag-5'>LoRaWAN</b>节点模块如何接入<b class='flag-5'>LoRaWAN</b>网络并实现通信?

    服务器数据恢复—Linux系统服务器崩溃的数据恢复案例

    服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突
    的头像 发表于 05-20 15:46 995次阅读

    服务器数据恢复—服务器部分数据目录项被破坏的数据恢复案例

    一台安装linux系统的服务器意外断电。管理员重启服务器进行检测,发现服务器上部分文件丢失。管理员没有进行任何操作,直接将
    的头像 发表于 05-08 15:16 595次阅读