首页 > 评测 > 完整的LoRa体验,有这一套就够了!——LoRa IoT Kit体验

完整的LoRa体验,有这一套就够了!——LoRa IoT Kit体验

LoRa   Dragino   Semtech   SX1272   GPS   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 如果想要完整的LoRa体验,至少需要一个LoRa网关和一个LoRa节点。而除了这两者必须部件之外,Dragino的套件中还提供了更多惊喜。所以想要完整的LoRa体验究竟要花多少银子?这或许是很多LoRa入门开发者最关心的问题。我们认为Dragino在这一方面做的不错。

开发套件还包含一块LoRa/GPS Shield,集成了GPS模块,可以用来获取GPS定位信息,顺便也测试一下,具体烧写代码的过程就不说了,只看下结果

LoRa IoT Kit25.jpg

刚开始放在室内,很久都没有收到GPS信号,扔到阳台上,很快就有信号了,检测结果还算稳定。这个库用的是TinyGPS,很多项目上都使用的是这个。TinyGPS库输出的信息比直接通过串口获取原始的GPS信息可读性更好,市面上大多数的串口GPS模块输出数据都遵循NMEA格式标准,需要进一步处理才能得到最终的数据。

接下来是时候体验LoRa与Internet结合的时候了将与LoRa结点收集到的传感器数据推送到云。毕竟网关的另一大作用是连接到Internet。

现在IoT云服务的提供商比较多,很多都是免费的,例如TTN,ThingSpeak,百度等,虽然对免费用户来说会存在一定的限制,如数据刷新率等,但对于大部分IoT服务来说已够用。每个服务商提供的服务都对应一整套API,这些API除了服务端的接口外,还提供了客户端的API调用,官方示例程序使用的是ThingSpeak提供的服务,因此先要下载ThingSpeak的API并解压到Arduino的库目录,下载地址为https://github.com/mathworks/thingspeak-arduino

要使用ThingSpeak提供的服务,需要先到该站点注册一个用户帐号,每个帐号有一个唯一的ID,接下来需要创建服务,ThingSpeak称之为Channel,每个Channel对应一个服务,在每个Channel内可以新建多个Field,对应不同的数据类型,如温度、湿度值等。这里建立两个Field,分别对应温度及湿度值,如下

LoRa IoT Kit26.jpg

为了安全,Channel还有对应的API Key,分为读/写两种类型,要上传数据则需要在本地(一般是网关)上设置用户ID、API Key等信息,从而有效保证用户安全。例如在dht11_server.ino文件中包含如下配置信息

unsigned long myChannelNumber = 20xx93;

const char * myWriteAPIKey = "B9ZxxxxxNVEBKIFY";

uint16_t crcdata = 0;

uint16_t recCRCData = 0;

float frequency = 868.0;

前面两行信息分别是用户的ID号及对应Channel的API Key,需要用户自行替换自己的ID及API Key。

接下来需要在网关及结点上分别上传对应的程序代码,本次使用的两个代码如下

LoRa IoT Kit27.jpg

其中dht11_server代码编译后上传到网关,而dht11_client则上传到LoRa结点。

代码上传后准备一个DHT11温湿度传感器,连接到Arduino的A0,确认连接无误后,打开LoRa结点的串口,可以看到串口输出信息如下

LoRa IoT Kit28.jpg

输出信息表明与网关数据交换成功,此时打开ThingSpeak的可视化数据面板(WEB),用户上传的数据就会以可视化的形式呈现给用户,如下

LoRa IoT Kit29.jpg

这里看到的只是湿度数据的图形化显示,除了数据之外,还有对应数据的时间信息,这些数据会保存在云端,用户可以导出成JSON或CSV格式保存,供后期分析之用。

这里还要提及一点,官方的示例代码有一个坑,就是代码初始化设备时,会等待串口设备的初始化,如果不打开串口设备则会一直处于等待状态,不会接收及发送信息,在离线测试时很不方便,需要将相关的代码注释掉之后才能用。

最后一个测试是远程通信测试,因为远程通信与低功耗才是LoRa吸引人的地方。LoRa使用扩频技术来实现远距离及低功耗,不同的调制参数适用不同的场合,例如不同的传输距离,典型的配置列表如下

 

远程通信测试.jpg

在距离与速度之间,我们通常要做一个折衷,更远的传输距离意味着更多功耗,更低的数据传输率。Dragino默认使用的设置为上表中的模式1,面向近距离通信同时提高较高的数据率(DR)。

测试时LoRa网关放在6楼的室内,移动LoRa结点,通过LED灯的闪烁来测试当前连接是否正常,由于周围都存在高大建筑物,在约300米外之后连接丢失。这个测试结果算是差强人意,不过比起WiFi来说,还是要好。按照LoRa官方的说法,在该模式下,一般在城区的传输距离约2Km,这个应该指的是室外的通信距离,加上周围的干扰源及建筑物遮挡,实情距离应该会更短。另外一点也说明一下,在测试过程中发现LoRa的穿墙性能还是非常不错的。

总体来说,Dragino LoRa IoT Kit还是很不错的一款套件,除了提供两个LoRa结点及一些简单的传感器之外,更重要的是提供了一个LoRa网关,毕竟没有网关的LoRa应用算不得完整。套件的官方报价为750元人民币,相比国外Multitech Conduit一个LoRa网关至少是$469(ETH+LoRa),这个还算不错。配套的软件例程也比较完整,从LoRa通信到IoT的完整应用均有涉及,为用户快速入门及后期的产品级应用都具有极好的指导意义。官方的示例代码及用户手册都比较详细,只是英文版看起来不爽!

参考资源:

Dragino: http://www.dragino.com/

LoRa网关及报价:https://www.loriot.io/LoRa-gateways.html

Dragino LoRa IoT Kit: http://www.dragino.com/products/LoRa/item/120-LoRa-iot-kit.html

  • 本文系21ic原创,未经许可禁止转载!

网友评论