ESP8266-01s入门:上报和下发数据控制单片机 AT指令讲解和上云 烧录AT固件与OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信单片机前置任务)

这篇具有很好参考价值的文章主要介绍了ESP8266-01s入门:上报和下发数据控制单片机 AT指令讲解和上云 烧录AT固件与OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信单片机前置任务)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

章节

本项目教程总共分为四节
1.创建OneNET新版MQTT设备:为微信小程序与单片机通信打基础(微信小程序通信单片机前置任务)

2.(当前文章)ESP8266-01s入门:烧录AT固件与OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信单片机前置任务)

3.物联网实践教程:微信小程序结合OneNET平台MQTT实现51/STM32单片机智能控制【单片机代码篇】

4.物联网实践教程(终章):微信小程序结合OneNET平台MQTT实现51/STM32单片机智能控制【微信小程序篇】

前言


欢迎跟随本教程,我们将一步一步地构建起一个智慧型项目,使您的单片机设备能够通过网络与世界互联。整个项目可以概括为以下四个核心阶段,每一个阶段都有一篇文章去详细说明

  1. 搭建物联网桥梁:首先,我们将在OneNET平台上注册并创建您的MQTT设备。这个过程为我们打下了互联网通信的基础。

  2. 引擎启动【此篇文章】:接下来,我们需要为我们的ESP8266模块烧录AT固件,确保它具备连接到MQTT服务器的能力。

  3. 编织数据网络:有了硬件基础后,是时候通过精心编写的代码让单片机通过ESP8266模块与MQTT服务器进行沟通。

  4. 微信小程序的桥梁:最终,我们将打造一个微信小程序,它不仅可以实时展示单片机传递的数据,还可以发送指令控制单片机。

透过这个分阶段的布局,即使是初学者也能跟随步骤轻松完成整个设定。让我们开始这段富有成就感的旅程吧!
最终成品演示:

ESP8266视频演示


欢迎阅读本教程,在这里我们将解锁物联网世界的大门。随着物联网技术的飞速发展,ESP8266-01s作为一款性价比极高的WiFi模块,成为了连接普通硬件设备至互联网的首选。如果您想在物联网项目中实现设备间的智能通信,那么您来对地方了。

本教程将逐步引导您了解如何为ESP8266-01s烧录AT固件,并通过简单的AT指令实现与OneNET云平台的MQTT设备连接。这是学习物联网应用开发不可或缺的基础技能虽然这篇文章篇幅较长,但它为您提供的细节将是非常宝贵的,确保您能够按步就班、稳扎稳打地完成设置。文章被划分为多个模块化的章节,您可以直接跳转到您最关心的部分。如果您有任何疑问、建议或反馈,我非常期待与您讨论。

不管您是物联网爱好者,还是嵌入式系统开发的初学者,本教程都将为您提供一条清晰的路径,让您能够轻松搭建智能物联网解决方案的蓝图。

在接下来的内容中,我们将从硬件接线开始,逐步过渡到固件烧录,最后完成ESP8266-01s与OneNET平台的MQTT通信测试让我们一起动手,开启这趟学习之旅。

项目所需材料清单:

在开始我们的项目之前,请确保您拥有以下所需硬件和软件:

硬件:

  • 51单片机STC89C52RC / 32单片机
  • ESP8266-01s WIFI模块

软件及服务:

  • OneNET新版MQTT服务
  • ESP8266固件烧入软件
  • STC-ISP单片机烧录软件
  • ESP8266-01s固件
  • XCOM串口助手

所有相关材料和软件已经在压缩包中准备好,您可以在文章底部找到下载链接。

AT指令集介绍

AT指令是一种文本序列,用于控制调制解调器、手机等通讯设备。“AT"代表"Attention”,其后跟随的文字指定要执行的命令。在ESP8266等模块中,AT指令用于设定模块参数、控制网络连接和其他功能。

以下是一些常用的AT指令示例:

  • AT:检测通信模块与控制端之间的连接。
  • AT+RST:重置模块。
  • AT+CWMODE:设置Wi-Fi工作模式(例如Station模式、AP模式)。
  • AT+CWJAP:连接Wi-Fi网络。

AT指令集的优势在于其简单性,使得开发者能够不必深入微控制器的复杂编程,就能够快速实现无线通信的基本功能。

MQTT设备介绍

MQTT(Message Queuing Telemetry Transport) 是一个轻量级的、基于发布/订阅模型的消息协议,专为低带宽和不稳定网络环境设计,广泛用于物联网设备之间的通信。

在MQTT中,设备可以作为 发布者 发送消息,或者作为 订阅者 接收特定主题(Topic)的消息。这个模型允许多个设备共享特定的数据点并响应相应的变化。

MQTT设备使用这一协议,通过轻量级的消息交换,实现设备间的有效通讯和数据传输。

ESP8266-01s介绍

ESP8266-01s 是一个自带TCP/IP协议栈的Wi-Fi模块,使得任何微控制器都可以利用它访问Wi-Fi网络。它广泛被用于物联网项目,因其小巧的尺寸、稳定的性能和极具性价比的特性。

通过简单的串口通信,使用 AT指令 即可控制 ESP8266-01s 进行网络操作,如连接Wi-Fi、建立TCP连接、发送数据等。

升级至最新的AT固件后,ESP8266-01s还支持 MQTT 协议,可作为MQTT客户端直接连接到MQTT服务器,实现物联网设备和云服务之间的消息交换。

固件烧录介绍

烧录最新的MQTT AT固件到ESP8266-01s模块的原因是,这一固件版本提供了对MQTT协议的原生支持,这使得模块能够直接作为MQTT客户端进行操作。以下是烧录MQTT AT固件的几个关键原因:

  • 直接支持MQTT:传统的AT固件可能不支持MQTT协议或者支持的并不完整。最新的MQTT AT固件提供了专门的AT指令来设置和控制MQTT连接、发布和接受消息。

  • 简化开发流程:对于不熟悉底层TCP/IP和MQTT协议堆栈的开发者来说,通过AT指令操作MQTT可以极大简化开发过程。开发者可以避免编写庞大的网络代码,而是通过简单的AT指令实现复杂的网络通信。

  • 兼容性:使用标准的MQTT AT指令集可以确保设备于多种MQTT代理或者服务(如OneNET云平台)的兼容性,减少了调试和配置的难度。

  • 低功耗实现:考虑到物联网设备经常对电源要求很高,通过MQTT AT固件使得ESP8266仅在必要时连接网络,可以有效降低能耗。

  • 功能性与灵活性:烧录的MQTT AT固件不仅支持基本的网络连接,还允许用户配置MQTT特有的功能,如Will Message(遗嘱消息)、Clean Session(清除会话)、QoS(服务质量)等。

  • 易于集成和扩展:拥有了MQTT支持的ESP8266可以更加容易集成进复杂的系统中,如与微信小程序等第三方服务的集成和交互。

因此,烧录MQTT AT固件是将ESP8266-01s提升至一个新层次的关键步骤,不仅使其功能更强大,同时也让物联网设备的开发变得更加有效和灵活。

开始烧录固件

连线

如果是ESP PROG V1.0则如图连接

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件
如果是USB转TTL

USB-TTL ESP8266-01s
VCC 3V3
3V3 EN
TXD RXD
RXD TXD
GND GND
GND IO0

如果GND不够可以用弄个面包板或者其他的工具,来扩展GND接口

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

固件和软件下载

烧录WiFi固件工具:ESP_DOWNLOAD_TOOL
⑦、MQTT透传AT固件(固件号:1471)

下载好后,根据图示教程来:
打开烧录软件:
esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

下载完成后会显示“完成

测试AT指令

连线

如果是ESP PROG V1.0则RXD接RX,TXD接TX

转接口 ESP8266-01s
VCC 3V3
GND GND
RXD TX
TXD RX

发送AT指令

AT指令的解释及其用途

  1. AT

    • 意义:这个指令是用来测试串口通信是否畅通的最基本指令。发送AT应该返回OK,代表通信没有问题。
    • 作用:验证ESP8266-01s模块已经正确连接并且准备接收更多的AT指令。
  2. AT+CWMODE=1

    • 意义:该指令用于设置ESP8266的Wi-Fi工作模式。CWMODE=1将模块设置为Station模式(STA模式),这意味着模块可以连到一个已存在的Wi-Fi网络。
    • 作用:配置ESP8266作为Wi-Fi客户端,让其可以连接到无线路由器。
  3. AT+CWDHCP=1,1

    • 意义:此指令用于设置DHCP(动态主机配置协议)。CWDHCP=1,1的设置使ESP8266在Station模式下启用DHCP客户端,这样它可以自动从网络路由器获取IP地址。
    • 作用:确保ESP8266在连接到Wi-Fi网络时能够自动获得IP地址。
  4. AT+CWJAP="ESP","123456789"

    • 意义:此指令用于连接到一个Wi-Fi热点。CWJAP后面的参数是网络SSID和密码。“ESP”是Wi-Fi的名称,“123456789”是连接该Wi-Fi网络的密码。
    • 作用:使ESP8266连接到指定的Wi-Fi热点。
  5. AT+UART=9600,8,1,0,0

    • 意义:这个指令用于设置ESP8266的串口通信参数。UART=9600,8,1,0,0设置串口通信的波特率为9600bps,数据位为8位,停止位为1位,无校验位,无流控。
    • 作用:配置ESP8266的串口通信方式,确保ESP8266与连接的设备(如单片机或电脑)有着相同的通信参数,以便正确交换数据。

每个AT指令都是为了设置ESP8266模块的特定参数或执行特定的动作。正确使用这些AT指令,可以使ESP8266-01s成功地连接到网络,并进行进一步的操作,如数据传输或与MQTT服务器的通信。

打开XCOM软件(其他的串口助手软件也可以)(资源包下载)

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

下一步
esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

MQTT通信的发布和订阅简单的理解

通俗易懂地讲,MQTT就像是一个邮局,而主题(Topic)好比是邮局里的个人邮箱。

发布(Publish):
想象你有一些信息(如:今天天气怎样)想要告诉别人,你就把这个信息放进邮局的一个特定的邮箱(主题)里。

订阅(Subscribe):
如果有人想知道这个特定的信息,他们就可以告诉邮局,他们对这个邮箱(主题)感兴趣。这样,每当有新信息放入这个邮箱时,邮局就会把它送给那些订阅了这个邮箱的人。

举个例子:

  • 如果你有一个智能天气站,它可以定期将天气更新(发布)放在“weather/today”这个邮箱(主题)里。
  • 然后,任何对今天天气感兴趣的人们(如智能手机APP)都可以向邮局(MQTT服务器)表明他们对这个“weather/today”邮箱(主题)感兴趣(订阅)。
  • 一旦智能天气站更新了今天的天气信息,所有订阅了这个邮箱的人都会收到这个消息。

这样的系统特别好的地方是,发送消息的人不需要知道谁在听,而听消息的人也不用知道谁在说。这就是MQTT在物联网中非常受欢迎的原因,它可以连接很多设备,让它们互相发送接收消息。

书接上回

对于上一篇文章,我们已经保存了OneNET MQTT的设备名称、产品ID及生成的Token

先解释一下接下来要用的AT指令的解释及其用途
下面是使用的产品id和设备名称还有Token都是我上一篇文章创建的,如果你们连接失败可以尝试发送我的

  1. AT+MQTTUSERCFG=0,1,"test","05Dy8U26rg","version=2018-10-31&res=products%2F05Dy8U26rg%2Fdevices%2Ftest&et=2017757596000&method=md5&sign=QdBLLnRoBevwqKx7TUjQdQ%3D%3D",0,0,""

    • 意义:这个指令用于配置MQTT客户端的用户参数。参数0指的是客户端ID,1为MQTT版本,"test"是设备名称,"05Dy8U26rg"为产品ID,后面一长串是Token,最后的两个0表示是否清理会话和是否启用遗嘱消息。
    • 作用:设置了客户端的认证信息和其他MQTT连接选项,这对于与MQTT代理进行通信是必要的。
  2. AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1

    • 意义:此指令用于发起到MQTT服务器的连接。参数0是客户端ID,"mqtts.heclouds.com"是MQTT服务器地址,1883是服务器端口号,最后的1表示启用清理会话。
    • 作用:根据提供的服务器详情和客户端配置信息,指令会尝试建立MQTT连接。
  3. AT+MQTTSUB=0,"$sys/05Dy8U26rg/test/thing/property/post/reply",0

    • 意义:指令用于订阅MQTT主题。0是客户端ID,"$sys/05Dy8U26rg/test/thing/property/post/reply"是MQTT主题,最后的0是请求的服务质量(QoS)等级。
    • 作用:向MQTT服务器表明客户端想要接收与该主题相关的消息。
  4. AT+MQTTPUB=0,"$sys/05Dy8U26rg/test/thing/property/post","{\"id\":\"123\"\,\"params\":{\"adcx\":{\"value\":15.7\}\,\"temp\":{\"value\":23.6\}}}",0,0

    • 意义:通过此指令将消息发布到MQTT主题。0是客户端ID,"$sys/05Dy8U26rg/test/thing/property/post"是要发布消息的主题。紧接着的是要发布的消息内容,0,0分别表示消息的QoS等级和是否保留消息。
    • 作用:发送一条消息到MQTT服务器,服务器则将该消息转发给订阅了对应主题的所有客户端。

5.AT+MQTTSUB=0,"$sys/05Dy8U26rg/test/thing/property/set",0

  • 意义:该指令用于指示ESP8266模块订阅一个指定的MQTT主题,"$sys/05Dy8U26rg/test/thing/property/set"
  • 作用:使ESP8266模块能够监听并接收到任何发送到这个主题的消息,通常这些消息是针对设备设置或控制指令。

开始用AT指令连接MQTT

记得将下面的内容更改自己的信息

串口发送的内容 串口接收的内容
1.AT+UART=9600,8,1,0,0 OK
2. AT OK
3.AT+RST OK
4. AT+CWMODE=1 OK
5. AT+CWDHCP=1,1 OK
6. AT+CWJAP="WIFI名称","WIFI密码" OK
7.AT+MQTTUSERCFG=0,1,"设备名称","产品id","你的Token",0,0,"" OK
8.AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1 OK
9.AT+MQTTSUB=0,"$sys/产品id/设备名称/thing/property/post/reply",0 OK
10.AT+MQTTSUB=0,"$sys/产品id/设备名称/thing/property/set",0 OK
11.AT+MQTTPUB=0,"$sys/产品id/设备名称/thing/property/post","{\"id\":\"123\"\,\"params\":{\"属性名\":{\"value\":数值\}\,\"属性名\":{\"value\":数值\}}}",0,0 OK

第11步骤可以查看官方文档:官方演示

发送则如图所示

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

数据下发:

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

通过串口发送数据后可以在OneNET设备查看是否有数据

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

如果看到数据成功同步显示了 祝贺您!您已经成功完成了使用AT指令连接单片机和ESP8266,并实现了数据的上传下载。现在,您不仅掌握了基本的物联网通信技能,而且为后续深入学习打下了坚实的基础。接下来,当您涉足程序开发和微信小程序相关内容,您会发现之前种下的智慧之种已经开始生根发芽,因为有了这次经验的积累,接下来的学习旅程肯定会更加顺利。继续加油,物联网的世界等待您去探索!

附加内容 MQTT.fx 1.7.1使用教程

下载MQTT fx 1.7.1免费下载 如果网页打开慢,资源包里也有该资源

点击设置

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

配置密码等内容

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

订阅和发布要怎么填写可以参考官方手册:通信手册
上方也解释了订阅和发布大概是什么意思

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件
esp8266-01s烧录mqtt固件,物联网,微信小程序,单片机,小程序,嵌入式硬件

到这一步去查看OneNET属性会同步更新

资源包下载

资源包下载

https://pan.baidu.com/s/15iw7kzn4GMUKP3g8809PUA?pwd=jq91文章来源地址https://www.toymoban.com/news/detail-766683.html

到了这里,关于ESP8266-01s入门:上报和下发数据控制单片机 AT指令讲解和上云 烧录AT固件与OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信单片机前置任务)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Arduino D1开发板 ESP8266 ESP01-S Wifi 模块 手机控制继电器 学习手记

    因为以前学过一次,但是不深入。所以这次重学,记录一下。 这次用了最新的东东,畅快无极限! 官网在这里:https://arduino-esp8266.readthedocs.io/en/3.1.1/index.html 在ArduinoIDE里下载开发板esp8266是一件很痛苦的事情,虽然成功过,但是后来找到最好的方法还是下载中国的离线版,

    2024年02月11日
    浏览(48)
  • ESP8266连接阿里云通过MQTT上报状态属性

    1、新建一个产品 2、添加物模型,物模型用于显示上报的消息的 编辑草稿,也就是添加属性  可以选择标准的和自定义的,我这里选择自定义的 设置物模型功能 我这里添加了两个,完成后发布上线 3、到设备中添加设备,用于ESP8266连接  添加成功后,可以看到  我这里多添

    2023年04月09日
    浏览(39)
  • 毕业设计——基于STM32的智能家具控制系统(ESP-01S(8266)、手机app远程控制、远程显示温度)

    智能家具系统分为两个不同版本系列: ①系列一:手机app远程控制、远程检测温湿度显示在app,(云平台)    ---------本文章 ②系列二:语音识别控制                https://blog.csdn.net/m0_59113542/article/details/123742383 步进电机及相关驱动 步进电机28BYJ48 uln2003驱动板器4相5线

    2023年04月09日
    浏览(71)
  • 【ESP8266】使用MQTT协议 连接华为云iotDA,实现设备属性上报

    相关资料:https://github.com/CQUPTLei/ESP8266 往期文章:【ESP8266】基础AT指令和常用WIF指令 【MQTT 5.0】协议 ——发布订阅模式、Qos、keepalive、连接认证、消息结构 华为云物联网平台 (IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上

    2024年02月09日
    浏览(39)
  • ESP8266-01S+MQTT+阿里云数据传输

    ESP8266-01S模块一个 USB转TTL一个 软件资料在文章最后 打开百度云盘资料里的文件夹中的\\\"ESP8266_固件烧录\\\"文件夹 打开这个文件夹 打开该文件夹中的exe文件即可,然后打开ESP8266 DownloadTool 3.点击图中箭头所指按钮,选择文件夹中的MQTT固件 4.硬件接线 ESP8266的TX-----TTL板的RX ESP8266的

    2023年04月15日
    浏览(50)
  • 使用ESP8266-01s连接阿里云并发送数据

    一.硬件选型 esp8266-01s一个以及相应固件烧录器一个(小白的话在这里推荐直接在安信可的淘宝官网买已经含有mqtt固件的模组,我之前买了一个不知道什么问题固件完全烧录不进去),烧录器用来直接将esp8266直接插到电脑的USB接口上进行串口通信。 二.阿里云平台配置 1.注册

    2023年04月20日
    浏览(37)
  • stm32+AT指令+ESP8266接入华为云物联网平台并完成属性上报与命令响应

    (示例:stm32f103c8t6+esp 01s 串口A T 指令模式) 流程简介:       本期教程使用的是stm32+AT指令控制esp01s接入华为云联网平台完成数据上报与命令处理,在先前如果使用Arduino开发过后的esp8266可能已经无法使用AT指令,或者出厂固件不支持全部的MQTT功能,这里我们首先对esp8266进

    2024年02月02日
    浏览(42)
  • 阿里云 MQTT协议 AT指令 ESP8266-01S 数据上下传输

    printf重定义资料来自江科大自动化协---stm32入门教程---串口发送+接收一节视频讲解 细节请看b站这个up主的视频阿里云+ESP8266+STM32远程点灯(流程讲解) 阿里云平台配置细节请看10分钟玩转阿里云物联网平台设备接入、管理、运维 这里只记录一下大概内容,方便日后调试。 1、

    2023年04月26日
    浏览(54)
  • modbus采集和 mqtt上报相结合,通过荔枝派(F1c100s芯片模块)实现数据采集连接阿里云物联网平台进行数据上报和下发功能。

    通过荔枝派(F1c100s芯片模块)搭载SDIO-wifi模块,写入了主函数程序。根据读取modbus模拟器的数据,反馈到阿里云物联网平台当中。图中左侧的阿里云物联网平台所显示的温度为66摄氏度,与modbus模拟器的数据是一样的,图片右侧是荔枝派(F1c100s芯片模块)的编程软件X-shell的

    2024年02月15日
    浏览(52)
  • 【ESP8266-01S】

    总结一下,最近使用ESP8266-01S,遇到的各种问题,以及解决方法。 1. 上电后一直发送信息 解决办法:不用怀疑,芯片里没刷固件,烧录AT固件就可以使用AT指令了,芯片也不会一直发送信息了。 2. 发送AT指令,芯片无响应 解决办法:同上,烧录AT固件就行了。也可能是接线错

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包