图文手把手教程--ESP32 MQTT连接阿里云生活物联网平台

本文内容

1)在阿里云生活物联网平台,创建自有品牌项目,并在项目下创建产品“智能灯001”。

2)下载阿里云SDK-esp-aliyun使用例程smart_light,通过“云智能”手机APP控制。

3)在阿里云物联网平台,查看设备、管理设备、调试设备。

esp-aliyun下载地址:https://github.com/espressif/esp-aliyun

在应用商店,例如应用宝中下载阿里云APP,名字:云智能

一、首先完成集成开发环境搭建:

图文手把手教程(史上最强):windows下ESP32集成开发环境搭建和HelloWorld显示(乐鑫官方推荐方法-使用VSCode安装ESP-IDF插件)

二、在阿里云生活物联网平台,创建自有品牌项目。

2.1 阿里云参考文档:开发自有品牌项目的产品 - 生活物联网平台 - 阿里云

2.2 注册并登陆阿里云生活物联网平台:生活物联网平台(飞燕平台)

 

 

2.3 创建自有品牌项目。

2.4 在自有品牌项目下创建产品。

 

产品名称:智能灯001;所属品类:电工照明/灯;节点类型:设备;是否接入网关:否;

连网方式:wifi;数据格式:ICA标准数据格式(Airlink/JSON);使用ID2认证:否

按个人需求,适当删除一些功能。

1)产品展示

填写APP展示产品名称,例如:淘梦智能灯001 TDL。

 2)分享方式

勾选“使用公版APP控制产品”,分享方式:授权式。

 3)设备面板

按自己喜好,选择一个面板。

4)配网引导

注意:一定要选择"一键配网",否则会一直在扫描通道,无法配网。

 5)多语言管理

 “人机交互”的必填项填好后,非必填项根据个人需要,然后点击下一步,进入设备调试。

点击新增设备调试,在弹出框中,DeviceName为空,直接点击确定。

 勾选协议,点击产品发布,创建产品的流程即全部完成。

 三、创建smart_light例程。

1 )github下载阿里云SDK:https://github.com/espressif/esp-aliyun

注意:从github直接下载的阿里云SDK,名字为:esp-aliyun-master.zip,解压后需要修改名字,将esp-aliyun-master改为esp-aliyun,因为smart_light例程中关联的组件名字是esp-aliyun,如果不修改VSCODE中则会编译报错。

esp-aliyun的内容如下图所示:

2)将整个esp-aliyun文件夹复制到E:\ESP32-IDF\esp\esp-idf\components目录下。

3)将esp-aliyun文件夹下的examples复制到E:\ESP32-IDF\esp\esp-idf\examples目录下,并重命名为aliyun。

 

 

4)创建示例项目smart_light:VSCODE中->"查看"->”命令面板“->输入:Show Examples projects->选择Use current ESP-IDF(E:\ESP32-IDF\esp\esp-idf)->弹出示例ESP-IDF Examples,选择aliyun->solutions->smart_light->Create project using example smart_light->选择示例保存的路径。

例如:E:\ESP32-IDF\project-example,因ESP-IDF框架与示例是分离的,所以示例保存的路径可以随意,但需要注意:路径不能有中文和空格,否则报错。


 

 5)创建完成,如下图所示。 

 打开后,如果右下角提示是否允许Makefile Tools配置,则选择不允许。

如果不小心选择了允许,则会出现:头文件报警告“在 browse.path 中未找到包含文件”,即头文件有波浪线,无法跳转。原因:本地没有安装cmake。

解决办法:在.vscode->c_cpp_properties.json中删除"configurationProvider": "ms-vscode.cmake-tools"即可。

 6)一字不改,编译、下载到ESP32开发板。

 7)打开串口监控,显示错误信息:未烧录四元组,如下图所示。

 

四、配置分区表。

分区表的说明见官方文档:分区表 - ESP32 - — ESP-IDF 编程指南 latest 文档

分区表的说明见博客:ESP32分区表图解

1)打开SDK可视化配置,设定flash大小和设定“partition table”分区表。

左下角,点击SDK可视化配置按钮,进入配置,配置完后按保存。

 如果flash大小为2MB没有修改为4MB则会报错,如下图所示。

 2)重新编译,可以看到引用的是我们自定义的分区表。

 五、烧录阿里云四元组。

5.1 方法一:将四元组烧录到代码中,适合调试用,不适合量产。

1)修改如下代码,重新编译和下载。

// 产品设备信息设置函数声明
int HAL_SetProductKey(char *product_key);
int HAL_SetProductSecret(char *product_secret);
int HAL_SetDeviceName(char *device_name);
int HAL_SetDeviceSecret(char *device_secret);

void app_main()
{
    {   // 代码中配置产品设备信息-阿里四元组,用于调试
        HAL_SetProductKey("a1X4pTa1234");
        HAL_SetProductSecret("eFha1yQgo1rf1234");
        HAL_SetDeviceName("vDjabsTswpvLpw0F1234");
        HAL_SetDeviceSecret("f1c722c66873c7d789ab40ac380b1234");
    }

    factory_restore_init();

    lightbulb_init();

    conn_mgr_init();
    conn_mgr_register_wifi_event(wifi_event_handle);

    // { // 设置wifi账号密码
    //     const char *ssid = "Xiaomi_tao";
    //     const char *password = "123456";
 
    //     conn_mgr_set_wifi_config_ext((const uint8_t *)ssid, strlen(ssid), (const uint8_t *)password, strlen(password));
    // }

    IOT_SetLogLevel(IOT_LOG_INFO);

#ifdef CONFIG_USE_SOFTAP_CONFIG
    conn_mgr_set_sc_mode(CONN_SOFTAP_MODE);
#else
    conn_mgr_set_sc_mode(CONN_SC_ZERO_MODE);
#endif
    xTaskCreate((void (*)(void *))start_conn_mgr, "conn_mgr", 3072, NULL, 5, NULL);
}

2)在生活物联网平台,找到配网二维码,打开云智能APP扫描配网,可以看到配网成功,并能用APP控制,这里不详细讲解,在后面的四元组生成BIN文件烧录,再详讲。

5.2 方法二:将四元组生成bin文件进行烧录,适合量产。

1)打开...\esp-aliyun\config\mass_mfg,复制single_mfg_config.csv到smart_light项目下。

2)打开single_mfg_config.csv,填写四元组。

 3)四元组生成bin文件。

Python E:\ESP32-IDF\esp\esp-idf\components\nvs_flash\nvs_partition_generator\nvs_partition_gen.py generate single_mfg_config.csv single_mfg.bin 0x4000

 4)烧录四元组bin文件。

python E:\ESP32-IDF\esp\esp-idf\components\esptool_py\esptool\esptool.py write_flash 0x210000 single_mfg.bin

 5)擦除整片flash。

由于在“5.1方法一”时已经在代码中烧录过四元组以及配网,所以这里要擦掉flash,重新进行测试。

注意:erase_flash是擦除整片flash,在上面保存的四元组和wifi的帐号、密码都会被擦除。

python E:\ESP32-IDF\esp\esp-idf\components\esptool_py\esptool\esptool.py erase_flash

 6)重新烧录代码和四元组bin文件,打开串口监控。

如果四元组输入错误,则会报错,如下图所示。

六、使用云智能APP进行配网。

 1)在生活物联网平台,找到配网二维码,手机端打开云智能APP,扫描此二维码进行配网。

 

 

 

 

 2)串口监控中,可以看到配网成功并连接MQTT成功,可以使用APP进行控制。

七、在物联网平台查看设备、管理设备、调试设备。

阿里云网址:https://www.aliyun.com/

 

 

 

 

至此,ESP32 MQTT连接阿里云生活物联网平台已全部完成,愉快的玩耍吧!

完整的例程代码下载:https://download.csdn.net/download/felix_tao/86341001

使用例程,报错怎么办,解决办法如下:

1)打开VSCODE报错,c_cpp_properties.json无法找到E:\\ESP32-IDF...

解决办法:点击.vscode->c_cpp_properties.json,修改盘符即可,例如将E盘改为D盘。

2)编译工程报错:

[0/1] Re-running CMake...
FAILED: build.ninja 
CreateProcess failed: The system cannot find the file specified.
ninja: error: rebuilding 'build.ninja': subcommand failed

解决方法:清除编译产生的所有文件,左下角->点击垃圾桶图标(ESP-IDF Full Clean)->清除后,接着重新编译即OK。

本文参考了以下博客,鸣谢!

ESP32C3对接阿里云生活物联网平台_事在人wёi的博客-CSDN博客_esp32 阿里云

在windows使用VSCode编译esp-aliyun_坤仔N的博客-CSDN博客

### 回答1: ESP32连接阿里云MQTT物联网平台的Arduino支持库是一种便捷的物联网连接方式,可以实时获取设备数据并作出相应的控制。以下是步骤: 1. 下载阿里云Arduino支持库,安装到Arduino IDE开发环境; 2. 获取阿里云MQTT物联网平台(IoT Platform)的密钥信息,包括:设备证书、密钥等; 3. 编写代码,包括:WiFi连接MQTT连接、数据监听、数据上传、控制响应等,上传到ESP32开发板上; 4. 在阿里云控制台创建对应设备,定义设备的物模型、功能、属性等; 5. 将ESP32连接WiFi并连接阿里云MQTT物联网平台后,即可实现设备控制与数据获取等功能。 需要注意的是,在使用ESP32连接阿里云MQTT物联网平台过程中,应注意设备的网络稳定性、MQTT协议的消息确认机制等方面的问题。合理使用阿里云提供的服务和开发工具,能够更好地实现IoT物联网应用场景。 ### 回答2: ESP32是一款功能强大的微控制器,可以与阿里云MQTT物联网平台进行连接。为了实现这一目标,我们需要使用适用于Arduino的ESP32连接阿里云MQTT物联网平台的库。 这个库可以在Arduino ID中下载,它允许ESP32阿里云MQTT物联网平台实现关联和同步。我们只需要在Arduino IDE中添加库并编写所需的代码,就可以建立连接。 在详细说明之前,需要先确定在阿里云MQTT物联网平台中已创建AWS IoT设备,并获取设备证书、设备密钥和CA证书。这些证书将用于连接阿里云服务。 接下来,在Arduino IDE中添加库并开始编写代码。代码确认设备连接信息并建立MQTT连接。代码还包括订阅主题、发布消息和处理回传消息等功能。 在使用此库连接ESP32阿里云MQTT物联网平台时,需要记住以下几点: 1.确认ESP32的设备IP地址并相应地更改代码。 2.在阿里云MQTT物联网平台上添加主题和订阅者。 3.正确配置阿里云MQTT物联网平台的策略和权限,确保ESP32可以正确访问。 一旦连接成功,ESP32就可以通过阿里云MQTT物联网平台与其他设备进行数据交换,实现智能家居、传感器应用和其他物联网应用。 ### 回答3: ESP32是一款广泛应用于物联网设备的微型控制器,它具有高度集成的蓝牙和Wi-Fi模块,可用于快速构建和部署智能设备和系统。阿里云MQTT物联网平台是一个领先的端服务平台,提供了可靠、高效的通信,帮助开发人员更好地管理和控制物联网设备。在这种情况下,合并ESP32阿里云平台的连接可以极大地提高物联网设备的运行效率和控制能力。为实现这种连接,实用的方法是使用arduino支持库。 与其他加密、配对和通信协议不同,MQTT是一个极为开放的协议,并可以广泛用于不同的设备和应用。阿里云MQTT物联网平台支持MQTT协议,为开发人员创建更加智能化的物联网设备提供了全面的解决方案。 开发人员可以使用esp32连接阿里云mqtt物联网平台的arduino支持库。该库包含了所有用于连接和操作MQTT服务的必备组件,如mqtt客户端、设备管理、消息代理等。您可以在阿里云物联网控制台上获取所有必要的信息和证书,以便在ESP32上运行。 在运行这些组件之前,您需要为设备创建一些认证凭据和配置参数,例如设备ID、秘钥,以及所属分组信息等,这些信息可以通过阿里云物联网平台进行设置。一旦您设置好了所有的认证和配置信息,您就可以使用支持库中的命令来连接MQTT服务,并快速部署和控制自己的物联网设备。 总之,使用arduino支持库,您可以快速连接阿里云MQTT物联网平台,不需要复杂复制粘贴代码,专注于实现您的物联网设备的逻辑、控制和应用。它不仅方便易用,而且可以大大提高你的开发效率。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘梦TaoDream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值