基于AT89C52单片机的智能窗帘系统

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/89276984?spm=1001.2014.3001.5503
在这里插入图片描述
C 源码+仿真图+毕业设计+实物制作步骤+07
在这里插入图片描述

       智能窗户控制系统

学院(部):
专 业:
班 级:
指导老师:

年 月

目 录

一、 概述 1
1.1 引言 2

二、市场分析 3
2.1 当前窗户分析 4
2.2 市场需求 4

三、系统设计方案 6
3.1 功能描述 7
3.2 重要组成部分 8
3.3 实现方法 8
3.4 使用方法 9

四、设计特点 10
4.1 创新点 10
4.2 科学性 10
4.3先进性 10

五、推广前景 11
5.1安全性分析 11
5.2发展前景 11

六、结论 12
七、致谢 13
八、附录 14

                 一、 概述

1.1 引言
在我国智能家居也成为近年来一个最热门的话题之一,作为“居室眼睛”的窗户也成为了其中必不可少的一部分,引发了不少研究。
智能家居控制系统的应用让人们在家中能够享受到更安全、更舒适、更方便的生活,并且使生活更具有人性化,而现代家居中,窗户具有良好的装饰、采光和阻挡灰尘空气循环的主要途径,但同时也是盗窃非法进屋的一个重要途径,虽然现在很多家庭为了防盗通常采用钢筋结构的防盗网加固在窗户外,这样是起到了防盗功能,但一旦发生火灾等紧急情况,窗外的防盗网大大的降低了人们求生或逃生的机会,所以智能窗户的基本要求不能降低。但是当前大部分窗户控制系统在一定程度上不是很完善,而且没有安防检测功能,在发生意外时只是开窗或关窗,而使用者完全没有发现的意识;有的产品没有换风系统,如果当一氧化碳或烟雾超标时,不能以最快的速度排出室内的一氧化碳或烟雾,有的产品没有红外感应安防的功能,不能尽快的通知主人可能有小偷进家,所以“居室眼睛”智能窗户控制系统它能在下雨且家中无人时,自动关闭以防止雨水进入损坏室内财物,室内有害气体超标则自动开窗,有盗贼入内则自动报警,当室内温湿度过高或过低时,自动监测调节环境,使窗户真正的智能起来,就会给人们的居家生活带来诸多方便,从而进一步提高人们的生活质量。
关键词:STC89C52、居室眼睛、定时、1602液晶、遥控、智能
二、市场分析
2.1窗户分析
当前大部分窗户在有烟雾过大时,或者在下雨天有雨水溅入时都要通过手动去开窗或关窗。在空气比较闷热时(超过26°C),不能自动进行开窗以及通风换风,而且现在很多城市(揭阳、清远、韶关、广州,深圳等等)PM 2.5(可入肺颗粒物)季均浓度都超过了国家空气新标准规定的二级限值35微克/立方米,严重危害人体健康,而现在大部分窗户都没有过滤装置,为了提高人们的生活质量,我们可以通过在窗户上的换风装置上装一个PM 2.5过滤器,而且这个过滤器可以手动卸掉,进行定时清洁。现在大多数的窗户系统都没有安防的功能,当有小偷想从窗户进入偷窃,不能及时发现,造成很大的损失,所以在窗户上装红外检测防盗系统,能够及时报警,尽量避免不必要的损失等等。
2.2 市场需求
目前市场上智能家居虽然集成了家居生活有关的设施,但是对于各部分不能做到细致具体的设计,常常忽略了一些必要的功能(如烟雾检测功能、温湿度检测功能、红外检测报警功能、自动换气功能)或者不够人性化。而窗户是智能家居的一个重要的组成部分,因此更好地实现窗户的智能控制和安全防护提升家居安全性、便利性、舒适性、艺术性显得尤为重要。

三、系统设计方案

3.1功能概述

“居室眼睛”智能窗户控制系统分为两部分设计即电子自动控制部分和机械传动部分,电子控制部分使用STC89C52单片机为核CPU,集成多种传感器实现监测控制;机械传动部分设计在窗户上安装步进
电机,实现精确控制窗户和窗帘的开启。
设计实现如下功能:

1.显示温湿度、烟雾值 、亮度值 、系统时间
2.设定湿度、亮度值、烟雾上下限值功能
3.手动、红外遥控自动开|关窗户功能
4.定时开|关窗户功能
5.下雨时通过温湿度传感器窗户自动关窗功能
6.当室内亮度值达到设定值时自动开|关窗户
7.当室内烟雾|可燃气体达到设定值时,窗户自动开启并且报警
和启动换风功能
8.红外探测防盗报警功能

3.1.1设计原理以及组成结构:

智能窗户控制系统使用机械传动控制窗户的开关与窗帘的开合,机械部分由步进电机提供动力,通过设计动滑轮组在运动部件和窗架间进行传动。电子自动控制系统部分包含湿度温度探测传感器模块、光敏电阻传感器模块、烟雾探测传感器模块、红外检测防盗模块、换风控制模块。各传感器将探测到的变化反映到单片机口,由单片机根据信号的变化(即电平的高低)判断外界环境的变化,然后根据内部设定的程序发出命令,控制机械传动部分实现相应的动作。

系统总体框架如下图所示:

3.2重要组成部分
(1)探测电路设计:
3.2.1温湿度探测电路
使用DHT11数字温湿度传感器。该传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。单片机与DHT11之间的通讯和同步,采用单总线数据格式,一次传40位数据,高位先出。

3.2.2 光敏电阻电路
使用的探测元件是LY-C1光敏传感器。光敏电阻对周围环境光强最敏感,一般用来检测周围环境光强。输出状态灵敏度可调。在周围光强达不到阈值时,D0口输出高电平;光强超过阈值时,D0口输出低电平。依据此原理可以用来监测外界环境亮度,判断天色,当天黑时,信号端输出高电平。LY-C3传感器的D0端接单片机的P3.6口。单片机检测此IO口的变化自动控制窗户的开启与关闭。

3.2.3红外检测防盗电路

该部分自行设计了激光防盗电路,探测器由发射头、接收头组成。正常情况时,发射头发射红外线,接头接收红外线,探测器导通不动作。当有人挡住红外线时,接收头接收不到由发射头发射的红外线,探测器断开输出低电平信号。本系统中安装有两组红外探测器,两个接收头的输出端接单片机的P3.3口和P3.4口,可确保对整个窗户面实现防盗。

(2)控制及输出电路设计
3.2.4换风系统电路
主要原理是:用风机将空气抽入机器,通过内置的滤网过滤空气,主要能够起到过滤粉尘、异味、有毒气体和杀灭部分细菌的作用。

3.2.5 液晶显示电路
  液晶显示电路采用LCD1602液晶显示屏。其显示的内容为16X2,即可以显示两行,每行16个字符。
主要负责显示光度、系统时间、室内外温度和室外的湿度。

3.2.6 步进电机电路
本电路由两组ULN2003模块和24YBJ组成。

3.2.7红外遥控系统
红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管,接收部分的是红外接收管。
红外遥控的特点是不影响周边环境、不干扰其它电器设备、使用方便。

3.2.8蜂鸣器电路
蜂鸣器正极接高电平,负极接单片机P3.1端。

3.3.1软件程序
程序流程图

智能窗户系统工作:
接通电源后,单片机开始工作。步进电机模块启动,窗户首先关闭。湿温度传感器、烟雾传感器、光敏电阻、红外检测控制模块将检测到的信号传入到单片机中。湿温度传感器检测到室外湿度超过70%时,单片机控制步进电机关窗。当窗户与窗框完全接触时,两个关窗限位片导通,步进电机停止转动。当烟雾传感器探测到室内有可燃气体或浓雾超标时,单片机立刻发出开窗指令,窗户打开至两个开窗限位器接触时,停止电机转动,在此期间蜂鸣器进行报警,换风系统启动。在开窗的状态下,红外检测探头如果检测到有物体靠近,此时窗户自动关闭,并且蜂鸣器进行报警。进入夜晚时,在光敏电阻发出的信号后,关闭窗户。

3.4实现方法
智能窗户控制系统使用机械传动控制窗户的开关与窗户的开合,机械部分由步进电机提供动力,通过设计动滑轮组在运动部件和窗架间进行转动。实现通过传感电路不断循环检测室内光亮度、温湿度、有害气体(如媒气)浓度等信号,然后与由预先设置的参数临界值相比较,从而作出开/关窗的判断,再结合窗状态检测电路所检测到的当前窗状态,再输出脉冲信号调整步进电机,通过步进电机顺|逆转动带动滑轮组转动,从而使窗户开|关。

数据检测传感电路由四个部分组成:
(1)温湿度传感是放在窗户外面的,如在下雨天(湿度超过70%)时,能及时准确检测到温湿度变化,进行关窗动作;
(2)烟雾传感器是放在窗里面的,如有可燃气体泄漏|烟雾超过标准值时,通过步进电机顺时针旋转带动滑轮组在窗架转动使窗户打开,同时换风系统自动启动进行换气,蜂鸣器进行报警,发出声音;
(3)红外防盗探测头是放在窗户里面,当有小偷想通过窗户进来偷窃,可以及时发现,进行报警,并自动关窗;
(4)光敏电阻可以放在窗外|里面都可以,通过检测亮度,判断白天还是夜晚,自动关窗|开窗。换风系统是装在窗户最上面的,窗户上面要留一个适合风机大的可穿过位置。风机里面内置过滤网,并且可以卸装的。

3.5使用方法

1、可以通过红外遥控,直接对窗户进行开|关窗;

2、通过对按键的输入,预先设置的参数(亮度上|下限值、烟雾上限值、温湿度),校对时间标准,可以进行定时开|关窗;

3、可以通过手动按键进行开|关窗,及可以进行复位功能消除警报。       

四、设计特点
4.1创新点
将多个传感器和单片机相结合,来执行窗户的开或关,通过蜂鸣器报警,来提示人们所发生的变化,体现作品更加人性化设计。还有排|换风系统,在换风装置上增PM2.5过滤器,这个过滤器还可以卸掉进行定时清洁,进一步提高人们生活质量。

4.2科学性
现在的窗户大部分都是通过人为手动去关闭和打开的,但是当人不在家时,一旦发生意外时(煤气泄漏、有浓烟、下雨、有小偷…)时不能快速且有效的去关闭或打开窗户,为家庭带来很大的隐患,所以我们设计的窗户控制系统,完全可以满足大部分人的需求,当各个意外时,系统都会给予自动处理的。

4.3 先进性
(1)单片机与警报电路相结合,通过单片机空间窗户打开与关闭 。

(2)实现单片机与数据检测模块结合,有自动报警功能。

(3)实现单片机与单片机之间的相互通信。

五、推广前景
5.1安全性分析
每年发生数以万起因煤气泄漏引发的火灾和入室犯罪案件,都已表明对居家环境的安全防范迫在眉睫。有鉴于此,开发一套功能齐全的智能窗户无论是从经济价值角度分析,还是从治安的角度考虑,都有广泛的发展前景,如果智能家居安防系统能够得到广泛应用,必能会对犯罪分子形成强有力的威慑作用,减少入室盗窃、机动车盗窃等家居相关案件的发生,为构建社会主义和谐社会贡献一份力量。

5.2 发展前景
随着社会的发展,科技的进步以及人们生活水平的逐步提高,各种方便生活的自动控制系统进入了人们的生活,智能窗户已经深入一些高级写字楼,将来普通楼宇及家具的智能化必然是一种趋势。
但当前的窗户系统在一定程度不是很完善,有的该系统只有简单的开关窗功能,系统不是很完善,而且没有安防报警功能,在发生意外时只是开窗或关窗,而使用者完全没有发现所发生的意外,不能人为的去解除所产生的意外,而该智能窗户采用多个传感器和单片机的结合,通过传感电路不断循环检测室内光亮度、温湿度、有害气体(如媒气)浓度等信号,通过传感器检测到的信号给单片机命令,然后再由单片机去执行窗户的开或关,所以该智能窗户在家庭中很大一部分减轻了人们的压力,为人省去很多不必要的担心,同时加快了家庭中自动化的发展,该作品经济、节约、实用性强。 很是适用于家中窗户的智能化安装,实用性强,有广大的市场发展前景。

总结

智能窗户控制系统的设计通过硬件和软件的设计同时考虑多种情况,解决了大部分问题,经过多次调试和修改,成功的将多种传感器集成进系统中,完好的实现了各项功能设计。该智能窗让人在不同的环境状况中或出门在外时不用担心窗户的开合情况。让人在无法手动直接控制时能够通过红外遥控控制窗户;夜间发生入室行为时窗户会自动报警,为人们生活提供方便和安全;当不启用智能窗系统时,也可以通过手动对窗户进行开关,更具人性化。

针对一些老式窗户还存在一定难度进行改造实现使其具有智能化、人性化;但该窗户智能设计仍然具有较大的提升空间。例如:该智能窗户系统还可以在窗户玻璃上装震动传感器,当有小偷破窗而进时,能及时知道有人是在破窗而进并进行报警;也可以在窗户控制系统上安装GSM通信模块,当室内有害气体浓度过高时|有小偷入室偷窃时,可以及时通过短信通知主人;还可以将智能窗户控制系统与互联网连接起来,主人可以通过手机或终端对窗户的检测了解家里的情况,这样可以为人们的生活提供更多的安全保障。

致谢
在设计和说明书写作的整个过程中,指导教师老师在各个方面都给予了全面的指导和帮助。老师精深渊博的知识,求实创新、勤奋严谨的治学风范,忘我的工作作风时刻熏陶着我。老师因材施教、诲人不倦的授业精神给我们留下了深刻的印象,这将使我们受益终身 。 在此,特别感谢老师对我们在学习、工作上给予我们的热情关怀、指导与帮助。 另外,也感谢其他机电学院老师,以及同学在我们完成设计时提出了很多宝贵的意见和无私的帮助。
通过本次设计,让我们对本专业所学的内容进行一次全面地应用性实践,通过设计可以在实践中发现问题、分析问题和解决问题,从而提高这三方面的能力。在设计过程中,自己根据毕业设计任务中的内容和要求, 进一步掌握了电子产品设计的步骤和方法,学会选择和确定电子元器件的型号和规格,学会查找和运用有关设计手册和技术资料,开阔视野,增长知识。
在此,十分感谢指导老师对我们的精心指导和培养,使我们学到许多知识,得到了很好的锻练,给于我们平台磨练自己,这些都为我们以后走上工作岗位打下了良好基础。

附录:
制作模块如下图所示:
实体安装设计图:

部分程序:

#include <reg52.h>//库函数
#include <dht11.h> //库函数//如果 实物 打开
#define uchar unsigned char//宏定意
sbit rs=P2^0;//LCD 1602 引脚定意		
sbit rd=P2^1;//LCD 1602 引脚定意		
sbit lcden=P2^2;//LCD 1602 引脚定意
sbit menu=P2^5;	//主功能键	 

sbit IR=P3^5; //红外感 应
sbit BEEP=P3^1;// 报警
sbit pf=P3^0;	//排风
#define MOTORSTEP P1 			//宏定义,定义P1口为步进电机驱动端口

uchar  dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;// 各种变量标记 正返转标记
uint sudu,dwbrigfl,humfl;  //电机速度 //光度下限/湿度标记

uint hour,minit,secon,DSdat,VAldat ,time;//时钟变量

uint ONhour,ONminit,ONsecon; // 开窗时间变量
uint OFhour,OFminit,OFsecon; // 关窗时间变量
uchar   U8T_data_H,U8RH_data_H;

#define Inum3 3000 

void delay(uint z);// 开窗时间变量

void write_rvalue(); // 显示函数
//**************以下是各种字幕提示语数组************************
uchar code logo1[]= "Welcome to use  ";
uchar code logo2[]="window   system  ";
uchar code logo3[]="S=253T=85oCU=85%";
uchar code logo4[]="Br=     12:00:00 ";
uchar code logo5[]="window open      ";
uchar code logo6[]="window close     ";
uchar code logo7[]="GWbrig=    LUX  ";
uchar code logo8[]="UP-Hum=    %    ";

void delaymoto() 					//步进电机每一步间延迟函数
{  	
	uint y=sudu;
	while(y--);
}

uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步进电机驱动值数组
uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //步进电机驱动值数组

	 //**************************以下 温度度会上设定  和上面小时一样
	 //只是就量不一样 不作注释*******************************************
	 //**************				
	 	if(kval==16)
	 	{
			num4[4]=uptemp;
		 	write_rvalue();
			if(lofl==1)
			{
			 	write_com(0x80);
			  	for(num=0;num<16;num++)
				{
					write_date(logo11[num]);
					delay(2);
				}
				write_com(0x80+0x40);
				for(num=0;num<16;num++)
				{
					write_date(logo9[num]);
					delay(2);
					lofl=0;
				}
			}
			if(add==0)	
			{
				delay(10);			    
				if(add==0)
				{
					while(!add);						                
					uptemp++;
					num4[4]=uptemp;
					write_rvalue();
			        if(uptemp==100)
			        {uptemp=0;}
				 }
			} 
			if(dec==0)	
			{
				delay(10);
				if(dec==0)
				{
					while(!dec);						                
					uptemp--;
					num4[4]=uptemp;
					write_rvalue();
			        if(uptemp==0)
			        {uptemp=100;}
				}
			} 
		
 
void TEMPHRDSPLAY()		    //显示空气温湿度函数   写入1602
{  
    num1[4]=U8T_data_H;		//温度高8位,即是整数部分  
    num1[1]=num1[4]/10;	//整数十位
    num1[0]=num1[4]%10;	//整数个位
	
    write_com(0x80+0x40+7);				 //显示温度
	write_date(0x30+num1[1]);
	write_date(0x30+num1[0]);

	num2[4]=U8RH_data_H; 	//湿度高8位,即是整数部分  
    num2[3]=num2[4]/10;	//整数十位
    num2[2]=num2[4]%10;	//整数个位

    write_com(0x80+0x40+13);			 //显示湿度
	write_date(0x30+num2[3]);
	write_date(0x30+num2[2]);

}	
        if(Tc>Inum1&&Tc<Inum3) //判定是0该还是1 是0 1.125MS 是1  2.25MS
		{
			Im[m/8]=Im[m/8]>>1|0x80; m++;  //存0
		}
		if(Tc>Inum2&&Tc<Inum1) 
        {
			Im[m/8]=Im[m/8]>>1; m++; //	存1
		}
		if(m==32) 	//32位存储完毕
		{
			m=0;  
			f=0;
			if(Im[2]==~Im[3])  //反码检查
			{	 
				IrOK=1; 	//OK 完成
			}
			else IrOK=0;   //取码完成后判断读码是否正确
		}	//准备读下一码
	}	
}
/************************************************************************/
//************zheng 0X45; stop  0X46; fan  0X47   aut  0X43;









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

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

相关文章

【第5章】SpringBoot整合Druid

文章目录 前言一、启动器二、配置1.JDBC 配置2.连接池配置3. 监控配置 三、配置多数据源1. 添加配置2. 创建数据源 四、配置 Filter1. 配置Filter2. 可配置的Filter 五、获取 Druid 的监控数据六、案例1. 问题2. 引入库3. 配置4. 配置类5. 测试类6. 测试结果 七、案例 ( 推荐 )…

基于STM32实现智能交通灯控制系统

目录 引言环境准备智能交通灯控制系统基础代码示例&#xff1a;实现智能交通灯控制系统 GPIO控制交通灯定时器配置与使用红外传感器检测车辆用户界面与显示应用场景&#xff1a;城市交通管理与自动化控制问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌…

性能猛兽:OrangePi Kunpeng Pro评测!

1.引言 随着物联网和嵌入式系统的不断发展&#xff0c;对于性能强大、资源消耗低的单板计算机的需求也日益增加。在这个快节奏的技术时代&#xff0c;单板计算机已成为各种应用场景中不可或缺的组成部分&#xff0c;从家庭娱乐到工业自动化&#xff0c;再到科学研究&#xff0…

前端项目上线

目录 1项目打包 2本地服务器部署 2.1具体操作步骤 2.2解决刷新 404 问题 2.3请求无法发送问题 3nginx 服务器部署 3.2nginx 配置代理练习 安装nginx nginx部署启动项目 3.3nginx 部署前端项目 4云服务器部署 本地资源上传 配置服务器与nginx 1项目打包 ●我…

超频是什么意思?超频的好处和坏处

你是否曾经听说过超频&#xff1f;在电脑爱好者的圈子里&#xff0c;这个词似乎非常熟悉&#xff0c;但对很多普通用户来说&#xff0c;它可能还是一个神秘而陌生的存在。 电脑超频是什么意思 电脑超频&#xff08;Overclocking&#xff09;&#xff0c;顾名思义&#xff0c;是…

ctfshow web 月饼杯II

web签到 <?php //Author:H3h3QAQ include "flag.php"; highlight_file(__FILE__); error_reporting(0); if (isset($_GET["YBB"])) {if (hash("md5", $_GET["YBB"]) $_GET["YBB"]) {echo "小伙子不错嘛&#xff…

vivo X100 Ultra自称销售额破5亿,真实销量成谜?

文/张诗雨 5月28日9点&#xff0c;vivo 正式启动了其旗舰新机vivo X100 Ultra的全渠道销售工作。这款新机&#xff0c;早在5月13日就已正式亮相&#xff0c;并推出了三种存储容量的版本&#xff0c;分别是12GB256GB、16GB512GB以及16GB1TB&#xff0c;而相应的售价也不低&…

prompt提示词:如何让AI帮你提一个好问题

我们看完一篇文章的时候&#xff0c;有时候发给AI后&#xff0c;不知道如何问AI&#xff0c;不知道问哪些问题&#xff0c;你使用这个提示词&#xff0c;就可以让AI帮你想一个好问题&#xff0c;然后你用AI想好的问题再去问AI 能提出一个好的问题是非常难的 提示词 结合文章…

2024HBCPC:E Breakfast II

题目描述 作为一个合格的大学生&#xff0c;你不仅需要学习成绩好&#xff0c;还需要会买包子和鸡蛋。 今天&#xff0c;又轮到你们给你的导师买早饭了&#xff01; 这一次你们一共需要给导师买 n n n 个包子和 m m m 个鸡蛋&#xff08;请注意&#xff0c;这一次可能不再只…

基于vuestic-ui实战教程 - 页面篇

1. 简介 前面介绍了基本的内容比如如何获取动态数据&#xff0c;下面就到登录进来后的页面实现了&#xff0c;相信各位读者或多或少都有 element-uijs 的实战经历&#xff0c;那么 vuestic-uits 实现的页面又该如何写呢&#xff1f;带着疑问开启今天的学习&#xff08;声明由于…

开源VS闭源:谁将引领AI大模型的新时代?

一、引言 随着人工智能技术的飞速发展&#xff0c;AI大模型已成为推动这一浪潮的核心动力。在AI大模型的发展过程中&#xff0c;开源与闭源两种不同的发展路径一直备受关注。本文将深入探讨这两种路径的优劣势&#xff0c;分析它们对AI大模型发展的影响&#xff0c;并预测谁将…

采用java语言+B/S架构+后端SpringBoot前端Vue开发的ADR药品不良反应智能监测系统源码

采用java语言&#xff0b;B/S架构&#xff0b;后端SpringBoot前端Vue开发的ADR药品不良反应智能监测系统源码 ADR监测引擎每日主动获取检验数据、病历内容&#xff08;可拓展&#xff09;、以及其他临床数据&#xff0c;根据知识库内容自动判定患者是否有不良反应迹象&#xf…

Mesa软件框架以及重要数据结构分析

Mesa软件框架以及重要数据结构分析 引言 Mesa的实现比较复杂&#xff0c;其中还有许多的数据结构之间的关系逻辑还不是很清楚。感觉分析了又没有分析一样&#xff0c;这里我们再理一理&#xff01; 1.1 Mesa下EGL/GL核心数据结构和层级关系 MESA的核心数据结构很多很复杂&#…

【CSDN独家公开】Python解析.SchDoc格式文件转换为json文件

前情提要 因工作需求&#xff0c;需要解析.SchDoc格式文件&#xff0c;提取文本和位置关系&#xff0c;通常方式是转换为图片或PDF&#xff0c;再进行OCR&#xff0c;但是这样识别精度太低了 Github找了好些项目&#xff0c;都不支持 PyAltium不支持 https://github.com/plu…

每日一题 <leetcode--2326.螺旋矩阵>

https://leetcode.cn/problems/spiral-matrix-iv/ 函数中给出的int* returnSize和int** returnColumnSizes是需要我们返回数值的&#xff0c;这点需要注意。其中int** returnColumnSizes 是需要额外开辟一块空间。 这道题我们首先需要malloc出一快空间来把链表存放在数组中&…

元宇宙vr美术虚拟展馆激发更多文化认同和互鉴

科技引领创新潮流&#xff0c;借助前沿的Web3D技术&#xff0c;我们为用户打造了一个沉浸式的纯3D虚拟空间体验平台&#xff1a;元宇宙线上互动展厅。您只需通过网页即可轻松访问这个充满未来感的互动平台。 在这个独特的虚拟环境中&#xff0c;用户可以轻松创建个性化角色&…

Android 13 sysprop_library新增属性

前提 我们在androidP及之前的版本&#xff0c;平台侧及应用层开发习惯于通过调用&#xff08;或者反射&#xff09;SystemProperties系统API的方式进行系统属性的读写。Android R以后&#xff0c;平台侧代码采用了一种将系统属性封装成类方法的形式供开发者调用。 Android R以…

I.MX6ULL模仿 STM32 驱动开发格式实验

系列文章目录 I.MX6ULL模仿 STM32 驱动开发格式实验 I.MX6ULL模仿 STM32 驱动开发格式实验 系列文章目录一、前言二、模仿 STM32 寄存器定义2.1 STM32 寄存器定义简介2.2 I.MX6Ul 寄存器定义2.3硬件原理图2.4实验程序编写 三、编译下载验证 一、前言 使用 C 语言编写 LED 灯驱…

深度学习——自己的训练集——图像分类(CNN)

图像分类 1.导入必要的库2.指定图像和标签文件夹路径3.获取文件夹内的所有图像文件名4.获取classes.txt文件中的所有标签5.初始化一个字典来存储图片名和对应的标签6.遍历每个图片名的.txt文件7.随机选择一张图片进行展示8.构建图像的完整路径9.加载图像10.检查图像是否为空 随…

消息队列实战应用

适用场景 耗时长&#xff0c;非核心业务&#xff0c;生产者不会用到消息处理结果的情况下&#xff0c;可以将消息交给异步服务去缓存与消费 部署MQ服务 version: "3.0" services:rabbitmq:container_name: rabbitmq-15672-1image: rabbitmq:3-managementports:- &…