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.rhkb.cn/news/446340.html

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

相关文章

UML(统一建模语言)

面向对象设计主要就是使用UML的类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。 画图软件:ProcessOn思维…

ROS2 “通信方式” 参数服务器

为什么加“通信方式”引号,因为我觉得他就不算通信,最多最多就是一个动态加载参数方式 所以ros通信方式就三种,topic service action 别犟,犟就是你对! 常用的 param参数方法如下: # declare_parameter…

五款专业三维数据处理工具:GISBox、Cesiumlab、OSGBLab、灵易智模、倾斜伴侣深度解析

随着三维数据处理技术的广泛应用,尤其是在城市规划、地理信息系统(GIS)、工程监测等领域,处理倾斜摄影、三维建模以及大规模数据管理的需求日益增加。以下是五款我精心挑选的倾斜摄影和三维数据处理工具——GISBox、Cesiumlab、OS…

视频号直播自动回复与循环发送话术-自动化插件

我们在做视频号直播的时候,会有这种自动回复咨询问题的功能 唯一客服浏览器插件现在就支持,在视频号直播后台,自动化回复用户问题,以及循环发送我们的介绍话术

第十四章 RabbitMQ延迟消息之延迟队列

目录 一、引言 二、死信队列 三、核心代码实现 四、运行效果 五、总结 一、引言 什么是延迟消息? 发送者发送消息时指定一个时间,消费者不会立刻收到消息,而是在指定时间后收到消息。 什么是延迟任务? 设置在一定时间之后才…

【动手学深度学习】6.3 填充与步幅(个人向笔记)

卷积的输出形状取决于输入形状和卷积核的形状在应用连续的卷积后,我们最终得到的输出大小远小于输入大小,这是由于卷积核的宽度和高度通常大于1导致的比如,一个 240 240 240240 240240像素的图像,经过10层 5 5 55 55的卷积后&am…

Mac 下编译 libaom 源码教程

AV1 AV1是一种开放、免版税的视频编码格式,由开放媒体联盟(AOMedia)开发,旨在提供高压缩效率和优秀的视频质量。AV1支持多种分辨率,包括SD、HD、4K和8K,并适用于视频点播(VOD)、直播…

2014年国赛高教杯数学建模B题创意平板折叠桌解题全过程文档及程序

2014年国赛高教杯数学建模 B题 创意平板折叠桌 某公司生产一种可折叠的桌子,桌面呈圆形,桌腿随着铰链的活动可以平摊成一张平板(如图1-2所示)。桌腿由若干根木条组成,分成两组,每组各用一根钢筋将木条连接…

Redis——持久化

文章目录 Redis持久化Redis的两种持久化的策略定期备份:RDB触发机制rdb的触发时机:手动执行save&bgsave保存测试不手动执行bgsave测试bgsave操作流程测试通过配置,自动生成rdb快照RDB的优缺点 实时备份:AOFAOF是否会影响到red…

基于opencv答题卡识别判卷

我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色:深度实…

【Qt】窗口预览(1)—— 菜单栏

窗口预览(1) 1. QMainWindow2. QMenuBar——菜单栏2.1 创建菜单栏/将菜单栏添加到widget中2.2 addMenu——在菜单栏中添加菜单2.3 在菜单中添加选项2.4 添加快捷键2.5 支持嵌套添加菜单2.6 添加信号2.7 添加分割线 1. QMainWindow Qt窗口是通过QMainWin…

基于SSM框架学籍管理系统的设计与实现

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 🎓擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号:乡下小哥编程。回复 Java全套视频教程 或 前端全套视频教…

微信小程序和抖音小程序的分享和广告接入代码

开发完成小程序或者小游戏之后,我们为什么要接入分享和广告视频功能,主要原因有以下几个方面。 微信小程序和抖音小程序接入分享和广告功能主要基于以下几个原因: 用户获取与增长:分享功能可以帮助用户将小程序内容传播给更多人&…

# 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析

在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析 一、问题描述: 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 如下图: 二、报错分析&…

【HarmonyOS NEXT】实现页面水印功能

关键词:鸿蒙、水印、Watermark、页面、触摸问题 注:本期文章同样适用 OpenHarmony 的开发 在app开发过程中时常会出现敏感信息页面,为保护信息安全和及时的数据追踪,通常会采用给页面加水印的形式,那么本期文章会介绍…

ARC学习(4)基本编程模型认识(四)----寄存器以及异常数据读取

笔者来聊一下ARC寄存器的获取 在介绍了ARC编程模型的知识点之后,来看一些具体的编程操作,比如如何获取寄存器,如何编写汇编语言实现特定功能? 1、获取寄存器 可以使用内联汇编来实现寄存器的获取,具体格式如下: _Asm:汇编宏标识符,指示内联汇编代码_Save_all_regs:…

轻量服务器和云服务器ecs哪个好用一些?

轻量服务器和云服务器ecs哪个好用一些?轻量服务器与云服务器ECS在多方面存在显著差异,对于需要高性能计算和大规模数据处理的用户来说,ECS可能是更好的选择;而对于预算有限且需求较为简单的用户来说,轻量服务器可能更为…

Node.js入门——fs、path模块、URL端口号、模块化导入导出、包、npm软件包管理器

Node.js入门 1.介绍 定义:跨平台的JS运行环境,使开发者可以搭建服务器端的JS应用程序作用:使用Node.Js编写服务器端代码Node.js是基于Chrome V8引擎进行封装,Node中没有BOM和DOM 2.fs模块-读写文件 定义:封装了与…

分布式事务管理-Seata从入门到精通

一、基本概念 什么是数据库事务? 1、一个操作数据库数据的执行单元 2、到围从开始到结束的多个操作组成 3、事务内的多个操作要么都成功,要么都失败 什么是分布式事务? 1.分布式场景下,完成某一个业务功能可能需要横跨多个服务&#xff0…

jmeter入门:脚本录制

1.设置代理。 网络连接-》代理-》手动设置代理. ip: 127.0.0.1, port:8888 2. add thread group 3. add HTTP(s) test script recorder, target controller chooses Test plan-> thread Group 4. click start. then open the browser …