ESP32是乐鑫公司的一款 WiFi+蓝牙双模组,通过使用ESP32可以轻松快速的将设备接入物联网云平台。
ESP32模组支持 IDF 开发和 AT 指令开发两种方式。
IDF开发,也即直接片上编程进行二次开发,这种方式开发和普通的MCU开发十分相似,底层基于FreeRTOS实时操作系统+LwIP协议栈;
AT指令开发,这种方式开发更加简单,官方提供了一个AT指令固件,将此固件烧录在ESP32中,即可通过串口控制ESP32完成一系列的配网联网功能,不用管内部细节如何实现。
本文主要讲解如何采用AT指令的模式快速实现连接百度云平台,将设备接入物联网,其他云平台相差也不大,亦可作为参考。
本文采用的芯片是 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 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在文档这块的资料做的还是十分充分的,这也是国内各大芯片厂商所值得学习的一个方面。
下载烧录软件:(Flash下载工具 Windows)https://www.espressif.com.cn/zh-hans/support/download/other-tools
下载AT固件包:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Binary_Lists/ESP32_AT_binaries.html
硬件连接:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Hardware_connection.html
下载指导说明:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Downloading_guide.html#at
采用AT指令的串口进行AT指令测试,注意AT指令的串口与下载所使用的串口不一致
发送:
AT
回复:
OK
说明测试OK,AT固件烧录成功,发送的时候注意勾选**“发送新行”**,esp32通过检测 \r\n
作为指令结束
连接网络采用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
设置 WiFi 模式为 Station 模式,指令:
AT+CWMODE=1
开启SmartConfig进行配网(可调用 AT+CWSTOPSMART 停止 SmartConfig,然后再执行其他命令。注意,在 SmartConfig 过程中请勿执行其他命令),指令:
AT+CWSTARTSMART
手机连接对应 WiFi,打开对应的配网APK,进行配网(注意ESP32只能连接到2.4G网络上,无法连接到5G网络),连接成功之后,串口上会有连接信息确认
配网完成,关闭SmartConfig
AT+CWSTOPSMART
查询WiFi连接状态和WiFi信息
AT+CWSTATE?
查询Station模式IP信息
AT+CIPSTA?
通过SNTP获取网络时间
设置SNTP服务器
AT+CIPSNTPCFG=1,8,“pool.ntp.org”
获取实时时间
AT+CIPSNTPTIME?
根据云平台的数据,获取以下几个重要连接信息
关于此数据的构成,每个云平台都不一样,但是每个云平台的文档说明中均有详细描述,以百度云为例,打开对应设备,查看有关信息,之后通过在线生成器生成上述关键信息,在线生产器链接地址:在线生产器
设置MQTT用户属性
AT+MQTTUSERCFG=0,1,“esp32_dev1”,“mqtt_name”,“mqtt_password”,0,0,“”
连接 MQTT Broker
AT+MQTTCONN=0,<“host”>,
,1
订阅主题
AT+MQTTSUB=
, ,
上述指令内有关信息需要根据自己的设备信息进行修改,关于指令格式可以参考:订阅 MQTT Topi,注意这里订阅的主题需要是你在云端已经配置好的主题,否则会失败,这里我们订阅主题名为 iot/esp32_dev1/user/test
往主题发送数据
AT+MQTTPUB=
,<“topic”>,<“data”>, ,
如果需要完成多个设备之间的通讯,多个设备可以订阅相同的主题,当然这些设备需要在一个实例下面,我们可以自己创建一个主题,由于我们的上位机 Mqtt.fx 和ESP32两个云端的设备都有这个主题,因此可以通过此主题实现上位机 Mqtt.fx 和ESP32的通讯,当然还可以使用规则引擎通过云端完成数据的转发等处理,以及在上述中我们往iot/esp32_dev1/user/test
主题发布一条消息,结果收到了两条消息,这都是于云平台有一定关系的,不同的云平台大体上相差不多,但是细节上有些许差异,大家可以通过查阅对应的平台文档进行查看,此外,遇到问题,还可以通过提交工单的方式,后台会有技术人员进行解决。
以上便是关于如何使用ESP32 AT指令的方式如何接入云平台了,希望本文章能真正帮助到有需要的人,在此过程中你可能遇到各种奇怪的问题,发挥你的主观能动性,通过各种方法总能找到解决方案,加油!
创作不易,转发请注明出处,点赞收藏+关注,找我不迷路!