stm32项目(8)——基于stm32的智能家居设计

目录

一.功能设计

二.演示视频

三.硬件选择

1.单片机

2.红外遥控

3.红外探测模块

4.光敏电阻模块

5.温湿度检测模块

6.风扇模块

7.舵机

8.WIFI模块

9.LED和蜂鸣器

10.火焰传感器

11.气体传感器

四.程序设计

1.连线方式

2.注意事项

3.主程序代码

五.课题意义


一.功能设计

本次设计的目标是想实现如下图所示的智能家居环境

本次设计所实现的功能:
        用红外遥控输入密码,密码正确,绿灯亮,系统工作,实现后面的功能,密码不正确红灯亮,不工作。
        红外避障检测到汽车靠近,自动抬杆
        检测光照强度,显示到TFTLCD屏幕上,天亮自动开窗
        检测温湿度数值,温度高,自动开风扇。
        火焰传感器检测到有火,烟雾传感器检测到有烟雾,蜂鸣器就报警。
       通过WIFI模块连接到原子云, 从云端远程控制开门、开窗,同时将温度 湿度 光照信息上传到原子云显示

二.演示视频

完成后的演示视频如下:

基于探索者开发板的智能家居_功能演示

正点原子WIFI模块连接原子云的讲解

三.硬件选择

        所有硬件的实物图如下:

1.单片机

        单片机选择stm32f407,用的是正点原子的探索者开发板。

        正点原子探索者开发板(Atomic Explorer)是一款基于STM32系列微控制器的开发板。它由正点原子推出,旨在方便开发者进行嵌入式系统的开发和调试。

        该开发板采用了常见的DIP封装,具有丰富的外设和接口,包括数字量输入输出口、模拟量输入输出口、串口、SPI、I2C等接口,以满足不同项目的需求。开发板还配备了丰富的功能模块,如LED指示灯、继电器、按键、温湿度传感器等,方便开发者快速验证和验证项目的可行性。

        开发者可以使用开发板上提供的开发环境和开源库进行程序开发,也可以与其他常用开发环境(如Keil、IAR)配合使用。开发板支持C语言和汇编语言编程,开发者可以根据自己的需要选择合适的编程方式。

        总之,正点原子探索者开发板是一款功能丰富、易于使用的嵌入式系统开发工具,适用于学习、原型开发和小型项目开发等各种场景。

2.红外遥控

        红外遥控用的是买单片机自带的。

        通常红外遥控为了提高抗干扰性能和降低电源消耗,红外遥控器常用载波的方式传送二进制编码,常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用36kHz、40 kHz、56 kHz等,一般由发射端晶振的振荡频率来决定。所以,通常的红外遥控器是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。 

        红外接收设备是探索者板子上自带的,由红外接收电路、红外解码、电源和应用电路组成。红外遥控接收器的主要作用是将遥控发射器发来的红外光信号转换成电信号,再放大、限幅、检波、整形,形成遥控指令脉冲,输出至遥控微处理器。近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VOUT)。

3.红外探测模块

        红外探测模块检测到有车靠近时,自动抬杆。使用模块如下所示:

        该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3v-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。

        其原理图如下所示

4.光敏电阻模块

        光敏电阻模块如下图所示: 

        光敏电阻模块(Photoresistor Module)是一种基于光敏电阻原理的传感器模块。它是一种被广泛应用于光敏感测领域的组件,常用于测量环境中的光强度。

        光敏电阻模块通常由光敏电阻元件和调节电路组成。光敏电阻元件是一种能随着光照强度变化而改变电阻值的组件。当光照强度增加时,电阻值会减小;反之,当光照强度减小时,电阻值会增加。调节电路通常用于对光敏电阻的输出进行放大和转换。

        光敏电阻模块可以通过数字或模拟信号进行输出。在数字输出模式下,当光敏电阻检测到的光强度超过预设阈值时,输出高电平;否则,输出低电平。在模拟输出模式下,光敏电阻模块会输出一个与光强度成正比的电压或电流信号。

        光敏电阻模块广泛应用于自动调节和感知光照的场景中。例如,它可以用于光敏感控灯系统、光敏感自动窗帘系统、光敏感安防系统等。通过与其他模块或控制器结合,光敏电阻模块可以实现光强度的实时监测和光敏感应控制。

        只要用单片机的AD转换功能,检测该模块输出电压的大小,都可以知道环境光照强度大小。

5.温湿度检测模块

         温湿度传感器选择的是DHT11,实物图如下:

        DHT11是一款广泛应用于温湿度测量的数字温湿度传感器。DHT代表Digital Humidity and Temperature(数字湿度和温度),11表示其具有11位的输出精度。

        DHT11传感器由温湿度感测元件、AD转换电路和数字信号处理电路组成。它采用单总线传输方式,通过一个总线线路即可同时获取温度和湿度数据。DHT11的测量范围为温度0℃至50℃,湿度20%RH至90%RH。

        DHT11传感器的使用非常简单,只需将其三个引脚分别连接到供电(VCC)、地(GND)和数据(DATA)引脚即可。通过单总线协议,可以通过读取引脚上的数字信号来获取温度和湿度值。通常情况下,开发者需要使用相应的库或驱动程序来与DHT11传感器进行交互,以便读取温湿度数据并进行进一步的处理和应用。

6.风扇模块

        风扇模块实物图:

         这种风扇自带驱动,直接用单片机IO口就可以控制它的转动,非常方便,不需要外加驱动模块,可以大大提高便利性。

7.舵机

        本次使用小型数字舵机。实物:

 

 可见,只要给该舵机一定时间的高电平,就能控制舵机转动到对应的角度!

8.WIFI模块

        WIFI模块使用正点原子的WIFI模块,实物图如下:

      

        WIFI模块(Wireless Fidelity Module)是一种用于无线网络通信的模块,可以使设备具备无线网络连接的能力。

        WIFI模块通常与设备的主控芯片或微控制器结合使用,通过无线局域网(WLAN)技术实现设备与网络的连接。它可以通过无线方式传输数据、接入互联网、与其他设备进行通信等。

        WIFI模块的工作原理主要基于标准的无线网络协议(如IEEE 802.11系列标准),其中常见的协议包括802.11b、802.11g、802.11n和802.11ac等。这些协议定义了WIFI模块与其他设备之间的通信规范,包括使用的频段、数据传输速率、安全认证等。

        使用WIFI模块,设备可以利用现有的无线网络基础设施(如无线路由器)与互联网进行连接,以实现各种应用场景。例如,智能家居设备可以通过WIFI模块连接到家庭无线网络,实现远程控制和监控;物联网设备可以通过WIFI模块与云服务器进行通信,实现数据传输和远程控制等。

       在探索者板子上,WIFI模块使用的是串口三,所以到时候直接用串口三控制这个WIFI模块就可以了。 

        在程序设计时,我用了一个按键控制了WIFI模块的连接,按下K0,才进行WIFI模块连接到原子云这一步工作。

9.LED和蜂鸣器

        LED和蜂鸣器直接用板子上自带就即可。

10.火焰传感器

        火焰传感器是专门用来探测火源的传感器。火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为模拟电压信号输出。  本次使用的火焰传感器,火焰强度越大,输出的电压越低。火焰强度越小,输出的电压越大。是一个反比例关系。

        所以,当有火焰时,该模块输出低电平。单片机检测到低电平就可以进行相关的控制操作。 

11.气体传感器

        气体传感器使用的是MQ2,MQ-2气体传感器对气体敏感,能检测出包括天然气、甲烷、酒精在内的多种可燃性气体,是一款高性价比传感器。下图为MQ-2传感器的实物图:

        本次只使用了它的数字输出口,当传感器检测到有烟雾时就会输出低电平,单片机检测到这个低电平就知道有烟雾产生了。 

四.程序设计

1.连线方式

/**
 ****************************************************************************************************
 红外避障端口  数字输出端“D” 接到单片机PB3口
 汽车抬杆控制口为PB0
 光照传感器接PA5
 控制开窗的舵机接PB1
 温湿度传感器接PG9
 风扇的INA接PC0  INB 接PC2
 火焰传感器 数字输出端“D” 接PB6
 气体传感器 数字输出端“D” 接PB7
 
 控制大门的舵机接 PB2
 ****************************************************************************************************
 */

2.注意事项

//开机后,用遥控输入开机密码  初始密码为 123456 输入时 按键按下去的时间必须非常短暂,避免重复触发 密码输入完成后 按下遥控器电源键进行密码判断
//密码输入过程中 如果输错了数字 可以按下删除键进行删除
//密码输入正确后  按下KEY0键 进行WIFI连接 连接过程会在LCD上显示
//连接上原子云后  温度 湿度 光照会传到原子云显示  从原子云发送1 控制大门的舵机会打开  发送0  大门关闭

3.主程序代码

/******************************************************************************************************红外避障端口  数字输出端“D” 接到单片机PB3口汽车抬杆控制口为PB0光照传感器接PA5控制开窗的舵机接PB1温湿度传感器接PG9风扇的INA接PC0  INB 接PC2火焰传感器 数字输出端“D” 接PB6气体传感器 数字输出端“D” 接PB7控制大门的舵机接 PB2*****************************************************************************************************///开机后,用遥控输入开机密码  初始密码为 123456 输入时 按键按下去的时间必须非常短暂,避免重复触发 密码输入完成后 按下遥控器电源键进行密码判断
//密码输入过程中 如果输错了数字 可以按下删除键进行删除
//密码输入正确后  按下KEY0键 进行WIFI连接 连接过程会在LCD上显示
//连接上原子云后  温度 湿度 光照会传到原子云显示  从原子云发送1 控制大门的舵机会打开  发送0  大门关闭
#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
#include "./BSP/LCD/lcd.h"
#include "./BSP/BEEP/beep.h"
#include "./BSP/KEY/key.h"
#include "./BSP/ADC/adc.h"
#include "./BSP/DHT11/dht11.h"
#include "./BSP/SENSOR/sensor.h"
#include "./BSP/REMOTE/remote.h"
#include "./BSP/TIMER/btim.h"
#include "string.h"char mima[]="123456";               //密码
int  light_yuzhi=200;               //光照强度阈值(可根据实际情况修改)
int  temp_yuzhi=20;                 //温度阈值int main(void)
{uint8_t key;uint8_t flag=0;                 //若flag=1  说明输入的密码正确uint8_t i = 0;uint16_t adcx=0;                     //保存AD转换的值   该值的大小反应了光照强度uint8_t temperature=0;             //保存温度数据uint8_t humidity=0;                //保存湿度数据char str[]="";char *p;HAL_Init();                             /* 初始化HAL库 */sys_stm32_clock_init(336, 8, 2, 7);     /* 设置时钟,168Mhz */delay_init(168);                        /* 延时初始化 */usart_init(115200);                     /* 串口初始化为115200 */btim_timx_int_init(10 - 1, 8400 - 1); /* 84 000 000 / 84 00 = 10 000 10Khz的计数频率,计数10次为1ms */usart3_init(115200);		//WIFI 初始化 波特率必须为 9600led_init();                             /* 初始化LED */lcd_init();                             /* 初始化LCD */sensor_init();                           //各种开关量传感器初始化beep_init();                            /* 初始化蜂鸣器 */key_init();                             /* 初始化按键 */remote_init();                         /* 红外接收初始化 */dht11_init();                            //温湿度传感器初始化adc_init();                             /* 初始化ADC  采集光照强度要用到ADC */g_point_color = RED;lcd_show_string(50, 40, 300, 32, 32, "SMART HOME SYSTEM", RED);     //显示标题lcd_show_string(50,100, 300, 16, 16, "key:", RED);     //显示标题lcd_show_string(30, 160, 200, 16, 16, "Light_Intensity", BLUE);        //显示光照强度lcd_show_string(30, 180, 200, 16, 16, "Light_yuzhi", BLUE);        //显示光照强度阈值lcd_show_xnum(110, 180, light_yuzhi, 5, 16, 0, BLUE);      lcd_show_string(30, 200, 200, 16, 16, "Temp:  C", BLUE);            //显示温度lcd_show_string(30, 220, 200, 16, 16, "Humi:  %", BLUE);          //显示湿度lcd_show_string(30, 240, 200, 16, 16, "Temp_yuzhi:  C", BLUE);            //显示温度阈值lcd_show_num(30 + 84, 240, temp_yuzhi, 2, 16, BLUE); while (1){key = remote_scan();          //检测红外遥控是否有按键按下if(key)                     //如果按键被按下{switch (key){               case 22:str[i++] = '1';break;case 25:str[i++] = '2';break;case 13:str[i++] = '3';break;case 12:str[i++] = '4';break;case 24:str[i++] = '5';break;case 94:str[i++] = '6';break;case 8:str[i++] = '7';break;case 28:str[i++] = '8';break;case 90:str[i++] = '9';break;case 66:str[i++] = '0';break;case 74:str[--i] = ' ';       //如果按了回退键,那么指针左移一位 相当于删除最后一位数字                                     break;case 69:                 //69 是电源键      按下以后进行密码判断                if(strcmp(str,mima)==0)        //如果密码正确{flag=1;}else{flag=0;lcd_show_string(80, 100, 300, 16, 16, "        ", RED);     //清空前面输错的密码}i=0;strcpy(str,"");               //清空  便于下次输入密码                  break;}}lcd_show_string(80, 100, 300, 16, 16, str, RED);     //显示输入的密码if(flag==1){  LED1(0);         //密码正确 绿灯亮LED0(1);lcd_show_string(50,100, 300, 16, 16, "welcaom to my smart home system", RED);     lcd_show_string(30, 320, 200, 16, 16, "press key0 to connect wifi", BLUE);if(KEY0==0){lcd_show_string(30, 340, 200, 16, 16, "WIFI Connecting......", BLUE);           u3_printf("AT+CWMODE=1\r\n");delay_ms(3000);u3_printf("AT+CWJAP=\"FAST_0A5C\",\"123456789\"\r\n");      //FAST_0A5C改成你自己的WIFI名字  后面的一串数字改成你自己的WIFI密码delay_ms(8000);u3_printf("AT+ATKCLDSTA=\"22021955902980447838\",\"88888888\"\r\n");      //这里的数字是设备编号 和 设备密码  改成你自己原子云里面对应的就行delay_ms(3000);lcd_show_string(30, 340, 200, 16, 16, "WIFI Conneced!         ", BLUE);}if(Infrared==0)           //如果红外避障检测到有车{rod_ctrl(180);         //那么抬起杆子    (控制杆子的舵机接在PB0  角度控制范围为0-180°)}else{rod_ctrl(90);          //否则杆子不抬起}adcx = adc_get_result_average(ADC_ADCX_CHY, 10);   /* ADCX即为光照强度 范围为0-4095 值越大 代表光照越强 用手指蒙住传感器adcx为50左右 正常情况下为180左右   用手电筒照射,可达到3000多(设定光照阈值时 可供参考)*/lcd_show_xnum(160, 160, adcx, 5, 16, 0, BLUE);      /* 显示ADC采样后的原始值 */if(adcx>light_yuzhi)                           //光照强度阈值 我设置为100    window_ctrl(180);                            //开窗elsewindow_ctrl(90);             //关窗dht11_read_data(&temperature, &humidity);             /* 读取温湿度值 */lcd_show_num(30 + 40, 200, temperature, 2, 16, BLUE); /* 显示温度 */lcd_show_num(30 + 40, 220, humidity, 2, 16, BLUE);    /* 显示湿度 */if(temperature>temp_yuzhi)       //如果温度大于阈值{INB(1);INA(0);     //开风扇}else{INB(0);INA(0);     //关风扇}if(Fire==0 || Gas==0)BEEP(1);       //开启蜂鸣器elseBEEP(0);u3_printf("temp:%d,humi:%d,light:%d\r\n",temperature,humidity,adcx);       //向原子云发送数据}else{LED0(0);         //否则 红灯亮LED1(1);}delay_ms(1000);}
}

五.课题意义

        基于STM32单片机的智能家居课题具有以下意义:

        1. 提升生活品质:智能家居系统可以通过自动化和智能化的方式,优化家居环境,提供更加舒适和便捷的生活体验。例如,通过自动调节照明、温度和湿度等参数,提高室内的舒适度;通过远程控制和智能时间表,实现家电的智能化管理,提供更加方便的生活方式。

        2. 节能环保:智能家居系统可以通过智能控制和能耗监测,实现能源的有效利用和节约。例如,通过智能照明控制,合理调节灯光亮度和开启时间,降低能耗;利用智能化的能源管理系统,定时监控和控制家电的用电量,提高能源利用效率。

        3. 安全保障:智能家居系统可以提供更高的安全性和防护性。通过安防监控系统、智能锁、入侵报警等智能设备的联动,实现家居的安全防护功能,提供实时的安全监控和警报系统。

        4. 开发创新:基于STM32单片机的智能家居课题可以促使开发者深入研究和应用嵌入式系统、物联网以及传感器技术等方面的知识。通过设计和开发智能家居系统,创新出更加智能、高效和可靠的解决方案,推动技术的发展和应用。

        5. 学习与实践机会:智能家居课题为学生提供了学习和实践的机会。在实际项目中,学生可以通过设计、搭建和调试智能家居系统,提高嵌入式系统开发、网络通信、传感器应用等技能,培养解决问题和创新思维的能力。

        综上所述,基于STM32单片机的智能家居课题具有提升生活品质、节能环保、安全保障、开发创新和学习实践的重要意义,对于推动智能家居技术的发展和应用具有积极的推动作用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】线程的概念以及与进程的区别

目录 背景知识 什么是线程? 进程和线程的区别 线程的优缺点 背景知识 在了解线程前,我们要首先知道,OS是可以做到让进程进行细粒度划分的! 比如我们所说的进程地址空间中的堆区,它在进程PCB中的mm_structz中有一个start和…

re学习(30)攻防世界-hackme(代码复原2)

思路: 1.输出成功,v26不为0,说明关系式:v21((unsigned __int8)v24 ^ v20) →2.在汇编代码第37行,输入v16v20,所以求的值为v20 →3.根据关系式,求的值v20v21^v24 →4.v21在第汇编代码第36行也可以提取出来…

【时间格式引发的事故】

时间格式引发的事故 背景实战演示结论 背景 前不久写了一个删除数据接口,条件是根据时间删除时间后面的数据。入参是 时间字符串。后台的时间格式 是 yyyyMMdd。然后当时前端传参数的时候,随意的传了2023-07-31的时间,然后将该表的数据全部删…

servlet三大类HttpSevlet,HttpServletRequest,HttpServletResponse介绍

一、HttpServlet HttpServlet类是一个被继承的方法,可以看做一个专门用来响应http请求的类,这个类的所有方法都是为响应http请求服务的,要对一个某个路径谁知http响应时,需要写一个类来继承HttpServlet类,并重写里面的…

【深度学习】多粒度、多尺度、多源融合和多模态融合的区别

多粒度(multiresolution)和多尺度(multiscale) 多粒度(multiresolution)和多尺度(multiscale)都是指在不同的空间或时间尺度上对数据或信号进行分析和处理。其中 多尺度&#xff1…

ABPVNEXT-微服务框架基础入门

准备工作: 1.登录ABPvNext官网 网址 http://abp.io 2.跳转到商业版的说明文档,目前商业版没有中文,只能使用谷歌浏览器的内置翻译功能了 3.框架的相关环境要求,请自自行查看 适用于 Windows 的Visual Studio 2022 (v17.3) /…

战术的勤奋,弥补不了战略的重大缺陷

战术的勤奋,弥补不了战略的大缺陷 战略的懒惰,遍地都是 王兴说过:人为了逃避思考可以干任何事 趣讲大白话:局部优秀,改变不了整体 【趣讲信息科技252期】 **************************** 中小企业顶顶层设计薄弱 这也是…

最后一次模拟考试题解

哦我想这不用看都知道是为了水任务 T1 黑白染色 其实这题有原 什么手写体 md (指 markdown) 分析 首先这题如果你题目没看错的话 ,会发现其实他是 n m n \times m nm 让你求 n n n \times n nn 的区域内的点(不会只有我一个人题目看错了罢 然后我们会发现…

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …

MySQL中的索引

1.2.MySQL中的索引 InnoDB存储引擎支持以下几种常见的索引:B树索引、全文索引、哈希索引,其中比较关键的是B树索引 1.2.1.B树索引 InnoDB中的索引自然也是按照B树来组织的,前面我们说过B树的叶子节点用来放数据的,但是放什么数…

【JavaScript】一文详解事件循环机制

目录 一、是什么 二、同步任务和异步任务 三、宏任务和微任务 小结:微任务是跟屁虫,一直跟着当前宏任务后面代码执行到一个微任务就跟上,一个接着一个。 例子理解: 五、题目巩固 六、总结 一、是什么 首先JavaScript是一种…

使用自己的数据集预加载 Elasticsearch

作者:David Pilato 我最近在讨论论坛上收到一个问题,关于如何修改官方 Docker 镜像以提供一个现成的 Elasticsearch 集群,其中已经包含一些数据。 说实话,我不喜欢这个想法,因为你必须通过提 entrypoint.sh 的分叉版本…

UEFI: 模块和包概述

UEFI规范中有两个最重要的概念:模块(Module)和包(Package)。 模块 Module UEFI上最小的可单独编译的代码单元,或者是预编译的二进制文件比如efi执行文件。 包 Package 由模块、平台描述文件(DSC)和包声明…

Jenkins+Docker+SpringCloud微服务持续集成项目优化和微服务集群

JenkinsDockerSpringCloud微服务持续集成项目优化和微服务集群 JenkinsDockerSpringCloud部署方案优化JenkinsDockerSpringCloud集群部署流程说明修改所有微服务配置 设计Jenkins集群项目的构建参数编写多选项遍历脚本多项目提交进行代码审查多个项目打包及构建上传镜像把Eurek…

数据库线程池可用线程分析

1.事情的起源 项目在跑的过程中,突然间报没有可用的连接数。这个时候,服务进程还在,但是只要涉及到数据库的操作都会报错。 2.排查的思路 事件发生后,我们重启服务,监控的Connections数是258个,某台机器…

Latex安装与环境配置(TeXlive、TeXstudio与VS code的安装)编译器+编辑器与学习应用

TeXlive 配置Tex排版系统需要安装编译器+编辑器。TeX 的源代码是后缀为 .tex 的纯文本文件。使用任意纯文本编辑器,都可以修改 .tex 文件:包括 Windows 自带的记事本程序,也包括专为 TeX 设计的编辑器(TeXworks, TeXmaker, TeXstudio, WinEdt 等),还包括一些通用的文本编…

行业追踪,2023-08-10

自动复盘 2023-08-10 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

【图像恢复】基于交替乘子方法(ADMM)图像恢复算法研究[固定点收敛和应用](Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

《Python入门到精通》函数详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…

易服客工作室:7个优质WordPress LMS线上教育系统插件比较(优点和缺点)

您是否正在为您的 WordPress 网站寻找最好的 LMS 插件?在线学习管理系统 (LMS) 插件允许您使用 WordPress 创建和运行类似 Udemy 的在线课程。 一个完美的 WordPress LMS 插件包括管理在线课程内容、处理订阅、运行和评分测验、接受付款等功能。 在本文中&#xf…