物联网这几年火得不行,智能家居、智慧农业、工业监控到处都在用。很多人想入门物联网开发,但一上来就被各种协议、平台、传感器搞懵了。今天我就用大白话把物联网开发的完整链路讲一遍,从传感器采集数据到最终上传到云平台,中间每个环节该用什么、怎么选,全都捋清楚。
物联网系统说白了就三层:感知层、网络层、应用层。感知层就是各种传感器和执行器,温度、湿度、光照、烟雾、人体红外这些,负责把物理世界的信息变成电信号。网络层负责把数据传出去,可以用WiFi、蓝牙、ZigBee、LoRa、NB-IoT,各有各的适用场景。应用层就是云平台或者手机App,负责存储数据、展示界面、下发控制指令。
感知层选传感器是第一步。新手建议从DHT11温湿度传感器开始,便宜、接线简单,Arduino和树莓派都能直接驱动。如果想要精度高一点的,就选DHT22或者SHT30。光线传感器用BH1750,人体红外用HC-SR501,烟雾检测用MQ-2。这些模块在某宝上几块钱到十几块钱,买来就能用,资料也特别多。传感器输出的一般是模拟电压或者数字信号,MCU用ADC采集或者直接读I2C/SPI接口就行。
网络层的选择要看应用场景。如果设备旁边有WiFi,而且功耗不是大问题,ESP8266或者ESP32是最省事的方案,几十块钱一块开发板,自带WiFi,Arduino环境直接编程,HTTP、MQTT都能跑。如果是电池供电、数据量小的场景,比如环境监测、农田检测,ZigBee或者LoRa更合适,功耗低、传输距离远。NB-IoT适合城市里的智能表计、共享单车锁,直接用运营商网络,不需要自己搭网关。
协议方面,设备到云平台最常用的是MQTT。MQTT是发布订阅模式,设备把数据发到某个Topic,云平台订阅这个Topic就能收到,反过来云平台给设备下发指令也是通过Topic。MQTT报文头很小,特别适合带宽窄、流量贵的物联网场景。HTTP也可以用,但开销大,不适合频繁上报。CoAP是另一种轻量级协议,跟HTTP类似但二进制编码,更适合资源受限设备。
云平台的选择很多,国内常用的是阿里云IoT、腾讯云IoT、华为云IoT、OneNET,国外有AWS IoT、Azure IoT Hub、Google Cloud IoT。这些平台都提供设备注册、消息路由、规则引擎、数据存储、可视化报表这些功能。新手建议从阿里云IoT套件开始,文档齐全、中文支持好,控制台里创建设备、定义Topic、写规则引擎都很直观。如果想省钱,也可以自己用Node-RED + InfluxDB + Grafana搭一个私有平台,功能完全够用。
整个开发流程一般是这样的:先用电烙铁或者杜邦线把传感器和开发板连好,在Arduino里写代码读取传感器数值,串口打印出来验证数据对不对。然后加上网络模块,把数据通过MQTT发到云平台,在平台上看到数据流进来。最后做一个简单的手机App或者Web页面,把数据用图表展示出来,再加几个按钮控制继电器开关灯、电机什么的。一套完整的物联网系统就跑通了。
新手常见的问题有几个:第一个是传感器读数不准,通常是电源不稳或者采样间隔太短,加个电容滤波、延长采样间隔就能改善。第二个是WiFi连接不稳定,ESP8266对电源要求比较高,最好用独立的3.3V稳压模块供电,不要用USB转串口模块的3.3V。第三个是MQTT连接断开后不会自动重连,要在代码里加重连逻辑,检测到disconnect事件后重新初始化连接。总的来说物联网开发门槛不算高,会点C语言、懂基本电路就能上手,关键是把每一层之间的接口对接好。
上一篇:GCC编译器下载安装与使用指南:Windows和Linux下的环境搭建实战
下一篇:没有了