如何使用ESP8266构建基于LoRa的GPS跟踪器
扫描二维码
随时随地手机看文章
LoRa技术在世界范围内的渗透正在增加,由于它们能够以非常低的功耗运行,LoRa设备非常适合电池密集型应用,如远程天气监测、遥感和跟踪。我们之前已经看到了如何将HPD13A Lora模块与Arduino集成以建立与物联网的通信并将温度数据发送到TTN服务器。
在这个项目中,我们将使用Lora模块HPD13A构建一个GPS跟踪器。我们的目标是将实时GPS坐标发送到物联网,同时使用与物联网的Webhooks集成来获得数据的可视化。
组件的要求
•HPD13A LoRa模块
•Neo 6M GPS模块
•ESP8266 NodeMCU开发板
•LM2596设置转换器。
•接入附近的LoRa网关
这个LoRa GPS跟踪器项目是如何工作的?
我们之前已经讨论了LoRa技术如何成为低功耗应用的理想选择。要将任何LoRa模块连接到The Things Network,主要要求是附近有一个LoRa网关,如果您有自己的LoRa网关,可以参考我们之前关于如何在印度配置LoRa网关的文章。您也可以在物联网网站www.thethingsnetwork.org/map上查看您附近的活动LoRa网关。一旦我们确定我们附近有一个工作的LoRa网关,我们就可以继续这个项目了。
这个项目的工作非常简单,我们用ESP8266作为主控制器。ESP8266解析来自Neo-6M GPS模块的数据,并将纬度和经度转换为LoRa数据包,然后将该LoRa数据包发送到连接到附近网关的HPD13A LoRa模块。一旦连接到LoRa网关,该LoRa数据包将被发送到物联网。你可以在你的物联网仪表盘上查看这些原始数据,但在这个项目中,我们将创建一个webhook集成,允许我们将位置数据发送到Ubidots。在Ubidots上使用这些数据,我们可以创建一个地图界面来绘制我们的跟踪数据。
ESP8266 LoRa GPS跟踪器电路图
该Nodemcu LoRa GPS跟踪器的连接很简单,我们使用LM2596降压转换器从锂电池接收9-12V的输入,并将其降压至4.2V,以驱动ESP8266和Neo-6M GPS模块。LoRa模块将由ESP8266的3.3V驱动,并通过SPI引脚进行通信。
注意:由于Neo-6M连接到ESP8266的硬件串行引脚,因此在ESP8266上上传代码时,您必须保持Neo-6M断开连接。
在物联网上设置终端设备
让我们从注册The Things Network开始吧。你可以创建个人账户或学生账户,这两种账户都是免费的。在选择LoRa集群时,如果您不在北美或澳大利亚,则可以选择EU集群。一旦您创建了您的帐户并完成了电子邮件验证,您将能够访问TTN控制台,如下所示。
单击“创建应用程序”。输入唯一的应用程序ID和应用程序名称,然后单击create。
创建应用程序后,单击添加终端设备。
单击“手动”页签,输入如下参数,生成DevUI、AppEUI和AppKey,完成终端设备的创建。
设备创建完成后,切换到“Payload Formatters”选项卡。
在Formatters Type选项下选择“Custom Javascript formatter”并粘贴以下代码。
我们在The Things网络上的终端设备配置完成了,现在我们开始燃烧Arduino代码。
打开设备概述,复制DevUI、AppEUI和AppKey。确保为DevUI、AppEUI设置了LSB订单,为AppKey设置了MSB订单。
打开附带的Arduino代码,简单地将您的id粘贴到各自的字段中。
一旦你上传Arduino代码,你的设备将开始LoRa传输到物联网,这可以在“实时数据”选项卡中查看。
设置Ubidots连接用于数据可视化
现在我们已经将数据传送到TTN,我们将使用集成选项将Ubidots Dashboard与这些数据集成在一起。由于我们的数据主要是经纬度坐标,我们可以使用Ubidots提供的Maps Widget。要开始,只需创建一个Ubidots STEM帐户并打开您的仪表板。
在设备菜单中,选择插件。
在给定的选项中,我们将搜索并选择“the Things Stack”选项。
您可以将大部分设置保留为默认设置,并选择Ubidots Token作为默认Token
添加了插件的名称和描述后,单击create。
你的插件现在是活的,我们现在点击编辑插件选项。
在解码器设置下,我们有HTTPs端点URL,这是我们将配置TTN服务器发送数据包的URL,并复制插件ID,即/api/webhook/部分之后的URL部分。
完成后,向下滚动到Decoder Function面板并取消下面一行代码的注释。
另外,注释下面两行。
这些变化看起来与下图类似。
点击Save & Make Live按钮。在转移到TTN之前,我们在Ubidots方面的集成现在已经准备好了。我们需要单击配置文件菜单上的API凭据选项并复制默认令牌。这将在稍后使用。
打开TTN应用程序,在集成面板上选择Webhooks。然后点击添加Webhook按钮。
在所有列出的选项中,选择Ubidots插件。
您现在需要输入上面提到的插件ID和Ubidots令牌。
这将成功创建一个集成webhook。
一旦集成完成,我们的LoRa设备将发送数据到TTN服务器,TTN服务器将自动定向到Ubidots服务器。你可以打开你的Ubidots仪表板,在设备页面下,我们的设备会自动显示。
现在,我们可以执行最后一步,在仪表板上添加Map Widget。在数据选项卡下,单击仪表板打开仪表板。单击Create Widget Button。
在Add new Widget菜单中,您将看到Map选项,选择它。
单击“添加标记组”。
选择LoRa设备。
根据您的需求调整Map Trace设置,然后单击Save。
就是这样!现在,从LoRa设备接收到的所有位置数据都将以位置标记的形式显示在地图小部件上。您还可以添加其他小部件,例如用于显示原始坐标值和SNR(信噪比)的表格。
ESP8266 Lora GPS跟踪器工作正常
下图显示了实际的硬件以及如何在ubidot上更新纬度和经度值。我们的Lora GPS跟踪器的范围实际上取决于该地区有多少Lora网关。只要在您的LoRa模块范围内有一个网关,我们就可以向ubidot发送数据,在我们的情况下,我们在办公室(室内)只有一个网关,我们只能覆盖网关周围2-3公里。
本文编译自iotdesignpro