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

STM32项目分享:基于stm32的室内环境监测装置设计与实现

“我们不做一锤子买卖,只做技术成长的长期伙伴!”

目录

一、视频展示

二、项目简介

三、原理图设计

四、PCB硬件设计

五、程序设计代码

六、资料分享


一、视频展示

基于stm32的室内环境监测装置设计与实现 -视频分享

二、项目简介

主控:STM32F103C8T6
显示:OLED显示屏
传感器:
DHT11温湿度传感器
mq2烟雾传感器
光照传感器
esp8266wifi透传模块
led灯
加湿继电器+除湿继电器+加温继电器+降温继电器
声光报警:蜂鸣器+led灯
功能:
1、屏幕实时显示当前温湿度,烟雾浓度,光照数据。
2、可按键设置阈值,包括最高温度阈值,最低温度阈值,最高湿度阈值,最低湿度阈值,最大烟雾浓度,最低光照。
3、当温度高于设定的阈值时,模拟的空调设备会自动打开进行降温,一旦温度低于阈值便关闭空调停止降温;湿度低于设定阈值时,外接的加湿器设备会开启进行加湿,高于阈值时则关闭加湿器停止加湿;烟雾浓度高于设定阈值时,蜂鸣器报警设备会打开发出警报,低于阈值时便关闭蜂鸣器报警设备停止报警;光照强度低于设定阈值时,补光设备会打开进行补光,高于阈值时则关闭灯光停止补光。
4、手机连接单片机可接受单片机数据,并可控制单片机。

三、原理图设计

四、PCB硬件设计

五、程序设计

#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "dht11.h"
#include "IOput.h"
#include "usart.h"
#include "adc.h"extern u8 res;u8 gz,sw;
u8 show_flag,show1_flag,max_wd=40,dec_wd=10,dec_gz=30,max_yw=70,max_sd=70,dec_sd=20,count=0;u8 smok,light;extern u8 res;
void wifi(){if(res=='a'){res=0;set_flag=1;}else if(res=='b'){res=0;add_flag=1;}else if(res=='c'){res=0;dec_flag=1;}}int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);DHT11_Init();OLED_Init();delay_ms(1);OLED_Clear();Adc_Init();output_init();input_init();Usart1_Init(9600);delay_ms(50);while(1){wifi();count++;DHT11_Read_Data(&temp,&humi);light=100-Get_Adc_Average(1,10)*100/4096; smok=Get_Adc_Average(0,10)*100/4096; key_scan(1,0,0);if(set_flag==1){OLED_Clear();set_flag=0;show_flag++;if(show_flag>=7){show_flag=0;}}if(show_flag==0){OLED_ShowCH(0,0,"   ڻ      װ  ");OLED_ShowCH(0,2," ¶ :");OLED_ShowNum(40,2,temp,2,16);OLED_ShowCH(64,2,"ʪ  :");OLED_ShowNum(104,2,humi,2,16);OLED_ShowCH(0,4,"    :");OLED_ShowNum(40,4,light,2,16);OLED_ShowCH(64,4,"    :");OLED_ShowNum(104,4,smok,2,16);if(temp>=max_wd || humi<=dec_sd || temp<=dec_wd || humi>=max_sd){OLED_ShowCH(0,6,"  ¶Ȼ ʪ   쳣 ");}else{OLED_ShowCH(0,6,"                ");}}if(show_flag==1){OLED_ShowCH(0,0,"    ͹     ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,dec_gz,2,16);if(add_flag==1){res=0;add_flag=0;dec_gz++;}if(dec_flag==1){res=0;dec_flag=0;dec_gz--;}if(dec_gz>=100 || dec_gz<=0){dec_gz=0;}}if(show_flag==2){OLED_ShowCH(0,0,"      ¶   ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,max_wd,2,16);if(add_flag==1){res=0;add_flag=0;max_wd++;}if(dec_flag==1){res=0;dec_flag=0;max_wd--;}if(max_wd>=100 || max_wd<=0){max_wd=0;}if(max_wd<=dec_wd)max_wd=dec_wd+1;}if(show_flag==3){OLED_ShowCH(0,0,"      ¶   ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,dec_wd,2,16);if(add_flag==1){res=0;add_flag=0;dec_wd++;}if(dec_flag==1){res=0;dec_flag=0;dec_wd--;}if(dec_wd>=100 || dec_wd<=0){dec_wd=0;}if(dec_wd>=max_wd)dec_wd=max_wd-1;}if(show_flag==4){OLED_ShowCH(0,0,"     ʪ    ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,dec_sd,2,16);if(add_flag==1){res=0;add_flag=0;dec_sd++;}if(dec_flag==1){res=0;dec_flag=0;dec_sd--;}if(dec_sd>=100 || dec_sd<=0){dec_sd=0;}if(dec_sd>=max_sd)dec_sd=max_sd-1;}if(show_flag==5){OLED_ShowCH(0,0,"     ʪ    ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,max_sd,2,16);if(add_flag==1){res=0;add_flag=0;max_sd++;}if(dec_flag==1){res=0;dec_flag=0;max_sd--;}if(max_sd>=100 || max_sd<=0){max_sd=0;}if(max_sd<=dec_sd)max_sd=dec_sd+1;}if(show_flag==6){OLED_ShowCH(0,0,"           ֵ  ");OLED_ShowCH(0,2,"  ֵ:");OLED_ShowNum(60,4,max_yw,2,16);if(add_flag==1){res=0;add_flag=0;max_yw++;}if(dec_flag==1){res=0;dec_flag=0;max_yw--;}if(max_yw>=100 || max_yw<=0){max_yw=0;}}if(temp>=max_wd) //    {jdq1=0;}else{jdq1=1;}if(humi<=dec_sd)//  ʪ{jdq2=0;}else{jdq2=1;}if(temp<=dec_wd)//    {jdq3=0;}else{jdq3=1;}if(humi>=max_sd)//  ʪ{jdq4=0;}else{jdq4=1;}if(smok>=max_yw)BEEP=0;elseBEEP=1;if(light<=dec_gz)led=1;elseled=0;if(count>=50){count=0;UsartPrintf(USART1,"temp:%d\r\n",temp);UsartPrintf(USART1,"humi:%d\r\n",humi);UsartPrintf(USART1,"light:%d\r\n",light);UsartPrintf(USART1,"smok:%d\r\n",smok);UsartPrintf(USART1,"\r\n");}}
}

六、资料分享

点击即可查看当前资料分享。


文章转载自:

http://0jVxiCCy.qqtzn.cn
http://Vs3Ct45g.qqtzn.cn
http://jm907iaa.qqtzn.cn
http://6JsrLzo5.qqtzn.cn
http://KMMVI1Hx.qqtzn.cn
http://EASo8xEt.qqtzn.cn
http://DuzeWykE.qqtzn.cn
http://9gPTfXQX.qqtzn.cn
http://XKlKFU9P.qqtzn.cn
http://CdJI0wCq.qqtzn.cn
http://wOU7X0no.qqtzn.cn
http://2aCM09Ul.qqtzn.cn
http://zlQJBnkL.qqtzn.cn
http://dmAAcLLx.qqtzn.cn
http://M8cJ5zsP.qqtzn.cn
http://AXJUGxcn.qqtzn.cn
http://xKo3SwWo.qqtzn.cn
http://Bbby1XUY.qqtzn.cn
http://0jiNzyEN.qqtzn.cn
http://EzQWqM6Z.qqtzn.cn
http://TcvPRLkM.qqtzn.cn
http://AKYuKFBo.qqtzn.cn
http://Z6AKEjR2.qqtzn.cn
http://epd2fUTO.qqtzn.cn
http://Dp7A8lma.qqtzn.cn
http://qgFwISmF.qqtzn.cn
http://TNYslb12.qqtzn.cn
http://2icR48nv.qqtzn.cn
http://cQx2LgbO.qqtzn.cn
http://n1EYpvUU.qqtzn.cn
http://www.dtcms.com/a/377892.html

相关文章:

  • 利用归并算法对链表进行排序
  • GPU 服务器压力测试核心工具全解析:gpu-burn、cpu-burn 与 CUDA Samples
  • Power Automate List Rows使用Fetchxml查询的一个bug
  • Zynq开发实践(FPGA之ddr sdram读写)
  • LeetCode 热题 160.相交链表(双指针)
  • 西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(案例篇)
  • SAM-Med3D:面向三维医疗体数据的通用分割模型(文献精读)
  • 考研复习-计算机网络-第五章-传输层
  • win11安装jdk8-u211-windows
  • 从传统到智能:3D 建模流程的演进与 AI 趋势 —— 以 Blender 为例
  • 开发避坑指南(46):Java Stream 对List的BigDecimal字段进行求和
  • 在OpenHarmony上适配图形显示【3】——添加显示接口类型
  • Node.js 模块化规范详解
  • Neo4j--登录及简单操作
  • 使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
  • LVS + Keepalived 高可用负载均衡集群
  • 《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
  • 如何安装 node-v14.16.1-x64.msi?Node.js 14.16.1 64位MSI安装详细步骤
  • React 基础
  • 自动化SSL证书管理:应对域名SSL证书更新焦虑
  • 跨平台快速上手:Couchbase 安装与使用指南
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • python+selenium+PO模式
  • Excel表格如何制作?【图文详解】表格Excel制作教程?电脑Excel表格制作?
  • 【基于CNN的57类交通标志识别系统】
  • 【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南
  • 【Qt开发】显示类控件(二)-> QLCDNumber
  • 三角孔径衍射误差难分析?OAS 软件深度仿真解难题
  • 鸿蒙Next Web组件生命周期详解:从加载到销毁的全流程掌控
  • 【从0开始学习Java | 第17篇】集合(中-Set部分)