• 正文
  • 相关推荐
申请入驻 产业图谱

让数据在产生的地方自己说话:用神经网络在STM32上实现数据“链上”决策

11/12 14:02
1005
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

之前陆陆续续介绍过使用NanoEdge AI在STM32中部署神经网络的教学,包括利用六轴加速度传感器STM32F103C8T6中实现了故障诊断和分类预测的应用。

STM32F103也能部署神经网络?手把手实现NanoEdge模型在F103中运行!

STM32F1的神经网络应用:陀螺仪异常检测

分割线


事实上,边缘AI也就是NanoEdge AI的命名的含义,不仅仅是在STM32中使用深度学习模型那么简单,它所带来的一系列优势包含了低功耗、低成本、算力极致应用等。

1、功耗和带宽的矛盾

前段时间师兄有一个科研项目,大体要做的事情是:边缘端通过MCU采集振动传感器的信号,通过无线传输至PC或者另一块MCU中进行运算来判断运行状态,并且还要兼顾低功耗和低成本。

无线传输在低功耗方案中,选择了Zigbee作为传输方式,我们发现了一件事:低功耗的无线传输模块通常带宽不会很高,这严重的限制了传感器数据传输的速率。

用水库来比喻数据量的话,低功耗的Zigbee模块就如同一根细水管,无法满足庞大的数据流传输,如果使用Wifi模块的话则又会让功耗大幅度上升。

这种功耗和带宽的矛盾恰恰凸显了物联网应用中的关键挑战。

2、边缘计算

网络带宽无法处理庞大的数据流,只能通过提高部署成本或者减少同一组网络中的设备数量才保障系统的运行。

然而随着如今微处理器微控制器的性能越来越高,我们得以在紧邻“细水管”的源头处,低成本地部署一个功能强大的“智能水处理厂”——即边缘计算节点。这相当于为本地水库配备了能实时分析、净化并提炼水质的自动化系统,使得海量的原始数据无需跋涉至遥远的云端,在本地就能迅速转化为有价值的决策信息,从而在硬件层面巧妙地调和了功耗与带宽的固有矛盾。很多复杂的运算已经在边缘端足够运行。

在师兄的这个项目中,我们将原本的STM32获取传感器数据+ZigBee传输的流程,让其添加了一步:STM32获取传感器数据+NanoEdge AI实现边缘计算+ZigBee向主机直接传输当前设备运行状态。

不仅仅将原来需要更高复杂的芯片才能实现的功能降级到STM32L系列使用,在利用深度学习的基础上完成了高准确度的模型部署,更是充分利用了STM32L系列的低功耗特性进一步的降低系统功耗和设备成本。

同时由于引入了边缘计算,原本主机利用Zigbee接受一个设备的信息就已经占满了带宽,让原本MCU通过Zigbee发送庞大的数据流减少到只需要几个甚至一个字节的内容,极大程度的减少每个设备的带宽占用,充分发挥了Zigbee可以组网通信的功能,极大的增加了边缘设备的部署量。

3、总结

所以回过头来看,这个项目的关键其实就在于“把计算负担从传输环节剥离出来”。我们当时也没想到,仅仅是在STM32端用NanoEdge AI加了一小段处理代码,整个系统的架构就完全盘活了——Zigbee终于能发挥它低功耗组网的优势,而终端设备也因为只需处理关键信息,续航和成本都得到了优化。

这种思路其实可以拓展到很多意想不到的场景。比如在农业环境监测中,传感器终端可以直接在本地识别出异常的温湿度模式,只上报"可能出现霜冻"的预警结论,而不是持续上传海量的原始数据;又或者在智能家居场景,门窗传感器能够通过振动特征自主判断是正常风吹还是异常闯入,只需向主机发送一个简单的状态码即可。更妙的是,这种边缘智能让终端设备真正拥有了"自适应"的能力。

比如在工业现场,当设备运行状态发生变化时,部署在STM32上的NanoEdge AI模型可以通过在线学习功能自主调整判断阈值,不需要技术人员跑到现场重新调试。这种"让数据在产生的地方自己说话"的理念,或许正是未来物联网设备走向真正智能化的关键一步。

相关推荐