1. 前言
欢迎大家加入本教程!我们将一步步引导大家构建一个完整的物联网系统,主要目标是通过WiFi实现手机与单片机之间的远程通信。
本教程选用中国移动OneNET作为云平台服务。OneNET是一个面向物联网应用的专业PaaS平台,提供设备连接、数据收集和分析处理等服务,适合个人开发者使用,且有免费额度和详细的官方文档。
技术上,我们将使用OneNET的“物模型”来定义设备行为和属性,并采用JSON格式(OneJSON)进行数据交换。为了使单片机接入互联网,需要配备额外的WiFi模块硬件。
通过本教程,你不仅能学会搭建这个物联网应用场景,还能深入了解物联网的基本原理和技术细节。希望大家都能从中获益,开启智能生活之旅!
2. 获取资料
(s–b csdn一直说我过度宣传不给通过审核也不告诉我哪里过度了,看评论)
3. 注册账号
打开官方网站通过手机号注册一个账号:
4. 创建产品
4.1.创建产品
注册好账号后,点击右上方的开发者中心,如图标签①处。

进入到开发者中心后,我们需要在产品开发目录下,创建一个新的产品,
点击①,再点击②。

4.2.选择产品品类
点击创建产品选项后,会弹出一个产品的信息选择窗,这里我们就以一个温湿度计为例来创建产品,
这个地方的产品品类选择,只会影响创建后的物模型默认的属性。
例如这里选择的温湿度检测,那么创建后就会默认带温度,湿度的属性值,
如果选择的是水质检测终端,那么可能就会带水质,酸碱值的属性,
不会有其他功能性的不同,并且创建成功后可以自己增加或者删除属性,所以这里不用纠结选什么品类。
点击①选择行业,②选择场景,③选择品类,④点击保存

4.3. 选择设备信息

①选择智能化方式,选择设备接入,产品名称按照自己的需求写,这个名称不会涉及到使用步骤,只是最为一个名字显示。
所属地区按照需求填写,会在OneNET的地图上显示设备位置,没有其他的影响。
②节点类型选择直连设备,例如通过esp8266或者其他wifi,4g模块连接。
③接入协议选择mqtt,后文附带对比表格。
④数据协议使用OneJson,后文附带对比表格。
⑤联网方式选择WiFi,最终使用ESP8266或者其他wifi模块实现数据传输。
⑥点击下发的确定
4.3.1.接入协议特性表格
| 特性 | MQTT | CoAP | LwM2M | HTTP |
|---|---|---|---|---|
| 传输层 | TCP | UDP | UDP (CoAP) | TCP |
| 消息模型 | 发布/订阅 | 请求/响应 | 对象/资源 | 请求/响应 |
| QoS支持 | 3个级别 | 确认/非确认 | 依赖CoAP | 无(应用层处理) |
| 安全机制 | TLS/SSL | DTLS | DTLS(强制) | TLS/SSL |
| 功耗 | 中 | 极低 | 低 | 高 |
| 实时性 | 高(长连接) | 中 | 中 | 低 |
| 双向通信 | ✅ 原生支持 | ⚠️ 观察模式 | ✅ 支持 | ❌ 不支持 |
| 设备管理 | ⚠️ 需应用层实现 | ❌ 不支持 | ✅ 内置 | ❌ 不支持 |
4.3.2. 接入协议使用场景表格
| 协议类型 | 典型应用场景 | 关键优势 | 不适用场景 |
|---|---|---|---|
| MQTT | 智能家居、充电桩、设备远程控制 | 双向实时通信、QoS可靠传输、生态完善 | 超低功耗设备、非IP网络 |
| CoAP | NB-IoT水表、烟感报警、农业监测 | 功耗极低、UDP穿透性强、头部开销最小 | 需要高频下发、对丢包敏感 |
| LwM2M | 大规模设备管理、OTA升级、运营商平台 | 内置管理功能、标准化对象模型、安全性强制 | 应用层灵活性差、开发门槛高 |
| HTTP | 一次性数据上报、快速原型验证 | 开发最简单、通用性强、调试方便 | 实时控制、高频率上报、双向通信 |
4.3.3.数据协议特性表格
| 特性 | OneJson | 数据流 | 自定义透传 |
|---|---|---|---|
| 数据格式 | 标准JSON | Key-Value | 任意格式(Hex/字符串) |
| 物模型 | ✅ 支持 | ❌ 不支持 | ⚠️ 需脚本转换 |
| Topic数量 | 多(按功能点) | 中 | 少(单一Topic) |
| 开发难度 | 低(标准化) | 低 | 高(需写解析脚本) |
| 平台功能 | 完整支持 | 基础支持 | 有限支持 |
| 带宽消耗 | 较高 | 中 | 最低 |
| 灵活性 | 低 | 中 | 最高 |
4.3.4.数据协议类型使用场景表格
| 协议类型 | 典型应用场景 | 关键优势 | 不适用场景 |
|---|---|---|---|
| OneJson | 智能家电、工业网关、共享设备 | 平台功能完整、物模型标准化、规则联动强 | 存量设备改造、超低带宽环境 |
| 数据流 | 环境监测传感器、电表抄表、GPS定位 | 配置简单快速、时序数据存储高效 | 需要下发控制、复杂业务逻辑 |
| 自定义透传 | 旧设备上云、特殊协议模组(如ModBus) | 硬件改动最小化、传输效率最高 | 开发资源不足、需要快速迭代 |
5.新建设备
5.1.设备管理
创建好了产品之后,需要新建设备,一个产品,例如温湿度计,对应了有很多个设备。
这里的一个产品可以创建多个设备。

①:点击设备管理。
5.2.创建设备

①:添加设备。
②:选择刚刚创建的产品。
③:选择名称,这里的名称后续会在生成token中使用到。
④:点击确定
5.3.查看设备信息
创建设备成功后,会显示刚刚创建的设备

①:这里显示未激活是正常情况,后续第一次通过前面选择的连接方式,例如MQTT,连接到这个设备后,就会变成在线或者离线。
②:点击详情,查看有哪些属性。
5.4.进入详情页后:

①:设备名称,注意不要和前面的产品名称搞混了。
②:设备密钥,后续生成token时需要用到。
③:产品ID,后续生成token时需要用到。
后续生成token的时候需要使用到这三个参数。
5.5.查看属性内容

①:回到产品开发。
②:进入产品开发页面。
进入后,可以看到前面选择的产品品类,会自动帮我们创建对应的物模型属性,同时我们也可以点击右边的设置物模型选项来新增或者删减属性,或者修改已有属性的参数。

这里还需要解释一下下图的各个参数作用。

①:属性,就是通用的一个数据类型。
②:功能名称,用户可以自己定义,不影响数据交互。
③:标识符,用户可以自己定义,数据交互时,需要使用到对应的标识符,否则数据会交互失败。
④:数据类型,决定此参数的数据类型。
⑤:取值范围,决定此参数的数值范围。
⑥:步长,数据变化的最小分辨率,0.1则代表数据最多一位小数点。
⑦:单位,用户可以自己定义,不影响数据交互。
⑧:只读,读写,只写,分别对应着只可以上报属性,可以上报和属性设置,只可以属性设置功能,像是温湿度属性,只读就可以,因为只用上报数据,但是如果有个开关灯属性,需要去进行属性设置的操作,那么需要改成读写或者只写属性。
6.获取token
我们连接OneNET的设备需要进行设备安全认证,也就是:设备登录时需要使用通过key计算出的访问token 来进行访问安全认证。
如官方文档描述:文档中心:

所以我们需要一个鉴权信息Token。
前面创建了产品,和对应的设备,之后就可以去生成Token,使用mqttx软件,实现连接服务器,进行属性上报和属性设置的操作,来为后续的单片机与云平台通信铺垫。
到这里,先整理一下需要用到的数据。
| 产品ID | 设备名称 | 设备密钥 |
|---|---|---|
| 8W3Sk9inj6 | dev-001 | T2tQWTM5TVc0QjhYNHI2SG5kTjZIMjQxN1RrbHVlNkE= |
找到OneNET的Token生成工具:
下载之后打开。

①
- 产品级鉴权时,res字段为products/{产品id},key为产品级key
- 设备级鉴权时,res字段为products/{产品id}/devices/{设备名},key为设备级key
我们这里是设备级鉴权,所以以我的产品设备为例填入:products/8W3Sk9inj6/devices/dev-001
②:et,鉴权失效时间戳,不能大于10年,选择一个一年后秒级别的时间戳填入,例如:1796806010
网页搜一个时间戳转换工具:时间戳(Unix timestamp)转换工具
③:key,设备密钥,填入:T2tQWTM5TVc0QjhYNHI2SG5kTjZIMjQxN1RrbHVlNkE=
④:加密算法,默认即可。
⑤:点击生成。
将上面信息输入后:

复制生成框的内容,注意蓝色的选择区域,不要额外选择到换行回车符,只用选中到最后一个字符即可。
例如:
version=2018-10-31&res=products%2F8W3Sk9inj6%2Fdevices%2Fdev-001&et=1796806010&method=md5&sign=5MTXZNoeVlW1pQCHFB28Vg%3D%3D
7.总结
通过上面的内容,我们已经拿到了需要的信息,并且为接下来的实践做好了准备。下一步,我们将使用mqttx工具和OneNet平台进行通信。具体来说,我们会用mqttx作为客户端工具,连接到OneNet的MQTT服务,实现数据的发送和接收。我们需要确保MQTT服务器地址、端口号、用户名和密码等信息都正确无误,同时要注意数据格式和主题的设置,这样才能保证通信顺利进行。下一节会详细介绍如何利用这些信息完成MQTT通信的配置和操作。
本文详细指导如何在物联网项目中使用ESP8266-01s与微信小程序配合,通过OneNETMQTT服务创建设备,实现单片机的远程控制。包括设备注册、AT指令配置、数据双向传输等内容。

1397

被折叠的 条评论
为什么被折叠?



