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打开串口

在这里插入图片描述

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

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

相关文章

[ACTF2020] 新生赛]Exec1

目录 0x01命令执行 [ACTF2020 新生赛]Exec1 1、解法1 2、解法2 3、总结 3.1php命令注入函数 3.2java命令注入函数 3.3常见管道符 0x02SQL注入 [极客大挑战 2019]EasySQL1 0x01命令执行 [ACTF2020 新生赛]Exec1 1、解法1 ping本地,有回显,TTL…

数据分析Python for Data专业书籍pdf

随着大数据时代的到来,数据分析已成为企业决策、科学研究以及日常生活中不可或缺的一部分。对于想要学习数据分析的人来说,Python 是最理想的编程语言之一。其简洁的语法、强大的库以及丰富的社区支持,使得 Python 成为数据分析的首选工具。本…

隐蔽的并发错误

欢迎关注公众号 【11来了】 ,持续 中间件源码、系统设计、面试进阶相关内容 在我后台回复 「资料」 可领取 编程高频电子书! 在我后台回复「面试」可领取 30w 字的硬核面试笔记! 感谢你的关注! 隐蔽的 synchronized 并发错误 在使…

基于SpringBoot+Vue+Uniapp汽车保养系统小程序的设计与实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而…

PROFINET转SSI协议模块快速使用说明

Profinet网关PROFINET转SSI协议 PN4SSI模块快速使用说明 * 应用时PNSSI模块时,拨码全部拨到OFF。 (1) 在博途中新建一个项目,通过“选项”——“管理通用站描述文件”添加模块的GSD文件。 选择GSD文件所在的目录,点击安装: (…

天选销冠徐志胜与森马的跨界营销,你get了吗?

在当今这个信息爆炸的时代,品牌如何在众多竞争者中脱颖而出,成为消费者心中的首选,是一个值得深入探讨的问题。知名脱口秀演员徐志胜携手森马推出《绒毛的歌》广告片,以其独特的幽默风格,试图为冬季羽绒服市场注入一股…

CEEMDAN +组合预测模型(Transformer - BiLSTM + ARIMA)

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD、EEMD、FEEMD、CEEMD、CEEMDAN的区别、原理和Python实现(一)EMD-CSDN博客 EMD、EEM…

解决linux服务器磁盘占满问题(详细,有效,100%解决)

应用场景: 在我们的日常开发中,我们的服务器总是在不知不觉中磁盘莫名奇妙少了很多空间,或者被占满了,如果这时候要想要存储什么文件,突然发现空间不够了。但我们通常也不知道那些文件占用的空间大,这时候…

Linux 内核态,用户态,以及如何从内核态到用户态,交互方式有哪些

一、Linux 内核态,用户态 Linux 内核态,用户态,以及如何从内核态到用户态,我来说下我的理解 很多面试官,面试也是照搬照套,网上找的八股文面试题,面试的人也是背八股文,刚好背到了&…

linux 虚拟环境下源码安装DeepSpeed

第一步:创建虚拟环境: conda create -n deepspeed python3.10 第二步:进入虚拟环境,安装Pytorch 2.3.1 # CUDA 12.1 conda install pytorch2.3.1 torchvision0.18.1 torchaudio2.3.1 pytorch-cuda12.1 -c pytorch -c nvidia 第…

OJ题:随机链表的复制—Java数据结构

目录 随机链表的复制 1. 完整题目 2.错误做法 3.第一次遍历 1.拷贝所有旧节点的val域 2. 串联老节点和新节点 3. 第一次遍历代码: 4.第二次遍历 1. 表示出新链表的节点 2. 表示出新节点的next,random 3. 通过映射关系赋值next,random 4. 第二次遍历代码…

DAY53WEB 攻防-XSS 跨站SVGPDFFlashMXSSUXSS配合上传文件添加脚本

知识点: 1、XSS跨站-MXSS&UXSS 2、XSS跨站-SVG制作&配合上传 3、XSS跨站-PDF制作&配合上传 4、XSS跨站-SWF制作&反编译&上传 XSS分类:https://www.fooying.com/the-art-of-xss-1-introduction/(失效了) …

案例实践 | 以长安链为坚实底层,江海链助力南通民政打造慈善应用标杆

案例名称-江海链 ■ 实施单位 中国移动通信集团江苏有限公司南通分公司、中国移动通信集团江苏有限公司 ■ 业主单位 江苏省南通市民政局 ■ 上线时间 2023年12月 ■ 用户群体 南通市民政局、南通慈善总会等慈善组织及全市民众 ■ 用户规模 全市近30家慈善组织&#…

【专题】计算机网络概述

1. 计算机网络的作用及其发展史 1.1. 计算机网络的作用 二十一世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。 网络现在已经成为信息社会的命脉和发展知识经济的重要基础。 信息时代以网络为核心。 (1) 网络 “网络”是一个统称…

selenium:操作滚动条的方法(8)

selenium支持几种操作滚动条的方法,主要介绍如下: 使用ActionChains 类模拟鼠标滚轮操作 使用函数ActionChains.send_keys发送按键Keys.PAGE_DOWN往下滑动页面,发送按键Keys.PAGE_UP往上滑动页面。 from selenium import webdriver from se…

数学考研高分突破:解题思维与速度的双重修炼

随着考研季的临近,众多考生为了在数学这一科目中取得高分,纷纷投入到紧张的复习中,如何在有限的时间内,既提高解题思维,又提升解题速度,成为了许多考生心中的难题,本文将围绕这一主题&#xff0…

绘制YOLOv11模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

一、本文介绍 本文用于绘制模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线。用以比较不同算法的收敛速度,最终精度等,并且能够在论文中直观的展示改进效果。支持多文件的数据比较。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化…

SpringMVC后台控制端校验-表单验证深度分析与实战优化

前言 在实战开发中,数据校验也是十分重要的环节之一,数据校验大体分为三部分: 前端校验后端校验数据库校验 本文讲解如何在后端控制端进行表单校验的工作 案例实现 在进行项目开发的时候,前端(jquery-validate),后端,数据库都要进行相关的数据…

【华为】静态路由配置

1.配置接入层: LSW1(LSW3同理): vlan batch 10 20 in g0/0/1 port link-type ac port default vlan 10 in g0/0/2 port link-type ac port default vlan 20 in g0/0/24 port link-type tr port tr allow-pass vlan 10 202.配置汇聚层&#xf…

v853扬声器调试

文章目录 1、前言2、环境介绍3、修改设备树4、使用tinymix测试扬声器 1、前言 本文记录v853下的扬声器调试。 2、环境介绍 硬件:韦东山v853 aicit板卡 软件:v853 tina sdk 3、修改设备树 扬声器使用的是v853内置的audio codec,原理图如…