3、创建产品与注册设备:在华为云IoT平台创建产品、定义服务属性、注册单个设备、获取设备密钥

好,咱们接着往下走。上一章我们把华为云IoT平台的基本概念捋了一遍,这一章就要动手实操了。说白了,就是要在云端给咱们的ESP32“建个档”,让它能跟平台对上话。

我个人习惯,在开始任何IoT项目之前,都会先把云端的“家底”铺好。你想想看,设备连上来要上报温度、湿度,云端得知道这些数据长什么样,对吧?这就是产品和服务属性的作用。

3.1 创建产品:给设备一个“身份证”

登录华为云IoT平台的控制台,找到“产品”菜单。点击“创建产品”,你会看到一个表单。这里我重点说几个关键项:

  • 产品名称:随便起,比如“ESP32_Sensor_Kit”。我建议用英文加下划线,后面写代码时方便引用。
  • 所属资源空间:默认就行,除非你有多个项目要隔离。
  • 协议类型:选“MQTT”。咱们ESP32最常用的就是它,轻量级,省带宽。
  • 数据格式:选“JSON”。别问为什么,现在IoT界JSON是标配,解析方便,人类可读。
我的小经验:产品名称最好带上版本号,比如“ESP32_Sensor_v1”。我遇到过项目迭代几次后,云端一堆同名产品,根本分不清哪个是哪个。加个版本号,清爽很多。

填完点“确定”,产品就创建好了。你会得到一个产品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,数据就废了。

注意:属性ID一旦定义,后面改起来很麻烦。我建议你提前想好,比如温度用“temp”还是“temperature”?统一风格,别混用。我曾经在一个项目里,有的属性用全称,有的用缩写,调试时自己都看晕了。

除了上报属性,你还可以定义“命令”。比如让ESP32重启,或者控制LED开关。命令的定义方式类似,需要指定“命令名称”和“参数”。这个后面章节会细讲,这里先留个印象。

3.3 注册单个设备:给ESP32一个“户口”

产品定义好了,接下来就是注册设备。回到产品列表,点击“设备”菜单,然后“注册设备”:

  • 设备名称:比如“ESP32_001”。我习惯用“产品名_编号”的格式,方便批量管理。
  • 所属产品:选择刚才创建的产品。
  • 设备ID:系统会自动生成,你也可以自定义。但建议用自动的,省心。

点“确定”,设备就注册成功了。这时候你会看到设备状态是“未激活”,别急,等ESP32连上来就会变“在线”。

关键一步:注册完成后,点击设备名称进入详情页,找到“设备密钥”。点“查看”,会弹出一个对话框,里面是密钥。这个密钥要妥善保管,后面ESP32连接时要用到。我建议你复制下来,存到一个安全的地方,比如密码管理器。

为什么要有密钥?说白了,就是设备登录云平台的“密码”。没有它,谁都能冒充你的设备上报数据,那不乱套了?

3.4 获取设备密钥:连接的最后一块拼图

设备密钥的格式通常是一串随机字符,比如“abc123def456”。在设备详情页的“设备密钥”字段,点击“查看”就能看到。注意,这个密钥只在创建时显示一次,之后如果忘了,只能重置。

我遇到过这种情况:项目做到一半,密钥找不到了。没办法,只能重置密钥,然后更新所有设备的固件。那叫一个折腾。所以,拿到密钥后,第一时间备份。

除了密钥,你还需要记录以下信息,后面写代码时要用:

  • 设备ID:就是注册时系统生成的那个。
  • 产品ID:在产品详情页能看到。
  • MQTT连接地址:在平台“总览”页,有个“接入信息”,里面能看到MQTT的地址和端口。默认是1883(非加密)和8883(加密)。咱们用8883,安全第一。
我的习惯:我会把这些信息写到一个配置文件里,比如“iot_config.h”,然后用宏定义。这样代码里引用方便,换项目时改一个文件就行。别硬编码在代码里,万一要换设备,改起来累死人。

好了,到这一步,华为云IoT平台这边的准备工作就完成了。你有了产品、服务属性、设备、密钥。下一章,咱们就要在ESP32上写代码,让这个小家伙真正连上云端,实现双向通信。

嗯,总结一下这一章的核心:创建产品是搭架子,定义属性是填内容,注册设备是发身份证,获取密钥是配钥匙。四步走完,云端准备就绪。你想想看,是不是挺清晰的?