Stm32+Esp8266连接阿里云程序移植教程(MQTT协议)
- 一、前期准备
- 二、移植过程
- 三、程序的使用
- 3.1 连接上阿里云
- 3.2 传输用户数据到阿里云
- 3.3 解析从阿里云下发给用户的数据
- 3.4 关于调试接口
一、前期准备
- 自己要的工程文件
- 移植所需的文件(如下图)
获取方式见视频教程: 链接: 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打开串口