esp8266WiFi模块通过MQTT连接华为云

2023-05-16

esp8266WiFi模块通过MQTT连接华为云

  • 总结:
  • 一、 MQTT透传AT固件烧录
  • 二、 串口调试
    • 2.1 设置模块为STA模式
    • 2.2 连接WiFi
    • 2.3 设置MQTT的登陆用户名与密码
    • 2.4 设置MQTT的ClientID
    • 2.5 设置MQTT接入地址
    • 2.6 订阅设备属性上报的主题
    • 2.7 上传数据
    • 2.8 平台下发命令
    • 2.9 华为云物联网平台的->监控运维->在线调试,完成命令下发
  • 三、示例代码

最近突然想做物联网的项目,做一个类似远程控制家里的设备,比如控制灯,电视机,空调这样的,同时能够将家里的温湿度等信息可以实时上传到手机里。
刚开始认为这个不就是一个很简单的项目嘛,几个小时之内就能做出来,可是没想到诸事不顺,遇到各种各样的bug,最后竟然花了我周六和周末两个下午才做出来做出来(不要问为什么是周六和周末的下午,因为早上起不来),最后终于调通了因此写这篇文章来记录一下。

我手里正好有一块正点原子的esp8266,并且以前正好参加过华为云的训练营ModelBoxAI,了解一点华为云的知识,然后就用这两个东西来度过愉快的周末。

参考链接: ESP8266接入华为云物联网平台

总结:

坑一:esp8266出厂固件不支持MQTT功能,必须自己在链接 AT固件汇总 上下载。
坑二:下载固件的时候一定要注意你用的ESP8266系列模组的型号(这里我刚开始没注意,花了我很久时间)。
坑三:正点原子esp8266型号是esp-01,固件必须用1112_esp8266-4M。
坑四:烧录的时候注意要把GPIO0接地,才能进入烧录模式。
坑五:找到华为云平台接入地址,且保证平台在线,我这里是用的免费版。


一、 MQTT透传AT固件烧录

我最终使用的是stm32+AT指令控制esp01接入华为云联网平台完成数据上报与命令处理,在开发的时候先用usb-ttl模块连接esp8266调试
出厂固件不支持全部的MQTT功能,这里我们首先对esp8266进行MQTT固件烧录。

在这里有个问题,根据下面官网图,我用的esp-01,Flash是8M
应该下载 MQTT 透传AT固件(固件号:1471)
可是我下载进去后,总是卡在 连接的第三步

AT+MQTTUSERCFG=0,1,"NULL","填写用户名","填写密码",0,0,""

AT命令输入后,总是返回error,这里卡了我好久。

在尝试各种方法之后,排除了所有可能性之后,我开始怀疑是不是我烧录的固件错了?
尼玛,不可能啊?官方怎么会错?

在这里插入图片描述
在这里插入图片描述
然后我下载了官方给的两个固件,如下图,最后成功了。
这里我也不知道为什么会这样,如果有懂的小伙伴可以在评论区解答一下。

在这里插入图片描述

二、 串口调试

2.1 设置模块为STA模式

AT+CWMODE=1

2.2 连接WiFi

AT+CWJAP="填写wifi名称","填写WiFi密码"

2.3 设置MQTT的登陆用户名与密码

AT+MQTTUSERCFG=0,1,"NULL","填写用户名","填写密码",0,0,""

用户名与密码为华为云MQTT三元组的相关信息,可以在链接: MQTT ClientId生成工具生成

2.4 设置MQTT的ClientID

AT+MQTTCLIENTID=0,"填写ClientID"

设置MQTT的ClientID,ClientID华为云MQTT三元组的相关信息,在上一步骤中获取的三元组中查看

2.5 设置MQTT接入地址

AT+MQTTCONN=0,"填写MQTT接入的地址",1883,1

设置MQTT接入地址,华为云物联网平台的地址,具体参考控制台首页的平台接入地址

2.6 订阅设备属性上报的主题

 AT+MQTTSUB=0,"订阅的主题",1

完成属性上报的话需要先订阅设备属性上报的主题,此处可填写为:

$oc/devices/填写设备ID/sys/properties/report

2.7 上传数据

AT+MQTTPUB=0," 订阅的主题 ","上报的json数据",0,0

上报的json数据:

$oc/devices/64047c741eaf704179abaa58_Temp_test/sys/properties/report ","{\"services\":[{\"service_id\":\"esp8266_data\"\,\"properties\":{\"temp\": 100}}]}

建议大家完成这步时,先使用MQTT.fx进行设备属性上报测试,确保数据无误正常上传。
在完成上面的每一步时,系统都会打印一个OK

2.8 平台下发命令

AT+MQTTSUB=0,"订阅的主题topic ",1

我们在这填写的是平台下发命令的主题:$oc/devices/填写设备ID/sys/commands/#

2.9 华为云物联网平台的->监控运维->在线调试,完成命令下发

三、示例代码

AT+MQTTUSERCFG=0,1,"NULL","6404eaf704179abaa58_Temp_test","3859a228b3bcdd143d94eff8198d58bb801b820e528b96ea6ca6ece86",0,0,""

OK
AT+MQTTCLIENTID=0,"64047c7704179abaa58_Temp_test_0_0_2023030511"

OK
AT+MQTTCONN=0,"04dcad.st1.iotda-device.cn-north-4.myhuaweicloud.com",1883,1
+MQTTCONNECTED:0,1,"04d3ad.st1.iotda-device.cn-north-4.myhuaweicloud.com","1883","",1

OK
AT+MQTTSUB=0,"$oc/devices/64047cf704179abaa58_Temp_test/sys/properties/report",1

OK
AT+MQTTPUB=0," $oc/devices/6404eaf704179abaa58_Temp_test/sys/properties/report ","{\"services\":[{\"service_id\":\"esp8266_data\"\,\"properties\":{\"temp\": 100}}]}",0,0

OK
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esp8266WiFi模块通过MQTT连接华为云 的相关文章

  • ESP32-C3入门教程 网络 篇(三、 MQTT 协议基础介绍及测试)

    在前面 我们已经学会了 ESP32 C3 的WiFi 配置以及使用 为我们学习网络协议建立了基础 这篇文章我们就来学习测试一下ESP32 C3 的 MQTT 驱动 目录 前言 1 基础介绍 1 1 MQTT协议基本概念 1 2 ESP MQ
  • mpu6050数据实时发布到mqtt服务器

    vcc 5V SDA i2c数据 pin3 SDL i2c时钟 pin5 GND import smbus import SMBus module of I2C import time import math import json imp
  • EMQ关闭MQTT客户端匿名认证

    本文默认已经安装并且开启emqttd 做的事是关闭MQTT客户端匿名认证并且通过username和passward认证 且有一定的Linux命令基础 环境 Ubuntu16 04 emq v3 2 1 正文 关闭匿名认证 emq安装时 默认
  • MQTT在解析一条消息时收不到其他消息

    前提说明 客户端发送两个topic消息 第一个消息依赖第二个消息传入的值 两个topic分别为topic1 topic2 业务说明 topic1消息订阅之后 进行相关业务处理 查库插库等操作 然后轮训redis等待10s redis中存的时
  • MQTT Qos详解(一)

    本文基于标准MQTT讨论 不适合其他对MQTT机制做了修改的非标准MQTT协议 MQTT设计了一套保证消息稳定传输的机制 包括消息应答 存储和重传 在这套机制下 提供了三种不同层次QoS Quality of Service QoS0 发送
  • 为什么 MQTT 无法与 NodeJS 连接?

    我在尝试连接时遇到一个奇怪的问题MQTT服务器与NODEJS 如果我连接到MQTT服务器和我没有连接它只是挂起 如果我使用命令行执行此操作 我会看到数据 因此网络 服务器等都很好 如果我使用错误的端口 那么命令行会给我一条有效的拒绝消息 但
  • 启用 TLS 的 mosquitto_sub

    我是 MQTT 新手 遇到一个令人沮丧的问题 我一直在使用MQTT fx订阅一个主题 我已经设置了 经纪商地址 Port 客户ID Enable SSL TLS Topic 这很好用 但我想使用 mosquitto sub 我尝试通过以下方
  • Node.js 和 java 之间的 mqtt 通信

    目标是使用 mqtt 协议发送数据 Java 项目 tempSensor 使用 mqtt 协议和使用 mqtt 订阅 tempvalue 的 Node js 生成 tempvalue Node js 和 java 项目都使用相同的密钥进行发
  • 使用 MQTT Android 服务从飞行模式重新连接

    我正在实现此处找到的 Dale Lane MQTT Android 服务示例http dalelane co uk blog p 1599 http dalelane co uk blog p 1599 这个例子对于我的特定目的来说工作得很
  • Apache MQ Artemis - MQTT 保留消息对于连接到集群中其他节点的客户端不可用

    I have 4 ActiveMQ 阿耳忒弥斯 2 10 1实例运行在cluster 客户端 A 连接到其中一个节点并发布MQTTQoS 0 的消息并且保留 真 当新的 MQTT 客户端 B 连接到另一个节点在集群中并订阅了该主题 之前发送
  • Google iot MQTT - ESP32 首次连接,仅在 30m 后重新连接

    我正在使用 ESP32 与谷歌物联网云合作 我发送假值只是为了使用 MQTT 数据 PUB SUB 进行测试 显然我成功发布了值 有时 我无法重新连接到谷歌物联网 我不知道为什么它不断检查 wifi publishing 并且不检查 JWT
  • 在一条消息 MQTT 中发布多个主题

    我有一个设备可以从不同的传感器收集大量数据 我想通过一条消息将它们发送给我的经纪人 在客户端 我只想在给定时间查看其中一些数据 我不想看到全部数据 我可以在一条消息中发布多个主题 然后在客户端只能看到其中的一些主题吗 我知道我可以使用通配符
  • 如何通过互联网使用 MQTT?

    目前 我正在成功运行一个 mosquitto 代理 订阅主题并与本地网络中的客户端发布消息 如何与位于不同 IP 地址的另一个本地网络进行通信 我应该设置 2 个 mosquitto 经纪人 每个本地网络一个吗 其他本地网络中的 PC 需要
  • 如何M2MQTT自动重连

    我正在尝试使用此协议 并且已经有 2 个客户端 一个用于发布 另一个用于订阅 和一个正在工作的经纪人 我的问题是我想在订阅客户端中实现重新连接功能 因为 wifi 信号不稳定并且不想每次都手动重新启动客户端 我该如何实现这一点 您可以使用
  • 如何在 Amazon AWS Lambda 函数中发布到 MQTT 主题?

    我想要一个简单的命令 就像我在 bash 中使用的那样 将某些内容发布到 AWS Lambda 函数内的 MQTT 主题 沿着以下思路 mosquitto pub h my server com t 灯 设置 m 开 背景 我想用 Alex
  • Spring集成MQTT发布订阅多个主题

    我正在尝试构建一个订阅多个 mqtt 主题的应用程序 获取信息 处理它并形成 xml 并在处理时触发一个事件 以便这些可以发送到某个云服务器 并将成功的响应从那里发送回MQTT 通道
  • 如何在 Android 的这个特定用例中实现 MQTT?

    我的用例 登录到我的应用程序的用户应该能够向在另一台 Android 设备上登录到该应用程序的自己发送消息 如果用户拥有多个设备 那么一旦他打开该消息 其他设备上的通知必然会消失 Doubts 如何跨设备向特定用户发送数据 我了解如何使用
  • 请求/响应的 MQTT 主题名称

    我正在设计一个包含许多设备的系统 使用 MQTT 连接到中央代理 有些主设备可以向某些从设备发送请求 来自一台主机的请求通常会发送给一台从机 请求的主题可以是 mysystem slaveId req 因此从站可以订阅该主题 并且主站可以发
  • 简化情况下能否保证mqtt消息送达顺序?

    如果只有一个代理 一个发布者 一个主题和干净的会话 在这个简化的情况下 能否保证订阅者端的消息传递顺序与发布者端的发送顺序相同 会受到QoS的影响吗 Section 4 6 http docs oasis open org mqtt mqt
  • 通过 MQTT 将 LoRa 测量结果发送到 Fiware IOT 代理

    我有 LoRa 传感器 它使用 Cayenne LPP 格式有效负载发送测量值 我的网关 LOrank8v1 捕获这些数据包并将其转换为 UDP 网关中有一个服务 lora gateway bridge 它将数据包从 UDP 转换为 TCP

随机推荐

  • ROS编译catkin_make的时候报错找不到xxx.h头文件

    报错内容 xff1a home firefly eai ws src square square goal service src service server cpp 3 53 fatal error square goal servic
  • Ubuntu下安装GParted并分区,进行虚拟机内存扩展

    首先对于虚拟机下的Ubuntu系统安装Gparted 直接使用sudo apt get install gparted 关机先进行内存分配后 xff0c 再进行下面操作 网上还有其他适合的教程 xff0c 我的16 04这样安装是没问题的
  • PIP版本过低,更新无用,Command “python setup.py egg_info“ failed with error code 1 in报错

    Ubuntu下pip install 时候python2 7总是报错 Complete output from command python setup py egg info Traceback most recent call last
  • 小觅双目相机进行ROS标定

    安装image pipeline包 使用ROS官方提供的 camera calibration 包对双目相机进行标定 详情可见官网camera calibration Tutorials StereoCalibration ROS Wiki
  • ubuntu18.04安装ORB_SLAM3以及遇到的问题

    目录 1 安装c 43 43 11 2 安装Pangolin a xff09 安装依赖 b xff09 编译pangolin 切换到pangolin下载包里面 3 安装opencv 4 eigen3安装 5 boost安装 6 编译ORB
  • 【论文写作】Word中公式快捷输入方式

    环境 Win10 64位 用到软件 Mirsoft Word MathType Mathpix snipping tool Quicker 说明 xff1a 点击链接可以直达官网 一 前言 针对Word中公式输入效率低的问题 xff0c 本
  • 练习7-10 查找指定字符 (15分)

    本题要求编写程序 xff0c 从给定字符串中查找某指定的字符 输入格式 xff1a 输入的第一行是一个待查找的字符 第二行是一个以回车结束的非空字符串 xff08 不超过80个字符 xff09 输出格式 xff1a 如果找到 xff0c 在
  • 用cropper.js裁剪图片并上传到服务器,解析base64转存图片到本地

    今天要写上传图片功能 xff0c 研究了一下cropper 将图片上传服务器并保存到本地 html lt html gt lt head gt lt title gt 基于cropper js的图片裁剪 lt title gt lt met
  • 通讯协议详解

    1 xff0c 概念 网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合 网络上的计算机之间是如何交换信息的呢 xff1f 就像我们说话用某种语言一样 xff0c 在网络上的各台计算机之间也有一种语言 xff0
  • 自动识别击打控制系统

    目录 摘 要 关键词 一 系统方案 1 1 系统基本方案 1 2 程序算法的具体流程 二 视觉程序识别框架 2 1多线程 2 2 opencv配置文件 2 3 主函数 三 装甲板识别算法 3 1 装甲板识别 3 2 识别函数介绍 四 目标位
  • 基于stm32风力摆控制系统(电赛获得省一)

    目录 需要源文档及程序进入主页 一 系统方案 完整文档以及代码可主页私 1 1 系统基本方案 1 1 1 控制方案设计 1 1 2 机械结构方案设计
  • 基于stm32的所有嵌入式项目代码

    nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 本人本科和硕士阶段的专业都是嵌入式方向 做了许许多多的项目 包括51 stm32 freeRTOS linux操作系统 多进程线程实现功能 包括裸机开发 驱动开
  • 基于图像处理的水果自助售卖系统(自助水果售卖机)

    目录 第一章 nbsp 概述 1 1 发展概要 1 2 国内外研究现状 1 3 研究目的和意义 1 4 方案介绍
  • 基于stm32的无人机控制系统设计

    基于stm32的无人机控制系统设计 整篇文章有两万字左右 字数太多了 实在是懒得全部放在这上面来 太废时间了 需要完整论文可主页联系 第一章 前言 1 1项目背景和意义 1 2国内外发展现状 1 3本文研究的主要内容 第二章 设计方案论证与
  • 基于Robot Studio的工业机器人汽车喷涂仿真设计

    基于Robot Studio的工业机器人汽车喷涂仿真设计 整篇文章字数有一万四左右 图片太多了 实在是懒得全部放在这上面来 太废时间了 获得完整论文关注可查看主页私信我 摘要 关键词 1 绪论 1 1研究背景与意义 1 2国内外研究现状 2
  • 基于单片机的压力流量报警器(附代码+仿真+论文)

    基于单片机的压力流量报警器 附代码 仿真 论文 完整论文 代码 仿真可关注我在主页私我 摘要 关键字 第一章绪论 1 1课题背景及其意义 1 2 国内外的研究状况 1 3本文的主要研究内容及论文结构安排 第二章 方案的设计与论证 2 1控制
  • 基于STM32的微型电子琴设计

    基于STM32的微型电子琴设计 第一章 总体设计 1 1 系统功能 1 2 主要技术性能指标 第二章硬件设计 2 1 整体硬件图 2 2 按键模块 2 3 扬声器模块 2 4 显示模块 2 5 主控模块 第三章 软件设计 3 1 主要工作原
  • 百度2015校园招聘软件开发笔试题及答案

    简单题 xff08 本题共30分 xff09 请简述Tcp ip的3次握手以及4次挥手过程 xff1f 并解释为何关闭连接需要4次挥手 10分 详细答案参见TCP IP协议三次握手与四次握手流程解析 TCP三次握手 四次挥手过程如下 通常情
  • 智能算法实现PID智能车控制系统

    智能算法实现PID智能车控制系统 TOC 智能算法实现PID智能车控制系统 摘要 关键词 第一章绪论 1 1智能车概述 1 2智能PID研究现状 1 3本文工作 第二章 PID控制简介 第三章 内模PID简介 3 1 内模PID控制 第四章
  • esp8266WiFi模块通过MQTT连接华为云

    esp8266WiFi模块通过MQTT连接华为云 总结 xff1a 一 MQTT透传AT固件烧录二 串口调试2 1 设置模块为STA模式2 2 连接WiFi2 3 设置MQTT的登陆用户名与密码2 4 设置MQTT的ClientID2 5