当前位置: 首页 > news >正文

【单片机毕业设计选题24016】-基于STM32和阿里云的采空区环境监测系统设计

系统功能:

系统分为主机端和从机端,主机端主动向从机端发送信息和命令,从机端

收到主机端的信息后回复温度,甲烷,一氧化碳,氧气和系统状态等信息。

同时主机端将这些信息上传至阿里云服务器。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

主机部分电路:

从机部分电路:

资料获取地址

主从机部分代码:

初始化代码:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();MX_USART3_UART_Init();MX_SPI1_Init();/* USER CODE BEGIN 2 *///uart2打开接收中断HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);InitOled();InitOledDisp();//初始化ESP8266ESP8266_Init();  HAL_Delay(100);OledFill(0x00);     //全屏熄灭  PCD_Init();/* USER CODE END 2 */

阿里云信息控制:

//====================================================================//     函数名称:    Aliyun_SendData//     函数功能:    发送数据//     入口参数:    需要发送的数据//     返回参数:    无//     说明:            //====================================================================void Aliyun_SendData(void){char pubTopic[200];sprintf(pubTopic, "AT+MQTTPUB=0,\""PUB_TOPIC"\",\""JSON_FORMAT"\",0,0\r\n", getTempVal, getHumiVal, getCH4Val, getCOVal, getO2Val, getSysSta);Usart2_SendString((unsigned char *)pubTopic, strlen((const char *)pubTopic));}

主机请求从机数据:

//主机发送请求数据给从机void uart3SendData(void){   uart3TxBuff[0] = UART3_HEADER_DEF;uart3TxBuff[1] = SLAVE_ADDR_DEF;uart3TxBuff[2] = 0x00;uart3TxBuff[3] = uart3TxBuff[0]+uart3TxBuff[1]+uart3TxBuff[2];uart3SendPacket(uart3TxBuff, 4);}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

相关文章:

【单片机毕业设计选题24016】-基于STM32和阿里云的采空区环境监测系统设计

系统功能: 系统分为主机端和从机端,主机端主动向从机端发送信息和命令,从机端 收到主机端的信息后回复温度,甲烷,一氧化碳,氧气和系统状态等信息。 同时主机端将这些信息上传至阿里云服务器。 主要功能模块原理图: 电源时钟烧…...

Leetcode3179. K 秒后第 N 个元素的值

Every day a Leetcode 题目来源:3179. K 秒后第 N 个元素的值 解法1:模拟 模拟 k 轮,数组保存上一次结果,然后计算当前轮次的结果。 代码: /** lc appleetcode.cn id3179 langcpp** [3179] K 秒后第 N 个元素的值…...

vue3第二阶段的开发文档

1 2.1 案例——学习计划表 2.1.1 准备工作 在开发“学习计划表”案例之前,需要先完成一些准备工作,具体步骤如下。 ① 打开命令提示符,切换到 D:\vue\chapter02 目录,在该目录下执行如下命令,创建 项目。 np…...

【网络安全学习】漏洞扫描:- 02- nmap漏洞扫描

1.nmap的介绍 Nmap是一款功能强大的网络探测和安全扫描工具,可以对目标进行端口扫描、服务探测、操作系统指纹识别等操作。 Nmap自带了许多内置的NSE脚本,它们可以根据不同的目标和场景来执行不同的功能。这些脚本存放在Nmap安装目录**/usr/share/nmap…...

Web开发技能树-HTML-class/id/name/tag

1 需求 需求1:CSS查找HTML元素 *tagclassid派生选择器 需求2:JavaScript查找HTML元素 通过id找到HTML元素:document.getElementById()通过标签名找到HTML元素:getElementsByTagName()通过类名找到HTML元素:document.getElemen…...

据APO Research(阿谱尔)统计,2023年全球乳酸企业产能约119.3万吨

乳酸又称 2-羟基丙酸,一种天然有机酸,分子式是 C3H6O3。是自然界中最为广泛存在的羟基酸,于 1780 年被瑞典科学家 Scheele 首次发现。乳酸是自然界最小的手性分子,以两种立体异构体的形式存在于自然界中,即左旋型 L-乳…...

百度文心智能体平台(想象即现实):轻松上手,开启智能新时代!创建属于自己的智能体应用。

目录 1.1、文心智能体平台 1.2、创建智能体 1.3、智能体报名入口 1.4、古诗词小助手 1.5、访问我的智能体 在这个全新的时代里,人工智能技术正以前所未有的速度发展,渗透到我们生活的方方面面。无论是智能家居、自动驾驶,还是医疗诊断、…...

Linux中ls -lsa 和ls -lst区别

在Linux中,ls 命令用于列出目录内容。当与不同的选项组合时,它可以以不同的方式显示文件和目录的详细信息。 对于 ls -lsa 和 ls -lst,它们的主要区别在于显示的列和排序方式: ls -lsa: -l: 使用长格式显示文件和目录的详细信息。…...

TDengine 签约上海晶澳太阳能,助力储能业务平台搭建

在全球能源结构转型和碳中和目标的大背景下,太阳能作为清洁能源的重要组成部分,正逐渐成为新能源发展的关键。作为一个领先的数据处理平台,TDengine 最近与太阳能行业的领头羊晶澳太阳能科技股份有限公司开展了深度合作。这项合作旨在利用 TD…...

【数据结构】选择题

在数据结构中,从逻辑上可以把数据结构分为(线性结构和非线性结构) 当输入规模为n时,下列算法渐进复杂性中最低的是() 时间复杂度 某线性表采用顺序存储结构,每个元素占4个存储单元&#xf…...

数据库 |试卷八试卷九试卷十

1.基数是指元组的个数 2.游标机制 3.触发器自动调用 4.count(*)统计所有行,不忽略空值null,但不但要全局扫描,也要对表的每个字段进行扫描; 5.eacherNO INT NOT NULL UNIQUE,为什么不能断定TeacherNO是主码&#xff…...

【华为HCIA数通网络工程师真题-构建互联互通的IP网络】

文章目录 一、选择题 一、选择题 1、缺省情况下,广播网络上OSPF协议RouterDeadInterval是? 40s (ospf 的 RouterDeadInterval 为四倍 hello time 时间,hello time 周期默认为10s,所以 RouterDeadInterval 默认为 40s …...

Kafka 负载均衡挑战及解决思路

本文转载自 Agoda Engineering,介绍了在实际应用中,如何应对 Kafka 负载均衡所遇到的各种挑战,并提出相应的解决思路。本文简要阐述了 Kafka 的并行性机制、常用的分区策略以及在实际操作中遇到的异构硬件、不均匀工作负载等问题。通过深入分…...

【Java面试】二十一、JVM篇(中):垃圾回收相关

文章目录 1、类加载器1.1 什么是类加载器1.2 什么是双亲委派机制 2、类装载的执行过程(类的生命周期)3、对象什么时候可以被垃圾回收器处理4、JVM垃圾回收算法4.1 标记清除算法4.2 标记整理算法4.3 复制算法 5、分代收集算法5.1 MinorGC、Mixed GC、Full…...

深入理解预处理

1.预定义符号 C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&…...

DSP28335:定时器

1.定时器介绍 1.1 定时器工作原理 TMS320F28335的CPU Time有三个,分别为Timer0,Timer1,Timer2,其中Timer2是为操作系统DSP/BIOS保留的,当未移植操作系统时,可用来做普通的定时器。这三个定时器的中断信号分…...

系统架构理解

一、统一提前查好所有数据后续逻辑用到啥取啥,还是等用到对应数据的时候再查 1、用到啥查啥: 优势:减少依赖调用次数,减轻服务器压力;代码逻辑清晰,没有太多分支判断 劣势:无法避免串行调用&am…...

uni-app页面的跳转三种方式,功能作用有什么区别?

一、三种方式的作用 1、uni.reLaunch 作用是关闭所有页面,然后打开新的页面 类似于重新启动应用,打开的页面栈会被清空,只显示新打开的页面。使用uni.reLaunch方法可以实现整个应用的重定向 uni.reLaunch({url: /pages/login/login }) 2、…...

React 通信:深层传递(Props、Context、Children Jsx)

在之前的文章 探讨:围绕 props 阐述 React 通信 中总结了关于“父子”组件传值,但是当需要在组件树中深层传递参数以及需要在组件间复用相同的参数时,传递 props 就会变得很麻烦。 实际案例: 下述展示有两种状态:① 详…...

《Windows API每日一练》5.1 键盘基础

本节我们讲述关于键盘的一些基础知识。当我们按下一个键盘按键时,会产生一个键盘按键消息。这一点你能确定吗?假如是一个菜单快捷键消息,或者是一个子窗口控件消息呢?这就超出了本节讨论的范围,我们将在菜单和子窗口控…...

Class.forName()方法总结

Class.forName()方法总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!Class.forName()方法是Java反射机制中的一个重要方法,它用于动态加载类并返…...

Python | Leetcode Python题解之第168题Excel表列名称

题目: 题解: class Solution:def convertToTitle(self, columnNumber: int) -> str:ans list()while columnNumber > 0:columnNumber - 1ans.append(chr(columnNumber % 26 ord("A")))columnNumber // 26return "".join(an…...

【ARMv8/ARMv9 硬件加速系列 3.5.2 -- SVE 向量寄存器 有多少位数?】

文章目录 SVE 向量寄存器SVE 向量寄存器大小SVE 可伸缩性的好处SVE 寄存器长度示例SVE 向量寄存器 在 ARMv9 架构中,包括其 Scalable Vector Extension (SVE) 和 Scalable Vector Extension 2 (SVE2) 的增强,向量寄存器(通常称为 Z 寄存器)的大小设计为可伸缩的,以便在不…...

Vulkan入门系列2- 绘制三角形(未完待续)

概述: Vulkan的学习曲线是比较陡峭的,学习Vulkan刚开始像是在爬一个陡坡,等上了这个陡坡之后,后面学习曲线就相对比较平缓了。那么在Vulkan中绘制一个三角形,就相当于是在爬这样一个陡坡,因为绘制三角形需…...

企业UDP文件传输工具测速的方式(下)

在前一篇文章中,我们深入讨论了UDP传输的基本概念和镭速UDP文件传输工具如何使用命令行快速进行速度测试。现在,让我们进一步探索更为高级和灵活的方法,即通过整合镭速UDP的动态或静态库来实现网络速度的测量,以及如何利用这一过程…...

Artalk-CORS,跨域拦截问题

今天重新部署Artalk之后,遇到了CORS——跨域拦截的问题,卡了好一会记录一下。 起因 重新部署之后,浏览器一直提示CORS,之前在其他项目也遇到过类似的问题,原因就在于跨域问题。...

SSL证书怎样配置部署更安全?

在互联网上,SSL证书是用于加密网站与用户之间传输的数据的一种数字证书。它通过建立安全的连接,确保网站的身份和保护用户的隐私,是网站安全的重要组成部分。然而,要想让SSL证书发挥最大的作用,除了检查证书是否过期外…...

M1失效后,哪个是观察A股的关键新指标?

M1失效后,哪个是观察A股的关键新指标? 央地支出增速差(地方-中央支出增速的差值)或许是解释沪深300定价更有效的前瞻指标。该数值扩张,则有利于大盘指数,反之亦然,该指标从2017年至今对大盘指数…...

springboot集成积木报表,怎么将平台用户信息传递到积木报表

springboot集成积木报表后怎么将平台用户信息传递到积木报表 起因是因为需要研究在积木报表做数据筛选的时候需要拿到系统当前登录用户信息做筛选新的模块 起因是因为需要研究在积木报表做数据筛选的时候需要拿到系统当前登录用户信息做筛选 官网有详细介绍怎么集成进去的&…...

Spring Bean详解

Spring Bean作用域 默认情况下,所有的 Spring Bean 都是单例的,也就是说在整个 Spring 应用中, Bean 的实例只有一个 如果我们需要创建多个实例的对象,那么应该将 Bean 的 scope 属性定义为 prototype,如果 Spring 需…...

网站规划主要内容/搜索热度查询

开头我们举个例子。 例如:“现在我正在运行一个分类模型。在我的数据集里面一共有3类数据,这里我们称它们分别为A,B和C,但是在我的训练数据集里面A,B和C三类数据分别占了90%,5%和5%。在大多数情况下&#…...

网站权重怎么做/seo工程师是什么职业

现在的笔记本特别是轻薄本,明明一个核显就够了,但是有些还会加入入门级独显,为什么呢?轻薄本主打商务办公,有没有独显其实差异不大,那么加入独显是否浪费?显存Intel处理器的核心显卡虽然每一代进…...

wordpress+4.4.1+漏洞/百度推广图片尺寸要求

尝试登陆admin给出提示可知存在admin账号 尝试注入显示只能是数字和字母,先注册进去,给出提示 通过扫描目录可以发现/flag目录 查看session 要更改session就需要secret_key 经测试,发现在注册时邮箱位置存在sql注入(添加单撇号报错) 使用…...

wap端网站建设/企业微信会话内容存档

TIPS之前我们学的都是二叉树的顺序存储 ,实际上就是用数组来表示,现在都知道数组其实就是完全二叉树,二叉树的顺序存储仅仅适合用于完全二叉树与堆,并不适合一般的二叉树无论是大堆还是小堆,本质上的作用充当的都是选数。如果说用…...

网站 建设情况/免费友情链接平台

0 引言 前段时间找到了一个免费的天气预报API,费了好段时间把这个API解析并组装成自己想用的格式了,就想着如何实现每天发送天气信息给自己。最近无意中发现了wxpy库,用它来做再合适不过了。以下是wxpy库的简介: wxpy基于itchat&a…...

蔚县做网站/宁波seo软件

Excel 驼峰表达式 LEFT(A1,1)&MID(SUBSTITUTE(PROPER(A1),"_",""),2,100) posted on 2018-11-13 21:54 Alfa 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/wuyifu/p/9955044.html...