ESP32 AT指令模式连接百度云天工物接入

ESP32 AT指令模式连接百度云天工物接入

1. 前言

​ ESP32是乐鑫公司的一款 WiFi+蓝牙双模组,通过使用ESP32可以轻松快速的将设备接入物联网云平台。

​ ESP32模组支持 IDF 开发和 AT 指令开发两种方式。

IDF开发,也即直接片上编程进行二次开发,这种方式开发和普通的MCU开发十分相似,底层基于FreeRTOS实时操作系统+LwIP协议栈;
AT指令开发,这种方式开发更加简单,官方提供了一个AT指令固件,将此固件烧录在ESP32中,即可通过串口控制ESP32完成一系列的配网联网功能,不用管内部细节如何实现。

​ 本文主要讲解如何采用AT指令的模式快速实现连接百度云平台,将设备接入物联网,其他云平台相差也不大,亦可作为参考。

2. 芯片介绍及资料说明

本文采用的芯片是 ESP32-WROOM-32UE,基于 ESP32-DevKitC 开发板。

关于芯片选型可以参考:https://products.espressif.com/#/product-selector?language=zh&names=

芯片资料可以参考:https://www.espressif.com.cn/zh-hans/support/documents/technical-documents

ESP32-DevKitC开发板资料:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/hw-reference/esp32/get-started-devkitc.html

关于ESP32-DevKitC开发板,最重要的是这张图:(注意:根据esp32-wroom-32e_esp32-wroom-32ue_datasheet_cn.pdf 手册上说明,最新的ESP32-WROOM-32UE芯片D0 D1 D2 D3 CMD SCK 引脚实际上是没有接出来的)ESP32-DevKitC 管脚布局(点击放大)

ESP32 IDF开发指南参考:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html#id2

ESP32 AT指令开发指南参考:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/What_is_ESP-AT.html

综上,可以看出其实ESP32在文档这块的资料做的还是十分充分的,这也是国内各大芯片厂商所值得学习的一个方面。

3. 连接云平台

3.1 下载AT固件

  1. 下载烧录软件:(Flash下载工具 Windows)https://www.espressif.com.cn/zh-hans/support/download/other-tools

  2. 下载AT固件包:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Binary_Lists/ESP32_AT_binaries.html

  3. 硬件连接:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Hardware_connection.html

    • 由于我们这里采用是 ESP32-WROOM-32UE,因此参考 ESP32-WROOM 系列硬件连接ESP32-WROVER 系列硬件连接示意图
    • 注意下载串口和AT指令控制串口为不同的串口
  4. 下载指导说明:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Downloading_guide.html#at
    在这里插入图片描述

3.2 AT指令测试

采用AT指令的串口进行AT指令测试,注意AT指令的串口与下载所使用的串口不一致

  • 发送:

    AT

  • 回复:

    OK

说明测试OK,AT固件烧录成功,发送的时候注意勾选**“发送新行”**,esp32通过检测 \r\n 作为指令结束

在这里插入图片描述

3.3 连接网络

连接网络采用SmartConfig对ESP32模组进行智能配网,当然也可以直接将 WiFi 名和 WiFi 密码发送给ESP32进行指定连接,但是在实际产品中,每个客户的网络均不一样,因此采用智能配网的模式更加通用。

WiFi指令集参考:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Command_Set/Wi-Fi_AT_Commands.html#at-cwjap-ap

SmartConfig 手机客户端(ESP-TOUCH for Android or IOS):https://www.espressif.com.cn/zh-hans/support/download/apps

SmartConfig 相关资料:https://www.espressif.com.cn/zh-hans/support/documents/technical-documents?keys=ESP-TOUCH

  1. 设置 WiFi 模式为 Station 模式,指令:

    AT+CWMODE=1

    在这里插入图片描述

  2. 开启SmartConfig进行配网(可调用 AT+CWSTOPSMART 停止 SmartConfig,然后再执行其他命令。注意,在 SmartConfig 过程中请勿执行其他命令),指令:

    AT+CWSTARTSMART

    在这里插入图片描述

  3. 手机连接对应 WiFi,打开对应的配网APK,进行配网(注意ESP32只能连接到2.4G网络上,无法连接到5G网络),连接成功之后,串口上会有连接信息确认
    在这里插入图片描述

  4. 配网完成,关闭SmartConfig

    AT+CWSTOPSMART

    在这里插入图片描述

  5. 查询WiFi连接状态和WiFi信息

    AT+CWSTATE?

    在这里插入图片描述

  6. 查询Station模式IP信息

    AT+CIPSTA?

    在这里插入图片描述

  7. 通过SNTP获取网络时间
    设置SNTP服务器

    AT+CIPSNTPCFG=1,8,“pool.ntp.org”

    获取实时时间

    AT+CIPSNTPTIME?

    在这里插入图片描述

3.4 配置云平台

  1. 登录百度云服务器平台
  2. 进入物联网核心套件IOT Core
    在这里插入图片描述
  3. 在百度云物联网核心套件创建实例,创建设备等操作,具体有关这块怎么实现,云平台均有详细的文档说明,根据对应的文档实现即可,以百度云平台为例,可以参考:https://cloud.baidu.com/doc/IoTCore/s/pk7ophcd8,创建完之后如下图所示:在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.5 配置MQTT连接云平台

3.5.1 MQTT.fx 连接云平台

  1. 首先采用 MQTT.fx 上位机软件进行对云平台进行测试,关于MQTT.fx软件的下载可以自行上网搜索在这里插入图片描述

  2. 根据云平台的数据,获取以下几个重要连接信息

    • Broker 地址
    • MQTT 用户名
    • MQTT 密码

    关于此数据的构成,每个云平台都不一样,但是每个云平台的文档说明中均有详细描述,以百度云为例,打开对应设备,查看有关信息,之后通过在线生成器生成上述关键信息,在线生产器链接地址:在线生产器在这里插入图片描述在这里插入图片描述

  3. 采用上述信息,使用MQTT.fx软件接入云平台在这里插入图片描述在这里插入图片描述

  4. 订阅主题测试
    在这里插入图片描述
    在这里插入图片描述

  5. 往主题发布消息,测试能否接收
    在这里插入图片描述在这里插入图片描述

3.5.2 ESP32 连接云平台

  1. 采用3.5.1章节同样的方式,将云端的ESP32所对应的设备,通过在线生产器 工具,计算对应的连接信息在这里插入图片描述在这里插入图片描述

  2. 设置MQTT用户属性

    AT+MQTTUSERCFG=0,1,“esp32_dev1”,“mqtt_name”,“mqtt_password”,0,0,“”

    上述指令内有关信息需要根据自己的设备信息进行修改,关于指令格式可以参考:配置 MQTT 用户属性
    在这里插入图片描述

  3. 连接 MQTT Broker

    AT+MQTTCONN=0,<“host”>,<port>,1

    上述指令内有关信息需要根据自己的设备信息进行修改,关于指令格式可以参考:连接 MQTT Broker
    在这里插入图片描述

  4. 订阅主题

    AT+MQTTSUB=<LinkID>,<topic">,<qos>

    上述指令内有关信息需要根据自己的设备信息进行修改,关于指令格式可以参考:订阅 MQTT Topi,注意这里订阅的主题需要是你在云端已经配置好的主题,否则会失败,这里我们订阅主题名为 iot/esp32_dev1/user/test
    在这里插入图片描述

  5. 往主题发送数据

    AT+MQTTPUB=<LinkID>,<“topic”>,<“data”>,<qos>,<retain>

    上述指令内有关信息需要根据自己的设备信息进行修改,关于指令格式可以参考:发布 MQTT 消息(字符串)
    在这里插入图片描述

4. 补充说明

如果需要完成多个设备之间的通讯,多个设备可以订阅相同的主题,当然这些设备需要在一个实例下面,我们可以自己创建一个主题,由于我们的上位机 Mqtt.fx 和ESP32两个云端的设备都有这个主题,因此可以通过此主题实现上位机 Mqtt.fx 和ESP32的通讯,当然还可以使用规则引擎通过云端完成数据的转发等处理,以及在上述中我们往iot/esp32_dev1/user/test 主题发布一条消息,结果收到了两条消息,这都是于云平台有一定关系的,不同的云平台大体上相差不多,但是细节上有些许差异,大家可以通过查阅对应的平台文档进行查看,此外,遇到问题,还可以通过提交工单的方式,后台会有技术人员进行解决。

以上便是关于如何使用ESP32 AT指令的方式如何接入云平台了,希望本文章能真正帮助到有需要的人,在此过程中你可能遇到各种奇怪的问题,发挥你的主观能动性,通过各种方法总能找到解决方案,加油!

创作不易,转发请注明出处,点赞收藏+关注,找我不迷路!

猜你喜欢

转载自blog.csdn.net/qq_43332314/article/details/127040499