stm32上云实战篇

news/2024/7/16 7:16:28 标签: 嵌入式硬件, ide, stm32, 物联网, iot

文章目录

    • 1、使用官方提供的库连接
      • 1、获取官方例程
      • 2、移植文件
      • 3、配置数据上传还有数据下发
      • 4、最终配置
    • 2、使用MQTT固件进行解析
    • 3、尝试连接腾讯云
    • 4、尝试连接阿里云

1、使用官方提供的库连接

相信最开始用onenet的应该都是用的这个官方的库吧,特别熟悉的代码,目前网上也是非常的广为流传,之前也是用的这个办法,不过有段时间没摸过了,手又生疏了,因此这里就重新来做个记录试试:

1、获取官方例程

打开我们的控制台可以看到这是这里有这个文档中心,在文档中心我们可以获取到我们需要的东西!
在这里插入图片描述
进入这个社区,然后论坛里面就是我们想要的的了
在这里插入图片描述
官方例程这里提到的:
在这里插入图片描述
然后是这个开发板合集,这里又看到张大佬了,这里说下官方例程的好处就是他吧协议解析那个部分帮你做好了,所以我们使用的时候就基本调用就行了,而且还提供了一套完整的样例!
在这里插入图片描述
这样我们就进入到了这个下载页面了,这里无所谓的,下载之后选个最基本的程序就行了,不用选特别高大上的!

在这里插入图片描述

2、移植文件

这里主要就是移植他写的三个文件,一个是协议相关的,一个是硬件上8266相关的,然后就是跟平台相关的!
在这里插入图片描述
下面我们开始配置串口,这里他没有用DMA,确实标准库如果是第一次配置DMA是很麻烦的,这里他用的是串口中断接收的方式,但是我后面用的过程中出现了一点点的小bug,后面我会提到这个bug
在这里插入图片描述
这里我们还需要就是配置一个IO口来复位我们的esp8266,这里提一下,我用的esp8266是正点原子的,用这个的原因是只有一排引脚,往洞洞板上接线方便,然后刷的固件还是比较老的那种,没有用什么专门的固件。
在这里插入图片描述
下面就可以看到我们这个移植好的文件了,这里主要是删掉一些初始化的代码,然后修改对应的宏参数,这都是常规操作了
在这里插入图片描述
然后我们就可以开始就是修改这个我们在onenet上创建的一些东西了,首先是这个WIFI还有服务器地址
在这里插入图片描述
关于服务器地址,官方的文档中给出了说明,如下所示:
在这里插入图片描述
然后是我们在onenet上创建的一些设备还有产品信息这样的
在这里插入图片描述
最后就是在这个esp8266的初始化部分了
在这里插入图片描述
然后有些函数是hal库没有的,这里就需要我们来进行修改了,首先是这个字符发送函数:
在这里插入图片描述
然后是中断接收函数
在这里插入图片描述
==注意:==这里HAL库做的真是不太厚道,这个中断在默认情况是关闭的,就是即使你再cubemx中配置了中断,并且把它打开了,这个函数也不会进入,一般我们常见的都是就是使用那个中断回调函数嘛,那个过程就会打开这个中断!

所以我们就要注意,就是要这样在合适的地方打开接收中断!
在这里插入图片描述
至于为什么是这里,因为我在测试的过程中发现就是一开始就打开的话很容易出问题,就是这个复位后WIFI模块会发出一段这个产品信息,这个数据量太大了,会把这个接收缓冲区冲爆掉,所以就没必要这么早打开!

在这里插入图片描述

3、配置数据上传还有数据下发

首先是数据上传,我已在下面的图中标明,在onenet.c文件中
在这里插入图片描述
然后是数据接收
在这里插入图片描述
数据接收有一定格式,这里我们就按照他的来,用引号作为中介
在这里插入图片描述
下面是我使用过程的截图
在这里插入图片描述

4、最终配置

最后我们就可以配置初始话代码然后还有就是数据上传和接受了
在这里插入图片描述
我们打开设备就可以看到信息了
在这里插入图片描述
查看我们下发的命令
在这里插入图片描述

2、使用MQTT固件进行解析

这里首先是我们要准备这样的一个固件
在这里插入图片描述
下载配置如下所示:
在这里插入图片描述

接下来就是代码部分了,说实话这个又是失败的一次,不知道为啥订阅不上去
在这里插入图片描述
其中定义的主题信息为:
在这里插入图片描述
后面我又尝试了手工使用串口助手订阅,还是一直失败,不太清楚这个主题是什么
在这里插入图片描述

3、尝试连接腾讯云

腾讯云这里还是直接照着上次的来,首先用它官方的工具生成我们需要的数据
在这里插入图片描述
填入我们代码里面预设好的宏定义
在这里插入图片描述
这个个部分也可以就是参考我们在mqttfx里设置的:
在这里插入图片描述
之后就可以进行连接了,打开我们的设备管理就可以看到设备在线:
在这里插入图片描述
查看我们实现定义好的数据:
在这里插入图片描述
我们也可以看数据上传和下发的记录
在这里插入图片描述
设备打印这里也是完全OK的!
在这里插入图片描述

4、尝试连接阿里云

再弄这个之前这里有一点一定要注意特别重要,不看后悔死你,没错,就把我后悔死了!

具体就是这个选网络这块一定要慎重,这里选的什么就要是什么,详情我已经在图片中进行了说明!

在这里插入图片描述
这里我们用阿里云可以直接导出MQTT需要的参数
在这里插入图片描述
将导出的参数一一复制进入我们事先定义好的宏里面就可以了!
在这里插入图片描述
串口部分也可以看到数据正常打印
在这里插入图片描述
同时进入到设备页面也可以看到设备正常工作
在这里插入图片描述


http://www.niftyadmin.cn/n/980150.html

相关文章

51Nod-1264 线段相交

1264 线段相交 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交&#xff0c…

The underlying provider failed on Open错误

基本也就是数据库打开失败,链接错误一系列的问题。转载于:https://www.cnblogs.com/Chasel-Chen/p/6689059.html

Google Auth+openssh

为什么80%的码农都做不了架构师?>>> Google Authenticator,是一款开源的,可基于开放规则(如 HMAP/基于时间)生成一次性密码的软件。可运行在Android, iOS。Google AUth同时也支持PAM,使其能和其…

vscode和matlab联动-提高开发效率

文章目录1、原理2、正式安装3、配置vscode4、正式测试前几天有高中同学问我matlab的问题,从上完课之后就好久没摸过了,弄了好久才给他讲清楚,老尴尬了,正好又看到安富莱硬汉哥发了这个matlab和vscode联调的视频,觉得还…

改善C#程序的建议7:正确停止线程

开发者总尝试对自己的代码有更多的控制。“让那个还在工作的线程马上停止下来”就是诸多要求中的一种。然而事与愿违,这里面至少存在两个问题: 第一个问题是:正如线程不能立即启动一样,线程也并不能说停就停。无论采用何种方式通知…

二维几何问题的常用函数

二维几何问题的一些基本函数实现 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; const double eps1e-10; struct Point {//构造函数double x,y;Point (double x0,double y0):x(x),y(y){} }; typedef …

freopen重定向输入

#include <bits\stdc.h> using namespace std; int main() {freopen("C:\\Users\\dcf\\Desktop\\txt.txt","r",stdin);int n,mx0;while(cin>>n){if(n>mx)mxn;}cout<<mx<<endl;return 0; } freopen 可代替大量的数据输入转载于…

1214:凸包模板(Andrew算法)

1214: [视频]【计算几何】凸包 时间限制: 1 Sec 内存限制: 128 MB 提交: 92 解决: 55 [提交][状态][讨论版] 题目描述 【题意】 在一个平面坐标系上有n个点&#xff0c;用笔画一个多边形&#xff0c;使得多边形包含这n个点&#xff08;点在多边形的边上也算包含&#xff…