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

news2024/11/24 4:11:49

目录

一.功能设计

二.演示视频

三.硬件选择

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 初始化 波特率必须为 9600
    led_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);                            //开窗
         else
            window_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);       //开启蜂鸣器
         else
            BEEP(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.coloradmin.cn/o/861521.html

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

相关文章

学习pytorch 3 tensorboard的使用

tensorboard的使用 1. 安装2. add_scalar 查看函数图形3. 查看结果4. add_image() 查看训练步骤中间结果的图片 1. 安装 pytorch conda环境 pip install tensorboard pip install opencv-python2. add_scalar 查看函数图形 常用来查看 train val loss等函数图形 from torch…

Mr. Cappuccino的第60杯咖啡——Spring之BeanFactory和ApplicationContext

Spring之BeanFactory和ApplicationContext 类图BeanFactory概述功能项目结构项目代码运行结果总结 ApplicationContext概述功能MessageSource(国际化的支持)概述项目结构项目代码运行结果 ResourcePatternResolver(匹配资源路径)概…

基础实验篇 | QGC实时调整控制器参数实验

PART 1 实验名称及目的 QGC实时调整控制器参数实验:在进行硬件在环仿真和真机实验时,常常需要在QGC地面站中观察飞行状态,并对控制器参数进行实时调整,以使得飞机达到最佳的控制效果,但是,在Simulink中设…

网络编程的一些基础知识

什么是协议 协议就是一种网络交互中数据格式和交互流程的约定,通过协议,我们可以与远程的设备进行数据交互,请求或者完成对方的服务(可以认为协议就是一种语言) 什么是端口和端口监听 在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机…

15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*

这个“ crontab -e ”是针对使用者的 cron 来设计的,如果是“系统的例行性任务”时, 该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性工作调度呢?当然不需要,你只要编辑/etc/crontab 这个文件就可以。有一点需…

防网络钓鱼身份验证是预防违规的关键

全球企业身份验证状况调查结果发现,超过一半的员工依赖不安全的身份验证方法。 Yubico 记录显示,澳大利亚 65% 的员工和新西兰 63% 的员工仍然依赖用户名和密码作为主要身份验证手段,超过了 59% 的全球平均水平。 尽管广泛的宣传活动和企业…

项目实战 — 消息队列(7){虚拟主机设计(1)}

目录 一、什么是虚拟主机 二、编写虚拟主机代码 🍅 1、准备工作 🍅 2、实现exchange相关操作 🎄实现创建交换机exchangeDeclare 🎄 实现 删除交换机exchangeDelete 🍅 3、实现queue相关操作 🎄实现…

【第二阶段】匿名函数隐式返回函数参数

1.匿名函数简单举例 fun main() {//第一种写法,count()获取字符长度val info"kotlin".count()println(info)//第二种写法,使用匿名函数val len"kotlin".count(){//it代表字符串中 k o t l i n 的字符itl}println(len) }执行结果 2.隐式返回 …

【LeetCode】236. 二叉树的最近公共祖先、 JZ36 二叉搜索树与双向链表

作者:小卢 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 题目描述: 给定一个二叉树…

【人工智能前沿弄潮】——生成式AI系列:Diffusers学习(1)了解Pipeline 、模型和scheduler

Diffusers旨在成为一个用户友好且灵活的工具箱,用于构建针对您的用例量身定制的扩散系统。工具箱的核心是模型和scheduler。虽然DiffusionPipeline为了方便起见将这些组件捆绑在一起,但您也可以拆分管道并单独使用模型和scheduler来创建新的扩散系统。 …

MySQL_数据类型

数值类型 类型有符号(SIGNED)取值范围无符号(UNSIGNED)取值范围大小描述TINYINT(-128,127)(0,255)1byte小整数值SMALLINT(-32768,32767)(0,65535)2bytes大整数值INT/INTEGER(-2147483648,2147483647)(0,429…

Redis_持久化(AOF、RDB)

6. Redis AOF 6.1 简介 目前,redis的持久化主要应用AOF(Append Only File)和RDF两大机制,AOF以日志的形式来记录每个写操作(增量保存),将redis执行过的所有指令全部安全记录下来(读…

将本地项目上传至gitee的详细步骤

将本地项目上传至gitee的详细步骤 1.在gitee上创建以自己项目名称命名的空项目2.进入想上传的项目的文件夹,然后右键点击3. 初始化本地环境,把该项目变成可被git管理的仓库4.添加该项目下的所有文件5.使用如下命令将文件添加到仓库中去6.将本地代码库与远…

【Node.js】低代码平台源码

一、低代码简介 低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作…

IDEA每次启动indexing解决办法

每次启动indexing很浪费时间。 解决办法 setting中搜索index 设置如下: 这样设置以后,启动速度明显快多了。 参考 https://blog.csdn.net/qq_45162113/article/details/121128721

【云原生】Docker 详解(二):Docker 架构及工作原理

Docker 详解(二):Docker 架构及工作原理 Docker 在运行时分为 Docker 引擎(服务端守护进程) 和 客户端工具,我们日常使用各种 docker 命令,其实就是在使用 客户端工具 与 Docker 引擎 进行交互。…

【LangChain概念】了解语言链️:第2部分

一、说明 在LangChain的帮助下创建LLM应用程序可以帮助我们轻松地链接所有内容。LangChain 是一个创新的框架,它正在彻底改变我们开发由语言模型驱动的应用程序的方式。通过结合先进的原则,LangChain正在重新定义通过传统API可以实现的极限。 在上一篇博…

统计学和机器学习之间的联系和区别

一、说明 老实说,我厌倦了几乎每天都在社交媒体和我的大学里听到这场辩论。通常,这伴随着一些模糊的陈述来解释这个问题。双方都为此感到内疚。我希望在本文结束时,您将对这些有些模糊的术语有更明智的立场。 二、论点 与普遍的看法相反&…

SpringCloud源码探析(九)- Sentinel概念及使用

1.概述 在微服务的依赖调用中,若被调用方出现故障,出于自我保护的目的,调用方会主动停止调用,并根据业务需要进行对应处理,这种方式叫做熔断,是微服务的一种保护方式。为了保证服务的高可用性,…

银河麒麟高级操作系统V10助力联通云建设打出组合拳

联通云基于“双引擎基座一云多芯”为不同行业场景提供可靠、高质量的应用上云服务。在核心代码进行了全面把控,定制多架构芯片应用适配模版,开发了计算、存储、网络、中间件等组件,全面适配自主化服务器和操作系统,提供云服务器、…