【HAL库】STM32+ESP8266+Onenet+MQTT,极简工程,hal库移植。

2023-05-16

ESP8266+Onenet+MQTT

    • 1 导入.c.h文件(不再赘述,详细见LED部分)
    • 2 Cubemx配置
    • 3 修改 .c.h 文件
    • 4 测试

ESP8266通过MQTT协议连接Onenet。从标准库移到了HAL库,过程有点麻烦,整了一天。做完后整理了一下,这个极简的工程,方便以后开发,也希望能帮助到大家,节约时间。

代码工程:
https://github.com/wyfroom/ESP8266-Onenet-MQTT

该份代码硬件配置:
板子:STM32F103C8T6最小系统板。
外设:串口1用作调试,串口3用作esp8266。
esp8266:淘宝,esp-01s

1 导入.c.h文件(不再赘述,详细见LED部分)

在keil工程中导入之前写好的.c.h文件。这个是我从标准库移倒hal库的,直接从我工程里复制就行,很纯净,没有加多余的东西。下面介绍如何根据个人实际使用情况更改一些参数。

cubemx详细使用教程及所有模块整合见这篇:
【HAL库】HAL库STM32cubemx快速使用

image-20230408211617282

2 Cubemx配置

串口1用于调试,串口3用于ESP8266通信,打开中断。

基础的我就不配置了,可以看前面的详细讲解。

3 修改 .c.h 文件

移植时要修改的地方:

1 改所用串口

发送部分:在esp8266.c里,将huart3全部替换为要修改的串口号,比如串口2。

image-20230408212731847

接收部分:用串口中断接收esp8266发来的消息。随便在哪个文件夹填加串口回调函数,我个人是之前专门建了个uart.c文件放串口相关的所有代码。

加入下面的代码(串口号根据个人情况修改)

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart == &huart3)//esp8266接收云平台数据
		{
			if(esp8266_cnt >= sizeof(esp8266_buf))
			{            
				esp8266_cnt = 0; //防止串口被刷爆
			}
			esp8266_buf[esp8266_cnt++] = Uart3_RxData;

			HAL_UART_Receive_IT(&huart3,(uint8_t *)&Uart3_RxData, 1); //&取地址
		}
}

2 改wifi名字和密码

image-20230408211926168

3 改产品ID、设备ID、鉴权信息。

image-20230408212601399

4 测试

添加头文件

#include "onenet.h"
#include "esp8266.h"

添加初始化

别忘了开串口中断。

HAL_UART_Receive_IT(&huart3,(uint8_t *)&Uart3_RxData, 1);//开启串口中断
/* esp8266连接wifi+连接Onenet */
HAL_Delay(2000);
ESP8266_Init();					//初始化ESP8266,连接wifi
HAL_Delay(2000);
while(OneNet_DevLink())			//连接OneNET
HAL_Delay(2000);

连接成功的话,onenet会显示设备在线。串口也会打印成功。

image-20230408213614618

image-20230408220823254

发送数据

OneNet_SendData();	//发送数据
ESP8266_Clear();	//清空数据缓存区
HAL_Delay(3000);	//3s发送一次

image-20230408220926312

要发什么数据,在这里改:

image-20230408214852054

接收数据

dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据
if(dataPtr != NULL)//如果返回数据不为空
	OneNet_RevPro(dataPtr);//平台返回数据检测
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【HAL库】STM32+ESP8266+Onenet+MQTT,极简工程,hal库移植。 的相关文章

  • 无人机自动驾驶软件系列 E01:OFFBOARD控制以及Gazebo仿真

    引言 https gaas gitbook io guide software realization build your own autonomous drone wu ren ji zi dong jia shi xi lie off
  • 一定能解决ROS系统 rosdep update超时问题de简单方法

    rosdep update命令使用 该方法是可以跳过sudo rosdep init初始化命令设置的 xff0c 前提是安装ros xff1a https blog csdn net weixin 44023934 article deta
  • 使用速腾雷达32线Helios和fast-LIO2算法建图(一)

    一 配置激光雷达数据 参考链接Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 SLAM不学无术小问题 下载驱动文件内部也有使用说明 第一步 xff1a 下载rslidar sdk xff
  • linux下发各种协议包及其详细分析

    申明 xff1a 本实验在一个虚拟机环境下完成 xff0c ip分别为 192 168 26 1 和 192 168 26 132 一 以太帧格式的分析 1 抓取方法描述 在192 168 26 132浏览网页产生数据包 xff1b 通过w
  • 使用速腾雷达32线Helios和fast-LIO2算法建图(三)

    一 建图 1 源码下载 https github com hku mars FAST LIO 2 配置环境 步奏一 安装PCL gt 61 1 8 PCL的安装可以参考 可选 xff0c 建议考虑不用安装 https blog csdn n
  • Ubuntu 18.04 安装RealSense D435教程

    1 更新内核 运行代码 uname r 如果 gt 61 4 4 0 50的版本则ok xff0c 否则需要升级内核 2 更新cmake xff08 需要3 6以上版本 xff09 xff08 需要科学上网 xff09 首先下载cmake
  • Ros 与 STM32 之Ros串口同设备USB固定

    研究后发现Ros与STM32 都是通过串口 TTL转USB 的方式连接到USB A xff1a 有两种形式 一种 使用 ros kinetic serial 中的py 包用的ROS的serial功能包 B xff1a 另一种则是使用编写的c
  • ROS 动态参数 实时调参方式

    前言 xff1a 开发者常常需要动态调整参数以查看机器人在不同参数下的性能表现 xff1b 无论是通过YAML 文件配置参数还是通过节点句柄操作参数 xff0c 都会面临一个问题 xff0c 如果节点不主 动查询参数值 xff0c 就无法获
  • 上下文切换的概念

    上下文切换 xff08 也可以称作进程切换或任务切换 xff09 xff0c 它指的是 CPU 从一个进程 xff08 或线程 xff09 切换至另一个进程 xff08 或线程 xff09 上下文指的是某一时间点 CPU 寄存器和程序计数器
  • 多旋翼-六轴硬件选型

    挑战杯所用六轴 机架 定 桨叶机重 定 拉力 xff08 机重除以0 4 xff09 拉力 电池 桨叶 定 电机定 电调
  • 基于51的扫地车

    51复习 AT89S51系列单片机的ISP下载是通过P15 P16 P1 7 RST引脚来下载的 xff0c 而宏晶国产STC单片机则具有串口ISP功能 xff0c 可直接使用串口 xff0c 将程序下载进单片机 40个引脚 https b
  • pix2.4.8 从入手到装机(2021.4.4)

    2023 2 10 我重新完完整整的又走了一次 xff0c 记录了一下过程 xff1a 飞控是pix2 4 8 xff0c 固件是APM 原文 xff1a 咸鱼入手2套辣鸡pix xff0c 第一次使用并检查硬件好坏 xff0c 确认是否退
  • 焊板常用元器件(2021.4.6)

    钽电容 正负 xff1a 有线一端为正级 耐压 xff1a 2 Led Key buzzer 按键 xff1a 对角线焊到电路中 灯 xff1a 绿条是负 蜂鸣器 xff1a 区分有无源 xff0c 引脚 xff0c 有正负为有源 xff0
  • 恒温箱课程设计(2021.4.12)

    第一步 方案选择 淘宝闲鱼csdn 主要难点在于 xff1a 小控大是难点 xff0c 对执行器和驱动的选择 最终 电磁和固态继电器都不行 xff0c 要可控相位的继电器 xff0c 太贵了 只能固态了 xff0c if控制 xff0c 效
  • JVAV学习笔记(二)—接口

    JVAV学习笔记 xff08 二 xff09 接口 abstract class AbsDemo abstract void show1 abstract void show1 interface Inter public static f
  • CAD2020入门学习(2021.4.13)

    学习途径 xff1a 软件管家CAD2018网课 第一步 界面熟悉 第二步 新建 保存 关闭 第三步 基本操作 xff1a 鼠标 xff0c 命令 xff0c 相对坐标和极坐标 第四步 搜索 xff1a CAD快捷键 画直线 L画圆 C画弧
  • 32平衡车

    1 组装 底板和主板到了 xff0c 组装 xff0c 测试 问题 xff1a tb6612电容炸了 原因 xff1a xff1f xff1f xff1f xff08 1 xff09 钽电容纹波电流小 xff0c 扛过流能力弱 xff0c
  • 储物柜2022.1.1

    keil pack http www keil com dd2 pack keil 安装 httpsblog csdn netMatcha ice creamarticledetails118684582 Jlink驱动 https www
  • 【动手学深度学习】环境配置(详细记录,从vmware虚拟机安装开始)

    目录 装了很多次环境 xff0c 步骤已精简每一步都不可缺 xff0c 也得按顺序第一大步 xff1a VMware 安装 43 使用 VMware 下载及安装 ubuntu18 04 下载 VMware 使用 第二大步 xff1a ubu
  • 【物资投放无人机】记录( ROS + PX4 + YOLOV5 + ESP8266 + 舵机)

    目录 写在前面 xff1a 硬件环境写在前面 xff1a 软件环境一 无人机组装 调试 xff08 PX4或APM xff09 二 Jetson Nano 43 ROS 43 YOLO 目标检测实现 win10安装YOLOv5环境 训练模型

随机推荐