主頁 >  其他 > 畢業設計 - 題目:基于單片機的火災報警系統設計與實作

畢業設計 - 題目:基于單片機的火災報警系統設計與實作

2021-10-26 09:33:16 其他

文章目錄

  • 1 簡介
  • 2 緒論
    • 2.1 課題背景與目的
  • 3 煙霧傳感器介紹
    • 3.1 型別
    • 3.2 MQ系列傳感器介紹
    • 3.3 模塊介紹
  • 4 系統設計
    • 4.1 自診斷故障報警功能
    • 4.2 煙霧濃度顯示
    • 4.3 煙霧報警功能
    • 4.4 防止報警器誤報功能
    • 4.5 看門狗自檢單片機狀態功能
    • 4.6 與上位機通訊功能
    • 4.7 自動控制相關安全裝置的擴展功能
  • 5 軟體設計
    • 5.1 初始化流程
    • 5.2 傳感器資料濾波
    • 5.3 報警子程式
  • 6 實作效果
  • 7 部分相關代碼
  • 8 最后


1 簡介

Hi,大家好,這里是丹成學長,今天向大家介紹一個 單片機專案

基于單片機的火災報警系統設計與實作

大家可用于 課程設計 或 畢業設計

技術解答、畢設幫助、開題指導
print("Q 746876041") 

2 緒論

2.1 課題背景與目的

火災是指在時間或空間上失去控制的燃燒所造成的災害,在各種災害中,火災是最經常、最普遍地威脅公眾安全和社會發展的主要災害之一,人類能夠對火進行利用和控制,是文明進步的一個重要標志,火,給人類帶來文明進步、光明和溫暖,但是,失去控制的火,就會給人類造成巨大的災難,本系統是一個由單片機控制的火災煙霧濃度、溫度檢測系統,它將傳感器輸出地電壓信號進行A/D轉換、濾波、線性化,由單片機將電壓值轉換為氣體濃度和溫度送LED顯示,并判斷是否超過報警上限,若超過,則發出聲光報警,同時用戶可以自己設定報警上限和定時時間,使用戶可以根據實際情況方便的掌握安全狀況,本系統的設計能夠及時監測到系統故障和環境中有無火災,火災一旦發生將實作聲光報警,并采取有效措施控制火情的發展,將火災消滅在萌芽狀態,以確保人身財產安全,最大限度地減少損失,

目標

通過設計一個以 stm32單片機為核心外加 MQ-2 型半導體電阻式霧敏感器件的火災報警器可以實作聲光報警、 故障自診斷、 濃度顯示、 報警限設定、 延時報警及與上位機串口通信等功能,

是一種結構簡單、 性能穩定、 使用方便、 價格低廉、智能化的火災報警器, 具有一定的實用價值,

3 煙霧傳感器介紹

3.1 型別

煙霧傳感器種類繁多, 從檢測原理上可以分為三大類:

  • (a) 利用物理化學性質的煙霧傳感器: 如半導體煙霧傳感器、 接觸燃燒煙霧傳感器等,
  • (b) 利用物理性質的煙霧傳感器: 如熱導煙霧傳感器、 光干涉煙霧傳感器、 紅外傳感器等,
  • ? 利用電化學性質的煙霧傳感器: 如電流型煙霧傳感器、 電勢型氣體傳感器等,

3.2 MQ系列傳感器介紹

MQ系列傳感器使用的敏感材料是活性很高的金屬訊訓物半導體,傳感器加熱后,在不同氣體濃度中電導率不同,使用簡單的電路就可以將電導率的變化轉換成與該氣體濃度相對應的信號輸出了,

3.3 模塊介紹

MQ-2傳感器對可燃氣、煙霧等氣體靈敏度高,基于MQ-2的煙霧傳感器模塊通過電路設計,提供了兩種輸出方式:

  • 數字量輸出:通過板載電位器設定濃度閾值,當檢測到環境氣體濃度超過閾值時,通過數字引腳DO輸出低電平,
  • 模擬量輸出:濃度越高,AO引腳輸出的電壓值越高,通過ADC采集的模擬值越高,

4 系統設計

報警器系統結構框圖如下圖所示,系統以單片機為核心,配合外圍電路共同完成:

  • 信號采集
  • 濃度顯示
  • 時間顯示
  • 狀態顯示
  • 聲音及閃爍報警
  • 按鍵輸入
  • 故障自檢等功能,

報警器采用巡檢的作業方式,進行兩級報警值設定,并發出不同的光、聲信號,系統應采用高性能的單片機,要求作業穩定、測量精度高、通用性強、功耗低,保證報警器的精確性及可靠性,而且最好體積小,成本低有利于減少報警器的體積,降低報警器的成本

4.1 自診斷故障報警功能

當傳感器加熱絲或者電纜線發生斷線或者接觸不良的情況時, 報警器發出警報, 并且黃色指示燈閃爍, 提醒用戶檢查傳感器或者電路線接觸情況, 及時排除故障, 保證安全,

4.2 煙霧濃度顯示

通過液晶屏顯示可燃煙霧的濃度值, 并且可以切換到設定狀態, 通過鍵盤設定或者更改報警限值, 以便于用戶或檢測人員隨時觀測煙霧濃度及更改報警限,

4.3 煙霧報警功能

當煙霧濃度連續 20 秒取值都在報警限值之上, 蜂鳴器開始報警, 且聲音越來越急促,并且伴隨紅燈閃爍, 因為人對變化的信號更為敏感, 所以變化的聲音及燈光更容易引起用戶的注意,

4.4 防止報警器誤報功能

快速重復檢測及延時報警可以區別出是管道中可燃煙霧的泄漏, 還是由于打開閥門時的微量煙霧的散失,

4.5 看門狗自檢單片機狀態功能

呼叫單片機中的看門狗程式, 定時檢查單片機作業狀態, 一旦發現單片機出現死回圈狀態, 立即復位, 保證報警器作業正常,

4.6 與上位機通訊功能

可以實作與計算機串口通訊, 對報警器采取統一控制, 以及便于采集和處理資料, 也可以在計算機上更改報警限值等,

4.7 自動控制相關安全裝置的擴展功能

留有繼電器介面, 可以帶動排風扇或大功率蜂鳴器, 也可以控制管道電子閥門, 可在報警的同時自動啟動相關安全裝置,

5 軟體設計

主程式流程圖如圖所示,

首先要給傳感器預熱三分鐘, 因為 MQ-2 型半導體電阻式煙霧傳感器在不通電存放一段時間后, 再次通電時, 傳感器不能立即正常采集煙霧資訊,需要一段時間預熱, 程式初始化結束后, 系統進入監控狀態, 本論文的主程式設計先對傳感器預熱三分鐘, 預熱同時, 對傳感器加熱絲故障檢測, 采用軟體方式檢測傳感器加熱絲或電纜線是否斷線或者接觸不良,

5.1 初始化流程

5.2 傳感器資料濾波

在煙霧傳感器對煙霧濃度采樣時, 可能會遇到尖脈沖干擾的現象, 干擾通常只影響個別采樣點的資料, 此資料與其他采樣點的資料相差比較大,

5.3 報警子程式

當煙霧濃度超過報警設定值時, 報警器發出一種近似警笛的鳴叫聲, 對應通道的紅燈閃亮, 以提示操作人員采取安全對策或自動控制相關安全裝置, 從而保障生產安全, 避免火災和爆炸事故的發生,

6 實作效果

7 部分相關代碼


/************************************************
 
 作者:丹成學長,Q746876041
************************************************/

#ifndef __SMOKE_H
#define	__SMOKE_H


#include "stm32f10x.h"
#include "stm32f10x_gpio.h"


//正常狀態高電平,有煙霧低電平,單片機檢測到下降沿觸發中斷

//引腳定義
#define SMOKE_INT_GPIO_PORT         GPIOB
#define SMOKE_INT_GPIO_CLK          (RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO)
#define SMOKE_INT_GPIO_PIN          GPIO_Pin_4
#define SMOKE_INT_EXTI_PORTSOURCE   GPIO_PortSourceGPIOB
#define SMOKE_INT_EXTI_PINSOURCE    GPIO_PinSource4
#define SMOKE_INT_EXTI_LINE         EXTI_Line4            //中斷標志位
#define SMOKE_INT_EXTI_IRQ          EXTI4_IRQn

#define SMOKE_IRQHandler            EXTI4_IRQHandler

#define SMOKE_BIT  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)//讀取




void EXTI_SMOKE_Config(void);



#endif

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//功能:煙霧探測器模塊驅動
//作用:
//撰寫:MARK
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include "smoke.h"
#include "stm32f10x_gpio.h"

static void SMOKE_NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  /* 配置NVIC為優先級組1 */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* 配置中斷源*/
  NVIC_InitStructure.NVIC_IRQChannel = SMOKE_INT_EXTI_IRQ;
  /* 配置搶占優先級 */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  /* 配置子優先級 */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  /* 使能中斷通道 */
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

}

 /**
  * @brief  配置 IO為EXTI中斷口,并設定中斷優先級
  * @param  無
  * @retval 無
  */
void EXTI_SMOKE_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure; 
	EXTI_InitTypeDef EXTI_InitStructure;

	/*開啟GPIO口的時鐘*/
	RCC_APB2PeriphClockCmd(SMOKE_INT_GPIO_CLK,ENABLE);
	
	/* 配置 NVIC 中斷*/
	SMOKE_NVIC_Configuration();
	

	/* 選擇用到的GPIO */	
  GPIO_InitStructure.GPIO_Pin = SMOKE_INT_GPIO_PIN;
  /* 配置為浮空輸入 */	
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(SMOKE_INT_GPIO_PORT, &GPIO_InitStructure);

	/* 選擇EXTI的信號源 */
  GPIO_EXTILineConfig(SMOKE_INT_EXTI_PORTSOURCE, SMOKE_INT_EXTI_PINSOURCE); 
  EXTI_InitStructure.EXTI_Line = SMOKE_INT_EXTI_LINE;
	


	/* EXTI為中斷模式 */
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
	/* 上升沿下降沿中斷觸發 */
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
  /* 使能中斷 */	
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}

#include <stdio.h>
#include "stm32f10x.h"
#include "stm32f10x_it.h"
#include "./LED/LED.h"
#include "./usart3/usart3.h"
#include "./cJSON/cJSON.h"
#include "./millis/millis.h"
#include "./yun/yun.h"
#include "./systick/bsp_SysTick.h"
#include "./dht11/bsp_dht11.h"
#include "all_init.h"
#include "math_display.h"
#include "bsp_beep.h" 
#include "./stepmotor/stepmotor.h"
#include "smoke.h"

volatile u8 aRxBuffer[1024]={0x00};
volatile u8 RxCounter=0;
volatile u8 ReceiveState=0;

unsigned long lastCheckInTime = 0;   //記錄上次報到時間
unsigned long lastCheckStatusTime = 0; 
unsigned long lastSayTime = 0; 
unsigned long lastUpdateTime = 0;   //記錄上次上傳資料時間
const unsigned long postingInterval = 40000; // 每隔40秒向服務器報到一次
const unsigned long statusInterval = 100000; // 資料上傳間隔時間10秒
const unsigned long updateInterval = 5000;


/*用CJSON處理接收到的資訊*/
int processMessage(char *msg) {
    cJSON *jsonObj = cJSON_Parse(msg);
    cJSON *method;
    char *m;
    //json字串決議失敗,直接退出
    if(!jsonObj)
    {
        //uart1.printf("json string wrong!");
        return 0;
    }
    method = cJSON_GetObjectItem(jsonObj, "M");
    m = method->valuestring;
    if(strncmp(m, "WELCOME", 7) == 0)
    {
        //防止設備在線狀態未消除,先登出
        checkout();
        //防止連續發送指令過快
			  Delay_ms(50);
        checkin();
    }
    if(strncmp(m, "connected", 9) == 0)
    {
        checkout();
				Delay_ms(50);
        checkin();
    }
    //有設備或用戶登錄,發送歡迎資訊
    if(strncmp(m, "login", 5) == 0)
    {
        char *from_id = cJSON_GetObjectItem(jsonObj, "ID")->valuestring;
        char new_content[] = "Dear friend, welcome to BIGIOT !";
        say(from_id, new_content);
    }
    //收到say指令,執行相應動作,并進行相應回復
    if(strncmp(m, "say", 3) == 0 && millis() - lastSayTime > 10)
    {
        char *content = cJSON_GetObjectItem(jsonObj, "C")->valuestring;
        char *from_id = cJSON_GetObjectItem(jsonObj, "ID")->valuestring;
        lastSayTime = millis();
        if(strncmp(content, "play", 4) == 0)
        {
            char new_content[] = "led1 played";
            //do something here....
            Led_On(LED1);//板載LED1亮
            say(from_id, new_content);
        }
        else if(strncmp(content, "stop", 4) == 0)
        {
            char new_content[] = "led stoped";
            //do something here....
            Led_Off(LED1);//板載LED滅
            say(from_id, new_content);
        }
				else if(strncmp(content, "up", 2) == 0)
				{
					  char new_content[] = "led2 played";
            //do something here....
            Led_On(LED2);//板載LED2亮
					  say(from_id, new_content);
				}
				else if(strncmp(content, "plus", 4) == 0)
				{
					  char new_content[] = "led2 stoped";
            //do something here....
            Led_Off(LED2);//板載LED2滅
					  say(from_id, new_content);
				}
				else if(strncmp(content, "pause", 5) == 0)
				{
					  char new_content[] = "beep played";	
            macBEEP_ON();//打開蜂鳴器
					  say(from_id, new_content);
				}
				else if(strncmp(content, "right", 5) == 0)
				{
					  char new_content[] = "beep stoped";
            macBEEP_OFF();//關閉蜂鳴器 
					  say(from_id, new_content);
				}
				else if(strncmp(content, "down", 4) == 0)
				{
					  char new_content[] = "stepmotor played";	
            Motor_angle(-720,200);  //步進電機順時針	
					  say(from_id, new_content);
				}
				else if(strncmp(content, "forward", 7) == 0)
				{
					  char new_content[] = "stepmotor stoped";
            Motor_angle(720,200);  //步進電機逆時針
            say(from_id, new_content);					
				}				
    }
    if(jsonObj)cJSON_Delete(jsonObj);
    return 1;
}

int main(void)
{
    u8 i = 0;
		float wendu;
		float shidu;
	  int   yanwu;
	  int   chuanglian;
	  DHT11_Data_TypeDef DHT11_Data;	

	  all_init();                      //打包的全部初始化函式
    while (1)
    {
        //delay_ms(100);
        if (millis() - lastCheckInTime > postingInterval || lastCheckInTime == 0) 
					{
            checkin();
            lastCheckInTime = millis();
         }
        
        if (millis() - lastCheckStatusTime > statusInterval) 
					{
            check_status();
            lastCheckStatusTime = millis();
          }
				
				if( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS)//呼叫DHT11_Read_TempAndHumidity讀取溫濕度,
				                                                       //若成功則輸出該資訊	
		    {					
						display_num(DHT11_Data.temp_int,DHT11_Data.temp_deci,DHT11_Data.humi_int,DHT11_Data.humi_deci);
																																		 //螢屏顯示溫度和濕度值,封裝后的程式	
            if (millis() - lastUpdateTime > updateInterval)
						{					
									wendu = (float)DHT11_Data.temp_int + (float)DHT11_Data.temp_deci/10.0;
									shidu = (float)DHT11_Data.humi_int + (float)DHT11_Data.humi_deci/10.0;
									if(SMOKE_BIT == Bit_RESET)     //檢測到該引腳電平變低---有煙霧
									{	
											yanwu = 1;
									}
									else if(SMOKE_BIT == Bit_SET)     //檢測到該引腳電平變高---正常
									{
											yanwu = 0;
									}
									/*上傳三個介面的實時資料*/
									update4(DEVICEID, INPUTID_1, wendu, INPUTID_2, shidu, INPUTID_3, yanwu, INPUTID_4, chuanglian); 
									lastUpdateTime = millis();
					  }
		    }

        if(ReceiveState == 1)
        {
            ReceiveState = 0;
            i = 0;
            processMessage(aRxBuffer);
            RxCounter = 0;
        }			
    }
}

/*******************************************************************
篇幅有限,只展示部分代碼
作者:丹成學長,Q746876041
********************************************************************/



8 最后

技術解答、畢設幫助、開題指導
print("Q 746876041") 

單片機畢設專案大全:
https://blog.csdn.net/huawei123444/article/details/119822845

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/336317.html

標籤:其他

上一篇:啟明分享|ISP燒錄uboot遇到問題解決方法及sigmastar工具使用說明

下一篇:[JavaSE] 練手小專案 貪吃蛇小游戲

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more