第一章 课程导论与硬件准备

各位同学好,我是这门课的主讲。做了十几年嵌入式开发,从最早的8位单片机一路折腾到现在的ARM Cortex-M系列,踩过的坑确实不少。今天咱们开始第一讲,先把整个物联网网关的架构理清楚,再把硬件清单列明白。

说白了,这一章就是“兵马未动,粮草先行”。你如果连LoRa和GPS模块长什么样都不清楚,后面写代码肯定抓瞎。我个人习惯是,动手之前先把全局图画在脑子里,再一个个模块去啃。

物联网网关架构概览

先看整体架构。一个典型的物联网数据采集网关,从下到上分四层:

  • 感知层:传感器、GPS模块、各种采集终端
  • 通信层:LoRa无线传输、串口通信
  • 处理层:STM32主控芯片,负责数据解析、协议转换、逻辑控制
  • 上云层:Wi-Fi/以太网/4G,把数据送到服务器或云平台

咱们这门课聚焦在“通信层+处理层”。GPS定位数据通过串口进STM32,LoRa模块负责把数据发出去。网关本身不存大量数据,它就是个“二传手”——收数据、打包、转发。

核心要点:网关不是路由器,它更像个翻译官。把传感器的原始数据翻译成LoRa无线帧,再通过另一个网关节点送到服务器。我见过不少新手把网关当路由器配,结果折腾一星期发现根本连不上网——方向错了。

下面这张图把咱们课程涉及的核心模块关系画清楚了:

物联网网关数据采集系统架构 GPS 定位模块 NEO-6M / NEO-8M 传感器节点 温湿度 / 气压 / 风速 其他采集终端 RS232 / RS485 接口 感知层 STM32 主控芯片 数据解析 · 协议转换 · 逻辑控制 STM32F103 / STM32L0 系列 处理层 LoRa 无线通信模块 SX1278 · 433MHz / 868MHz / 915MHz 通信层 Wi-Fi / 以太网 / 4G → 云平台 上云层 串口通信(UART) GPS → STM32 → LoRa

LoRa与GPS技术选型

LoRa:远距离低功耗的王者

LoRa不是什么新技术,但它解决了物联网的一个核心痛点:又想传得远,又想省电。LoRa的物理层用的是扩频调制,灵敏度能做到-148dBm。什么概念?我在一个项目中做过实测,城区环境下,2公里轻松覆盖,郊区能到5公里以上。

选型时主要看三点:

参数 SX1276 SX1278 说明
工作频段 868MHz 433MHz 国内常用433MHz,穿透性更好
最大发射功率 +20dBm +20dBm 约100mW,符合ISM频段法规
接收灵敏度 -148dBm -148dBm 扩频增益带来的优势
调制方式 LoRa™ / FSK LoRa™ / FSK 建议固定用LoRa模式

我的建议:初学者直接买集成的LoRa模块,比如E32-433T20D或者Ra-01。别自己画射频电路——高频走线、阻抗匹配、天线调试,这些坑我当年都踩过,没频谱仪根本调不出来。

GPS:定位精度与启动时间

GPS模块选型,我只看三个指标:

  • 冷启动时间:第一次定位要多久。好的模块在35秒以内,差的能到2分钟。
  • 定位精度:民用级一般在2.5米CEP(圆概率误差)。
  • 更新率:1Hz够用,5Hz更好。

NEO-6M是入门首选,便宜、资料多、库函数成熟。NEO-8M支持GPS+北斗双模,室内弱信号环境下表现更好。我个人习惯是先用NEO-6M调通协议,再换高端模块。

注意:GPS模块的天线一定要有源天线(带LNA放大器),而且天线要放在室外或者窗边。我曾经在室内用无源天线测试,等了5分钟没定位成功,后来才发现是天线增益不够。嗯,这种低级错误犯一次就够了。

STM32单片机选型

STM32家族太庞大了,F0、F1、F4、L0、L4……初学者容易挑花眼。咱们这门课,我推荐两个方向:

型号 内核 Flash RAM 适用场景
STM32F103C8T6 Cortex-M3 64KB 20KB 入门首选,资料最多
STM32L051K8U6 Cortex-M0+ 64KB 8KB 低功耗场景,电池供电

F103是经典中的经典,淘宝上“最小系统板”十几块钱一块,串口、SPI、I2C全都有。L0系列主打低功耗,适合用电池供电的网关节点。我个人的经验是:先拿F103调通所有功能,再移植到L0上做功耗优化。

所需硬件清单与采购指南

下面这张清单,是我反复验证过的。照着买,不会错:

  1. STM32最小系统板 × 2块(一块做发送端,一块做接收端)
  2. LoRa模块(SX1278方案) × 2个
  3. GPS模块(NEO-6M或NEO-8M) × 1个
  4. USB转TTL模块(CH340或CP2102) × 1个
  5. 有源GPS天线 × 1根(SMA接口)
  6. 433MHz弹簧天线 × 2根
  7. 杜邦线(公对母、母对母各20根)
  8. 面包板 × 1块
  9. 5V/3.3V电源模块(AMS1117-3.3) × 1个

采购建议:别在同一个店买齐所有东西。STM32板子去专门卖开发板的店,LoRa模块去卖无线模块的店,GPS天线去卖安防配件的店。分开买反而便宜,而且质量有保障。我吃过一次亏,在一家店买了全套,结果LoRa模块焊盘虚焊,退换货折腾了两周。

总预算控制在150元以内。嗯,你没看错,150块钱就能搭出一套完整的物联网网关原型。这就是开源硬件的魅力。