STM32_ESP8266 连接阿里云 操作图解

一、烧录MQTT固件

        ESP8266出厂时,默认是:AT固件。连接阿里云需要:MQTT固件。

        因此,我们需要给8266重新烧录 MQTT固件。

        针对“魔女开发板,ESP8266模块烧录MQTT固件,图解教程如下:

        ESP8266 烧录 MQTT固件-CSDN博客


二、接线说明

        "魔女开发板"系列,板上已带ESP8266模块,其TX、RT引脚,已引出到右边排针顶部。

        我们只要把跳线帽,插到2、3行之间,就能使用8266与开发板的串口相连接。

        供电引脚已在PCB设计时预先布好了线,无需理会、接线。

        款式不同,大同小异,注意一下丝印上所使用的串口引脚即可,背面也有丝印说明串口的使用。


三、阿里云 新建产品

1、注册阿里云

        阿里云网页:阿里云-计算,为了无法计算的价值

        使用手机号,注册、认证,并登录。

2、登录后,进入“控制台”

        右上角。

3、点击“橙色选择按钮”,进入产品目录

        左上角。

4、找到“物联网平台”

        第一次使用时,会显示很多种类的服务。

        我们直接搜索:物联网平台。

        当有使用记录后,最近的访问记录会显示在第一行,方便后续操作。

5、选择“公共实例”

  • 公共实例,是免费的,使用限制:同时在线设备数<=50,通信TPS<=5条/秒,等等。
  • 虽然是免费的,但对于服务试用、方案初期调试,妥妥的足够了。
  • 若业务需要更大资源,公共实例的“产品”可升级到企业版实例,按需包年包月等方式计费。

6、创建产品

        设备管理>产品>创建产品

        很多人不理解“产品”、“设备”的概念,确实无法三言两语解释。

7、产品创建的过程和参数

        为了更多人理解,我们本篇将使用DHT11的温、湿度进行数据上报、订阅进行示例。

        在名称框中,输入:DHT11,也可以是其它名称,如: 车间1的温湿度控制。

        支持中文,可以按自己喜欢而设定。

8、查看新建的产品

        新建产品后,我们再次点击“产品”,就能进入到产品列表,在这里,发现我们新建的“DHT11", 已在列表中。

        点击其右侧的"查看", 进入详细页面。

9、添加产品功能

        在上一步进入"查看"页面后,这一步我们开始在其中添加想要的”功能",简单理解为数据模板。

10、添加定义功能

        记得:“添加自定义功能”。

11、添加“温度”功能

        我们将给“DHT11"这个产品,添加两个功能,下面是"温度”功能的参数设置。

        操作提示:在功能名称框中,输入“温度”后,会弹出模板提示,我们可以选择其中相近需求的,它将自动填充相关参数,然后,我们可以再按需求稍作修改。

        标识符,我们取:Temp,  既简短,又便于理解。

12、继续添加“湿度”功能

        "湿度"功能,和刚才的“温度”, 参数相近。

        标识符我们这里取: Humi。同上,是为了简短和方便理解。

13、发布上线

        现在,我们的产品“DHT11", 有两个功能、属性了。

        温度,标识符:Temp,类型:float

        湿度,标识符,Humi,类型:float

        最后,点击左下角的”发布上线“,刚才的编辑,才能生效。

        发布过程中,弹出的提示窗口。


四、添加设备

1、添加新的设备

        这里的"设备",可以简单理解为,用于管理连接的设备,及设备的数据。

        过程弹窗,关闭即可。

2、查看已添加的设备

        点击"设备"刷新后,可以看到我们刚才添加的设备,已在列表中。

        其中,显示为“示激活”状态,不用理会,当有设备连接成功后,会自动激活。

        我们点击“查看”,里面有最重要的信息。

3、复制设备信息

这里,是最重要的一步。

我们新建一个txt文件,或者word文件, 把下面7个信息,复制粘贴到文件中,以方便后面使用。

下面是小编复制后整理的。

特别地:

1:clientID字符串中,有两个逗号,需要在逗号前添加转义符'\',参考下图。

2:下面的复制信息,除了端口号port,其它都是字符串,如果在代码中代码,需要加双引号。


五、通过串口助手,手动发送AT指令,连接阿里云

1、准备工作

        ① 开发板,烧录一个点灯的示例,使STM32关闭了USART功能,以空出USB转TTL。

        ② 接线:跳线帽怼到第3、4行,使ESP8266的TX、RX引脚,连接到USB转TTL电路上。

        ③ USB线,怼到CMSIS DAP接口,使板载的USB转TTL连接到电脑。

        ④ 打开串口助手:115200-None-8-1, 打开串口;        

2、串口助手,发送基础配置指令。

AT                                      // AT测试指令,如果返回OK,表示与8266连接正常 
AT+RESTORE                              // 重置8266,以清除旧的配置记录
AT+CWMODE=1                             // 配置工作模式,1-STA,2-AP,3-STA+AP
AT+CIPMUX=0                             // 多连接模式,0-关,1-开
AT+CWJAP="wifi名称","wifi密码"           // 加入AP,即连接wifi
AT+CIFSR                                // 查询当前IP地址; 8266默认IP地址为
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"     // 设置时区、NPT服务器地址,用于获取网络时间
AT+CIPSNTPTIME?                         // 请求获取当前的网络时间

        上面AT指令 ,顺序逐条发送执行, 每一个指令执行成功,均可返回“OK"。

        最后一条指令 ,如果连接正常,可以返回当前的网络时间。

3、连接阿里云

AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,""  // 发送MQTT的登陆用户名和密码
AT+MQTTCLIENTID=0,"clientId"                          // 发送MQTT的ClientID, 注意,在clientID的字符串中,两个逗号前都要加一个\作转义字符
AT+MQTTCONN=0,"mqttHostUrl",1883,1                    // 设置MQTT接入地址

        连接阿里云,只需要依次发送上面这3条AT指令,简单得不行。

        指令中的端口号,固定的1883; 

        其中的4个参数,我们按自己的数据来修改:username、passwd、clientId、mqttHostUrl。

        它们在上述复制的文件中,再次在文本中按需复制,替换到指令中即可。

        也可以按这个路径查询到:阿里云>物联网平台>设备管理>设备>查看>MQTT连接参数.

        第1、2条指令,只会返回"OK",第3条指令,会有过程信息返回,注意查看结果是否成功。

        执行成功后,查看阿里云的设备列表,设备最初的状态"未激活”, 自动切换为“在线”。 

4、订阅

        当连接上阿里云后,我们就可以订阅需要的主题数据了。

        只需发送一个指令:

AT+MQTTSUB=0,"/ProductKey/DeviceName/user/get",1  // 订阅

        其中,两个参数:ProductKey、DeviceName,在我们的记录文件中,粘贴替换即可。

        执行订阅指令后,如果返回OK,  基本是顺利执行了。 

        我们点击设备列表后面的“查看”,进入 如下页面后。发现Topic列表已增加了订阅。

        它右侧的“发布消息”,用于测试,给订阅的设备,发送测试消息。

5、上报

        当我们需要上报数据时,就发送以下指令 :

AT+MQTTPUB=0,"/sys/ProductKey/DeviceName/thing/event/property/post","{params:{\"标识符\":你想要设置的数值}}",0,0

        其中,前两个参数:ProductKey、DeviceName,在我们的记录文件中,粘贴替换即可。

        后面的参数,标识符、数值,我们按之前新建产品时的属性,复制填入。如果多个属性,用逗号分隔; 如:

AT+MQTTPUB=0,"/sys/ProductKey/DeviceName/thing/event/property/post","{params:{\"Temp\":15.2\,\"Humi\":87.6}}",0,0

        执行上报指令后,如果返回OK, 基本是顺利执行了。 我们打开设备页面验证一下:

        可以看到数据的更新了!(注意,免费版本,最高5条信息/秒)

6、在线调试

        如果使用两个或多个8266, 可以方便地进行调试:所有8266设备设置订阅,其中一个设备上报更新数据,其它的设备就能收到数据。

        如果没有两个或多个8266, 我们可以使用阿里云的在线调试,如下:

        在这个页面中,点击获取,即可获取云上的数据,点击设置,即可把数据上报到云,同时,其它订阅了此主题的设备,也能收到数据。

        如下:

        至此,我们已使用串口助手,对连接阿里云、订阅、上报,都作了测试和熟悉。

        后面,我们就可以把上述的AT指令,嵌入到代码中,使用串口通信代码进行操作,使其上电后自动运行。


六、通过STM32, 编写代码,实现自动连接阿里云

1、连接阿里云

2、上报数据

3、订阅数据

4、数据解读到变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/397963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vuforia+Unity】AR01实现单张多张图片识别产生对应数字内容

1.官网注册 Home | Engine Developer Portal 2.下载插件SDK&#xff0c;导入Unity 3.官网创建数据库上传图片&#xff0c;官网处理成数据 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 下载好导入Unity&#xff01; 4.在Unity设…

在 Vue 中将 DOM 导出为图片

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 在日常的工作中&…

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数&#xff08;zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3&#xff09;&#xff0…

基于物联网智慧公厕的多功能城市智慧驿站

在现代城市发展中&#xff0c;智慧化已经成为了一个不可或缺的趋势。而多功能城市智慧驿站&#xff0c;作为智慧城市建设的一部分&#xff0c;以物联网智慧公厕为基础&#xff0c;集合了诸多功能于一身&#xff0c;成为了城市中不容忽视的存在。多功能城市智慧驿站也称为轻松的…

05 扩展组件:自定义CheckBox组件

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起&#xff1a;自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起&#xff1a;自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件&#xff1a;令人抓狂的QToolButton文本图标居中问题-CSDN博客 目…

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 111 二叉树的最小深度 Leetcode 110 平衡二叉树

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 111 二叉树的最小深度 Leetcode 110 平衡二叉树 Leetcode 104 二叉树的最大深度解法1 深度优先 递归法 后序&#xff1a;左右中解法2 广度优先&#xff1a;层序遍历 Leetcode 111 二叉树的最小深度解法1 深度…

SNAT与DNAT公私网地址转换

前言 SNAT和DNAT是两种重要的网络地址转换技术&#xff0c;它们允许内部网络中的多个主机共享单个公共IP地址&#xff0c;或者将公共IP地址映射到内部网络中的特定主机。这些技术在构建企业级网络和互联网应用程序时非常重要&#xff0c;因为它们可以帮助保护内部网络安全&…

ONLYOFFICE 8.0:引领数字化办公新纪元

目录 前言 软件安装 软件启动 软件新版本特性 个人评价 总结 前言 在当今快节奏的数字化世界中&#xff0c;高效的办公软件已成为企业竞争力的关键因素。ONLYOFFICE&#xff0c;作为全球领先的办公解决方案提供商&#xff0c;始终致力于通过技术创新来优化用户体验。如今…

阿里云的流量价格表_2024阿里云服务器流量费用表

阿里云服务器宽带按使用流量怎么收费的&#xff1f;价格为0.8元/GB&#xff0c;地域不同流量价格也不同&#xff0c;北京、杭州、上海、深圳等中国大陆地域是0.8元每GB&#xff0c;中国香港是1元/GB&#xff0c;美国流量0.5元1GB、日本流量0.6元、韩国流量0.8元&#xff0c;阿里…

linux 修改开发板网卡eth0的ip地址

win10如何新增电脑ip地址&#xff1a; https://blog.csdn.net/linxinfa/article/details/105817473 ifconfig # 可设置网络设备的状态&#xff0c;或是显示目前的设置。 命令详解&#xff1a;https://www.runoob.com/linux/linux-comm-ifconfig.html 一、临时修改 ifconfig e…

[05] computed计算属性

computed计算属性 语法&#xff1a; 声明在 computed 配置项中&#xff0c;一个计算属性对应一个函数使用起来和普通属性一样使用 {{计算属性名}} 注意 computed配置项和data配置项是同级的computed中的计算属性虽然是函数的写法&#xff0c;但它依然是属性computed中的计算…

C++:C++入门基础

创作不易&#xff0c;感谢三连 &#xff01;&#xff01; 一、什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff…

virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”

文章目录 问题现象排查解决总结 问题现象 2月7日下午四点多&#xff0c;我已经休假了&#xff0c;某县的客户运维方打来电话&#xff0c;说平台挂了&#xff0c;无法访问客户是提供的一台Windows server机器部署平台&#xff0c;是使用virtualbox工具安装的CentOS7.9虚拟机和运…

宝塔nginx配置SpringBoot服务集群代理

宝塔nginx配置SpringBoot服务集群代理 1、需求&#xff1a; 现有一个springboot服务需要部署成集群&#xff0c;通过nginx负载均衡进行访问&#xff0c;其中这个springboot服务内置了MQTT服务、HTTP服务、TCP服务。 MQTT服务开放了1889端口 HTTP服务开放了8891端口 HTTP服务开…

【嵌入式】CAN总线

1 简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线…

【Pytorch 基础教程2】10分钟掌握Tensor基础 VSCode +Pytorch配置

Pytorch 基础教程 02 Tensor PyTorch 作为Numpy的代替品&#xff0c;可以使用GPU的强大计算能力 提供最大的灵活性和告诉的深度学习研究平台 这里补充上实验环境调试&#xff1a;第一次使用VS Code可以参考&#xff1a;PyTorch&#xff08;超详细&#xff09;部署与激活 举起Py…

MySQL在OpenEuler中的安装及数据库的备份

MySQL在OpenEuler中的安装 MySQL以二进制形式进行安装 1.获取软件包 &#xff08;在进行获取时&#xff0c;检查网络是否通畅&#xff09; wget -c https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz2.创建用户组和用户 groupadd -g…

手把手教你:gitee的注册以及代码的提交(上)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 gitee的介绍 首先&#xff0c;我们得了解什么是gitee&#xff1f; gitee是一个基于Git的代码托管和研发协作平台&#xff0c;上面可以托管个人或者公…

[vscode]vue js部分结尾加分号

设置中寻找 semicolons确定在TypeScript的这个扩展中设置选项为insert

python celery使用队列

在celery的配置方法中有个参数叫task_routes&#xff0c;是用来设置不同的任务 消费不同的队列&#xff08;也就是路由&#xff09;。 格式如下&#xff1a; { ‘task name’: { ‘queue’: ‘queue name’ }}直接上代码&#xff0c;简单明了&#xff0c;目录格式如下&#x…