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

这篇具有很好参考价值的文章主要介绍了【HAL库】STM32+ESP8266+Onenet+MQTT,极简工程,hal库移植。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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快速使用

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

2 Cubemx配置

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

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

3 修改 .c.h 文件

移植时要修改的地方:

1 改所用串口

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

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

接收部分:用串口中断接收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名字和密码

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

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

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

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会显示设备在线。串口也会打印成功。

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

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

发送数据

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

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

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

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

接收数据文章来源地址https://www.toymoban.com/news/detail-436779.html

dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据
if(dataPtr != NULL)//如果返回数据不为空
	OneNet_RevPro(dataPtr);//平台返回数据检测

到了这里,关于【HAL库】STM32+ESP8266+Onenet+MQTT,极简工程,hal库移植。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 HAL库+ESP8266+华为云物联网平台

    文章内容:     STM32 HAL库通过串口发送AT指令完成与ESP8266的控制实现接入华为云物联网平台,并完成基本通信与控制,包括设备属性上报和命令下发解析与响应。     文末获取 “STM32 HAL库+ESP8266+华为云物联网平台keil工程 ”下载的链接。 一、华为云物联网平台 创建 产品

    2024年02月14日
    浏览(43)
  • 入门stm32:STM32hal库实现ESP8266与手机通信(不定长数据收发和ESP8266使用的一些问题)

    目录 前言 一、stm32cubeMX的串口配置 二、空闲中断+dma接收 三、ESP8266.c和ESP8266.h ESP8266.h ESP8266.c 注意事项 四、与手机通信例程 步骤:  例程代码main.c 运行结果 五、相关问题 总结 相关的app和源码         前提: 1.掌握串口通信和ESP8266的使用方法 串口通信:单片机串口通信

    2024年02月04日
    浏览(68)
  • 入门小白:STM32hal库实现ESP8266与手机通信(不定长数据收发和ESP8266使用的一些问题)

    目录 前言 一、stm32cubeMX的串口配置 二、空闲中断+dma接收 三、ESP8266.c和ESP8266.h ESP8266.h ESP8266.c 注意事项 四、与手机通信例程 步骤:  例程代码main.c 运行结果 五、相关问题 总结 相关的app和源码         前提: 1.掌握串口通信和ESP8266的使用方法 串口通信:单片机串口通信

    2024年02月07日
    浏览(54)
  • 基于STM32+ESP8266+FreeRTOS+安卓App上位机+MQTT连接OneNET的智能家居项目(软件开源篇附百度网盘链接)

      本篇文章主要是分享智能家居项目中的下位机STM32+FreeRTOS的代码部分。以下是项目最终的效果 stm32 esp8266 语音控制智能家居_哔哩哔哩_bilibili   另外附上main函数中的部分代码,完整代码会在文章末尾放上百度网盘链接,可以自行下载。 链接:https://pan.baidu.com/s/1IS-OMLy2_pyWyM

    2024年02月08日
    浏览(36)
  • 【STM32HAL库(智能家居)+DHT11传感器+ESP8266+Things Cloud云平台+手机APP】

     哔哩哔哩视频效果链接:http://【毕业设计——STM32温湿度采集系统】 https://www.bilibili.com/video/BV1Hy421i7sk/?share_source=copy_webvd_source=d711fa8bef565aeec8a4d279df8b85aa ~~大家可以给个关注,记得一键三连哦~~ 设计是一种基于STM32的无线温湿度检测系统以智能化、自动化、高效化为出发点,

    2024年04月09日
    浏览(47)
  • ESP8266与手机相互通信 透传模式(STM32F103C8T6 HAL库)有APP和完整代码

    一、目标         stm32f103c8t6用串口发送AT指令控制esp8266发送数据到手机APP上,同时手机也可以发送数据到stm32f103c8t6主控,控制LED的亮灭。          将esp8266模块的GND、VCC、TXD、RXD、CH-PD与单片机对应引脚连接,其中TXD与RXD要反接,模块在工作时CH-PD要处于高电平状态。 二、

    2024年02月16日
    浏览(38)
  • STM32+ESP8266+OneNet共同完成温度显示功能

    这次实验对应的是我的本科毕业设计,目标是完成一个温度测试平台,具有本地显示,远程显示,算法后台校正的功能。为了适应当前信息化的物联网发展方向,本文选择一款分辨率可调的高线性度CMOS温度传感器作为感温芯片,运用STM32F103C8T6作为微控制器主控芯片,使用W

    2024年02月20日
    浏览(81)
  • STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)_stm32 esp8266 onenet 温室

    系统启动后,单片机控制相关传感器进行环境参数的采集,将数据传回单片机处理后,通过OLED显示屏将相关环境指数实时显示。用户可以在手机端打开APP与本系统进行通信,更加便捷地查看监测数据。结构框图如下所示。 硬件部分包含主控芯片、传感器模块,OLED模块,WIF

    2024年04月23日
    浏览(42)
  • 2-STM32+ESP8266连接onenet并上传数据(HTTP)

    上一篇文章内容链接为下 1-ESP8266-AT指令初试化及部分基础知识 2-STM32+ESP8266连接onenet并上传数据(HTTP) ESP8266,onenet云平台,STM32三部分在结合使用前最好还是分别学习了解一下,效率更高,在开发过程中哪里有问题就有针对性了。 1、了解8266的基础知识(模式、初始化、操作

    2023年04月08日
    浏览(35)
  • STM32+ESP8266上传温湿度数据至新版OneNET

    本文详细介绍了,STM32连接新版OneNET平台上报温湿度数据的操作与步骤。 使用资源: STM32F103C8T6、ESP826612F、DHT11温湿度传感器 通讯协议: MQTT 数据格式: CJson 一、OneNET平台创建 1.  登录https://open.iot.10086.cn/,注册账号、登录。 2.  点击右上角的“开发者中心”进入产品开发界

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包