3. 系统总体架构设计:感知层、网络层、应用层三层架构、数据流设计、硬件选型原则

好,咱们直接进入正题。做工地扬尘噪声监测,说白了就是要把现场的数据「搬」到你的电脑或手机上。怎么搬?这就得靠一套靠谱的架构。

我个人习惯把整个系统拆成三层来看:感知层、网络层、应用层。这就像盖房子,先打地基,再砌墙,最后装修。每一层各司其职,缺一不可。

3.1 感知层:数据从哪里来?

感知层是系统的「眼睛」和「耳朵」。它负责采集最原始的环境数据。你想想看,如果这层出了问题,后面再好的算法、再漂亮的界面,都是白搭。

在工地现场,我们主要采集两类数据:

  • 扬尘(PM2.5 / PM10):用激光粉尘传感器,比如攀藤的 PMS 系列。我建议选量程 0~1000 μg/m³ 的,别选太小,工地扬尘有时候能爆表。
  • 噪声(Leq / Lmax):用电容式麦克风 + 专用声级计芯片。注意要带 A 计权,这是国标要求的。

除了这两样,通常还得加上温湿度、风速风向、大气压这些辅助参数。为什么?因为扬尘数据受气象条件影响很大,没有这些辅助数据,你很难判断数据异常是设备故障还是天气原因。

核心要点:感知层的传感器,必须选工业级或至少商业级的。我在项目中遇到过用消费级传感器,结果在工地高温高湿环境下,一个月就漂移了 30%。嗯,那批货后来全换了。

3.2 网络层:数据怎么传?

数据采集上来之后,怎么传到服务器?这就是网络层要解决的问题。

工地现场通常不具备有线网络条件,所以无线传输是首选。这里我重点推荐 LoRa 技术。为什么?

  • 距离远:空旷环境下,LoRa 通信距离能到 2~5 公里。一个工地,一个网关基本就能覆盖。
  • 功耗低:传感器节点用电池供电,能跑好几年。你想想看,要是用 4G 模块,那电池撑不了几天。
  • 抗干扰强:LoRa 用的是扩频技术,在工地这种电磁环境复杂的地方,表现很稳定。

网络层的典型架构是这样的:

传感器节点 → LoRa 网关 → 4G/以太网 → 云服务器

传感器节点通过 LoRa 把数据发给网关,网关再通过 4G 或者有线网络,把数据上传到云端。这里有个细节:网关的位置很关键。我建议把网关安装在工地最高处,比如塔吊上,这样信号覆盖最好。

避坑指南:我曾经在一个项目里,把网关放在了临时板房里,结果信号死活传不过去。后来才发现,板房的铁皮对 LoRa 信号有严重屏蔽。所以,网关一定要露天安装,天线要垂直朝上。

3.3 应用层:数据怎么用?

数据到了云端,就该应用层登场了。这一层是给用户看的,也是整个系统的价值所在。

应用层通常包括:

  • 数据存储:用时序数据库,比如 InfluxDB 或 TimescaleDB。别用关系型数据库存海量时序数据,查询会慢到你怀疑人生。
  • 数据展示:Web 端用 Vue 或 React,移动端用小程序。实时曲线、历史报表、地图打点,这些是标配。
  • 告警推送:当 PM2.5 超过 75 μg/m³ 时,自动发短信或微信通知。这个阈值可以配置,不同工地要求不一样。
  • 数据分析:比如生成日报、周报,分析扬尘的时空分布规律。这些数据对环保部门很有价值。

说白了,应用层就是把冷冰冰的数据,变成能指导行动的信息。

3.4 数据流设计:数据在系统里怎么跑?

理解了分层架构,咱们再来看数据流。我画了一个典型的数据流向:

传感器采集 → 单片机处理 → LoRa 发送 → 网关接收 → 4G 上传 → 云平台解析 → 数据库存储 → 前端展示

这里面有几个关键点:

  1. 采集频率:我一般设 1 分钟采集一次。太频繁了,电池扛不住;太稀疏了,数据没有代表性。
  2. 数据格式:用 JSON 格式,简单明了。比如:{"pm25": 85.3, "noise": 62.5, "temp": 28.1}
  3. 数据校验:在单片机端做 CRC 校验,防止 LoRa 传输过程中数据出错。我曾经遇到过数据乱码的问题,后来加了校验就解决了。
  4. 断点续传:如果网关掉线了,传感器节点要能缓存数据,等网络恢复后再补传。这个功能很重要,不然数据就丢了。

注意:数据流设计时,一定要考虑异常情况。比如传感器故障、网络中断、服务器宕机。一个好的系统,不是不出问题,而是出了问题能自动恢复,或者至少不丢数据。

3.5 硬件选型原则:怎么挑器件?

最后,聊聊硬件选型。这是很多新手容易犯迷糊的地方。我总结了几条原则,供你参考:

原则 说明 我的经验
可靠性优先 工业级芯片,宽温范围(-40~85℃) 别省那几块钱,返修成本更高
低功耗设计 选型时关注休眠电流和工作电流 LoRa 模块休眠电流要小于 2μA
接口标准化 优先选 UART、I2C、SPI 等通用接口 方便后期更换传感器或升级
供应链稳定 选主流品牌,避免独家供货 我吃过亏,某小众芯片断货,项目停了两个月
成本可控 在满足性能的前提下,选性价比高的 批量采购时,价格能差 30% 以上

举个例子,主控芯片我推荐 STM32L 系列,功耗低、性能够用、生态好。LoRa 模块用 SX1278 或 ASR6501,都是经过市场验证的。传感器的话,攀藤的 PMS5003 系列,性价比很高。

总结一下:系统架构设计,说白了就是「分而治之」。把一个大问题拆成三个小问题,每个小问题用最合适的技术去解决。感知层负责「采」,网络层负责「传」,应用层负责「用」。数据流设计要保证「采得准、传得稳、存得下、看得清」。硬件选型要「可靠、低功耗、标准化、好买、不贵」。

嗯,这一章的内容就到这里。下一章咱们会深入聊感知层的具体实现,包括传感器选型、电路设计、数据采集程序怎么写。到时候见。