Stm32+Esp8266连接阿里云程序移植教程(MQTT协议)

Stm32+Esp8266连接阿里云程序移植教程(MQTT协议)

  • 一、前期准备
  • 二、移植过程
  • 三、程序的使用
    • 3.1 连接上阿里云
    • 3.2 传输用户数据到阿里云
    • 3.3 解析从阿里云下发给用户的数据
    • 3.4 关于调试接口

一、前期准备

  1. 自己要的工程文件
  2. 移植所需的文件(如下图)
    获取方式见视频教程: 链接: BiliBili

移植所需文件:
在这里插入图片描述
我自己的工程文件:
在这里插入图片描述

STM32资源占用情况

资源个数
定时器1个
GPIO口1个
串口1个

二、移植过程

(1)将IOT文件夹整体复制到要移植工程的文件夹中,我复制到了HARDWARE文件夹中

(2)打开工程,编译通过,点击品字图标

在这里插入图片描述

(3)添加所有.c文件到工程

在这里插入图片描述

(4)添加IOT文件程序的头文件到工程

在这里插入图片描述
在这里插入图片描述

(5)此时编译工程,会发现报好多错误,那是因为并没用引用头文件

在这里插入图片描述

(6)点开移植所需文件中的sys.h文件,没有的自己把sys.c和sys.h添加进工程就行,添加文件到工程的步骤和上面一样。

  • 先添加.c
  • 在选中魔术棒添加头文件所在文件夹

在这里插入图片描述

在这里插入图片描述

(7)再次编译工程,可以看到不报错了

  • 如果还报错,把自己工程里所有的头文件都放入sys.h中,就向上图那样
  • 这样建立一个公共头文件sys.h做的好处是可以不用理会哪个程序引用了哪个头文件
  • 移植程序报错八成是头文件引用关系不对的缘故

在这里插入图片描述

三、程序的使用

3.1 连接上阿里云

(1)首先将阿里云的三要素准备好,如果不会这步骤的可以去看这个视频,BiliBili: 链接

在这里插入图片描述

(2)打开这个iot_wifi_mqtt.h文件,更改如下4个内容;

  • 改成自己的WIFI和密码(WIFIID和PASSWORD)
  • 把PRODUCTKEY改成自己的
  • 把DEVICENAME改成自己的
  • 把DEVICESECRE改成自己的
    在这里插入图片描述

(3)在主函数中初始化联网程序

  • 打开iot_user.c
  • 添加IOT_init();在主函数初始化中
  • 添加IOT_Connect();在主函数循环中

在这里插入图片描述
在这里插入图片描述

(4)编译通过,至此程序可以成功连接到阿里云了
在这里插入图片描述

3.2 传输用户数据到阿里云

在iot_user中找到Timed_Data_UpLoad()函数,按照下图更改即可

在这里插入图片描述

3.3 解析从阿里云下发给用户的数据

这里给出两大类解析数据的情况:

  • 解析阿里云发送的整型数据(作用:手机联网控制温湿度上下限的大小)
  • 解析阿里云下发的开关类型变量(作用:手机联网控制点灯关灯)

在这里插入图片描述

3.4 关于调试接口

该程序保留了调试的接口

  • 可更改调试串口为自己串口的printf函数
  • 0关闭串口 1打开串口

在这里插入图片描述

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

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

相关文章

新手必看!手把手教你打造10W+爆款文章

自定义 GPTs 的引入彻底改变了博主、营销人员和内容创作者在 ChatGPT 高级版本中的写作方式。这些自定义 GPTs 提供个性化的 AI 工具,旨在执行特定任务,使写作过程更顺畅、迅速且高效。从主题头脑风暴到撰写 SEO 友好的内容,自定义 GPTs 满足…

ES6扩展运算符

1.介绍: ... 扩展运算符能将数组转换为逗号分隔的参数序列; 扩展运算符(spread)也是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的 参数序列,对数组进…

方波信号发生器(完整SCL源代码)

正弦和余弦信号发生器请参考下面文章链接: 1、博途PLC平台 PLC信号发生器(博途SCL)_博图软件波形发生器怎么用-CSDN博客文章浏览阅读1.1k次。本文介绍了如何使用博途SCL编程实现不同周期和幅值的信号发生器,包括余弦和正弦信号。通过信号发生器,可以用于验证PLC的滤波器效…

Android Framework AMS(06)startActivity分析-3(补充:onPause和onStop相关流程解读)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读AMS通过startActivity启动Activity的整个流程的补充,更新了startActivity流程分析部分。 一般来说,有Activ…

ZBrush入门使用介绍——17、FiberMesh

大家好,我是阿赵。   继续介绍ZBrush的使用。这次来看看FiberMesh功能。这是一个可以模仿毛发的功能。 一、 使用FiberMesh的预览功能 先准备一个模型,并生成多边形网格 然后按着Ctrl,在模型的表面画一个遮罩。 找到FiberMesh功能&#…

JSP 的 response 和 session 内置对象

文章目录 前言一、response 内置对象 1.重定向网页2.处理 HTTP 文件头3.设置输出缓存二、session 内置对象 1.创建及获取客户会话2.会话中移动指定的绑定对象3.销毁 session 内置对象4.会话超时的管理5. session 对象的应用总结 前言 JSP 的 response 和 session 内置对像&…

HCIP——以太网交换安全(四)DHCP Snooping

目录 一、DHCP Snooping的知识点 二、DHCP Snooping实验拓扑 三、总结 一、DHCP Snooping的知识点 1.1、DHCP snooping 概述: ①DHCP Snooping使能DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务端获取IP地址。DHCP服务器记录DHCP客户端IP…

uniapp 省、市、区、乡镇 数据层级选择插件 Ba-DataPicker

Ba-DataPicker 是一款uniapp数据层级选择弹窗插件。支持省市区乡四级;支持自定义数据。 支持省、市、区、乡镇四级支持自定义数据支持字母检索 截图展示 支持定制、本地包、源码等,有建议和需要,请点击文章结尾“Uniapp插件开发”联系我&am…

Flink有状态计算

前言 状态是什么?状态就是数据,准确点说,状态是指 Flink 作业计算时依赖的历史数据或中间数据。如果一个 Flink 作业计算依赖状态,那它就是有状态计算的作业,反之就是无状态计算的作业。 举个例子,服务端…

AnaTraf | 提升网络稳定性与效率:深入解析网络流量采集分析与故障定位

目录 网络流量采集分析的核心价值 什么是网络流量采集分析? 网络流量分析的应用场景 利用流量分析优化企业网络 网络故障定位的关键步骤 故障定位的基本流程 常用故障定位方法 实用技巧 网络流量采集分析与故障定位的协同作用 整合流量分析提升故障响应速…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段&#xf…

开源 | Science子刊 | GCS轨迹优化方法

论文: https://arxiv.org/pdf/2205.04422 Github: https://github.com/RobotLocomotion/gcs-science-robotics 本文介绍了一种基于凸优化的高效运动规划方法,该方法能够在高维空间中可靠地规划出障碍物周围的轨迹。研究者们通过结合贝塞尔曲线和凸集图&#xff08…

大厂面试一上来就手撕 Transformer,心凉半截

在这两年,尤其是大模型问世之后,有关 Transformer 的面试题不仅数量众多,而且颇具新意。 今日,我将分享 18 道 Transformer 高频面试题(如需获取更多专业面试题,扫描文末二维码即可)&#xff0…

【超详细】TCP协议

TCP(Transmission Control Protocol 传输控制协议) 传输层协议有连接可靠传输面向字节流 为什么TCP是传输控制协议呢? 我们以前所看到的write接口,都是把用户级缓冲区的数据拷贝到发送缓冲区中,然后数据就由TCP自主决定了,所以…

Postman 如何测试入参是文件类型(File)参数接口

Postman 如何测试 File 类型参数 前提背景测试步骤1、打开 Postman 选择 POST 方法输入调用地址2、参数选择 Body 下的 form-data3、KEY 选择 File 选项,并填写 file 前提背景 springboot 项目,接口的参数是 File 类型,需要通过 Postman 测试…

js中map,filter,find,foreach的用法介绍

js中map,filter,find,foreach的用法介绍 在 JavaScript 中,数组提供了一些常用的迭代方法,如 map、filter、find 和 forEach,这些方法允许你对数组中的每个元素进行操作,下面是它们的用法和区别…

2024台州赛CTFwp

备注: 解题过程中,关键步骤不可省略,不可含糊其辞、一笔带过。解题过程中如是自己编写的脚本,不可省略,不可截图(代码字体可以调小;而如果代码太长,则贴关键代码函数)。…

etcd集群修复异常节点

描述:仅一个 etcd 节点状态异常且无法自愈。 方案:删除异常节点,然后重新加入。 官方文档: How to Add and Remove Members | etcd Runtime reconfiguration | etcd

微信小程序添加删除线和下划线

微信小程序如何添加删除线和下划线? 小程序官方提供的html标签,跟传统的HTML有所差异,下面关于下划线和删除线的操作。 在对应的标签中添加css样式即可: text-decoration:underline; //下划线显示效果如下: text-de…

Gitxray:一款基于GitHub REST API的网络安全工具

关于Gitxray Gitxray是一款基于GitHub REST API的网络安全工具,支持利用公共 GitHub REST API 进行OSINT、信息安全取证和安全检测等任务。 Gitxray(Git X-Ray 的缩写)是一款多功能安全工具,专为 GitHub 存储库而设计。它可以用于…