unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...

这是一个由sand编写的Unturned服务器自动化部署和配置工具,包括自动下载、安装、更新Unturned和Rocket,以及创建和配置服务器。工具检查目录是否存在特殊字符,验证APIKey和SteamCmd安装路径,允许用户输入服务器参数,如地图、模式、难度等,并创建开服快捷方式。此外,它还提供了创建和管理服务器的详细步骤。

@echo off

chcp 936

echo 设置编码完成!

title Unturned服务器部署工具 V9.4 by sand 图标来源于Unturned主程序

echo =========================================================================

echo               Unturned服务器更新工具 V2.7   by sand

echo            本bat仅为自动下载/安装/更新Unturned和Rocket

echo        config文件夹用于储存APIKey和安装目录(如果不需要可以手动删除)

echo             在使用过程中会自动释放扩展程序和vbs(wget.exe unzip.vbs)!

echo              在完成操作后会自动删除,请勿手动删除!

echo               请勿用作商业用途,如果有bug请告知!

echo =========================================================================

echo                          版权声明:

echo             Steam账号来源于fr34kyn01535的bat(Rocket的zip自带)

echo       解压zip代码来源于http://demon.tw/programming/vbs-unzip-file.html

echo       字符判断的代码来自http://www.bathome.net/thread-34099-1-1.html

echo        本bat原贴地址为http://www.mcbbs.net/thread-625354-1-1.html

echo =========================================================================

if exist "%cd%\wget.exe" (echo 扩展程序已发现。) Else (echo 无法找到扩展程序!请一并解压到同一文件夹!&pause&exit)

echo "%cd%">if

findstr /p /m "&" if>if1

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)

if exist "%cd%\config" (echo 已创建config目录。) Else (md "%cd%\config")

::创建Config目录。

set "c=%cd%"

::当前目录留存

:start

if exist "%cd%\config\APIKey" (echo 发现APIkey文件,已跳过APIkey的输入。) else (goto NAPIKey)

set /p APIKey=

if "%APIKey%" == "" set APIKey=空

echo 当前APIKey为%APIKey%

set /p CAPIKey=更改APIKey?(Y/N)

if "%CAPIKey%" == "Y" set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"&goto HAPIKey

if "%CAPIKey%" == "N" (goto HAPIKey) else (echo 你输入的字符必须为Y或N。&goto start)

:NAPIKey

set "APIKey="

set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"

if "%APIKey%" == "" set APIKey=空

:HAPIKey

echo "%APIKey%">if

findstr /p /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo APIKey格式验证通过!^(不代表可以使用^)) else (echo 错误的APIKey!&goto NAPIKey)

>"%cd%\config\APIKey" echo %APIKey%

:233

echo 你输入的APIKey已储存到config目录下。

set /p APIKey=

if exist "%cd%\config\Steamcmd" (echo 发现Steamcmd文件,已跳过Steamcmd安装目录的输入。) else (goto NSteamcmd)

set /p d=

:Ierror

echo 当前SteamCmd安装目录:%d%

set /p CSteamcmd=更改SteamCmd安装目录?(Y/N)

if "%CSteamcmd%" == "Y" set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"&goto HSteamcmd

if "%CSteamcmd%" == "N" (goto HSteamcmd) else (echo 你输入的字符必须为Y或N。&goto Ierror)

:NSteamcmd

set "d="

set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"

:HSteamcmd

if "%d%" == "" set "d=%cd%\Steamcmd"

echo "%d%">if

findstr /p /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto NSteamcmd)

::SteamCmd默认安装目录

if exist "%d%" (echo 目录"%d%"已存在,跳过创建目录。) Else (md "%d%")

cd /d "%d%"

set "d=%cd%"

set "a=%cd%\steamapps\common\Unturned"

set "Steamcmd=%cd%"

::Unturned安装目录

cd /d "%c%"

>"%cd%\config\Install" echo %a%

echo 你输入的Untruned安装目录已储存到config目录下。

>"%cd%\config\Steamcmd" echo %Steamcmd%

echo 你输入的SteamCmd安装目录已储存到config目录下。

cd /d "%d%"

title 下载SteamCmd和Unturned中...

if exist steamcmd.exe echo 检测到SteamCmd已安装,跳过下载&goto true

::该下载SteamCmd代码来自Rocket安装文件的脚本文件夹 作者fr34kyn01535

bitsadmin.exe /transfer "正在下载SteamCMD" https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip "%d%\steamcmd.zip"

::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html

>Unzip.vbs echo UnZip "%d%\steamcmd.zip", "%d%"

>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)

>>Unzip.vbs echo     Set fso = CreateObject("Scripting.FileSystemObject")

>>Unzip.vbs echo     If NOT fso.FileExists(myZipFile) Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf NOT fso.FolderExists(myTargetDir) Then

>>Unzip.vbs echo         fso.CreateFolder(myTargetDir)

>>Unzip.vbs echo     End If

>>Unzip.vbs echo     Set objShell = CreateObject("Shell.Application")

>>Unzip.vbs echo     Set objSource = objShell.NameSpace(myZipFile)

>>Unzip.vbs echo     Set objFolderItem = objSource.Items()

>>Unzip.vbs echo     Set objTarget = objShell.NameSpace(myTargetDir)

>>Unzip.vbs echo     intOptions = 256

>>Unzip.vbs echo     objTarget.CopyHere objFolderItem, intOptions

>>Unzip.vbs echo End Sub

call Unzip.vbs

del /f/s/q Steamcmd.zip>nul

del /f/s/q Unzip.vbs>nul

:true

steamcmd.exe +login unturnedrocksupdate force_update +app_update 304930 validate +exit

if exist "%d%\steamapps\common\Unturned\Unturned.exe" (echo Unturned安装成功) else (echo Unturned安装失败,请将SteamCmd安装目录设置到非中文且不带有^&的目录下!&pause&exit)

cd /d "%c%"

goto InstallRocket

:error

echo 你输入的字符必须为Y或N。

:InstallRocket

set /p Rocket=是否安装Rocket?(Y/N)

if "%Rocket%" == "Y" goto yes

if "%Rocket%" == "N" (goto no) else (goto error)

:yes

title 下载Rocket中...

if exist Rocket.zip del /f/s/q Rocket.zip>nul

wget http://api.rocketmod.net/download/unturned/latest/%APIKey%/Rocket.zip

del /s /q wget.exe>nul

title 正在安装Rocket...

cd /d "%a%"

if exist ".\Modules\Rocket.Unturned" rd /s/q .\Modules\Rocket.Unturned\>nul

::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html

>Unzip.vbs echo UnZip "%c%\Rocket.zip", "%cd%"

>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)

>>Unzip.vbs echo     Set fso = CreateObject("Scripting.FileSystemObject")

>>Unzip.vbs echo     If NOT fso.FileExists(myZipFile) Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf NOT fso.FolderExists(myTargetDir) Then

>>Unzip.vbs echo      C   fso.CreateFolder(myTargetDir)

>>Unzip.vbs echo     End If

>>Unzip.vbs echo     Set objShell = CreateObject("Shell.Application")

>>Unzip.vbs echo     Set objSource = objShell.NameSpace(myZipFile)

>>Unzip.vbs echo     Set objFolderItem = objSource.Items()

>>Unzip.vbs echo     Set objTarget = objShell.NameSpace(myTargetDir)

>>Unzip.vbs echo     intOptions = 256

>>Unzip.vbs echo     objTarget.CopyHere objFolderItem, intOptions

>>Unzip.vbs echo End Sub

call Unzip.vbs

if exist ".\Scripts" (rd /s/q .\Scripts>nul) else (echo Rocket安装失败 正在还原更改...&rd /s/q .\Modules\Rocket.Unturned\>nul)

if exist ".\Modules\Rocket.Unturned\LICENSE" del /f/s/q .\Modules\Rocket.Unturned\LICENSE>nul

if exist ".\Modules\Rocket.Unturned\README" del /f/s/q .\Modules\Rocket.Unturned\README>nul

del /f/s/q Unzip.vbs>nul

:no

cd /d "%c%"

title 安装完成!

echo 安装完成!按任意键以运行服务器配置工具

pause

echo =========================================================================

echo                Unturned服务器配置工具V2.7        by sand

echo        本bat仅为生成Unturned的开服快捷方式和配置服务器文件,

echo        请勿用作商业用途!生成的开服快捷方式会在桌面上。

echo =========================================================================

echo "%cd%">if

findstr /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)

if exist "%cd%\config\Install" echo 检测到Unturned安装目录的配置文件,已自动设置安装路径!&set /p a=

if exist "%cd%\Unturned.exe" (echo 检测到该工具在Unturned安装目录下,已自动设置安装路径!&set a=%cd%&goto true1) else (goto Start)

:false1

echo

echo 请输入正确的Unturned安装路径!

:Start

set /p a=请输入Unturned的安装路径(x:\Unturned):

cd /d "%a%"

if exist "%cd%\Unturned.exe" (echo 正在验证目录...) else (goto false1)

echo "%d%">if

findstr /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!&goto true1) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto Start)

:true2

echo

echo %e%

:true1

echo Unturned安装目录为:%a%

set d=你输入的字符不能为空且大于0。

set e=你输入的字符不能为空。

set p=你输入的字符必须为Y或N。

set /p Name0=请输入服务器的文件夹名字:

if "%Name0%"=="" (goto true2) else (goto false2)

:true3

echo

echo %e%

:false2

set /p Name=请输入要创建的服务器名字(不得含有空格且大于5个中英文字符):

if "%Name%"=="" (goto true3) else (echo 正在检测服务器名字长度...)

::该bat代码来自http://www.bathome.net/thread-34099-1-1.html

setlocal EnableDelayedExpansion

set "str=%Name%"

:length

set/a n+=1

if not "!str:~%n%!"=="" goto :length

if %n% gtr 5 (goto false3) else (goto true3)

:false3

set /p Password=请输入要创建的服务器%Name%的密码(如果无密码请直接回车):

goto Start1

:true4

echo

echo %e%

:Start1

set /p Map=请输入要创建的服务器%Name%的地图:

if "%Map%"=="" (goto true4) else (goto false4)

:false4

echo 出生装备格式为职业ID/物品ID/物品ID/物品ID/...

set /p Loadout=请输入要创建的服务器%Name%的出生装备(如果无出生装备请直接回车-这样是所有职业出生鹰火:255/4]:

goto Start2

:false5

echo

echo %d%

:Start2

set /p Port=请输入要创建的服务器%Name%的端口:

if "%Port%"=="" (goto false5)

set /a Port=%Port%/1

if %Port% geq 1 (goto true5) else (goto false5)

:false6

echo

echo 你输入的字符必须为PVE或PVP。

:true5

set /p b=请输入要创建的服务器%Name%的模式(PVP/PVE):

if "%b%"=="PVE" (goto true6)

if "%b%"=="PVP" (goto true6) else (goto false6)

:false7

echo

echo 你输入的字符不能为空,并符合0>最大人数<49的要求。

:true6

set /p Maxplayers=请输入要创建的服务器%Name%的最大人数(1-48):

if "%Maxplayers%"=="" (goto false7)

set /a Maxplayers=%Maxplayers%/1

if %Maxplayers% geq 1 (echo 正在判断人数是否符合要求...) else (goto false7)

if %Maxplayers% leq 48 (goto true7) else (goto false7)

:false8

echo

echo 你输入的字符必须为Easy、Normal、Hard或Gold。

:true7

echo Easy-简单/Normal-普通/Hard-困难/黄金-Gold

set /p Mode=请输入要创建的服务器%Name%的难度(Easy/Normal/Hard/Gold):

if "%Mode%"=="Easy" (goto true8)

if "%Mode%"=="Normal" (goto true8)

if "%Mode%"=="Hard" (goto true8)

if "%Mode%"=="Gold" (goto true8) else (goto false8)

:true8

set /p Welcome=请输入要创建的服务器%Name%的欢迎信息(如果无欢迎信息请直接回车-欢迎信息不能带有空格):

goto Start2

:false9

echo

echo 你输入的字符必须为First、Third或Both。

:Start2

echo First-只有第一视角/Third-只有第三视角/Both-两种视角皆可切换

set /p Perspective=请设置要创建的服务器%Name%的视角限制(First/Third/Both):

if "%Perspective%"=="First" (goto true9)

if "%Perspective%"=="Third" (goto true9)

if "%Perspective%"=="Both" (goto true9) else (goto false9)

:false10

echo

echo 你输入的字符必须为Enabled或Disabled。

:true9

echo Enabled-开启/Disabled-禁用

set /p Cheats=要创建的服务器%Name%需要开启作弊指令吗?(Enabled/Disabled):

if "%Cheats%"=="Enabled" (set Cheats=Cheats)

goto true10

if "%Cheats%"=="Disabled" (set Cheats=) else (goto false10)

goto true10

:false11

echo

echo %p%

:true10

set /p Whitelist=要创建的服务器%Name%需要开启白名单吗?(Y/N)

if "%Whitelist%"=="Y" (set Whitelisted=Whitelisted) else (goto if2)

goto true11

:if2

if "%Whitelist%"=="N" (set Whitelisted=) else (goto false11)

goto true11

:false20

echo

echo %p%

:true11

set /p Admin=要创建的服务器%Name%需要隐藏OP身份吗?(看不见蓝色名字)(Y/N)

if "%Admin%"=="Y" (set Admin=Hide_Admins) else (goto if3)

goto true20

:if3

if "%Admin%"=="N" (set Admin=) else (goto false20)

goto true20

:true20

echo 设置投票的格式:Y/通过后的投票冷却时间/未通过后的投票冷却时间/投票时间/投票通过的占比/发起投票的最少玩家人数

echo 例子:Y/120/360/120/0.75/3 这样是通过后的投票冷却时间为120秒 未通过后的投票冷却时间为360秒 投票时间为120秒 投票通过的占比为75% 发起投票的最少玩家人数为3人

set /p votify=要创建的服务器%Name%需要设置投票功能吗?(不设置请直接回车/如需设置请按照以上格式设置):

cls

echo Unturned安装路径:%a%

echo 要创建的服务器信息如下:

echo 服务器文件夹名字:%Name0%

echo 服务器名字:%Name%

echo 服务器密码:%Password%

echo 服务器端口:%Port%

echo 服务器最大玩家数:%Maxplayers%

echo 服务器地图:%Map%

echo 服务器模式:%b%

echo 服务器出生装备:%Loadout%

echo 服务器投票功能的设置:%votify%

if "%Mode%"=="Easy" (set Mode1=简单)

if "%Mode%"=="Normal" (set Mode1=普通)

if "%Mode%"=="Hard" (set Mode1=困难)

if "%Mode%"=="Gold" (set Mode1=黄金)

echo 服务器难度:%Mode1%

if "%Perspective%"=="First" (set Perspective1=仅为第一视角)

if "%Perspective%"=="Third" (set Perspective1=仅为第三视角)

if "%Perspective%"=="Both" (set Perspective1=两种视角皆可切换)

echo 服务器视角限制:%Perspective1%

echo 服务器的欢迎信息:%Welcome%

if "%Cheats%"=="Cheats" (set Cheats1=开启)

if "%Cheats%"=="" (set Cheats1=关闭)

echo 服务器作弊指令:%Cheats1%

if "%Whitelisted%"=="Whitelisted" (set Whitelist1=开启)

if "%Whitelisted%"=="" (set Whitelist1=关闭)

echo 服务器白名单:%Whitelist1%

if "%Admin%"=="Hide_Admins" (set Admin1=开启)

if "%Admin%"=="" (set Admin1=关闭)

echo 隐藏OP身份:%Admin1%

goto Start3

:false15

echo

echo %p%

:Start3

set /p g=是否开始创建?(Y/N)

if "%g%"=="Y" (goto Start4)

if "%g%"=="N" (goto Start) else (goto false15)

:Start4

if exist "%a%\Servers" (goto true12) else (md "%a%\Servers")

:true12

cd /d "%a%\Servers"

if exist "%a%\Servers\%Name0%" (goto true13) else (md "%a%\Servers\%Name0%")

goto false13

:false16

echo

echo %p%

:true13

set /p l=服务器已存在,是否覆盖设置?(不删除玩家/地图数据)(Y/N)

if "%l%"=="Y" (goto false13)

if "%l%"=="N" (goto Start) else (goto false16)

:false13

if exist "%a%\Servers\%Name0%\Server" (goto Server) else (md "%a%\Servers\%Name0%\Server")

:Server

chcp 65001

cd /d "%a%\Servers\%Name0%\Server"

>Commands.dat echo Name %Name%

>>Commands.dat echo Password %Password%

>>Commands.dat echo Port %Port%

>>Commands.dat echo Maxplayers %Maxplayers%

>>Commands.dat echo %b%

>>Commands.dat echo Map %Map%

if "%Welcome%"=="" (goto null1) else (goto full1)

:full1

>>Commands.dat echo Welcome %Welcome%

:null1

if "%Loadout%"=="" (goto null2) else (goto full2)

:full2

>>Commands.dat echo Loadout %Loadout%

:null2

if "%Cheats%"=="" (goto null3) else (goto full3)

:full3

>>Commands.dat echo %Cheats%

:null3

if "%Whitelisted%"=="" (goto null4) else (goto full4)

:full4

>>Commands.dat echo %Whitelisted%

:null4

if "%Admin%"=="" (goto null5) else (goto full5)

:full5

>>Commands.dat echo %Admin%

:null5

if "%votify%"=="" (goto null6) else (goto full6)

:full6

>>Commands.dat echo votify %votify%

:null6

chcp 936

For /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do Set dt=%%j

if exist "%dt%\开启Unturned服务器.lnk" (goto true17) else (goto false17)

:false18

echo

echo %p%

:true17

set /p lnk=快捷方式已存在,是否覆盖?(Y/N)

if "%lnk%"=="Y" (goto true18)

if "%lnk%"=="N" (goto Start5) else (goto false18)

:true18

del /f/s/q %dt%\开启Unturned服务器.lnk>nul

:false17

cd /d "%a%"

>创建快捷方式.vbs echo set WshShell = WScript.CreateObject("WScript.Shell")

>>创建快捷方式.vbs echo set oShellLink = WshShell.CreateShortcut("%dt%\开启Unturned服务器.lnk")

>>创建快捷方式.vbs echo oShellLink.TargetPath = "%cd%\Unturned.exe"

>>创建快捷方式.vbs echo oShellLink.Arguments = "-nographics -batchmode +internetserver/%Name0%"

>>创建快捷方式.vbs echo oShellLink.WindowStyle = 1

>>创建快捷方式.vbs echo oShellLink.Hotkey = ""

>>创建快捷方式.vbs echo oShellLink.IconLocation = "%cd%\Unturned.exe, 0"

>>创建快捷方式.vbs echo oShellLink.Description = "开启Unturned服务器"

>>创建快捷方式.vbs echo oShellLink.WorkingDirectory = "%cd%"

>>创建快捷方式.vbs echo oShellLink.Save

:loop

call 创建快捷方式.vbs

if exist "%dt%\开启Unturned服务器.lnk" (goto stop) else (echo 创建快捷方式失败...)

goto loop

:stop

del /f/s/q 创建快捷方式.vbs>nul

cd /d "%a%"

if exist .\创建快捷方式.vbs (echo 删除快捷方式的vbs失败...) else (goto Start5)

goto stop

:Start5

echo 创建完成,感谢你的使用!

pause

下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...
内容概要:本文系统研究了移相控制全桥LLC谐振变换的工作特性,深入分析其在同工作模式下的运行机理与性能表现,重点探讨了软关实现、高效率能量转换及宽范围电压调节等关键技术优势。通过Simulink搭建精确的仿真模型,对谐振腔参数、关频率、电压增益、系统效率等关键指标进行仿真分析,验证了理论设计的正确性。同时,详细研究了移相控制策略对系统动态响应、稳定性和轻载/重载工况适应性的影响,揭示了控制参数与电路参数之间的耦合关系,为高频高效电源设计提供了理论依据和实践指导。; 适合人群:具备电力电子技术、模拟电路及自动控制理论基础,从事关电源、新能源变换、电动汽车充电模块或高频电源系统研发的工程师及高校研究生。; 使用场景及目标:①掌握全桥LLC谐振变换的拓扑结构、工作原理与关键参数设计方法;②理解移相控制在实现零电压通(ZVS)和零电流关断(ZCS)中的作用机制;③通过Simulink仿真掌握变换建模、参数优化与性能评估流程,务于实际产品发与学术课题研究。; 阅读建议:建议读者结合提供的Simulink仿真模型进行同步操作,重点关注谐振网络(Lr, Lm, Cr)参数与移相角之间的匹配设计,深入理解软关条件的形成过程,并通过调整负载和输入电压进行多工况仿真,以全面掌握系统动态特性。
一、项目概述 本项目设计并实现了一个基于STM32F103C8T6微控制的温湿度监测与报警系统。系统通过DHT11传感实时采集环境温湿度数据,当数据超过预设阈值时,蜂鸣发出声音报警,同时通过4位数码管实时显示当前温湿度值。整个系统采用Type-C接口供电,支持USB串口通信,便于数据调试与传输。 二、硬件组成 1. 主控模块:STM32F103C8T6最小系统(含晶振、复位、BOOT电路、去耦电容)。 2. 传感模块:DHT11温湿度传感(单总线通信)。 3. 报警模块:有源蜂鸣(三极管驱动)。 4. 显示模块:4位共阴数码管(TM1637驱动)。 5. 通信模块:CH340N USB转串口芯片(Type-C接口)。 6. 电源模块:AMS1117-3.3稳压电路(5V转3.3V)。 7. 调试接口:SWD调试排针(SWDIO/SWCLK)。 三、发流程 1. 原理图设计:使用嘉立创EDA绘制完整原理图,包含各功能模块。 2. PCB设计:进行PCB布局布线,注重电源完整性、信号隔离及晶振走线。 3. 制板焊接:嘉立创打样,手工焊接元件。 4. 软件发:STM32CubeMX配置工程,编写DHT11驱动、TM1637显示、串口通信及报警逻辑。 5. 调试测试:通过SWD下载程序,串口输出数据,测试温湿度采集与报警功能。 四、项目特点 - 完整的嵌入式系统发流程(硬件设计→制板→软件编程→调试)。 - 多传感数据融合与实时显示。 - 低功耗设计,支持USB供电与串口通信。 - 模块化设计,便于功能扩展(如添加WiFi模块、数据存储等)。 五、应用前景 适用于家庭环境监测、农业大棚、仓库温湿度监控等场景
内容概要:本文提出了一种基于TOGI-SOGI混合积分的光储并网谐波自适应抑制方法,并通过Simulink实现完整仿真验证。该方法融合三重二阶广义积分(TOGI)与标准二阶广义积分(SOGI),能够精确提取电网电压中的基波正序分量,有效分离并抑制高次谐波成分,尤其在电网电压畸变条件下显著提升了并网逆变的控制精度与电能质量。文中详细阐述了混合积分的结构设计、谐波检测机制、自适应调节策略及其在锁相环(PLL)中的集成应用,并通过构建光储并网系统模型进行多工况仿真,结果表明该方法具备优良的动态响应特性、强鲁棒性及谐波抑制能力。; 适合人群:具备电力电子、新能源发电、自动控制等相关专业背景,熟悉Simulink仿真环境,从事光伏并网控制、电能质量治理、微电网运行与控制等领域研究的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于电网存在谐波污染的光伏发电并网场景,提升逆变在非理想电网下的运行稳定性;②为基于广义积分的先进锁相技术与谐波补偿策略提供理论支持与实现范例;③务于高校科研项目复现、学位论文研究、电力电子控制原型发及学术成果验证。; 阅读建议:建议学习者结合提供的Simulink模型深入剖析TOGI-SOGI的内部信号流向与参数整定逻辑,重点关注谐波分量的解耦过程与自适应控制模块的实现机制,可通过设置同谐波含量、频率偏移等扰动工况进行对比测试,以全面掌握其在复杂电网环境下的适应性与优越性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值