工程师笔记|如何用STM32CubeMonitor图形化显示Lora节点信息

STM32单片机 2022-06-11 08:30


关键词:

STM32CubeMonitor, Lora,节点, 图形化


1、目标

通过本 LAT 实现一个从 LoRa 节点、LoRa 服务器、终端应用之间的数据或者命令的相互传输的过程。


2. 实验准备

为了实现上面目标,需要准备一些必要的软件和硬件。软件的安装、硬件的介绍和STM32CUBEMX 工具的使用,在本 LAT 中不做介绍。



3.. 服务器端账号和网关注册

这里只是简单描述,详情请参考 UM2587,可以到 WWW.ST.COM 网站下载


3.1. 账号注册

首先,要在远程服务器上注册自己的账户,本实验以 www.loriot.io 提供的免费服务器为例,创建自己的账户, 见图 2。请注意,在注册时选择正确的服务器网站。在本实验中,我们选择了 Singapore 的服务器,网址是 ap1.loriot.io


3.2.配置网关

在成功正确的注册完账户之后,我们需要在这个账户下注册我们需要的网关。其中需要注意几个方面:


配置网关使用不同的频段,在本实验中我们使用的是 CN470,如果网关地址不是的CN470 的话,需要使用下面 AT 指令对网关设备进行修改:

AT+CH=CN470PREQUEL

AT+CH=0,471.5,A

AT+CH=1,471.7,A

AT+CH=2,472.9,A

AT+CH=3,472.1,A

AT+CH=4,472.3,B

AT+CH=5,472.5,B

AT+CH=6,472.7,B

AT+CH=7,472.9,B

AT+CH=8,OFF

AT+CH=9,OFF


调整 LoRaWAN® 服务器, MAC 地址, 网关的 EUI。在做实验之前需要确认网关链接的网络服务器和你注册这个网关的服务器一致。本实验中使用的是 Singapore,而缺省的是 EU1,所以要使用下面 AT 指令进行修改。

AT+PKTFWD=ap1.loriot.io,1780,1780



3.3.注册网关和设备


➢ 注册网关, 登录注册的账户后,可以看到下图的 LORIOT 的 Dashboard。选择“Register a new gateway”进行网关注册,一般我们选择基础平台为“Packet Forwarder STM”,然后从我们网关设备的串口 log 拷贝 MAC 地址。


➢ 注册设备,请注意这点需要用到后面的一些参数(device EUI, Join EUI, Application key),所以刚开始实验可以先跳过这里。请选择[Loriot Dashboard]>[Application]>[SampleApp]>[Enroll Device]。然后按照步骤注册。


➢ 在注册完成后,[Loriot Dashboard]>[Application]>[SampleApp]>[output]拷贝外部应用访问服务器的连接,后面的 cubemx 需要用到。


下面两个范例分别为参考地为相邻层 L2 和参考地为两侧共面加参考层 L2 的仿真结果,仿真的阻抗为

单端 50ohm。从结果可以看出增加两侧共面为参考层可以减小阻抗线的宽度。


下面的范例图 8 为采用 L3 参考层为参考地时的仿真结果,与图 7 相比,结果显示由于参考地距离射

频走线更远,在保持共面地间距不变的情况下需要更宽的走线来达到同样的 50ohm 阻抗。如果觉得阻

抗线的宽度不理想可以适当调整阻抗线与两侧 GND 之间的间距。


图 9 为差分 100ohm 阻抗线设置范例,可通过差分线之间的间距,差分线宽度,差分线与两侧 GND

间距以及参考平面来调整阻抗。



4.设备搭建

在创建工程之前,下载最新的 STM32CUBEWL 软件包、X-CUBE-MEMS1和 STM32CUBEMX 并安装。


4.1. 创建工程


➢ 首先,打开 STM32CUBEMX,选择从“Start my project from Example”生成工程,然后搜索 Keyword “LoRaWAN_End_Node”.


➢ 然后,双击选中的工程。并且选择一个保存实验工程的路径。这个时候,我们就可以看到一个基本的 STM32CUBEMX 工程。


➢ 也可以直接从 STM32WL 的 Library 路径下面,在下面路径下,复制并粘贴工程文件STM32Cube_FW_WL_V x.x.x\Projects\NUCLEO

WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node , 然后重命名为 LoRaWAN_End_Node_Sensor,最后打开工程文件里面的 STM32CUEMX 工程文件。


➢ 接着对工程做一些简单的修改:

1. 配置频段,缺省的频段是欧洲频段,本实验使用的中国频段 CN470.见图 4.

2. 增加 sensor 的配置。

a) 选择正确的 sensor 型号驱动软件,使用温度、湿度和压力。见图 5。

b) 使能访问 sensor 板的 I2C2 外设,根据 NUCLEO-WL55JC2 原理图,

配置对应的 I2C 总线 GPIO 为 PA11 和 PA12,见图 6。

c) 使能 senor 板,并且选择正确的 i2c 驱动见图 7.

d) 生成代码。见图 8


3. 代码修改

(i) 添加宏定义,在 IAR 的“Option 设置->C/C++ Compiler->Preprocessor”的 “Define symbols”中添加 X_NUCLEO_IKS01A3”,见图 9。

(ii) 找到 sys_sensors.h 使能 Sensor, 见图 10. #define SENSOR_ENABLED 1

(iii) 在“lora_app.c”的“SendTxData”函数中,修改 Lora 提取的上传数据,见图 11.

(iv) 为了更加容易加入网络,将CN470_FIRST_RX1_CHANNEL 改为“( (uint32_t) 470300000 )”。

(v) 将 BSP_BUTTON_SWx_IT_PRIORITY 改为 15。

(vi)将由于有 sensor 读取,所以关掉低功耗模式。

#define LOW_POWER_DISABLE 1

(vii)最后编译运行,可以从串口 log 看到下面的运行信息,如图 12,然后拷贝设

备信息(device EUI, Join EUI, Application key)继续完成 3.3 对设备的注册。




5.创建 STM32CubeMonitor 工程

通过创建一个 STM32CubeMonitor 工程,来显示 sensor 的数据,从而达到终端数据的利用展示。


5.1. 创建一个新的 STM32CubeMonitor 工程。


1. 打开 STM32CubeMonitor, 单击图 12 的“+”图标,创建一个 flow。

2. 双击默认 basic flow, 然后单击“Delete”按钮,见图 13。

3. 修改 新 flow 的名字为自己想要的名字,这里改为STM32WL_Sensor_Dashboard,见图 14。

4. 创建与 flow 关联的 Dashboard, 见图 15。

5. 创建关联的 group 并且修改,将鼠标放置在新建 tab 上,选择“+tab”添加 group ,并且通过选择“edit”编辑需要的名字,这里设为

“STM32WL_Sensor_Dashboard”,见图 16。

6. 用与步骤 5 相同的方式,修改 group 为“STM32WL_Sensor”


5.2. 添加需要的控件。


1. 从控件面板中拖拽需要的控件到 flow 中,从而实现需要显示的功能。这里需要用到 2个 TEXT 控件来显示文本信息;3 个 gauge 来显示 sensor 数据;两个 function 控件来,转换 json 格式,一个 comment 来提示输入;一个 websocket 输入和一个 websocket 输出;一个 led 来显示板子 LED 灯状态,一个 switch 来个控制板子的LED 灯的显示。见图 17。


2. 逐个双击 flow 上的每个控件打开其属性窗口,接着对逐个的参数进行修改,并将它关联到“STM32WL_Sensor”group。


➢ 修改“comment”控件,修改名字为“Remind”在文本框内添加一些提醒内容,如“Edit the "Loriot Uplink" node with your LORIOT WebSocket Token;you will find your LORIOT WebSocket Token under Application -> SampleApp -> Output.”


➢ 修改其中一个“TEXT”控件,修改 Label 为 “STM32WL_Sensor_Dashboard”;修改 Name 为 “Title”;选择 group 为 “STM32WL_Sensor”;size 设置 6x2,最后我们还再统一调整。在 layout 根据需要选择显示时的字体排列。


➢ 修改另外一个“TEXT”控件,修改 Label 为“LED”;修改 Name 为 “LED Status”;选择 group 为“STM32WL_Sensor”;size 设置 1x1,在 layout 根据需要选择显示时的字体排列。


➢ 修改“Websocket in”控件,选择 Type 为“connect on”;修改 Name 为“Loriot uplink”;添加 path 为前面提到的从服务器获取的 link(见 3.3),

这个例程中用到为“wss://ap1.loriot.io/app?token=vnoGCAAAAA1hcDEubG9yaW90LmlvXyeT

wWbRSI-MCBQC04gzTg==”


➢ 修改“Websocket out ”控件,选择 Type 为“Connect to”;修改 name 为 “Loriot DownLink”,path 它会自动填充 websocket in 的路径。


➢ 修改 “LED”控件,修改 Name 为 “LED”;选择 group 为“STM32WL_Sensor”;size 设置 1x1;在“Colors for value of msg.payload”下,单击“X”删掉一个选项,并且点击下拉箭头将类型选为 “number”,同时将 number 设为“1”,然后选择一个你喜欢的颜色,意思 是当收到数字为“1”时,显示红色。如图 18.


➢ 修改 “json”控件,修改 Name 为 “json”,其它的默认就可以了。


➢ 修改一个 function 控件,修改名字为“Decode Sensor Parameter ”,这里我们需要写一个函数来提取 sensor 数据,在“ON message”选项添加函数如图 19:

if (msg.payload.cmd ==="tx") return ;

var LedState = {payload: parseInt("0x" + msg.payload.data.substring(0, 2))};

var Pressure = {payload: parseInt("0x" + msg.payload.data.substring(2, 6))};

var Temperature = {payload: parseInt("0x" + msg.payload.data.substring(6, 8))};

var Humidity = {payload: parseInt("0x" + msg.payload.data.substring(8, 12))};

return [ LedState,Pressure, Temperature, Humidity];

同时在“Setup”选项中设置输出个数为 4;


➢ 修改“Switch”控件,修改 Label 为“LED ON/OFF”;修改 Name 为 “LED Switch”;选择 group 为“STM32WL_Sensor”;size 设置为 3x1; 添加一个 topic 域为“ MessageTx_LED”,如图 20.


➢ 修改另一个“function”控件,修改名字为“Encode LED Parameter ”,这里需要一个函数来提取 sensor 数据,在“ON message”选项添加函数如图 21,请注意这里用了 Device EUI, 这里需要从节点设备的信息 log 中获取。


➢ 修改“Gauge”控件,现在任意一个“Gauge”控件,双击设置属性,选择group为“STM32WL_Sensor”,size设置为4x3,Label为“Pressure”, range 的 min 为“900”,max 为“1100”,如图 22.


➢ 同理修改其它“Gauge”控件,选择一个“Gauge”控件,双击设置属性,选择 group 为“STM32WL_Sensor”,size 设置为 4x3,Label 为“Temperature”,range 的 min 为“0”,max 为“50”。


修改“Gauge”控件,将最后一个“Gauge”控件,双击设置属性,选择group为“STM32WL_Sensor”,size设置为 4x3,Label为“Humidity”, range 的 min 为“0”,max 为“100 “.

3. 修改完控件之后,我们需要将其所有的控件关联在一起。将一个控件的节点拖拽到另外一个需要关联的控件即可,如图 23。这里要特别注意的是 decoder 的输出函数的输出值的顺序必须跟你需要显示的值一致,这里是按照“LedState,Pressure, Temperature, Humidity”顺序,所以必须是 led 控件连接到最上面一个输出口。


4. 按照之前 5.1.5 的方式再次选择 Dashboard-》layout 对显示界面进行布局。如图 24。

图中右侧宽度是总的显示宽度,长度自动根据显示而设定的。单击控件上的锁定图标,从而锁定显示,然后拖拽而改变大小,按住鼠标左键移动位置。在在适当调整之后,点击 STM32CubeMonitor 右上角的“DEPLOY”部署工程,然后点击 “DASHBOARD”,显示效果,如果不满意,可以再次用前面的方式对界面多次布局,直到满意为止。如图 25。



5. 将网关通电确保接入外部网络(Internet),然后 sensor 节点通电,确保节点加入LoRa 网络,可以通过节点和网关的串口数据确认是否正确,在网关和节点工作正常后,点击“DASHBOARD”按钮,我们就可以看到图 26 的效果。



文档中所用到的工具及版本

➢ STM32CUBEMX 版本 6.3

➢ STM32CUBEMonitor 版本 1.3

➢ IAR 编译器 版本 9.0

➢ X-CUBE-MEMS1 版本 9.0



                

© THE END



点击“阅读原文”,可下载原文档

STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 178浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 442浏览
  • 食物浪费已成为全球亟待解决的严峻挑战,并对环境和经济造成了重大影响。最新统计数据显示,全球高达三分之一的粮食在生产过程中损失或被无谓浪费,这不仅导致了资源消耗,还加剧了温室气体排放,并带来了巨大经济损失。全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,艾迈斯欧司朗基于AS7341多光谱传感器开发的创新应用来解决食物浪费这一全球性难题。其多光谱传感解决方案为农业与食品行业带来深远变革,该技术通过精确判定最佳收获时机,提升质量控制水平,并在整个供应链中有效减少浪费。 在2024
    艾迈斯欧司朗 2025-01-14 18:45 49浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 104浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 487浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 97浏览
  • Snyk 是一家为开发人员提供安全平台的公司,致力于协助他们构建安全的应用程序,并为安全团队提供应对数字世界挑战的工具。以下为 Snyk 如何通过 CircleCI 实现其“交付”使命的案例分析。一、Snyk 的挑战随着客户对安全工具需求的不断增长,Snyk 的开发团队面临多重挑战:加速交付的需求:Snyk 的核心目标是为开发者提供更快、更可靠的安全解决方案,但他们的现有 CI/CD 工具(TravisCI)运行缓慢,无法满足快速开发和部署的要求。扩展能力不足:随着团队规模和代码库的不断扩大,S
    艾体宝IT 2025-01-10 15:52 164浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 477浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 454浏览
  • 数字隔离芯片是现代电气工程师在进行电路设计时所必须考虑的一种电子元件,主要用于保护低压控制电路中敏感电子设备的稳定运行与操作人员的人身安全。其不仅能隔离两个或多个高低压回路之间的电气联系,还能防止漏电流、共模噪声与浪涌等干扰信号的传播,有效增强电路间信号传输的抗干扰能力,同时提升电子系统的电磁兼容性与通信稳定性。容耦隔离芯片的典型应用原理图值得一提的是,在电子电路中引入隔离措施会带来传输延迟、功耗增加、成本增加与尺寸增加等问题,而数字隔离芯片的目标就是尽可能消除这些不利影响,同时满足安全法规的要
    华普微HOPERF 2025-01-15 09:48 55浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 465浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 516浏览
  • 电动汽车(EV)正在改变交通运输,为传统内燃机提供更清洁、更高效的替代方案。这种转变的核心是电力电子和能源管理方面的创新,而光耦合器在其中发挥着关键作用。这些不起眼的组件可实现可靠的通信、增强安全性并优化电动汽车系统的性能,使其成为正在进行的革命中不可或缺的一部分。光耦合器,也称为光隔离器,是一种使用光传输电信号的设备。通过隔离高压和低压电路,光耦合器可确保安全性、减少干扰并保持信号完整性。这些特性对于电动汽车至关重要,因为精确控制和安全性至关重要。 光耦合器在电动汽车中的作用1.电池
    腾恩科技-彭工 2025-01-10 16:14 75浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 322浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 495浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦