STM32 + ESP8266,连接阿里云 上报/订阅数据

news2024/11/24 2:38:20

(文章正在编辑中,一点点地截图操作过程,估计要拖拉两三天)


一、烧录MQTT固件

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

1、独立EPS8266模块的烧录方法

2、魔女开发板,板载ESP8266的烧录方法


二、接线


三、阿里云 新建产品

1、注册阿里云

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

        注册、认证,并登录,具体过程不述。

        建议使用手机号进行注册。

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、准备工作

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"。

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

2、连接阿里云

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连接参数.

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

2、订阅

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

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

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

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

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

3、上报

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条信息/秒)

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

1、连接阿里云

2、上报数据

3、订阅数据

4、数据解读到变量

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战蓝桥杯---组合数学基础1

让我们来几道高中的组合题吧&#xff1a; 1.我们一定有n个向下&#xff0c;为 2.我们挑最大的两个&#xff0c;条件是他们奇偶性相同&#xff0c;为2*A10,2; 3.用捆绑法即可。 4.我们用隔板法&#xff0c;为 5.问题等价于23个相同的球放到3个盒子里&#xff0c;每个盒子至少…

【北邮鲁鹏老师计算机视觉课程笔记】04 fitting 拟合

【北邮鲁鹏老师计算机视觉课程笔记】04 fitting 拟合 1 拟合的任务 如何从边缘找出真正的线&#xff1f; 存在问题 ①噪声 ②外点、离群点 ③缺失数据 2 最小二乘 存在的问题 3 全最小二乘 度量的是点到直线的距离而不是点在y方向到直线的距离 提示&#xff1a;点到直线的…

ChatGPT偷懒、变慢的罪魁祸首竟然是它?!系统提示词塞满垃圾!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

【Java程序设计】【C00263】基于Springboot的分布式架构网上商城(有论文)

基于Springboot的分布式架构网上商城&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的网上商城 本系统分为管理员功能模块以及系统功能模块。 系统功能模块&#xff1a;在系统首页可以查看首首页、商品信息、购物…

【Git】移除Git中的文件

有的时候需要移除或者更新 Git 中的文件&#xff0c;我们无法直接在远程仓库中移除&#xff0c;移除或者更新操作需要在本地端实现。 1、移除被跟踪文件 当某个文件被添加到暂存区或者本地仓库&#xff0c;此时会被标记为“跟踪状态”&#xff0c;此时 Git 就会代为管理这个文…

肿瘤微环境异质性对治疗反应的影响(综述)

Influence of tumour micro-environment heterogeneity on therapeutic response | Nature 肿瘤的形成涉及肿瘤细胞与细胞外基质、肿瘤血管和免疫细胞的共同进化。肿瘤的成功生长和最终转移并不完全取决于肿瘤细胞的基因改变&#xff0c;还取决于这种突变在特定环境中带来的适…

通过QT制作一个模仿微信主界面的界面(不要求实现具体通信功能)

main.cpp #include "widget.h" #include "second.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();//实例化第二个界面Second s;QObject::connect(&w, &Widget::my_jump, &…

STM32F1 引脚重映射功能

STM32 端口引脚重映射 文章目录 STM32 端口引脚重映射前言1、查阅芯片数据手册1.1 串口引脚重映射描述 2、代码部分2.1 核心代码部分 3、实验现象4、总结 前言 在写程序时遇到想要的端口功能&#xff0c;而这个引脚又被其它的功能占用了无法删除掉或直接使用&#xff0c;这种情…

Netty应用(三) 之 NIO开发使用 网络编程 多路复用

目录 重要&#xff1a;logback日志的引入以及整合步骤 5.NIO的开发使用 5.1 文件操作 5.1.1 读取文件内容 5.1.2 写入文件内容 5.1.3 文件的复制 5.2 网络编程 5.2.1 accept&#xff0c;read阻塞的NIO编程 5.2.2 把accept&#xff0c;read设置成非阻塞的NIO编程 5.2.3…

基础IO[一]

文件文件内容属性 文件在硬盘上放着&#xff0c;我们的流程->写代码->编译->运行->访问文件。那么本质上是谁在访问&#xff1f; 是进程在访问。进程访问文件是需要通过接口来访问。 文件在磁盘上放着&#xff0c;要向硬件写入文件&#xff0c;谁有权限呢?必须…

腾讯云4核8G服务器多少钱?2024精准报价

腾讯云4核8G服务器S5和轻量应用服务器优惠价格表&#xff0c;轻量应用服务器和CVM云服务器均有活动&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;标准型SA2服务器1444.8元一年&#xff0c;轻量应用服务器4核8G12M带宽一…

MySQL-----DCL基础操作

▶ DCL简介 DCL英文全称是Data ControlLanguage(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 DCL--管理用户 ▶ 查询用户 use mysql; select * from user; ▶ 创建用户 ▶ 语法 create user 用户名主机名 identified by 密码 设置为在任意主机上访问…

在虚拟机上完成Centos安装

Linux学习和使用 前言如何安装Centos初始化操作 使用VMware备份操作系统快照克隆 内容总结参考链接 本人介绍:2023年全国大学生数学建模竞赛国家二等奖,2022年蓝桥杯省二等奖,这里是一个和你一起不断努力,不断前进的程序猿一枚 前言 简单介绍一下本片文章将会讲到的内容:本章节…

通过容器化释放云的力量

NCSC (英国国家网络安全中心) 经常被问到的一个问题是是否在云中使用容器。这是一个简单的问题&#xff0c;但答案非常微妙&#xff0c;因为容器化的使用方式有很多种&#xff0c;其中一些方法比其他方法效果更好。 今天&#xff0c;我们发布了有关使用容器化的安全指南&#…

寒假作业

手写盗版微信登入界面 #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(421,575);this->setFixedSize(421,575);th…

线性表的链式存储结构

顺序存储结构不足的解决方法 顺序存储结构有缺点&#xff0c;最大的缺点是插入删除时需要移动大量元素&#xff0c;会导致时间效率下降。 线性表链式存储结构的定义 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素&#xff0c;这些存储单元可以是连…

Impala-架构与设计

架构与设计 一、背景和起源二、框架概述1.设计特点2.框架优点3.框架限制 三、架构图1.Impala Daemon2.Statestore3.Catalog 四、Impala查询流程1.发起查询2.生成执行计划3.分配任务4.交换中间数据5.汇集结果6.返回结果 总结参考链接 一、背景和起源 现有的大数据查询分析工具H…

volatile的实现

字节码层面 ACC_VOLATILE JVM volatile内存区的读写都加了内存屏障 OS和硬件层面 windows lock 指令实现

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces

文献阅读&#xff1a;Mamba: Linear-Time Sequence Modeling with Selective State Spaces 1. 文章简介2. 方法介绍 1. State Space Models2. Selective State Space Models 3. 实验考察 & 结论 1. 简单问题上的验证2. 实际场景效果 1. 语言模型2. DNA模型3. 语音模型 3. 细…

深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】

深入学习Pandas&#xff1a;数据连接、合并、加入、添加、重构函数的全面指南 Pandas是Python中最强大且广泛使用的数据处理库之一&#xff0c;提供了丰富的函数和工具&#xff0c;以便更轻松地处理和分析数据。在本文中&#xff0c;我们将深入探讨Pandas中一系列数据连接、合…