【单片机毕业设计选题24047】-基于阿里云的工地环境监测系统

系统功能:

基于STM32完成

主机(阿里云以及oled屏显示位置一):烟雾检测,温湿度检测,噪声检测,且用OLED屏显示,设置阈值,超过报警(蜂鸣器)。

从机(位置二):烟雾检测,温湿度检测,噪声检测,收集数据且用主机oled屏显示。

阿里云:主从机信息阿里云显示

两路继电器(只有主机端有):默认打开系统就有一个继电器吸合,烟雾检测超过了阈值,

则第二继电器吸合。

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

收到主机端的信息后回复温度,湿度,烟雾浓度,噪声值等信息。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器输出电路:

功能定制链接

系统主要功能模块代码

初始化代码:

  /* 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_ADC1_Init();

  /* USER CODE BEGIN 2 */

//uart2打开接收中断

    HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);

//uart3打开接收中断

    HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);  

    InitOled();

    InitOledDisp();

//初始化ESP8266

    ESP8266_Init();  

    HAL_Delay(100);

    OledFill(0x00);     //全屏熄灭   

    RELAY1_ON();

  /* USER CODE END 2 */

系统控制代码;
 

//系统信息更新

void SystemControl(void)

{

    static uint8_t updateCnt = 0;

    static uint8_t dht11Cnt = 0;   


//更新阿里云数据   

    updateCnt++;   

    if(updateCnt>=SYSTEM_UPDATE_INTER)

    {

        updateCnt = 0;

        Aliyun_SendData();

    }


//更新DHT11温湿度数据

    dht11Cnt++;

    if(dht11Cnt>=DHT11_UPDATE_INTER)

    {

        dht11Cnt = 0;

        if(DHT11ReadData()==0)  //DHT11温湿度读取OK

        {

            ;

        }

    }  

    ReadSensorVal();

}

阿里云上报系统数据:

//====================================================================

//     函数名称:    Aliyun_SendData

//     函数功能:    发送数据

//     入口参数:    需要发送的数据

//     返回参数:    无

//     说明:            

//====================================================================

void Aliyun_SendData(void)

{

    char pubTopic[512];


    sprintf(pubTopic, "AT+MQTTPUB=0,\""PUB_TOPIC"\",\""JSON_FORMAT"\",0,0\r\n", masterTemp, masterHumi, masterMQ2, masterVoice);

         Usart2_SendString((unsigned char *)pubTopic, strlen((const char *)pubTopic));

}

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

各功能模块资料:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/778600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

假阳性和假阴性、真阳性和真阴性

在深度学习的分类问题中,真阳性、真阴性、假阳性和假阴性是评估模型性能的重要指标。它们的定义和计算如下: 真阳性(True Positive, TP): 定义:模型预测为正类(阳性),且实…

【matlab】分类回归——智能优化算法优化径向基神经网络

目录 径向基(Radial Basis Function, RBF)神经网络 一、基本概念 二、网络结构 三、工作原理 四、学习算法 五、优点与应用 六、与BP神经网络的比较 智能优化算法 常见的智能优化算法 灰狼优化算法(Grey Wolf Optimizer, GWO&#…

基于工业互联网的智慧矿山解决方案PPT(38页)

文章摘要 工业互联网与智慧矿山 基于工业互联网的新一代智慧矿山解决方案,将互联网和新一代IT技术与工业系统深度融合,形成关键的产业和应用生态,推动工业智能化发展。该方案以“四级、三层、两网、一平台”为总体框架,强调应用目…

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则&…

MySQL基础篇(二)字符集以及校验规则

在MySQL基础篇(一)中,我们知道了如何创建数据库,这篇文章带大家了解创建的一些细节。 红色框:可省略,作用如果存在相同的数据库名称,就不会再创建,反之,创建。 蓝色框&…

#数据结构 链式栈

1. 概念 链式栈LinkStack 逻辑结构:线性结构物理结构:链式存储栈的特点:后进先出 栈具有后进先出的特点,我们使用链表来实现栈,即链式栈。那么栈顶是入栈和出栈的地方,单向链表有头有尾,那我…

Java + MySQL 实现存储完整 Json

Java MySQL 实现存储完整 Json 一、应用场景二、数据库配置三、后端代码配置1、maven 依赖2、实体类3、Service 实现类4、xml 文件 四、测试1、新增接口2、查询接口3、数据表内容 一、应用场景 将前端传过来的 Json 完整存储到 MySQL 中,涉及技术栈为 Java、MyBat…

Git中两个开发分支merge的原理

一 分支合并 1.1 原理 分支合并:就是将A分支修改后且commit的内容,合并到B分支,这些修改且提交的内容和B分支对应的内容和位置进行比较: 1.不一样的话,提示冲突,需要人工干预。 2.一样的话,…

python读取csv出错怎么解决

Python用pandas的read_csv函数读取csv文件。 首先,导入pandas包后,直接用read_csv函数读取报错OSError,如下: 解决方案是加上参数:enginepython。 运行之后没有报错,正在我欣喜之余,输出一下d…

LT8712 支持USB Type-C的DP到HDMI/VGA 用于对接站 适配器

描述 LT8712是一个DisplayPort(DP)到HDMI和VGA转换器,设计用于同时连接一个DP源到一个VGA收发器和最多两个HDMI收发器。LT8712集成了一个DP1.2兼容的接收器、一个高速三通道视频DAC和两个HDMI1.4兼容的发射器(发射器0和发射器1)。接收端口集成了CC控制器&#xff0c…

『古籍自有答案』古风H5案例赏析

「古籍自有答案」,一部由新京报与字节跳动公益联合打造的古风H5,以诗意盎然的开篇引领用户穿梭于千年文脉。 part1. 创意定位 "人生有惑问先贤,先贤答案存古籍",在这里,每一个灵魂的探问,都能在…

ElasticSearch 如何计算得分及一个不太成熟的使用

1.背景 最近在做 ES 相关东西,只最会在查询的时候给不同的字段设置不同的权重,但是得分具体怎么算的不太明白,花了4-5 天研究和总结了一下。这样不至于被别人问到“这个分数怎么算出来的?”,两眼一抹黑,不…

前端面试题19(vue性能优化)

Vue.js应用的性能优化是一个多方面的过程,涉及初始化加载、运行时渲染以及用户交互等多个环节。以下是一些关键的Vue性能优化策略,包括详细的说明和示例代码: 1. 懒加载组件 对于大型应用,可以使用懒加载来减少初始加载时间。Vu…

策略模式的应用

前言 系统有一个需求就是采购员审批注册供应商的信息时,会生成一个供应商的账号,此时需要发送供应商的账号信息(账号、密码)到注册填写的邮箱中,通知供应商账号信息,当时很快就写好了一个工具类&#xff0…

华为机试HJ34图片整理

华为机试HJ34图片整理 题目: 想法: 将输入的字符串中每个字符都转为ASCII码,再通过快速排序进行排序并输出 input_str input() input_list [int(ord(l)) for l in input_str]def partition(arr, low, high):i low - 1pivot arr[high]f…

基于深度学习LightWeight的人体姿态检测跌倒系统源码

一. LightWeight概述 light weight openpose是openpose的简化版本,使用了openpose的大体流程。 Light weight openpose和openpose的区别是: a 前者使用的是Mobilenet V1(到conv5_5),后者使用的是Vgg19(前10…

啥?你没听过SpringBoot的FatJar?

写在最前面: SpringBoot是目前企业里最流行的框架之一,SpringBoot的部署方式多数采用jar包形式。通常,我们使用java -jar便可以直接运行jar文件。普通的jar只包含当前 jar的信息,当内部依赖第三方jar时,直接运行则会报…

数字化精益生产系统--MRP 需求管理系统

MRP(Material Requirements Planning,物料需求计划)需求管理系统是一种在制造业中广泛应用的计划工具,旨在通过分析和计划企业生产和库存需求,优化资源利用,提高生产效率。以下是对MRP需求管理系统的功能设…

[FreeRTOS 功能应用] 事件组 功能应用

文章目录 一、基础知识点二、代码讲解三、结果演示四、代码下载 一、基础知识点 [FreeRTOS 基础知识] 事件组 概念 [FreeRTOS 内部实现] 事件组 本实验是基于STM32F103开发移植FreeRTOS实时操作系统,事件组实战操作。(当task1和task2同时完成,才执行ta…

Python爬虫教程第1篇-基础知识

文章目录 什么是爬虫爬虫的工作原理用途搜索引擎爬虫Robots协议HTTP的请求过程URL的含义HTTP常见请求头爬虫常用的技术 什么是爬虫 信息的交互是通过web网页、或者移动端等不同的客户端端形式进行交互,这个过程是一个人与网路正常的交互行为。而爬虫可以用来模拟人…