LoRaWAN第2部分:如何使用Microchip的模块,以加快物联网设计
编者注:在这个由两部分组成的系列的第1部分,LoRaWAN第1部分:如何获取15公里无线和10年的电池寿命为物联网,我们看着LoRaWAN,以满足远距离的需求的能力,低电力物联网通信。在第2部分,我们将展示如何开发人员可以使用基于Microchip技术RN2903关闭的,现成的工具包来实现物联网LoRaWAN应用。
LoRaWAN提供了很好的匹配,以物联网的需求,性能特点。除了它的扩展工作范围和低功耗的要求,LoRaWAN提供安全,灵活的通信选项。然而,实施LoRaWAN解决方案所需的硬件和软件可以证明一个主要障碍集中在物联网应用本身的开发团队。
本文将详细阐述了Microchip Technology的第1部分介绍了RN2903 LORA模块,并展示如何使用一些额外的硬件和软件,用它来实现远距离,低功耗设计,物联网。
快速入门套件
Microchip Technology的RN2903 LORA模块是一个物联网设计近投递LoRaWAN硬件解决方案。即便如此,它仍然只是一个完整的LoRaWAN网络的基石,开发人员仍然必须考虑支持硬件和软件系统。Microchip的满足这一需求提供全面的评估套件,提供了实现LoRaWAN对物联网所需要的其他元素。
正如第1部分中提到,Microchip Technology的RN2903支持LoRaWAN兼容的通信频率为915MHz,并旨在简化的物联网应用的开发。充分认证,Microchip的模块包括所有实施LoRaWAN连接(图1)所需的组件。该模块的命令处理器使用板载LoRaWAN固件完全支持LoRaWAN类的协议。板载EEPROM提供存储用于LoRaWAN配置参数,增强性能和通过减少主机和模块之间的数据传输提高安全性。
图1:Microchip的洛拉模块提供LoRaWAN连接与它的板载命令处理器,LoRaWAN协议栈,无线电收发机,和串行连接一插入式解决方案。(图像源:微晶片科技)
Microchip的RN2903模块提供用于与外部主机MCU的通信的专用UART接口。此外,该模块包括14个GPIO引脚,开发者可以使用模块固件来监视或控制外部设备,诸如开关和LED进行编程。最后,模块提供了用于方便地连接到一个简单的套筒偶极天线的RF信号引脚。
该模块的命令处理器根据通过其UART接口从外部主机MCU接收到的命令执行LoRaWAN交易。正如任何网络通信的方法,LoRaWAN消息被发送和在特定的格式接收。对于LoRaWAN,所述LORA联盟标准规定了在字节级的严格的细节这些格式。在RN2903模块提供了一个直观基于文本的方法,它抽象LoRaWAN标准字节级的格式的一组关键词的使用可选参数命令。
Microchip的定义了三种类型的关键字:
- MAC为LoRaWAN MAC配置和控制命令
- 无线电命令靶向PHY无线电层
- SYS附加模块的功能,例如提供模块固件版本信息或访问模块的EEPROM存储命令
例如:
mac tx uncnf 30 23A5
发送端口30与数据值“2,3,4,5-”的消息。该“uncnf”选项表示该设备没有请求从网络服务器的确认。另外,使用“CNF”选项表示该设备预计网络服务器确认收到。的洛拉模块负责将其发送到它的网关以便传递到网络服务器之前加密该消息。
radio tx 6d657373616765
发送包含的值[0x6d]的软件包[0x65] [0x73] [0x73] [0x61] [0×67] [0x65](以十六进制样本文本串 “消息”)
sys set nvm 100 FF
存储该值,在为0xFF在EEPROM中的用户分区的地址为0x100
物联网设备的设计
凭借其串行接口,该RN2903需要一些额外的组件来实现兼容LoRaWAN,物联网的硬件设计。Microchip的进一步发展速度与它的RN2903洛拉·莫特。为了证明其LORA模块功能,Microchip的洛拉·莫特提供实现LoRaWAN兼容的无线传感器需要一套完整的硬件和软件。
Microchip的RN2903洛拉莫特和RN2483洛拉·莫特每结合相应LORA模块与Microchip PIC18LF45K50 8位MCU,其用作用于传感器操作和LoRaWAN协议执行主处理器。此外,莫特包括用于采集样品的数据,以及用于用户反馈的LCD显示器的光传感器和温度传感器。微尘通过一个标准的USB接口,它提供了访问LORA模块的UART接口连接到主机。
在开发过程中工程师们可以通过发送执行LoRaWAN操作MAC,无线电和SYS命令字符串使用莫特的USB连接的模块。在运行期间,物联网设备的主机上运行的代码会发出需要的物联网应用的命令和处理响应。对于LoRaWAN应用,Microchip提供与莫特硬件广泛的C软件库。例如,一个应用程序级例程,MOTEapp.c,收集传感器数据,并通过连接LoRaWAN发送数据,处理由RN2903预期低电平MAC命令(清单1)。
. . .
moteApp_clearBuffers();
// Make Sure Port is in allowed Range
// Prepare DataBuffer for Tx
light = 0;
temperature = 0;
NOP();
// Measure Sensors
moteApp_setSensorsInput();
uint8_t sizeOfUpdate = 0;
light = moteApp_convertSensorValue(moteApp_getLightValue());
oled_putString(moteApp_getLightString(), 6, 1);
sizeOfUpdate = moteApp_addToDataBuffer(moteApp_getLightString(), 4);
temperature = moteApp_convertSensorValue(moteApp_getTempValue());
temperature = ADC_TempConversion(temperature);
moteApp_add8bToDataBuffer(temperature, 4 + moteApp_lightStringSize() + 1);
// Do Normal Operation
. . .
// Getting Random Channel
randomPortNum = TMR2_ReadTimer();
. . .
// Prepare DataBuffer for Tx
moteApp_add8bToDataBuffer(randomPortNum, 0);
dataBuffer[3] = 0x20;
NOP();
sendDataCommand("mac tx uncnf ", dataBuffer, 12);
. . .
清单1:Microchip提供C软件演示的试样的IoT的应用程序,收集从莫特的光传感器和温度传感器的数据,建立与数据(消息add8bToDataBuffer)并将该消息发送(sendDataCommand使用MAC TX命令)。(代码源:微芯片科技)
应用级开发
随着简化基于关键字的命令的方法中,Microchip的LORA模块和相关莫特开发板显著简化LoRaWAN端装置的开发。然而,即使是系统级莫特板及其相关软件地址LoRaWAN层次的只有最低,终端设备的水平。一个完整的LoRaWAN兼容网络需要额外的硬件部件,包括兼容网关(S)和一个网络服务器。
此外,在实施的物联网应用,开发者必须处理的LORA联盟标准只涉及标准OSI堆栈的最低水平的事实。其结果是,开发者需要完成额外的网络层,开始与位于由LoRaWAN MAC标准寻址的数据链路层之上的OSI网络层。
Microchip的满足这种需求与实现了一个完整LoRaWAN兼容网络,包括终端设备,网关和网络服务器的硬件和软件开发工具包。Microchip的RN2903 LORA网络评估工具包和RN2483 LORA网络评估套件捆绑一对微尘与Microchip的LoRaWAN网关板。董事会是由LoRaWAN网关核心板和相关的无线子卡完整的天线和电缆。
在软件方面,该试剂盒使用从Microchip LORA技术评估套件,其提供所有全面评估的示例LORA系统所需的软件组件(图2)。
图2:Microchip的LORA网络评估套件和软件套件实现完整的LoRaWAN网络应用,包括终端设备(莫特板),网关(核心板)和网络服务器(mchplora)。(图像源:微晶片科技)
所述套件提供了一个网络服务器(mchplora)为经设计以在显影系统虚拟机上运行码头工人容器。网关板通过USB线连接到开发系统和无线与莫特单板的通信。微尘板通过制定系统的USB基于Java开发的实用程序连接。
设计与评估套件工作,Microchip的LORA开发套件提供了一个全面的Java套件,它提供了一个更广泛的一套比现有服务与莫特C ++类库。例如,发送一个MAC传输,开发套件抽象基本交易到一个简单的execute
一个方法macTX
类(清单2)。
void macTXSendAction()
{
if (this.application.device.updateValueFlag)
this.application.device.wanPojo.setData(this.data.getText());
if (this.application.device.updateValueFlag) {
this.application.device.wanPojo.setPortNumber(this.portNumber.getText());
}
ICommand macTX = CommandFactory.getCommand(CommandFactory.mactx);
DeviceModel currDev = this.application.device;
macTX.setDataModel(currDev);
List task = new ArrayList();
task.add(macTX);
if (currDev != null)
this.application.mvcController.execute(task);
else
System.err.println("Current Device not set");
}
清单2:Microchip的LORA开发套件提供了一个完整的LoRaWAN环境,包括一套广泛的Java包(JAR文件)的抽象LoRaWAN交易,如MAC TX到一组简单的软件电话等macTXSendAction()
。(代码源:微芯片科技)
在清单2中,CommandFactory
是在定义的类LoRaDevUtility.jar
定义
public static String mactx = "mac tx";
然后创建适当的类的一个实例,在这种情况下,一个macTx
类对象,当工厂被称为CommandFactory.mactx
:
if (command.compareTo(mactx) == 0)
return new macTX();
的macTX.class
在LoRaDevUtility.jar
提供的运行时配置的值和各种服务功能诸如分组验证以及该类的主要用途的方法,execute
。该execute
方法创建所需的MAC TX以所需的格式命令串时,发送该消息(WriteI2cData
),然后获取响应:
. . .
command = new StringBuilder().append("mac tx
").append(((DeviceModel)this.server).wanPojo.getIsConformed()).append("
").append(((DeviceModel)this.server).wanPojo.getPortNumber()).append("
").append(((DeviceModel)this.server).wanPojo.getData().replace("0x",
"")).toString();
. . .
byte[] data = command.getBytes();
((DeviceModel)this.server).getController().transport.WriteI2cData(this.processPacket.pack(data), null, this.timeout);
byte[] read = null;
read = super.readResponseData();
结论
高效的连接是由低功耗的物联网设备的数量庞大的物联网网络的基本要求。LoRaWAN提供了一个有效的物联网连接解决方案,提供了以最小的功率要求的远程操作。与任何连接选件,可以实现在证明自己的一大创举,从他们的主要集中在物联网应用本身分心开发。
基于Microchip的RN2903 LORA模块,Microchip Technology的LORA网络评估套件和相应的LORA开发套件提供完整的应用LoRaWAN。使用预认证的硬件和软件的结合,开发人员可以快速调出能够实现15公里无线范围和10年的电池寿命的物联网连接解决方案。
您的留言或需求: