×

使用Dragino网关和TheThingsNetwork设置LoRaWAN

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-27

王敏

分享资料个

描述

嘿,怎么了,伙计们!来自 CETech 的Akarsh。

在我之前的一些项目中,我经常使用 LoRa 模块,并遇到了我在这些项目中展示的 LoRa 模块的许多优点和应用。在这个项目中,我将进一步使用 LoRa 技术。到目前为止,我们只使用 LoRa,但在这个项目中,我们将使用 LoRa WAN,其中我们将结合 Internet 使用 LoRa。为此,我们将使用 Dragino 的 LoRa WAN 网关,并使用 The ThingsNetwork 作为该项目的服务器。我们要做的是设置我们的 Dragino LoRaWAN 网关并将其连接到也安装有 LoRa 模块的 Arduino。

因此,阅读本文,您将获得一些关于 LoRa WAN 的知识,当然还有关于 Dragino 网关设置和 TheThingsNetwork 的知识。

您可以从以下链接获取您自己的 Dragino 套件:

在印度:https://www.enthutech.in/shop/product...国外http://www.dragino.com/products/lora/...

现在让我们开始吧。

pYYBAGNsVyOAEmY4AAC3JvwMYgg117.jpg
 

为您的项目制造 PCB

pYYBAGNsVuuAc3MkAAI2HG7K9J0007.jpg
 

PCBGOGO成立于2015年,提供一站式PCB组装服务,包括PCB制造、PCB组装、元器件采购、功能测试和IC编程。

其制造基地配备了最先进的生产设备,如YAMAHA贴片机、回流炉、波峰焊机、X-RAY、AOI测试机;和最专业的技术人员。

虽然只有五年的历史,但他们的工厂在中国市场拥有超过 10 年的 PCB 行业经验。它是表面贴装、通孔和混合技术 PCB 组装和电子制造服务以及交钥匙 PCB 组装的领先专家。

PCBGOGO提供从原型到量产的订单服务,现在就加入他们吧。

什么是 LoRa WAN?

pYYBAGNsVymAH7VtAAChJ2tbNEk401.jpg
 

LoRaWAN 规范是一种低功耗、广域 (LPWA) 网络协议,旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。

LoRaWAN 网络架构部署在星型拓扑中,其中网关在终端设备和中央网络服务器之间中继消息。网关通过标准 IP 连接连接到网络服务器并充当透明网桥,只需将 RF 数据包转换为 IP 数据包,反之亦然。无线通信利用 LoRaÒ 物理层的长距离特性,允许终端设备和一个或多个网关之间的单跳链路。所有模式都能够进行双向通信,并且支持多播寻址组,以便在固件无线 (FOTA) 升级或其他大规模分发消息等任务期间有效利用频谱。

poYBAGNsVzCAG95UAACJ5k-q4aA489.jpg
 

安全性是任何大规模物联网部署的首要考虑因素,LoRaWAN 规范定义了两层加密:

  • 终端设备和网络服务器之间共享的唯一 128 位网络会话密钥。
  • 在应用程序级别端到端共享的唯一 128 位应用程序会话密钥 (AppSKey)。

AES 算法用于向网络服务器提供数据包的身份验证和完整性,并为应用程序服务器提供端到端加密。通过提供这两个级别,可以实现“多租户”共享网络,而网络运营商无需了解用户的有效负载数据。

Dragino 物联网套件

pYYBAGNsVzOAWrFzAAHNGax40gM062.jpg
 

Dragino 物联网套件是一个精心设计的套件,可帮助初学者和开发人员快速学习 LoRa 和物联网技术。借助该套件,您可以制作大量基于 LoRa 的项目,并了解 LoRa 的物联网应用。该套件有两个版本 V1 和 V2。我们在我们的项目中使用 V2 套件,因为它是最新的。该套件随附以下物品:

  • 1 x LG01-N 单通道 LoRa 网关
  • 1 x (LoRa Shield + Arduino UNO)1 x (LoRa/GPS Shield + Arduino UNO)
  • 1 个火焰传感器
  • 1 个继电器
  • 1 个光敏传感器
  • 1 个蜂鸣器
  • 1 个超声波传感器
  • 1 x DHT11 温湿度传感器
  • 10 x 杜邦线(公对公)
  • 10 x 杜邦线(母对母)
  • 10 x 杜邦线(母对公)

使用所有这些工具,您可以构建许多基于 LoRaWAN 的项目,并为物联网应用配备它们。

您可以从此处获得该套件的更详细说明。

关于采用 LoRa 技术的 Dragino LG01-P 物联网网关

poYBAGNsVzeAc1MTAAAbPamR178804.jpg
 

Dragino 提供了一系列用于不同目的的 LoRa WAN 网关,但我们将在这里使用的是采用 LoRa 技术的 LG01-P 物联网网关。

它是一个开源的单通道 LoRa 网关。它允许您通过 WiFi、以太网或 3G/4G 蜂窝网络(通过可选的 LTE 模块)将 LoRa 无线网络桥接到 IP 网络。TheLoRa 无线允许用户以低数据速率发送数据并达到极远距离。它提供超长距离扩频通信和高抗干扰能力。LG01-P提供WiFi接口、以太网接口、USB主机接口等多种互联网连接方式。这些接口为用户将其传感器网络连接到 Internet 提供了灵活的方法。可支持单频有限的LoRaWAN协议和定制的LoRa传输协议。

pYYBAGNsVzuAJGfHAABdYQ1Zf50472.jpg
 

该网关的一些主要特点是它消耗低功耗,具有内置网络服务器,具有提供强大系统的故障保护设计,与 Arduino IDE 兼容等。它还支持 WiFiAP、客户端或 Ad-Hoc (网格)模式。

您可以从此处阅读 LG01-P 的数据表,以详细了解其技术规格。

有关其他详细信息,您可以从这里参考他们的网站。

查看 TheThingsNetwork 服务器

pYYBAGNsV0GAGl_tAAELqdV790w662.jpg
 

TheThingsNetwork Server 是一个开源平台,可为您的宝贵物联网数据提供安全、可扩展和可靠的 LoRa 路由。TheThingsNetwork 的主要功能是安全路由、设备管理、用户管理、数据存储、监控等。

该网络服务器允许加密从传感器运行到应用程序,而无需任何第三方访问密钥,这也称为端到端安全。这可以通过允许用户在其场所或私有云中运行网络服务器或其组件来实现。谈到集成,TheThingsNetwork 服务器支持深度集成,可以在构建网络运营服务的同时轻松与现有计费或用户管理系统集成。除了这些功能之外,TheThingsNetwork Server 还具有可扩展性。随着进出设备的数据流增加和服务器负载增加,它可以水平和垂直扩展。所以我们将在我们的项目中使用这个网络服务器。

使用 TheThingsNetwork 设置 LoRaWAN 网关

poYBAGNsV0WAcc24AACJT34TVJk865.jpg
 

在这一步中,我们将使用 TheThingsNetwork Server 设置 LoRa WAN 网关,并使其准备好使用。为此,我们需要遵循以下步骤:-

1)拿起LG01-P网关并连接其天线,然后借助网关随附的适配器将网关连接到电源。适配器需要连接到 12V-1A 端口。

2) 将 LAN 电缆的一侧连接到网关的 LAN 端口,另一侧连接到用于设置的 PC/笔记本电脑。

3) 现在,转到您的网络浏览器并输入 IP 地址“10.130.1.1”,这将带您进入 Dragino 登录页面。在那里,您需要输入用户名“root”和密码“dragino”,然后按登录按钮。

4) 现在我们需要使用 WiFi 将网关连接到 Internet,因为我们需要转到“网络”选项卡。在那,我们需要选择无线选项。它将打开一个页面,其中将有一个名为“radio0”的选项。您需要单击该“radio0”选项前面的扫描按钮。

pYYBAGNsV0eAZ6ayAABgxhBSVgM490.jpg
 

5) 这将打开网关范围内的可用 WiFi 网络列表。点击与您的 WiFi SSID 对应的“加入网络”按钮。这将打开一个加入网络页面。

6) 在该页面上会有一个名为 WPA 密码的块。在该块中,您需要输入您的 WiFi 网络的密码,在此下方还有另一个字段,您需要在其中输入新网络的名称。在该块中,您可以选择任何名称作为您的网络名称。之后单击提交按钮,然后在下一页单击保存并应用按钮。

7) 完成上述步骤后,您的网关将连接到您的 Wifi 网络。由于网关连接到 Wifi,我们需要禁用 Dragino SSID,因为它本质上使网关成为接入点。所以我们需要禁用 Dragino SSID 才能连接到 Wifi。

8) 现在打开 TheThingsNetwork 控制台并点击网关按钮。在这里,我们需要为此单击注册网络按钮注册一个新网络。这将打开该页面上的 Register Network 页面,选择 Legacy Packet forwarder 选项。

poYBAGNsV0uAbtjlAAC1fSQOXbg430.jpg
 

9) 之后返回dragino 页面。在该页面上,转到服务选项卡,然后在该选项卡下选择 LoRaWAN 网关选项。将在该页面上打开一个网页,其中将显示网关 ID。复制该网关 ID 并将其粘贴到 ThingsNetwork 控制台页面上的网关 EUI 选项中。

10) 之后,在 ThingsNetwork 控制台页面的描述块中输入任何描述,选择频率计划(在我的情况下,它是印度),在地图上选择网关所在的位置,选择天线放置选项(在我的情况是室内),然后单击注册网关按钮。

11) 这将注册网络,并且可以通过查看“已连接”的状态来验证。

poYBAGNsV1CAHSEpAABj1BBHPSw145.jpg
 

12) 现在我们可以回到dragino 网关页面。它将帮助您逐步完成该过程。

创建应用程序和编码 Arduino

pYYBAGNsV1OAJkIVAABbDDHgelk020.jpg
 

Dragino 套件带有两个 Arduino Uno。一个安装了 Lora 模块,另一个安装了 GPS 模块和 LoRa 模块。对于我们的项目,我们将使用没有 GPS 模块的那个。

在这一步中,我们将使用 TheThingsnetwork 控制台创建一个应用程序,以从 Arduino 获取数据,并编写 Arduino 代码以发送数据。为此,我们需要遵循以下步骤:-

1) 转到 TheThingsNetwork 控制台页面。在该页面上单击应用程序按钮。这将打开“添加应用程序”页面。您需要在此处输入应用程序 ID 和描述。这些可以是您选择的任何东西。除此之外,还有一个处理程序注册字段,默认设置为“ttu-handler-eu”。我们必须保持原样,然后单击“添加应用程序”按钮。这将创建应用程序。

2) 现在我们需要使应用程序能够解释从 Arduino 接收到的数据。为此,您需要从此处打开 GitHub 页面在该页面上,您将看到一个名为“Payload Script”的文件。打开该文件并复制那里给出的脚本。现在回到 Applications 页面,打开 Payload Formats 选项卡并将脚本复制到那里。现在点击保存按钮,您就可以开始了。

pYYBAGNsV1aAE6CJAAB-4UKwm4I835.jpg
 

3) 我们的应用程序已经可以使用了。现在我们需要将代码上传到我们的 Arduino 板。此代码将通过 LoRa 模块在网关和 Arduino 之间建立连接,然后 Arduino 将生成一些随机数,这些随机数可以在 TheThingsNetwork 服务器设置中接收和查看。

4) 要获取此代码,您必须再次进入 Github 时代,您将看到一个名为“ Arduino_Hello_world.ino”的文件这是要上传到 Arduino 的代码,将其复制并粘贴到您的 Arduino IDE 中。

5) 现在回到 TheThingsNetwork 的控制台页面,您会看到一个选项,上面写着“注册设备”。单击该选项,因为要将节点添加到网关,我们首先需要注册设备。在注册页面,您需要输入设备 ID 和设备 EUI。这可以是随机的,也可以是您选择的任何内容。输入这些后,您需要单击“注册”按钮。

pYYBAGNsV1iAc8hdAAD7fpmjn7E288.jpg
 

6) 现在在 TheThingsNetwork 上创建了一个新设备。它默认在 OTAA 方法中创建,您需要将方法更改为 ABP,方法是转到设备设置中的激活方法选项,然后单击保存按钮。

7) 现在返回设备概览页面。在该页面上,您将看到三个不同的字段,即网络会话密钥、应用程序会话密钥和设备地址。将这些字段一一复制并粘贴到相应位置的代码中。

8) 现在我们需要将 Arduino 连接到我们的 PC。选择正确的 COM 端口和板,然后单击上传按钮。

这样,项目的设置就完成了,现在我们需要做的就是玩弄我们新落脚的网关。

测试新网关链接

poYBAGNsV2KAW1KdAACOtJ6lkws583.jpg
 

当我们看到TheThingsNetwork 控制台页面时,在上传代码之前。我们观察到有一个“从未见过”的状态字段,但只要我们上传代码,Arduino 就会通过 LoRa 连接到网关,状态变为刚才,之后,它变为 1 秒前, 2 秒前,以此类推。这表明Arduino正在发送数据,并且在Server端成功接收。

谈代码。它的设计方式是它不断地向服务器发送随机数,通过转到控制台页面上的数据选项卡,可以在服务器端看到接收到的数字,其中接收到的数据是可见的。我们还可以在串行监视器上查看 Arduino 发送的数据,以交叉检查数字是否正确传输。

通过这种方式,我们使用 Dragino LG01-P 物联网网关创建了一个 LoRaWAN,并通过该网关成功传输了数据。希望你喜欢这个项目。


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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'使用Dragino网关和TheThingsNetwork设置LoRaWAN',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);