跳转到内容

技术栈回顾

技术栈回顾

本节对课程中使用的完整技术栈进行系统性回顾。我们按数据流的顺序,从设备端到展示端逐一分析每个组件的功能定位、版本选择和配置要点,帮助售前工程师建立全栈技术认知。

学习完成后您将能够:

  • 描述 IoT 方案的五层技术栈结构
  • 理解每个组件在数据流中的角色
  • 回答买家关于技术栈的常见问题
  • 根据需求推荐合适的技术组合

核心组件: ESP32 系列微控制器

型号适用场景特点
ESP32 DevKit开发原型、通用场景最主流,GPIO 丰富
ESP32-S3AI/ML 场景向量指令集,更多内存
ESP32-C3低功耗场景RISC-V 架构,成本低
ESP32-XIAO超小型产品拇指大小,适合嵌入式
ESP32-CAM图像场景集成摄像头,支持 AI
ESP32-Tower教育场景集成显示屏、按键

通信外设:

  • WIFI: 802.11 b/g/n(2.4 GHz)
  • Bluetooth: BLE 4.2/5.0
  • I2C: 传感器通信
  • SPI: 显示屏通信
  • I2S: 音频通信
  • UART: 串口通信
  • ADC: 模拟信号采集

Layer 2: Communication Layer(通信层)

Section titled “Layer 2: Communication Layer(通信层)”

核心协议: MQTT(Message Queuing Telemetry Transport)

特性说明优势
协议版本MQTT v3.1.1 / v5.0广泛兼容
传输层TCP(默认)/ TLS(加密)灵活选择
QoS 级别0/1/2按需可靠性
默认端口1883(明文)/ 8883(TLS)标准化
最大 payload256 MB支持大数据
心跳机制Keep Alive + PINGREQ连接保活

MQTT Broker: Mosquitto

功能配置项说明
匿名访问allow_anonymous true开发环境
密码认证password_file生产环境
TLS 加密cafile/certfile/keyfile安全环境
WebSocketlistener 9001浏览器连接
桥接connection跨网络连接

核心平台: Node-RED

功能说明典型应用
MQTT 节点消息收发数据采集与转发
HTTP 节点REST API第三方集成
Function 节点JavaScript 编程业务逻辑处理
Dashboard 节点可视化面板实时数据展示
SQLite/InfluxDB 节点数据存储持久化保存
Email/Telegram 节点通知推送告警通知

Node-RED 安全配置:

  • 管理员账户和密码
  • HTTPS 访问(反向代理)
  • Flow 加密存储
  • 沙箱 Function 执行

时序数据库: InfluxDB OSS(开源版)

特性说明IoT 场景价值
数据模型Measurement + Tag + Field灵活适配传感器数据
存储引擎TSM(Time-Structured Merge Tree)高效时序数据压缩
保留策略Retention Policy(RP)自动数据老化
持续查询Continuous Query(CQ)实时数据聚合
查询语言Flux 或 InfluxQL强大的时序分析

数据存储策略:

原始数据:保留 7 天(高频采样)
聚合数据:保留 30 天(分钟级聚合)
摘要数据:保留 12 个月(小时级聚合)

Layer 5: Visualization Layer(展示层)

Section titled “Layer 5: Visualization Layer(展示层)”

可视化平台: Grafana OSS(开源版)

功能说明售前展示价值
Dashboard自定义面板实时数据可视化
Alerting告警规则异常通知
Annotation事件标注关键事件标记
Variables模板变量动态过滤
Panel 类型Graph/Stat/Table/Gauge多样化展示

完整的 IoT 数据流:

传感器 → ESP32(采集) → MQTT(传输) → Node-RED(处理) → InfluxDB(存储) → Grafana(展示)
▲ │
│ ◄────── 控制流 ◄────── │
└───────────────────────────────────────────────────────────────────────────┘

数据流各阶段说明:

阶段组件处理内容数据格式
采集ESP32传感器读取模拟→数字
传输MQTT消息发布JSON
处理Node-RED解析/转换/路由JavaScript Object
存储InfluxDB时序写入Line Protocol
展示Grafana查询/渲染图表/数值

在方案中使用到的开源组件及其许可证:

组件许可证适用范围
ESP32 Arduino CoreLGPL-2.1嵌入式代码
MosquittoEPL-2.0 / EDL-1.0Broker
Node-REDApache-2.0流处理
InfluxDB OSSMIT时序数据库
Grafana OSSAGPL-3.0可视化平台
Docker EngineApache-2.0容器化

售前要点: 核心组件均为开源免费软件,无需商业授权费用

客户需求是什么?
├── 数据采集和展示
│ ├── 简单 → ESP32 + Node-RED + Grafana
│ └── 历史分析 → + InfluxDB
├── 远程控制和自动化
│ └── MQTT + Node-RED Flow
├── 设备管理和维护
│ ├── OTA → 固件远程升级
│ └── 安全 → TLS 加密
└── 系统集成
├── API → Node-RED HTTP 节点
└── 数据库 → Node-RED Database 节点

本节要点总结:

  1. IoT 方案技术栈分为五层:设备层、通信层、处理层、存储层、展示层
  2. MQTT 是各层之间的核心通信协议,支持灵活的安全配置
  3. Node-RED 作为低代码处理平台,是方案灵活性的关键
  4. InfluxDB + Grafana 提供完整的时序数据存储和可视化能力
  5. 核心组件均为开源免费,显著降低方案成本