你好,欢迎光临!温湿度记录仪,温湿度变送器,温湿度控制器,温湿度监控系统-深圳市英斯特科技有限公司官网  contact-icon01.png18320799158 com_phone.png 0755-36527211

温湿度监控|温湿度传感器|温湿度记录仪 - 英斯特科技

示例图片三
网站首页 > 新闻资讯 > 业界资讯

温湿度的LoRaWAN传感器产品

LoRa模块二次开发入门篇
LoRa模块往往会内置相关的传感器产品,K7204是一个温湿度的LoRaWAN传感器产品,他就内置了多种环境传感器,可以采集温度、湿度、气压及室内空气质量参数。

 不同的用户、不同的应用场景,可能会导致用户对于该节点的收发数据的实际需求并不相同。

 通常作为一个嵌入式工程师开始去开发一款物联网产品,对于物联网模块的选择,通常有几种方式,包括串口AT命令,串口透传,如果希望获得更低的功耗和更优的成本,就可以选择使用模块内置的MCU做自己的应用程序。

 但是,OpenMCU的方式需要模块供应商具备很强的SDK整合能力和良好的支持文档,公司就具备多款LoRa模块允许用户进行二次开发,并且,还提供了多个经低功耗设计的二次开发应用实例,可以帮助用户实现更低的系统成本和更低的系统功耗。用户可以参考这些实例,并根据自己的实际需求来对这些实例略作修改,就可以实现自己的应用目的。

 本文针对初次使用LoRaWAN模块产品并希望用OpenMCU方式做二次开发的开发者们,介绍了LoRa模块模块二次开发的具体步骤。

 英斯特科技在物联网模块内部做二次开发有两种方式,通常的做法是集成一个可以做开发的SDK,根据SDK的一些配置接口去实现自己的应用程序,但是这个做法需要用户对于物联网模块内部的MCU的开发环境有一定的熟悉才可以实现高效的开发。

 图1   以RUI方式进行OpenMCU二次开发的流程图

 1、了解RUI的构成和RUI API的用途。

 基于RUI开发的固件,由两部分组成:RUI SDK,以及Application,如本文图1所示。

 其中,RUI SDK部分为RUI的内核,已经适配了RAK的LoRaWAN模块产品,同时向上提供一组统一的RUI API,供ApplicaTIon部分调用。


 注:1) ApplicaTIon是开放源码的,用户可以对其进行二次开发,按照自己的应用逻辑进行修改,需要的底层功能支撑都有相应的RUI API可以调用。

 2)RUI SDK部分是非开放源码的,它被放置于RUI在线编译器中,当用户完成ApplicaTIon部分的二次开发并使用RUI在线编译器进行编译时,RUI SDK会被自动加载到定制化固件中。


 RAK的LoRaWAN模块及衍生产品,其官方发布的固件所对应的ApplicaTIon代码,均可以在RAK的Github中找到。

 图2是Github上的文件的示例:

 


 可以看到,这个代码仓是按照核心模块的型号来分目录的。我们只需要找到对应的核心模块目录,就可以看到基于该模块的一些产品实践代码了。

 以LoRaWAN模块RAK811为例,如图3所示,当我们进入到“based on RAK811”目录后,可以看到一些基于RAK811模块的产品实践示例,这些代码展示了如何基于RAK811模块增加一些外设和传感器,通过这些示例代码可以让开发者更快了解如何通过RUI加载传感器:

 

 其中,

 1) “app_5205”是LoRaWAN追踪器模块RAK5205的官方固件所对应的Application源码,文件夹目录示例如图4所示。

 


 LoRaWAN追踪器模块RAK5205是基于RAK811模块,增加了环境监测传感器(BME680)、三轴加速度传感器(LIS3DH)、以及GPS模块(Ublox MAX 7Q)。该目录中的代码示例展示了如何基于RAK811模块,通过I2C挂接其它sensor以及通过UART挂接GPS模块,并通过RUI API调用的方式完成定制化固件的开发。

 2) “app_7204”是RAK7204的官方固件所对应的Application源码,包括RAK7204的传感器驱动、AT命令实现、应用逻辑处理等,都在这里(如图5所示),这里面使用了很多RUI API,用于实现相关功能。


 LoRa模块RAK7204是基于RAK811模块,增加了环境监测传感器(BME680)。因此,可以通过该产品实践代码了解到如何基于RAK811模块增加一款I2C的传感器,并通过RUI API的调用,快速完成定制化固件的开发。例如,图5中红色长方形圈出来的文件“app_7204.c”是应用逻辑处理的实现,如果要做应用逻辑的定制开发,可以重点对照这里面的代码来理解RUI API的实际用法。 

 3)  “app_PT100_Digital_Pressure_Sensor”是基于RAK811模块,增加一款液压传感器PT100.

 4) “app_RAK811”是RAK811模块的官方固件所对应的application代码,如果想要修改RAK811模块的工作逻辑和流程,可以基于该实例代码进行修改。

 3、 从RAK Github上的RUI产品开发实践代码中挑选一个合适的实例代码,并在它的基础上进行修改,按照实际应用需求进行二次开发。

 RAK Github上的这些产品开发实践代码已经实现了Application的主体部分,基于它进行代码修改和二次开发将事半功倍。

 例如,图5所示的RAK7204示例代码对于节点收到的LoRa下行数据,只是将其通过串口打印出来,并未做处理,这一点可以从图6所示的”app_7204.c”文件中的代码看出:

 


 如果你希望自己的定制化固件中对LoRa的下行数据进行处理,可以通过修改该函数的代码实现来达成目标。

 4、 完成二次开发后,使用RUI的在线编译器进行编译,得到最终的定制化固件。

 

 如前所述,编译时,编译器会自动将Application和RUI SDK进行加载并编译都一起,输出最终的定制化固件。

 RUI在线编译器的网址可以参见产品使用文档的说明。可以用邮箱自行注册并使用,详细的使用方法请参见RUI在线编译器的使用说明文档。

 5、 将编译出的定制化固件烧写到RAK物联网终端产品中并使用

 OK,经过前面的步骤,你已经编译得到了最终的定制化固件二进制文件了,现在可以将它烧写到产品中进行使用了。烧写固件的方法,在对应的产品使用文档中都有详述,此处不再复述,(官网->资源->文档中心),查找对应的产品使用文档,按照产品使用文档中的操作步骤执行即可完成固件烧写。

 三、总结

 直接在内置OpenMCU的LoRa模块上进行二次开发,可以参考供应商提供的二次开发实例,这些二次开发实例往往是经过低功耗设计的,因此,用户不仅可以节约大量开发时间、无需另外购置部件,从而节约大量成本,还可以通过这些经过低功耗设计的二次开发应用实例,来实现更低的系统成本和更低的系统功耗。

Powered by MetInfo 5.3.19 ©2008-2021