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

一、前期准备

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

在这里插入图片描述