3、创建产品与注册设备:在华为云IoT平台创建产品、定义服务属性、注册单个设备、获取设备密钥
好,咱们接着往下走。上一章我们把华为云IoT平台的基本概念捋了一遍,这一章就要动手实操了。说白了,就是要在云端给咱们的ESP32“建个档”,让它能跟平台对上话。
我个人习惯,在开始任何IoT项目之前,都会先把云端的“家底”铺好。你想想看,设备连上来要上报温度、湿度,云端得知道这些数据长什么样,对吧?这就是产品和服务属性的作用。
3.1 创建产品:给设备一个“身份证”
登录华为云IoT平台的控制台,找到“产品”菜单。点击“创建产品”,你会看到一个表单。这里我重点说几个关键项:
- 产品名称:随便起,比如“ESP32_Sensor_Kit”。我建议用英文加下划线,后面写代码时方便引用。
- 所属资源空间:默认就行,除非你有多个项目要隔离。
- 协议类型:选“MQTT”。咱们ESP32最常用的就是它,轻量级,省带宽。
- 数据格式:选“JSON”。别问为什么,现在IoT界JSON是标配,解析方便,人类可读。
填完点“确定”,产品就创建好了。你会得到一个产品ID,这个后面注册设备时会用到。嗯,这里要注意,产品ID是系统自动生成的,别手改它。
3.2 定义服务属性:告诉云端数据长啥样
产品建好了,但云端还不知道你的设备能干啥。这就需要定义“服务”和“属性”。
点击刚创建的产品,进入“详情”页,找到“服务”选项卡。点击“添加服务”:
- 服务ID:比如“temperature_humidity”。我习惯用下划线连接,清晰。
- 服务类型:跟ID保持一致就行,或者写“Sensor”。
- 描述:可填可不填,但建议写一句,比如“温湿度传感器数据”。
服务建好后,点进去,开始定义属性。点击“添加属性”:
| 属性名称 | 属性ID | 数据类型 | 取值范围 | 描述 |
|---|---|---|---|---|
| 温度 | temperature | float | -40 ~ 125 | 当前温度值,单位℃ |
| 湿度 | humidity | float | 0 ~ 100 | 当前湿度值,单位%RH |
这里有个坑,我当初踩过。数据类型选“int”还是“float”?如果你传感器精度到小数点后一位,必须用float。否则云端收到0.5,给你截断成0,数据就废了。
除了上报属性,你还可以定义“命令”。比如让ESP32重启,或者控制LED开关。命令的定义方式类似,需要指定“命令名称”和“参数”。这个后面章节会细讲,这里先留个印象。
3.3 注册单个设备:给ESP32一个“户口”
产品定义好了,接下来就是注册设备。回到产品列表,点击“设备”菜单,然后“注册设备”:
- 设备名称:比如“ESP32_001”。我习惯用“产品名_编号”的格式,方便批量管理。
- 所属产品:选择刚才创建的产品。
- 设备ID:系统会自动生成,你也可以自定义。但建议用自动的,省心。
点“确定”,设备就注册成功了。这时候你会看到设备状态是“未激活”,别急,等ESP32连上来就会变“在线”。
为什么要有密钥?说白了,就是设备登录云平台的“密码”。没有它,谁都能冒充你的设备上报数据,那不乱套了?
3.4 获取设备密钥:连接的最后一块拼图
设备密钥的格式通常是一串随机字符,比如“abc123def456”。在设备详情页的“设备密钥”字段,点击“查看”就能看到。注意,这个密钥只在创建时显示一次,之后如果忘了,只能重置。
我遇到过这种情况:项目做到一半,密钥找不到了。没办法,只能重置密钥,然后更新所有设备的固件。那叫一个折腾。所以,拿到密钥后,第一时间备份。
除了密钥,你还需要记录以下信息,后面写代码时要用:
- 设备ID:就是注册时系统生成的那个。
- 产品ID:在产品详情页能看到。
- MQTT连接地址:在平台“总览”页,有个“接入信息”,里面能看到MQTT的地址和端口。默认是1883(非加密)和8883(加密)。咱们用8883,安全第一。
好了,到这一步,华为云IoT平台这边的准备工作就完成了。你有了产品、服务属性、设备、密钥。下一章,咱们就要在ESP32上写代码,让这个小家伙真正连上云端,实现双向通信。
嗯,总结一下这一章的核心:创建产品是搭架子,定义属性是填内容,注册设备是发身份证,获取密钥是配钥匙。四步走完,云端准备就绪。你想想看,是不是挺清晰的?