基于LinkIt ONE的GSM短信远程控制LED物联网项目实战
1. 项目概述当短信遇见硬件几年前我第一次接触物联网项目时总想着搞点“远程”控制。那时候Wi-Fi还没现在这么普及尤其是在一些户外或者移动场景下网络成了大问题。后来我发现了GSM模块这块宝藏它不依赖任何本地网络只要有手机信号的地方就能实现全球范围的通信。这让我想到了一个经典又实用的入门项目用一条短信去控制一个远在千里之外的LED灯的亮灭。这个项目的主角是LinkIt ONE开发板。可能有些朋友对Arduino更熟悉LinkIt ONE可以看作是Arduino的一个“超级增强版”它原生集成了GSM/GPRS、GPS、Wi-Fi、蓝牙等多种通信模块特别适合做这种需要蜂窝网络连接的物联网原型。想象一下你可以给这个设备发条短信“ON”家里的灯就亮了再发条“OFF”灯就灭了。这不仅仅是控制一个LED其背后是一套完整的“指令-响应”系统你可以把它扩展到控制继电器、电机、传感器上报数据等等玩法非常多。本教程的目标就是带你从零开始完成这个“短信控灯”的项目。无论你是刚接触硬件编程的新手还是想了解GSM通信原理的开发者都能通过这个具体的案例掌握LinkIt ONE的核心用法、GSM模块的配置以及如何将简单的短信文本转化为硬件的控制信号。整个过程我们会在Arduino IDE中完成代码清晰步骤详细你完全可以跟着做一遍把成果拿在手里。2. 核心硬件与平台解析2.1 为什么选择LinkIt ONE市面上能跑Arduino代码的开发板很多比如经典的UNO、功能强大的ESP32。但当我们把需求锁定在“独立使用短信通信”时LinkIt ONE的优势就非常明显了。它的核心优势在于“All-in-One”的设计。首先它板载了联发科的MT6260芯片这是一颗集成了GSM/GPRS功能的SoC。这意味着你不需要像使用Arduino UNO那样额外购买并连接一个像SIM800L这样的GSM模块省去了复杂的接线和电平转换的麻烦。LinkIt ONE上已经预留了标准的SIM卡槽支持大卡和天线接口插上手机卡、接上天线就能用极大地降低了入门门槛和硬件不稳定的风险。其次它的编程体验与Arduino高度兼容。LinkIt ONE使用基于Arduino的编程环境和语法对于有Arduino基础的用户来说几乎零学习成本。板子通过Micro USB线连接电脑在Arduino IDE中选对板卡类型和端口就能像给普通Arduino板子一样上传程序。这种“熟悉的配方不一样的味道”让人很容易上手。最后它提供了丰富的扩展性。除了GSM板载的GPS、SD卡槽、音频编解码器等都为你后续的项目升级留足了空间。今天我们用短信控制LED明天你就可以让它把GPS位置通过短信发回来或者播放一条语音提示。注意LinkIt ONE开发板的工作电压是3.3V其I/O引脚也是3.3V电平。虽然它兼容很多Arduino Shield扩展板但在连接5V设备时务必小心可能需要电平转换模块否则有损坏板子的风险。2.2 硬件清单与连接要点要完成这个项目你需要准备以下硬件LinkIt ONE开发板主角。Micro USB数据线用于供电和程序上传。GSM天线LinkIt ONE通常配套有一根小胶棒天线务必接上否则信号极差甚至无法注册网络。已激活的SIM卡建议使用一张普通的、已开通语音和短信功能的2G SIM卡移动或联通。目前很多地区的4G/5G卡也向下兼容2G网络但最好事先确认。切勿使用物联网专用卡或已停机保号的卡。LED灯与220-330欧姆的限流电阻这是我们的被控对象。LED长脚为正极阳极短脚为负极阴极。电阻不分正负。杜邦线若干用于连接。硬件连接非常简单但每一步都关乎成败第一步安装SIM卡。找到板子上的SIM卡槽用指甲或镊子轻轻撬开卡托。将SIM卡的金属芯片面朝下缺口方向对准卡托的缺口方向放入然后推回卡槽直到听见“咔哒”声。这个操作要轻柔避免损坏卡托针脚。第二步连接GSM天线。将天线接口拧到板子上标有“GSM”字样的天线座通常是金色的上拧紧即可。没有天线模块几乎无法与基站通信。第三步连接LED。我们将使用数字引脚13D13来控制LED因为这个引脚也连接了一个板载的LED方便我们做双重验证。用一根杜邦线将D13引脚与LED的正极长脚相连。LED的负极短脚通过一个220欧姆的电阻色环红-红-棕连接到开发板的GND地引脚。电阻的作用是限制流过LED的电流防止其烧毁。对于LinkIt ONE的3.3V输出220欧姆电阻可以提供约10mA的电流足够点亮普通LED且安全。第四步供电与连接电脑。用Micro USB线将LinkIt ONE连接到电脑的USB口。此时板子上的电源指示灯PWR应该亮起。LinkIt ONE可以通过USB供电对于本项目来说完全足够。2.3 软件环境搭建Arduino IDE与LinkIt ONE支持包软件层面我们需要Arduino IDE和LinkIt ONE的板卡支持。安装Arduino IDE从Arduino官网下载最新稳定版如1.8.x或2.0并安装。安装过程很简单一路下一步即可。添加LinkIt ONE开发板支持打开Arduino IDE点击菜单栏的“文件” - “首选项”。在“附加开发板管理器网址”中填入以下网址https://raw.githubusercontent.com/MediaTek-Labs/linkit_one_board/master/package_mediaTek_linkit_one_index.json点击“好”保存。然后点击“工具” - “开发板” - “开发板管理器...”。在弹出窗口的搜索框中输入“LinkIt ONE”。找到“LinkIt ONE by MediaTek Labs”点击并选择安装最新版本。这个过程需要下载一些文件请保持网络通畅。选择开发板与端口安装完成后在“工具” - “开发板”下选择“LinkIt ONE”。再将开发板通过USB线连接到电脑在“工具” - “端口”下会新增一个串口如COM3或/dev/ttyUSB0选择它。至此你的软硬件环境就全部准备好了。你可以打开“文件” - “示例” - “01.Basics” - “Blink”尝试上传到LinkIt ONE如果板载的LED靠近USB口的一个小灯开始闪烁说明开发板和IDE环境配置成功。3. 项目核心原理与代码逐行解析3.1 GSM短信通信的基本流程在写代码之前我们需要理解LinkIt ONE如何完成“接收短信”这个任务。整个过程可以类比为一部功能手机上电初始化开发板通电后GSM模块开始启动它会自动搜索周围的蜂窝网络信号就像手机开机后显示“正在搜索网络”。网络注册模块找到网络后会使用SIM卡内的信息IMSI向基站发起注册请求。注册成功后模块的“网络状态灯”会以固定的频率慢闪例如每3秒闪一次表示已经入网可以打电话和发短信了。这个状态在代码里是可以查询的。短信到达当有人向这个SIM卡的号码发送短信时短信首先被运营商的短信中心SMSC接收然后通过蜂窝网络推送到你的GSM模块。模块通知主控GSM模块在收到新短信后不会主动处理内容而是通过串口UART向LinkIt ONE的主控芯片ARM Cortex-M4发送一条特定的提示信息通常是“CMTI: SM, 索引号”意思是“在SIM卡存储位置有了新短信索引号是X”。主控读取短信主控程序在串口数据中检测到“CMTI”这个字符串后就知道有新短信了。然后它需要主动向GSM模块发送一条AT命令例如“ATCMGR索引号”来读取指定索引短信的详细内容包括发信人号码和短信正文。解析并执行指令主控程序拿到短信正文后就可以进行字符串比对了。如果内容是“ON”就让D13输出高电平3.3V点亮LED如果是“OFF”就输出低电平0V熄灭LED。整个过程中GSM模块和主控芯片之间通过AT命令进行交互。AT命令是一套古老的、用于控制调制解调器的指令集每条命令以“AT”开头。幸运的是LinkIt ONE的库函数已经帮我们封装了这些底层操作让我们可以用更简单的函数来实现收发短信。3.2 代码结构与关键函数剖析下面是我们这个项目的完整代码我会逐部分进行详细讲解。#include LGSM.h // 引入LinkIt ONE的GSM库 // 定义控制LED的引脚 const int ledPin 13; // 用于存储收到的短信内容 char smsMessage[160]; // 短信最大长度为160个字符 // 用于存储发信人号码 char smsSender[20]; void setup() { // 初始化串口用于调试输出 Serial.begin(115200); // 设置LED引脚为输出模式 pinMode(ledPin, OUTPUT); // 初始状态关闭LED digitalWrite(ledPin, LOW); Serial.println(LinkIt ONE SMS LED Controller); Serial.println(Initializing GSM module...); // 等待GSM模块初始化完成 while (!LSMS.ready()) { delay(1000); Serial.print(.); } Serial.println(\nGSM module is ready!); // 删除SIM卡中所有旧的短信避免干扰 LSMS.beginSMS(); while (LSMS.available()) { LSMS.deleteSMS(); } LSMS.endSMS(); Serial.println(System Ready. Send SMS to control the LED.); Serial.println(Commands: ON to turn LED on, OFF to turn LED off.); } void loop() { // 检查是否有新短信到达 if (LSMS.available()) { Serial.println(New SMS received!); // 读取短信的发信人号码和内容 LSMS.remoteNumber(smsSender, 20); LSMS.readSMS(smsMessage, 160); // 在串口监视器打印出来方便调试 Serial.print(From: ); Serial.println(smsSender); Serial.print(Message: ); Serial.println(smsMessage); // 解析短信内容并控制LED if (strstr(smsMessage, ON) ! NULL) { digitalWrite(ledPin, HIGH); Serial.println(LED turned ON.); // 可以在这里添加一个回复短信的功能告知已执行 // sendReply(smsSender, LED is now ON.); } else if (strstr(smsMessage, OFF) ! NULL) { digitalWrite(ledPin, LOW); Serial.println(LED turned OFF.); // sendReply(smsSender, LED is now OFF.); } else { Serial.println(Unknown command. Ignored.); // sendReply(smsSender, Unknown command. Use ON or OFF.); } // 删除已处理的短信释放SIM卡存储空间 LSMS.deleteSMS(); Serial.println(SMS deleted from SIM.); } // 短暂延迟避免loop循环过快消耗资源 delay(500); }代码关键点解析#include LGSM.h这是整个项目的基石。这个头文件包含了所有操作GSM模块所需的函数声明没有它后面的LSMS.ready()、LSMS.available()等函数都无法使用。LSMS.ready()这个函数在setup()中的while循环里被调用用于等待GSM模块初始化完成并成功注册到网络。这是一个阻塞式等待在实际产品中可能需要更优雅的超时处理但对于入门教程这样写最直观。串口输出的“...”就是在这里打印的让你能直观看到等待过程。LSMS.available()这是loop()函数里的“哨兵”。它不断检查是否有新短信到达。其内部原理就是监听串口看是否有“CMTI”这样的提示信息。一旦返回true就说明有短信需要处理。LSMS.readSMS()与LSMS.remoteNumber()这两个函数负责提取短信的核心信息。readSMS将短信正文读入我们提供的字符数组smsMessage中第二个参数160是数组的最大长度也是短信的标准长度上限。remoteNumber则获取发信人的号码存入smsSender数组。这里有一个细节有些网络下发送的号码可能带国际区号如8613800138000而有些则是本地号码13800138000在后续如果要进行号码白名单验证时需要处理好这个格式。strstr(smsMessage, ON)这是解析指令的核心。strstr是C语言的标准库函数用于在一个字符串smsMessage中查找子串ON。如果找到了它就返回一个非NULL的指针如果没找到返回NULL。我们用它来判断短信里是否包含“ON”或“OFF”关键字。这里用的是“包含”逻辑而不是“等于”逻辑意味着短信内容可以是“请打开灯ON谢谢”只要里面有“ON”就会被识别。如果你需要精确匹配应该使用strcmp函数。LSMS.deleteSMS()处理完短信后立即删除它。这非常重要因为SIM卡的短信存储空间是有限的通常能存几十条。如果不删除空间很快会被占满导致无法接收新短信。LSMS.available()函数在每次被调用时返回的是存储空间中第一条未读短信的索引删除已处理的短信才能让下一条短信变成“第一条”。延迟delay(500)在loop()结尾的短暂延迟有两个作用。一是降低主循环的运行频率减少CPU占用二是给GSM模块一点处理内部事务的时间。这个值可以调整但不宜过短如小于100ms以免影响系统稳定性。3.3 安全性增强与指令扩展思考上面的基础代码实现了功能但在实际应用中显得非常脆弱。我们可以从以下几个方面进行强化1. 指令验证与白名单基础代码对任何号码发来的包含“ON”的短信都会响应这存在风险。我们可以增加一个简单的号码白名单机制。// 在文件开头定义授权号码 const char* authorizedNumber 8613800138000; // 替换为你的手机号 // 在loop()的解析指令部分之前添加检查 if (strcmp(smsSender, authorizedNumber) 0) { // 是授权号码执行指令解析 if (strstr(smsMessage, ON) ! NULL) { // ... 点亮LED } // ... 其他指令 } else { Serial.print(Unauthorized access from: ); Serial.println(smsSender); // 可以选择忽略或者回复一条拒绝信息 }这里使用了strcmp进行字符串的精确比较。注意号码格式要一致。2. 指令集扩展控制一个LED只是开始。我们可以定义更丰富的指令集。if (strstr(smsMessage, STATUS) ! NULL) { int ledState digitalRead(ledPin); char replyMsg[50]; sprintf(replyMsg, LED is currently %s., (ledState HIGH) ? ON : OFF); sendSMS(smsSender, replyMsg); // 需要实现sendSMS函数 } else if (strstr(smsMessage, BLINK) ! NULL) { // 实现闪烁模式例如解析“BLINK 5 200”表示闪烁5次间隔200ms // 这里需要更复杂的字符串解析如使用sscanf }通过解析空格分隔的参数可以实现非常复杂的远程控制逻辑。3. 状态回复与确认执行指令后给控制者一个回复是良好的交互体验。这需要用到短信发送功能。LGSM.h库也提供了LSMS.beginSMS()LSMS.print()和LSMS.endSMS()等函数来发送短信。注意发送短信是收费的且耗时较长可能几秒到十几秒在loop()中同步发送可能会阻塞其他操作需要考虑异步或状态机的方式处理。4. 完整实操流程与现场调试记录4.1 步骤详解从编码到验证让我们一步步把项目跑起来。第一步编写并上传代码。打开Arduino IDE新建一个空白项目Sketch。将上一章节的完整代码复制粘贴进去。在“工具”菜单中确认“开发板”已选择“LinkIt ONE”并且正确的串口已被选中。点击左上角的“上传”按钮向右的箭头。IDE会先编译代码然后通过USB线将程序烧录到LinkIt ONE开发板中。观察IDE底部的状态栏显示“上传成功”即可。第二步硬件连接与上电。确保SIM卡和天线已按前述方法安装妥当。用USB线将开发板连接到电脑或一个5V/1A以上的USB充电器上供电。建议首次调试使用电脑USB方便查看串口输出。观察板子上的指示灯PWR电源灯常亮表示供电正常。STAT系统状态灯可能会快速闪烁几下然后进入稳定状态。网络状态灯通常标有NET或类似符号这是最关键的一个。上电后它会先快速闪烁正在搜索网络然后变为慢闪例如每3秒闪一次这表示GSM模块已成功注册到移动网络。如果此灯一直快速闪烁或不亮请检查SIM卡和天线。第三步观察串口监视器。在Arduino IDE中点击右上角的“串口监视器”按钮放大镜图标。在右下角设置波特率为115200与代码中Serial.begin(115200)一致。按下开发板上的复位RESET按钮你会看到串口监视器开始输出信息。你应该会看到类似以下的输出LinkIt ONE SMS LED Controller Initializing GSM module... ..... GSM module is ready! System Ready. Send SMS to control the LED. Commands: ON to turn LED on, OFF to turn LED off.如果卡在“Initializing GSM module...”并不断打印“.”超过一两分钟说明网络注册失败。请跳到故障排查章节。第四步发送测试短信。用你的另一部手机手机A向插入LinkIt ONE中的SIM卡号码手机B发送一条内容为“ON”的短信。观察串口监视器。几秒到十几秒后你应该能看到New SMS received! From: 8613800138000 (这里显示手机A的号码) Message: ON LED turned ON. SMS deleted from SIM.同时观察开发板连接在D13引脚的LED以及板载的LED应该被点亮。再发送一条“OFF”短信LED应被熄灭串口也有相应提示。4.2 实操现场常见问题与深度排查在实际操作中你几乎一定会遇到一些问题。下面是我在多次教学中总结出的“高频坑点”及其解决方案。问题1串口监视器无任何输出或者输出乱码。可能原因与排查端口选择错误这是最常见的原因。重新拔插USB线然后在IDE的“工具”-“端口”菜单下重新选择。在Windows上端口号可能会变。在Mac/Linux上确认是/dev/tty.usbmodemXXX之类的设备。波特率不匹配确保串口监视器右下角的波特率设置为115200与代码中Serial.begin(115200)一致。驱动问题某些系统可能需要安装LinkIt ONE的USB驱动。请查阅联发科实验室的官方文档。板子型号选错再次确认“工具”-“开发板”中选择的是“LinkIt ONE”而不是其他Arduino板。问题2串口显示“Initializing GSM module...”后一直打印“.”无法就绪。可能原因与排查天线未接或接触不良这是绝对的第一检查项GSM模块没有天线就像收音机没有拉出天线信号极其微弱。务必确保天线已牢固拧紧。SIM卡问题卡未激活/欠费将这张SIM卡插入普通手机看是否能正常打电话、收短信。卡类型不支持尝试换一张不同的运营商移动、联通的2G SIM卡。有些物联网卡或虚拟运营商卡可能不支持。卡座接触不良重新拔插SIM卡确保金属触点清洁且卡已插到底。信号强度问题你所在的位置可能2G信号很弱。尝试将设备和天线移到窗边或开阔地带。可以通过更复杂的代码AT命令ATCSQ查询信号强度但入门阶段以更换位置为主。模块硬件故障如果以上都排除了且板子上的网络指示灯始终不进入慢闪状态有可能是GSM模块硬件问题。问题3能收到短信提示但LED没有反应。可能原因与排查LED接反或电阻过大/短路确认LED正负极连接正确长脚接D13短脚通过电阻接GND。用万用表测量电阻值是否为220欧姆左右或者直接换一个电阻和LED试试。代码中引脚定义错误检查代码const int ledPin 13;是否与你实际连接的引脚一致。短信内容解析失败注意代码中用的是strstr查找子串。确保你发送的短信内容里确实包含了纯英文大写的“ON”或“OFF”没有多余的空格或不可见字符。可以在串口监视器里仔细查看Message:后面打印出来的具体内容。指令冲突如果你发送的短信是“turn on the light”代码里的strstr(smsMessage, ON)依然会找到“ON”这个子串并执行。这是设计如此。如果你需要精确匹配应修改为if (strcmp(smsMessage, ON) 0)。问题4第一次能控制第二次收不到短信了。可能原因与排查SIM卡短信存储已满这是最可能的原因。基础代码中只有在成功解析“ON”或“OFF”后才会执行LSMS.deleteSMS()。如果收到一条内容为“HELLO”的未知短信代码会跳转到else分支打印“Unknown command”但没有删除这条短信这条短信会一直占据存储空间的第一条位置导致LSMS.available()每次检查到的都是它新的短信就进不来了。解决方案修改代码在else分支里也加上删除短信的操作。} else { Serial.println(Unknown command. Ignored.); LSMS.deleteSMS(); // 关键删除未知指令的短信 }4.3 项目优化与功能拓展思路当基础功能稳定运行后你可以考虑以下优化和拓展让项目变得更实用、更健壮。1. 增加状态反馈机制让设备主动汇报状态。例如在setup()函数中网络注册成功后可以自动给管理员手机发送一条“设备已上线IP地址是XXX”的短信如果需要获取IP可能涉及GPRS功能。或者在每次执行开关指令后回复一条“指令已执行”的确认信息。2. 实现多设备与指令协议如果你有多个这样的设备比如控制客厅灯、卧室灯可以为每个设备分配一个唯一ID。短信指令可以设计成“DEVICE1 ON”或“LIGHT_KITCHEN OFF”的格式。在代码中解析空格第一部分为设备ID第二部分为指令。3. 结合传感器实现自动报警LinkIt ONE可以连接各种传感器。例如连接一个温湿度传感器DHT11。你可以修改loop()函数定期读取传感器数据。当温度超过某个阈值时自动发送报警短信到你的手机“警告温度过高当前温度XX度”。这就从一个简单的控制器升级成了一个远程监控报警器。4. 引入非易失性存储当前代码中设备重启后状态会丢失LED默认熄灭。如果你希望设备记住断电前的状态可以使用LinkIt ONE的EEPROM模拟的或者外接的SD卡来保存状态。在setup()中读取保存的状态并设置LED在每次状态改变时写入存储。5. 功耗优化本项目USB供电功耗不是问题。但如果想用电池供电就需要优化。GSM模块是耗电大户。可以让设备大部分时间处于深度睡眠Sleep状态定时醒来检查短信或者只响应特定“唤醒”指令的短信。这需要更深入地研究LinkIt ONE的低功耗模式和AT命令。通过这个“短信控制LED”的项目你不仅学会了LinkIt ONE的基本操作和GSM短信收发更重要的是掌握了一套“远程指令控制硬件”的物联网基础架构。这套架构的核心——状态监听、指令解析、安全验证、动作执行——是许多更复杂物联网应用的基石。当你下次看到“短信控制家电”、“远程重启路由器”这类应用时你会知道其内核与你今天完成的项目在逻辑上并无二致。

相关新闻

Unity Android应用签名全攻略:从Keystore创建到安全发布

Unity Android应用签名全攻略:从Keystore创建到安全发布

1. 项目概述:为什么Unity Android签名是开发者的“生死线”? 如果你用Unity开发过Android应用,并且尝试过把它上传到Google Play或者分发给朋友测试,那你大概率已经和“应用签名”这件事打过交道了。很多新手开发者,包…

2026/8/2 20:01:40 阅读更多 →
Unity范围检测实战:从Physics.verlapSphere到高性能扇形技能实现

Unity范围检测实战:从Physics.verlapSphere到高性能扇形技能实现

1. 项目概述:为什么范围检测是游戏交互的基石在Unity里做游戏,尤其是涉及到战斗、解谜、交互这些核心玩法时,有一个问题你几乎绕不开:如何高效、准确地判断一个物体是否进入了另一个物体的“势力范围”?这就是我们今天…

2026/8/2 20:01:40 阅读更多 →
Unity游戏适配HarmonyOS无障碍标章:ArkUI-X桥接方案全解析

Unity游戏适配HarmonyOS无障碍标章:ArkUI-X桥接方案全解析

1. 项目概述:当Unity游戏遇见HarmonyOS无障碍标章最近在HarmonyOS开发者社区里,关于“无障碍标章”的讨论热度一直很高。很多游戏开发者,尤其是使用Unity引擎的团队,都在问同一个问题:我们辛辛苦苦开发的游戏&#xff…

2026/8/2 20:01:40 阅读更多 →

最新新闻

pi-subagents 生产环境部署终极指南:构建企业级AI代理工作流系统

pi-subagents 生产环境部署终极指南:构建企业级AI代理工作流系统

pi-subagents 生产环境部署终极指南:构建企业级AI代理工作流系统 【免费下载链接】pi-subagents Pi extension for async subagent delegation with truncation, artifacts, and session sharing 项目地址: https://gitcode.com/GitHub_Trending/pi/pi-subagents …

2026/8/2 23:07:09 阅读更多 →
Mock与ExUnit完美结合:setup_with_mocks让Elixir测试代码更简洁

Mock与ExUnit完美结合:setup_with_mocks让Elixir测试代码更简洁

Mock与ExUnit完美结合:setup_with_mocks让Elixir测试代码更简洁 【免费下载链接】mock Mocking library for Elixir language 项目地址: https://gitcode.com/gh_mirrors/mock2/mock 在Elixir开发中,Mock与ExUnit的高效结合是提升测试质量的关键。…

2026/8/2 23:07:09 阅读更多 →
Windows 10 Login Screen Background Changer:轻松自定义你的登录界面背景指南

Windows 10 Login Screen Background Changer:轻松自定义你的登录界面背景指南

Windows 10 Login Screen Background Changer:轻松自定义你的登录界面背景指南 【免费下载链接】Windows-10-Login-Background-Changer Changes the Windows 10 Login Screen Background 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-10-Login-Backgroun…

2026/8/2 23:07:09 阅读更多 →
【参数估计】使用扩散粒子滤波器网络对单位球面进行协同参数估计附Matlab代码

【参数估计】使用扩散粒子滤波器网络对单位球面进行协同参数估计附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/2 23:07:09 阅读更多 →
【多组消除谐波PWM双极波形的解决方案】两电平三相逆变器的选择性谐波消除PWM(SHEPWM))四分之一周期具有3、5和7个开关角的三相两电平逆变器的选择性谐波消除PWM(SHEPWM)附Matlab

【多组消除谐波PWM双极波形的解决方案】两电平三相逆变器的选择性谐波消除PWM(SHEPWM))四分之一周期具有3、5和7个开关角的三相两电平逆变器的选择性谐波消除PWM(SHEPWM)附Matlab

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/2 23:07:09 阅读更多 →
Loop命令7个实用案例:网站监控、文件备份与错误重试全搞定

Loop命令7个实用案例:网站监控、文件备份与错误重试全搞定

Loop命令7个实用案例:网站监控、文件备份与错误重试全搞定 【免费下载链接】Loop UNIXs missing loop command 项目地址: https://gitcode.com/gh_mirrors/loop5/Loop Loop命令是UNIX系统中缺失的强大循环工具,它让你能够用直观的方式编写强大的循…

2026/8/2 23:06:08 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →