【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

2024-05-27 19:12

本文主要是介绍【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、实物图

在这里插入图片描述
在这里插入图片描述

前端uniapp效果图(实现与onenet同步更新数据)

在这里插入图片描述

首先要确定接线图和接线顺序:
1、stm32c8t6开发板连接stlinkv2下载线

ST-LINK V2STM32
3.3V3.3V
SWDIOSWIO
SWCLKSWCLK
GNDGND

2、ch340串口连接底座(注意RXD和TXD的连接方式)

CH340底座
3.3V3.3V
RXDTXD
TXDRXD
GNDGND

3、https://open.iot.10086.cn/console/device/manage/devs
在onenet官网创建设备,名字地区随便写,创建成功后点击设备详情页面
在这里插入图片描述
4、产品开发栏进行添加属性
在这里插入图片描述
附上main.c一部分代码文件


//单片机头文件
#include "stm32f10x.h"//网络协议层
#include "onenet.h"//网络设备
#include "esp8266.h"//硬件驱动
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "dht11.h"
#include "oled.h"//C库
#include <string.h>#define ESP8266_ONENET_INFO		"AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"void Hardware_Init(void);
void Display_Init(void);
void Refresh_Data(void);u8 temp,humi;/*
************************************************************
*	函数名称:	main
*
*	函数功能:	
*
*	入口参数:	无
*
*	返回参数:	0
*
*	说明:		
************************************************************
*/
int main(void)
{unsigned short timeCount = 0;	//发送间隔变量unsigned char *dataPtr = NULL;Hardware_Init();				//初始化外围硬件ESP8266_Init();					//初始化ESP8266//	UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");OLED_Clear(); OLED_ShowString(0,0,"Connect MQTTs Server...",16);while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))DelayXms(500);
//	UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");OLED_ShowString(0,4,"Connect MQTT Server Success",16); DelayXms(500);OLED_Clear(); OLED_ShowString(0,0,"Device login ...",16);while(OneNet_DevLink())			//接入OneNET{ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");DelayXms(500);}OneNET_Subscribe();Display_Init();while(1){if(++timeCount >= 100)									//发送间隔5s{DHT11_Read_Data(&temp,&humi);//			UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");OneNet_SendData();									//发送数据timeCount = 0;ESP8266_Clear();}dataPtr = ESP8266_GetIPD(0);if(dataPtr != NULL)OneNet_RevPro(dataPtr);Refresh_Data();DelayMs(10);}}

这篇关于【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008342

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于