【阿里云物联网】ESP01+阿里云

前言

  本文分成两个部分的配置介绍讲解:阿里云配置ESP01配置。至于像STM32单片机之类的连接,只要阿里云与ESP01的通道打通后,STM32无非就是在与ESP01进行串口收发指令与信息,这个有时间的话会在写的。本文的目的主要还是能达到阿里云能与ESP01通信的效果。

准备材料

  • 阿里云账号

  • 正点原子的串口终端

  • ESP01+配套串口转接器

    在这里插入图片描述

    没有配套的转接器的话,也可以用ESP01和USB转串口模块接线在连接电脑,本质上都是同样的。

阿里云配置

既然要使用阿里云,那么肯定需要有阿里云账号之类的,这种默认需要的就不讲了,默认都是有阿里云账号且登录的。阿里云官网

  1. 首页搜索,找到物联网平台控制台入口。第一次开启物联平台是要选择同意开启的。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 第一次开启公共实例也是要选择同意。目前新版的是不计费,不现时,限制数量用于测试用的。(这里我已经开启过了,并且也进行过一些测试了,不然刚创建肯定是0的)

    在这里插入图片描述

  3. 点击设备接入,添加设备。在新建产品处,设置号名称,在设置为自定义品类后,确定就好。标准品种中,有着针对品种设备提取定义好的属性,大家感兴趣的可以在自行查看。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  4. 步骤3只是创建好了产品,创建完后,还要在产品中添加设备。(侧边栏,或者直接在产品后面,都能跳转到设备页面)

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  5. 完成设备添加后,就可以点击设备,查看连接进行MQTT的关键信息。图中还有设备的DeviceName,在建立链接时需要到,具体看到步骤6。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    当阿里云配置完成后,就能拿到MQTT的连接参数

    在这里插入图片描述

    图中的关键参数,clientldusernamepasswdmqttHostUrlport,在下述客户端进行AT连接时会用到。

  6. 上述步骤1~5完成了产品,设备的创建及得到MQTT连接参数。但是关于MQTT的主题订阅以及发布,这个是还要创建授权的,非授权的主题交互请求将会被平台处理为无效请求。回退到产品界面,点击查看,在点击Topic 类列表,选择自定义Topic,这里就给出了给产品下的设备能对指定主题进行的发布/订阅的权限。还有需要注意的是,假如要链接主题/k0yo34u8Cim/${deviceName}/user/main,不是直接这个地址就行了,而是要把${deviceName}替换成该产品下设备的名称。比如我们刚才在Demo下创建了一个ESP01,所以说名称就为:ESP01(在设备属性那里也可以查看deviceName,比如步骤5的截图中就有),则链接地址则为:/k0yo34u8Cim/ESP01/user/main

    在这里插入图片描述

    在这里插入图片描述

上述的阿里云配置步骤不需要百分百同样,只需要完成相关配置就行,达到配置功能就可以了。

ESP01配置

刷MQTT透传AT固件

不在过多展开描述烧录流程了,有相关的链接教程,大家头一次使用可以去参考参考,玩过的想必都知道烧录流程了,就不过多啰嗦了。

MQTT固件地址:安信可科技

在这里插入图片描述

AT固件烧录工具及步骤:AT固件烧录教程

AT指令配置及验证

在串口终端发送指令给ESP01S,通常响应或者提交正确都会回复 OK ,错误或者提交错误都会回复 ERROR ,在下面就不在过多重复。还有下面的参数只是简单的描述命令的作用,详细的可以查看乐鑫官网的AT 命令集。

我会根据我上述配好的阿里云的配置来,在每个命令的后面都给出示例。

步骤1~8是对ESP01(客户端)的配置方面的。步骤9~10就是MQTT常见的 订阅 , 发布 主题的功能了。

  1. ESP01S复位

    AT+RST
    
  2. 恢复出厂设置

    AT+RESTORE
    
  3. 设置工作模式为Station(STA)模式

    AT+CWMODE=1
    
  4. 使得自身的NTP(网络时间协议)和阿里云的公共NTP服务器地址时间保持同步

    AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
    
  5. 连接到指定的无线网络(Wi-Fi)

    AT+CWJAP="Wi-Fi名称","Wi-Fi密码" 
    
  6. 配置MQTT客户端的用户参数

    AT+MQTTUSERCFG=0,1,"NULL","username","password",0,0,""
    
    // 示例:
    // AT+MQTTUSERCFG=0,1,"NULL","ESP01&k0yo34u8Cim","da98f76bc407767677ce894df36426677c131a01e25f86606fc8dc1f227d9bb8",0,0,""
    
  7. 设置MQTT客户端的Client ID

    每个逗号前加 \ ,格式化字符输出,否则会被认为是普通的参数分隔符。

    AT+MQTTCLIENTID=0,"ClienID"
    
    // 示例:
    // AT+MQTTCLIENTID=0,"k0yo34u8Cim.ESP01|securemode=2\,signmethod=hmacsha256\,timestamp=1711004092669|"
    
  8. 建立与MQTT服务器的连接

    AT+MQTTCONN=0,"mqttHostUrl",1883,1
    
    // 示例:
    // AT+MQTTCONN=0,"iot-06z00a0w2xecf60.mqtt.iothub.aliyuncs.com",1883,1
    
  9. 订阅指定的MQTT主题

    注意了主题(topic),在阿里云产品中,得到的通常给出的是这种地址/k0yo34u8Cim/${deviceName}/user/main需要把,${deviceName}替换成设备的名称,假如设备名称为ESP01,完整的则像这样的/k0yo34u8Cim/ESP01/user/main

    AT+MQTTSUB=0,"订阅topic",1
    
    // 示例:
    // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main",1
    
  10. 发布消息到指定的MQTT主题

    AT+MQTTPUB=0,"发布topic","AJson格式内容",1,0
    
    // 示例:
    // AT+MQTTSUB=0,"/k0yo34u8Cim/ESP01/user/main","{LED}",1,0
    

串口终端,上述命令的全部演示,可以看到正常情况下,都是OK的。有几个要注意的地方就是,像串口,波特率等要选对,还有要勾上发送新行,每一个AT指令是什么就输入什么,千万不要在后面多一个空格之类的。

在这里插入图片描述

效果演示,对已经连接上的客户端设备,阿里云发送消息给ESP01客户端。

在这里插入图片描述

在这里插入图片描述

工程材料

MQTT透传AT固件+串口调试助手+导出串口调试导出的AT指令(.ini)

链接:https://pan.baidu.com/s/1tQ4WtzTNYUiMBHI_lIjoPA  提取码:3aoz

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

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

相关文章

PyTorch深度学习:如何实现遥感影像的自动化地物分类?

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

基于python+vue的ITS 信息平台的设计与实现flask-django-nodejs-php

伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套信息平台,帮助交通局进行信息共享、交通信…

Android Kotlin(六)协程的并发问题

书接上回:Android Kotlin知识汇总(三)Kotlin 协程 协程的并发问题 在一个协程中,循环创建10个子协程且单独运行各自Default线程中,并让每个子协程对变量 i 进行1000次自增操作。示例如下: fun main() …

安装IK分词器 + 扩展词典配置 + 停用词典配置

安装IK分词器 1.在线安装ik插件(较慢) # 进入容器内部 docker exec -it elasticsearch /bin/bash ​ # 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elastics…

内网使用rustdesk进行远程协助

文章目录 前言一、搭建rustdesk中继服务器二、搭建文件下载服务器三、创建引导脚本四、使用 前言 内网没有互联网环境,没法使用互联网上有中继服务器的远程协助工具,如teamviewer、todesk、向日癸等;在内网进行远程维护可以自己搭建中继服务…

智能网联汽车终端T-BOX应用方案

随着5G时代的到来,汽车智能化、网联化程度的不断提高,车载终端T-BOX作为车辆与云端的信息交互点,扮演着重要的角色。T-BOX的升级换代也为人们的出行实现了很多便利,同时也带来了极大的信息安全挑战,必须严格保证其数据…

elementary OS7 (Ubuntu 22.04)中word文档转化成pdf格式文档

elementary OS7 Ubuntu 22.04中word文档转化成pdf格式 背景目标操作 背景 收到一个word文档,让调整一下排版后转换一下格式,转换成pdf格式,这要是在windows系统下,office可以直接另存为pdf文档,在linux系统下没有offi…

开源项目ChatGPT-Next-Web的容器化部署(三)-- k8s deployment.yaml部署

一、说在前面的话 有了docker镜像,要把一个项目部署到K8S里,主要就是编写deployment.yaml。 你需要考虑的是: 环境变量服务的健康检测持久化启动命令程序使用的数据源程序使用的配置文件 因为本前端项目比较简单,这里只做一个…

cool-admin-node.js 中redis缓存的使用

1. 在做cool 后端的时候 用户登录 时的token 需要鉴权的value 以及发送验证码 这些 需要存到缓存里面 ,进行逻辑鉴权 所以我们需要用到redis 缓存 或者数据库缓存 我这里介绍一下redis 的缓存 在cool-admin 中 使用的一般都是宝塔面板 首先得有服务器 需要有自己的…

Kubernetes自动化配置部署

在新建工程中,使用k8s的devops服务,自动化部署项目 1、在搭建好k8s的集群中,确认已开启devops服务; 2、新建Maven项目之后,创建dockerfile、deploy和Jenkins文件 例如: Dockerfile FROM bairong.k8s.m…

LeetCode 79 单词搜索

题目描述 单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是…

吴恩达机器学习笔记 二十六 决策树学习过程 独热编码one-hot

决策树的学习过程 1. 所有样本都在根结点 2.计算所有可能的特征的信息增益,选择信息增益最大的那个 3.根据选择的特征分离数据集,创造左右两支子树 4.继续进行分裂直到达到停止标准。停止标准有:一个节点只有一类样本;分裂一…

【DataWhale学习】用免费GPU线上跑chatGLM、SD项目实践

用免费GPU线上跑chatGLM、SD项目实践 ​ DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动,我很感兴趣就参加啦。之前就对chatGLM有所耳闻,是去年清华联合发布的开源大语言模型,可以用来打造个人知识库什么的,一直没有尝试…

案例精选 | 新疆科技学院下一代智慧安全运营中心建设项目

新疆科技学院,是新疆维吾尔自治区人民政府举办的全日制普通本科高校。学校始建于2002年,前身为新疆财经大学商务学院,2019年12月经教育部批准转设为新疆科技学院。学校分为东、西两个校区,总占地面积3070亩,开设24个本…

蓝桥杯 2022 省B 积木画

这是个典型的动态规划问题,重点在于找到他的递推方程。 可简单算出填满第0 1 2 3 4列个数为0 1 2 5 11; 运气好点,找到递推公式dp[i]2*dp[i-1]dp[i-3]; 直接解决了。 但我们还是按照动态规划一步一步来。 思路分析: 状态定义&a…

雅博书城在线系统|基于SSM框架+ Mysql+Java+ Tomcat的雅博书城在线系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

YOLOv5-Y5周:yolo.py文件解读

本文为🔗365天深度学习训练营 中的学习记录博客 原作者:K同学啊|接辅导、项目定制 我的环境: 1.语言:python3.7 2.编译器:pycharm 3.深度学习框架Tensorflow/Pytorch 1.8.0cu111 一、代码解读 import argparse i…

【C++】1599. 米老鼠偷糖果

问题:1599. 米老鼠偷糖果 类型:基本运算、整数运算 题目描述: 米老鼠发现了厨房放了 n 颗糖果,它一次可以背走 a 颗,请问米老鼠背了 x 次之后还剩多少颗?(假设 x 次之后一定有糖果剩下&#x…

pytorch多层感知机

目录 1. 多层感知机2. 多层感知机loss梯度推导3. pytorch示例 1. 多层感知机 有多个输入节点、多个中间节点和多个输出节点 2. 多层感知机loss梯度推导 3. pytorch示例

从0到1实现RPC | 02 RpcConsumer的远程调用

一、RPC的简化版原理如下图(核心是代理机制)。 1.本地代理存根: Stub 2.本地序列化反序列化 3.网络通信 4.远程序列化反序列化 5.远程服务存根: Skeleton 6.调用实际业务服务 7.原路返回服务结果 8.返回给本地调用方 二、新建一个模块rpc-demo-c…