一、物联网概述:从概念到落地
大家好,我是你们的老朋友。今天咱们正式开始《MQTT物联网从零到项目落地》的第一课。
说实话,每次开课讲物联网概述,我都挺感慨的。十年前我刚入行那会儿,物联网还是个新鲜词,很多人觉得就是「给设备连个网」。现在呢?智能家居、工业4.0、车联网...到处都是物联网的影子。
但不管怎么变,核心的东西没变。今天我就带大家把物联网的底裤扒开,看看它到底是个啥。
1.1 什么是物联网?
物联网,英文叫Internet of Things,简称IoT。说白了,就是把物理世界的东西(传感器、设备、家电)连到互联网上,让它们能说话、能干活。
我经常跟学员打比方:互联网是「人与人」的连接,物联网是「物与物」、「物与人」的连接。你想想看,你家的空调能根据室外温度自动调节,这就是物联网。
核心定义:物联网是通过信息传感设备,按约定协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
嗯,这里要注意一点:物联网不是简单的「设备+网络」。它背后有一套完整的体系。我在做第一个物联网项目时,就犯过这个错——以为买个WiFi模块焊上去就完事了。结果呢?数据传上去了,但没法管理,设备掉线了也不知道。后来才明白,物联网是个系统工程。
1.2 物联网四层架构
物联网架构,我习惯把它分成四层。这四层就像盖房子,缺一层都不行。
| 层级 | 名称 | 核心作用 | 典型设备/技术 |
|---|---|---|---|
| 第1层 | 感知层 | 采集数据、执行指令 | 传感器、执行器、RFID、摄像头 |
| 第2层 | 网络层 | 传输数据 | WiFi、4G/5G、LoRa、NB-IoT |
| 第3层 | 平台层 | 存储、处理、管理 | 云服务器、MQTT Broker、数据库 |
| 第4层 | 应用层 | 呈现数据、业务逻辑 | 手机APP、Web界面、大屏 |
感知层:物联网的「五官」
这一层负责跟物理世界打交道。温度传感器、湿度传感器、烟雾报警器、电机...都属于感知层。
我记得有一次做冷链物流项目,客户要求监控冷藏车的温度。我们选了个DS18B20温度传感器,精度0.5°C,够用了。但安装时发现一个问题:传感器离货物太远,测的是车厢空气温度,不是货物温度。后来把传感器直接贴在货物包装上才解决。
避坑指南:感知层最容易出问题的是「数据不准」。我曾经遇到过传感器被太阳直射,温度读数比实际高了10°C。所以安装位置、防护措施,都得提前想好。
网络层:物联网的「神经」
数据采集上来,怎么传出去?这就是网络层的事。
网络层选择很多:
- 近距离:WiFi、蓝牙、Zigbee
- 远距离:4G/5G、LoRa、NB-IoT
- 有线:以太网、RS485
选哪种?看场景。我个人的习惯是:室内固定设备用WiFi,室外移动设备用4G,低功耗远距离用LoRa。没有万能方案,只有最合适的方案。
平台层:物联网的「大脑」
数据到了云端,谁来接?谁来存?谁来管?这就是平台层的工作。
平台层包括:
- MQTT Broker:负责消息的收发(比如EMQX、Mosquitto)
- 数据库:存历史数据(InfluxDB、MySQL)
- 规则引擎:处理业务逻辑(比如温度超限报警)
- 设备管理:管理设备注册、状态、OTA升级
这里我多说一句:很多人觉得平台层就是买个云服务器就完事了。其实不然。平台层的设计决定了你的系统能支撑多少设备、数据延迟多高、运维成本多大。我见过一个项目,设备量从1000涨到10000,平台直接崩了,就是因为当初没考虑扩展性。
应用层:物联网的「脸面」
最后,数据要呈现给用户。手机APP、Web后台、大屏展示,都属于应用层。
应用层要解决的是「用户体验」。数据再准,界面难用,用户照样不买账。我建议做应用层时,多想想用户真正关心什么。比如一个温度监控系统,用户最关心的是「现在温度多少」「有没有异常」,而不是「数据是怎么传输的」。
1.3 常见通信协议对比
物联网通信协议,市面上少说有几十种。但真正用得多的,就三个:MQTT、CoAP、HTTP。
咱们来对比一下:
| 特性 | MQTT | CoAP | HTTP |
|---|---|---|---|
| 传输协议 | TCP | UDP | TCP |
| 消息模型 | 发布/订阅 | 请求/响应 | 请求/响应 |
| 开销 | 低(2字节最小头) | 极低(4字节) | 高(请求头大) |
| 可靠性 | 3个QoS等级 | 确认/重传 | 依赖TCP |
| 适用场景 | 传感器、控制、实时 | 资源受限设备 | Web、API |
| 典型端口 | 1883/8883 | 5683/5684 | 80/443 |
MQTT:物联网的「老大哥」
MQTT是我最常用的协议。为什么?因为它专为物联网而生。
MQTT的特点:
- 发布/订阅模式:一个设备发消息,多个设备能同时收到。这在控制场景特别有用。
- QoS机制:你可以选择消息要不要确认、要不要保证到达。省电还是可靠,你说了算。
- 心跳保活:设备断线了,Broker能知道,自动清理。
- 遗嘱消息:设备突然掉线,可以发一条「我挂了」的消息。
我做过一个项目,用MQTT控制工厂里的2000多个阀门。每个阀门每5秒上报一次状态,控制指令延迟不超过200ms。MQTT的QoS 1配合心跳机制,完美解决了「设备掉线不知道」的问题。
我的建议:如果你刚开始做物联网,选MQTT准没错。它生态成熟、资料多、坑少。等你有经验了,再根据场景选别的协议。
CoAP:轻量级选手
CoAP基于UDP,开销比MQTT还小。它适合那些资源极度受限的设备——比如电池供电、内存只有几十KB的传感器。
CoAP的特点:
- 基于UDP,没有TCP的三次握手,省电
- 支持观察模式(类似订阅)
- 支持RESTful风格,跟HTTP类似
但CoAP也有缺点:它不太适合控制场景。因为UDP不可靠,虽然CoAP有确认机制,但延迟和丢包率比TCP高。我在项目中很少用CoAP,除非客户明确要求低功耗到极致。
HTTP:老牌选手
HTTP大家都熟。但它真的不适合物联网。
为什么?
- 开销大:一个HTTP请求头可能几百字节,传感器传个温度值才4字节,浪费
- 请求/响应模式:服务器不能主动推数据,只能设备轮询。设备多了,服务器扛不住
- 无状态:每次请求都要重新建立连接,不适合长连接场景
不过HTTP也不是一无是处。在设备配置页面、固件下载、API接口这些场景,HTTP还是很好用的。我一般把HTTP用在「人机交互」环节,把MQTT用在「设备通信」环节。
1.4 怎么选?
说了这么多,到底怎么选?我给大家一个简单的判断标准:
- 设备资源充足、需要实时控制:选MQTT
- 设备资源极度受限、只上报数据:选CoAP
- 需要Web API、配置页面:选HTTP
- 混合场景:MQTT + HTTP组合使用
我个人习惯是:80%的场景用MQTT,15%用HTTP,5%用CoAP。这个比例供你参考。
警告:不要为了「技术炫酷」选协议。我见过有人用CoAP做智能家居控制,结果设备经常收不到指令,用户投诉不断。选协议,先看场景,再看资源,最后看团队熟悉程度。
1.5 小结
今天咱们聊了物联网的定义、四层架构、三大协议。这些都是基础中的基础,但也是最重要的。
物联网不是简单的「设备+云」,它是一个系统工程。感知层负责采集,网络层负责传输,平台层负责处理,应用层负责呈现。每一层都有坑,每一层都需要认真设计。
下一章,咱们会深入MQTT协议,从报文结构到会话机制,手把手带你吃透它。到时候我会分享一些我在项目中踩过的坑,保证让你少走弯路。
好了,今天就到这儿。有什么问题,欢迎在评论区留言。咱们下章见!
公众号:蓝海资料掘金营,微信 deep3321