你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

利用LoRa和STM32进行环境感知

[复制链接]
木木&点点 发布时间:2018-11-30 15:45
如何设置STM32 LoRa发现工具包,从多传感器板获取数据并发送到物联网。
6-1.jpg
项目中使用的东西
硬件组件
STM32 LoRa Discovery Kit (B-L072Z-LRWAN1)  ×1
STM32L0 Discovery kit LoRa,低功耗无线网络
意法半导体X-NUCLEO-IKS01A1  ×1
用于STM32核子的运动MEMS和环境传感器扩展板
Laird - Sentrius RG1XX LoRa网关  ×1
Sentrius RG1XX LoRa启用网关+ wi - fi /蓝牙/以太网
软件应用和在线服务
Keil - uVision 5
MDK单片机开发工具包
意法半导体STM32Cube(I-CUBE-LRWAN)
STM32Cube (UM2073) LoRaWAN软件扩展
介绍
这个项目是为了提出一个完整的LoRa解决方案。
这是完整工作坊的第二部分,内容包括:
1 -建立Laird Sentrius RG1xxLoRa网关
2 -使用LoRa和STM32进行环境感知
3 -将STM32 LoRa发现包连接到AWS物联网
为开始本项目,我假设您已经完成了车间的第一部分,已经设置了网关,并在网络上运行了一个应用程序。
在这一部分,我们将为STM32 LoRa Discovery kit编写带有核心展开的程序,以获取传感器数据,连接到网关并发送到Things Network。
1)在物联网上创建设备
在Things网络上访问您的应用程序
6-2.jpg
选择设备并单击Register Device
6-3.jpg
创建一个设备ID来识别网络上的设备。在设备EUI上,点击random按钮生成,然后点击Register。
6-4.jpg
该设备是在网络上创建的。激活方法默认为OTAA,单击Settings更改。
6-5.jpg
选择激活方法ABP和禁止帧计数器检查设备地址,将自动生成网络会话密钥和App会话密钥。单击Save。
6-6.jpg
2)配置STM32 LoRa发现包
现在,我们将STM32 LoRa Discovery Kit B-L072Z-LRWAN1和Nucleo Expansion (X-NUCLEO-IKS01A1)作为节点设备进行编程。打开I-CUBE-LRWAN并启动Keil uVision。
在Keil上,点击Project > Open> Open Project…,选择未压缩的I-CUBE-LRWAN中的项目
6-7.jpg
原先的演示最初设置在欧洲频率868MHz,因此需要修改它以在915MHz频率上工作。
右键单击项目并选择“目标‘mlm32l07x01’选项……”
6-8.jpg
选择“C / c++”选项卡,将“REGION_EU868”更改为“REGION_US915”,并添加定义“X_NUCLEO_IKS01A1”。单击OK继续。
6-9.jpg
右击“Drivers/BSP/X_NUCLEO_IKS01A2”组>选项…
6-10.jpg
取消勾选“包含在目标构建中”。单击Ok。
6-11.jpg
然后右键单击“Drivers/BSP/X_NUCLEO_IKS01A1”组的>选项…
6-12.jpg
检查“包含在目标构建中”。单击Ok。
6-13.jpg
打开文件“commission .h”
6-14.jpg
在第77行更改以下代码:
#defineOVER_THE_AIR_ACTIVATION  0
89行:
#defineSTATIC_DEVICE_EUI 1
6-15.jpg
和122行:
#defineSTATIC_DEVICE_ADDRESS 1
6-16.jpg
在Things Network上打开设备的“设备概述”。使用这些信息可以更改第96、102、107、128、133和138行,如下图所示。
6-17.jpg
6-18.jpg
6-19.jpg
3)修改硬件应用
默认情况下,应用程序是在低功耗模式下配置的,发送消息的时间间隔很长,并且不允许通过USB接口进行调试。为了使我们的演示更有效,我们将停用低功耗模式。
打开hw_conf.h文件:
6-20.jpg
从第129、133和136行删除评论:
6-21.jpg
您的应用程序已经完成!将您的电路板连接到计算机,保存所有修改文件、构建和下载代码。完成后复位板。
6-22.jpg
4)处理数据
您必须在Things网络上接收十六进制的负载。让我们处理这些数据以便更好地理解。
访问TTN上的应用程序并选择有效负载格式。输入以下代码:
functionDecoder(bytes, port) {
// Decode an uplinkmessage from a buffer
// (array) of bytes toan object of fields.
var decoded = {};
// Decode bytes to int
var batteryInt = bytes[7]
var humidityInt = (bytes[5] << 8) | bytes[6];
var pressureInt = (bytes[1] << 8) | bytes[2];
var temperatureInt = (bytes[3] << 8) | bytes[4];
// Decode int to float
decoded.battery = (batteryInt*100)/254        // Battery in %
decoded.humidity = humidityInt / 10;          // Humidity in %
decoded.pressure = pressureInt / 10;          // Pressue in hPa
decoded.temperature = temperatureInt / 100;   // Temperaturein °C
return decoded;
}
6-23.jpg
保存并转到Data:
6-24.jpg
恭喜你!您的设备已连接并接收环境数据!
按照研讨会的下一部分将数据转发到云web服务。

评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20

查看全部评分

收藏 评论0 发布时间:2018-11-30 15:45

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版