1. 物联网概述:从概念到落地
大家好,我是你们这门课的老朋友。今天咱们聊聊物联网的“根”——它的定义、发展历程、体系架构,还有那些核心技术。嗯,这部分内容听起来有点“理论”,但别急,我会用我这些年踩过的坑、攒下的经验,把它讲得接地气一点。
1.1 物联网到底是什么?
物联网,英文叫Internet of Things,简称IoT。说白了,就是把物理世界里的“物”——比如传感器、设备、家电——连到互联网上,让它们能说话、能听话、能干活。
我个人习惯用一个比喻:物联网就像给哑巴世界装上了嘴巴和耳朵。以前,一个温度传感器只能默默感知温度,数据存在本地。现在,它能把温度数据发到云端,你手机一查就知道。反过来,你也能远程控制它,比如设定阈值,超过就报警。
我在项目中遇到过一件事:一个客户说“我要物联网”,结果他只想把设备连上网,但数据怎么用、怎么分析,完全没想。嗯,这里要注意:物联网不是“联网”就完事了,它是个闭环——感知、传输、处理、应用,缺一不可。
1.2 发展历程:从实验室到千家万户
物联网不是一天建成的。我把它分成三个阶段,你想想看,是不是这么回事:
| 阶段 | 时间 | 特点 | 我印象中的事 |
|---|---|---|---|
| 萌芽期 | 1990s - 2000s | RFID、传感器网络,概念为主 | 我记得那时候做RFID门禁,觉得特牛 |
| 成长期 | 2010s | 云计算、智能硬件爆发 | 我做过一个智能插座,连WiFi,现在看太简陋了 |
| 成熟期 | 2020s至今 | AIoT、边缘计算、行业深度应用 | 现在做工业物联网,数据量大了,玩法也多了 |
为什么会这样?因为技术是一步步成熟的。早期网络带宽不够,传感器贵,芯片功耗高。现在呢?一个ESP32芯片十几块钱,WiFi、蓝牙全集成,功耗还低。嗯,这就是进步。
1.3 体系架构:三层模型
物联网的体系架构,我习惯用“三层模型”来理解。你把它想象成一栋楼:
- 感知层:一楼,负责“摸”世界。传感器、摄像头、RFID标签,都是这层的。
- 网络层:二楼,负责“传”数据。WiFi、4G/5G、LoRa、NB-IoT,都是管道。
- 应用层:三楼,负责“用”数据。手机App、云平台、数据分析,都在这里。
我在项目中遇到过一个问题:客户只买了传感器,没考虑网络覆盖。结果在工厂里,WiFi信号差,数据传不上去。嗯,这里要注意:三层架构必须协同,缺一层就玩不转。
1.3.1 感知层:物联网的“五官”
感知层是物联网的起点。传感器种类太多了:温度、湿度、压力、光照、加速度……我建议你从最常用的开始学,比如DHT11(温湿度)、BMP180(气压)、HC-SR04(超声波测距)。
避坑指南:我曾经买过一批便宜的传感器,精度差得离谱。后来学乖了,选型时一定看数据手册,尤其是“精度”和“漂移”参数。别图便宜,否则数据不准,后面全白搭。
1.3.2 网络层:物联网的“神经”
网络层负责把感知层的数据传出去。选择哪种通信方式,取决于场景:
- 短距离:WiFi、蓝牙、Zigbee。适合智能家居,距离几十米。
- 长距离:LoRa、NB-IoT、4G/5G。适合工业、农业,距离几公里。
- 有线:RS485、CAN总线。适合工厂,稳定可靠。
我个人习惯:室内项目用WiFi,室外用LoRa。为什么?WiFi便宜、方便,但穿墙差;LoRa功耗低、距离远,但速率慢。没有完美的方案,只有合适的方案。
1.3.3 应用层:物联网的“大脑”
应用层是数据变现的地方。比如:
- 数据可视化:用图表展示温度变化。
- 远程控制:手机App开关灯。
- 智能分析:预测设备故障。
我建议你从云平台入手,比如阿里云IoT、腾讯云IoT、OneNET。它们提供了现成的API和界面,你只需要把数据传上去,就能看到效果。嗯,这里要注意:别一开始就自己搭服务器,那是给自己挖坑。
1.4 核心技术概览
物联网涉及的技术很多,我挑几个核心的说说:
| 技术 | 作用 | 我的一点经验 |
|---|---|---|
| 传感器技术 | 采集物理量 | 选型时注意量程和精度 |
| 嵌入式系统 | 控制设备、处理数据 | STM32、ESP32是入门首选 |
| 通信技术 | 数据传输 | WiFi最常用,LoRa适合远距离 |
| 云计算 | 存储、计算、分析 | 别自己搭,用现成的 |
| 边缘计算 | 本地处理,降低延迟 | 适合实时性要求高的场景 |
| 安全技术 | 加密、认证、防护 | 我吃过亏,设备被黑了,数据泄露 |
核心观点:物联网不是单一技术,而是多种技术的融合。你不需要精通所有,但必须理解它们如何协作。
我的建议:初学者先玩ESP32 + 传感器 + 云平台。成本低、上手快,能快速看到效果。别一上来就搞复杂的工业项目,容易劝退。
警告:安全不是可选项,是必选项。我曾经做过一个项目,设备没有加密,结果被黑客控制了,差点出事。从那以后,我再也不敢忽略安全了。
1.5 一个小例子:从传感器到云端
说了这么多,不如看个代码。下面是一个ESP32读取DHT11温湿度数据,并上传到阿里云IoT的示例:
#include <DHT.h>
#include <WiFi.h>
#include <PubSubClient.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// WiFi配置
const char* ssid = "你的WiFi名";
const char* password = "你的WiFi密码";
// 阿里云MQTT配置
const char* mqtt_server = "你的阿里云IoT域名";
const char* mqtt_username = "设备名";
const char* mqtt_password = "设备密钥";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
client.setServer(mqtt_server, 1883);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("传感器读取失败");
return;
}
String payload = "{\"temperature\": " + String(t) + ", \"humidity\": " + String(h) + "}";
client.publish("/设备Topic", payload.c_str());
delay(5000);
}
void reconnect() {
while (!client.connected()) {
if (client.connect("ESP32Client", mqtt_username, mqty_password)) {
Serial.println("MQTT连接成功");
} else {
delay(5000);
}
}
}
这段代码我用了很多次,基本是物联网入门的“Hello World”。你想想看,从传感器采集数据,到WiFi传输,再到云端接收,整个过程就是物联网的缩影。
嗯,第一章就到这里。下一章咱们深入聊聊传感器,怎么选、怎么用、怎么避免踩坑。到时候见!