基于LM35与Arduino的温度预警系统:从传感器采集到抗干扰设计
1. 从“温度计”到“预警哨兵”LM35与Arduino的实战融合最近在整理工作室的物料翻出来一堆LM35温度传感器和Arduino Uno板子还有几个闲置的LED。看着这些元件我突然想为什么不把它们组合成一个真正“有用”的东西呢一个简单的温度计谁都会做但一个能根据预设阈值主动发出光信号预警的温度监控系统才算得上是迈入了嵌入式应用的门槛。这不仅仅是点亮一个LED更是关于如何让硬件感知环境、让代码做出判断、让系统与人交互的完整闭环。今天要聊的就是这个被我称为“温度预警模型”的实验它麻雀虽小五脏俱全涵盖了传感器数据采集、阈值逻辑判断、执行器控制这三个嵌入式系统的核心环节。无论你是刚接触Arduino的新手还是想找个具体项目练手的老鸟这个实验都能帮你把书本上的理论变成手里看得见、摸得着的成果。这个模型的核心目标很明确实时监测环境温度当温度超过我们设定的安全阈值时系统能自动点亮LED作为警报。我们选用的LM35是一款非常经典且易于使用的模拟温度传感器它的输出电压与摄氏温度成完美的线性关系无需复杂的计算校准。Arduino则作为我们的大脑负责读取LM35的信号进行判断并控制LED。整个项目的难点不在于接线或代码语法而在于如何稳定、准确地获取温度值以及如何设计一个可靠、无闪烁的预警逻辑。我会带你从元器件认识开始一步步完成硬件连接、软件编程、代码调试并深入探讨几个实际搭建中必然会遇到的“坑”比如模拟读数的波动处理、防止LED误触发的防抖逻辑等。让我们开始吧。2. 硬件选型与电路搭建为什么是LM35和Arduino Uno在开始动手焊接或插线之前我们得先搞清楚手头这些元件的“脾气”知道为什么选它们以及如何正确地让它们协同工作。一个错误的连接可能让整个实验失败甚至损坏元件。2.1 核心元件深度解析LM35温度传感器这是我们系统的“感官”。选择它而不是DS18B20这类数字传感器主要是为了简化入门难度。LM35是模拟输出其输出电压与温度的关系非常简单Vout (mV) 10 mV/°C * T°C。也就是说在25°C室温下它的输出引脚电压大约是250mV。这种线性关系让我们用Arduino的模拟输入引脚读取后只需要一个简单的公式就能换算出温度值避免了数字传感器需要的库文件和通信协议对于理解模拟信号采集的本质非常有帮助。注意LM35的测量范围是-55°C到150°C但通常我们使用其TO-92封装像一个小晶体管它的引脚顺序平面朝向自己从左到右通常是VCC、Vout、GND。务必确认你的传感器型号接反VCC和GND会立即导致器件发烫损坏。Arduino Uno R3作为控制器界的“瑞士军刀”Uno板几乎成了入门标准。它基于ATmega328P微控制器拥有14个数字I/O口其中6个可做PWM输出和6个模拟输入口A0-A5。对我们这个项目来说一个模拟口读LM35一个数字口控制LED绰绰有余。其内置的10位ADC模数转换器能将0-5V的模拟电压转换为0-1023的整数值这个分辨率对于LM35已经足够5V / 1024 ≈ 4.9mV/步进对应约0.5°C的分辨率。LED与限流电阻LED是我们的“执行器”用于发出视觉警报。这里有一个关键点必须串联限流电阻。直接连接5V到LED会因电流过大而瞬间烧毁。电阻值可以通过欧姆定律计算R (Vcc - Vf) / If。假设我们使用普通的红色LED其正向压降Vf约为1.8V期望电流If为10mA0.01A电源电压Vcc为5V。那么 R (5 - 1.8) / 0.01 320欧姆。我们可以选择一个常见的330欧姆电阻。电阻稍大电流稍小LED暗一点但更安全电阻太小电流过大会缩短LED寿命。2.2 电路连接图与实操要点理解了原理连接就很简单了。请按照以下步骤操作给Arduino供电通过USB线连接电脑或者使用7-12V的直流电源适配器插入电源插座。连接LM35将LM35的VCC引脚通常为最左边连接到Arduino的5V引脚。将LM35的GND引脚通常为最右边连接到Arduino的任意一个GND引脚。将LM35的Vout引脚中间连接到Arduino的模拟输入引脚A0。连接LED电路将LED的长脚阳极正极通过一个330欧姆的电阻连接到Arduino的数字引脚13也可用其他数字引脚代码需对应修改。将LED的短脚阴极负极直接连接到Arduino的GND引脚。这里有一个非常重要的实操技巧使用面包板进行原型搭建。不要急于焊接。面包板可以让你快速修改连接测试电路。将所有元件和杜邦线在面包板上布置好确保接触牢固。很多时候电路不工作原因就是杜邦线虚接或者插错了孔。连接完成后你的硬件系统就准备好了。接下来我们将进入“大脑”编程环节。3. 软件逻辑与代码逐行精讲硬件是躯体软件是灵魂。下面这段代码将实现温度读取、判断和预警控制。我会逐部分拆解不仅告诉你写什么更告诉你为什么这么写。3.1 基础代码框架与变量定义我们首先在Arduino IDE中创建一个新项目。代码从定义常量和变量开始。// 第八课温度预警模型实验 // 定义引脚 const int tempSensorPin A0; // LM35连接至模拟引脚A0 const int ledPin 13; // LED连接至数字引脚13板载LED也可用 // 定义预警阈值单位摄氏度 const float warningThreshold 30.0; // 变量声明 float temperatureC 0.0; // 存储计算得到的摄氏温度 int sensorValue 0; // 存储从A0读取的原始ADC值const关键字用于定义tempSensorPin、ledPin和warningThreshold。这告诉编译器这些是常量在程序运行期间不会改变。使用常量而非直接写数字如A0、13、30.0是良好的编程习惯提高了代码的可读性和可维护性。如果想修改预警温度或更换引脚只需修改这里一处。变量类型选择temperatureC用于存储温度可能是小数所以用float浮点数。sensorValue是ADC读取的整数范围0-1023所以用int。3.2 初始化设置setup()函数setup()函数在Arduino上电或复位后只运行一次用于初始化设置。void setup() { // 初始化串口通信波特率设置为9600 Serial.begin(9600); // 将LED引脚设置为输出模式 pinMode(ledPin, OUTPUT); // 初始状态关闭LED digitalWrite(ledPin, LOW); // 打印欢迎信息和当前阈值到串口监视器 Serial.println( 温度预警系统启动 ); Serial.print(预警温度阈值设定为: ); Serial.print(warningThreshold); Serial.println( °C); Serial.println(------------------------); }串口初始化Serial.begin(9600)这是调试和查看数据的生命线。9600是常用的波特率每秒传输的符号数。打开Arduino IDE的“串口监视器”工具-串口监视器确保右下角波特率也设置为9600你就能看到程序打印的信息和温度数据。引脚模式设置pinMode()必须明确告诉Arduino某个引脚是用于输出控制外部设备还是输入读取外部信号。这里ledPin13号用于输出电流驱动LED所以设为OUTPUT。而tempSensorPinA0用于读取电压我们不需要在setup()中设置其模式模拟输入引脚默认就是输入状态。初始状态digitalWrite(ledPin, LOW)这是一个好习惯确保系统启动时LED处于确定的关闭状态避免上电瞬间的误触发。3.3 核心循环与温度计算loop()函数loop()函数内的代码会无限循环执行这是我们程序的主逻辑。void loop() { // 1. 读取传感器原始值 sensorValue analogRead(tempSensorPin); // 2. 将ADC值转换为电压值单位伏特 // Arduino的ADC参考电压默认为5V10位精度对应1024个步进 float voltage sensorValue * (5.0 / 1024.0); // 3. 将电压值转换为温度值单位摄氏度 // LM35的输出为10mV/°C所以电压值(伏特)*100即为温度值 temperatureC voltage * 100.0; // 4. 打印温度值到串口监视器 Serial.print(当前温度: ); Serial.print(temperatureC); Serial.println( °C); // 5. 预警逻辑判断与控制 if (temperatureC warningThreshold) { digitalWrite(ledPin, HIGH); // 温度超阈值点亮LED Serial.println(警告温度超过阈值); } else { digitalWrite(ledPin, LOW); // 温度正常关闭LED } // 6. 延时一段时间避免串口输出过快和减少传感器读取压力 delay(1000); // 延时1000毫秒即1秒 }现在我们来深入剖析每一步背后的原理和可能遇到的问题第1-3步从ADC值到温度值analogRead(A0)会返回一个0到1023之间的整数。这个数代表了A0引脚上的电压相对于参考电压默认5V的比例。计算电压的公式电压 读数 * (参考电压 / ADC最大读数)。这里参考电压是5.0V最大读数是1024注意是1024不是1023因为从0到1023共有1024个可能的值。得到电压值单位伏特后根据LM35的特性10mV/°C乘以100因为1V1000mV1000mV / 10mV/°C 100就得到了摄氏温度。实操心得这里使用5.0和1024.0而不是5和1024至关重要。在C/C中整数除法会截断小数部分。sensorValue * (5 / 1024)的结果永远是0因为5/1024的整数商是0。使用带小数点的5.0和1024.0强制编译器进行浮点数运算才能得到正确的结果。这是新手常犯的错误。第5步预警逻辑判断这是一个简单的if-else判断。当temperatureC大于warningThreshold时执行if后的语句块点亮LED并打印警告否则执行else后的语句块关闭LED。逻辑清晰直接。第6步延时delay(1000)这个延时有两个作用一是让串口输出以每秒一次的频率进行便于我们观察二是给传感器和电路一个稳定的时间。虽然LM35响应很快但过于频繁的读取比如不加延时loop一次可能只需几毫秒并没有必要反而会让串口监视器刷屏看不清数据。将以上所有代码整合上传到你的Arduino Uno。打开串口监视器你应该能看到温度读数用手捏住LM35传感器给它加温当读数超过30°C时LED应该点亮同时串口会打印警告信息。4. 从“能用”到“好用”优化与抗干扰设计上面的代码已经实现了基本功能但它很“脆弱”。在实际环境中你会遇到读数跳动、LED在阈值附近频繁闪烁、阈值单一不够灵活等问题。下面我们来逐一优化打造一个更健壮的预警模型。4.1 软件滤波平滑跳动的温度数据模拟传感器读数天生带有噪声可能来自电源波动、电磁干扰或ADC本身的量化误差。你会看到串口监视器里的温度值在小范围内上下跳动例如在29.8°C和30.2°C之间波动。这会导致LED在阈值附近疯狂闪烁。解决方案是软件滤波。这里介绍最简单有效的“移动平均滤波法”。思路是不是只使用一次读取的值而是连续读取N次然后取它们的平均值作为最终结果。// 在全局变量区增加 const int numReadings 10; // 平均滤波的采样次数 float readings[numReadings]; // 存储采样值的数组 int readIndex 0; // 当前读数的索引 float total 0; // 采样值的总和 float average 0; // 计算出的平均值 void setup() { // ... 其他初始化代码不变 ... // 初始化滤波数组全部置零 for (int i 0; i numReadings; i) { readings[i] 0; } } void loop() { // 1. 减去最旧的读数 total total - readings[readIndex]; // 2. 读取新的传感器值并转换为温度简化计算实际可调用一个函数 sensorValue analogRead(tempSensorPin); readings[readIndex] sensorValue * (5.0 / 1024.0) * 100.0; // 3. 加上最新的读数 total total readings[readIndex]; // 4. 前进到下一个位置 readIndex readIndex 1; if (readIndex numReadings) { readIndex 0; // 到达数组末尾后回到开头 } // 5. 计算平均值 average total / numReadings; temperatureC average; // 使用平滑后的温度值 // 后续的打印和判断逻辑使用 temperatureC Serial.print(平滑温度: ); Serial.print(temperatureC); Serial.println( °C); // ... 预警判断 ... delay(100); // 因为滤波需要多次采样单次循环延时可以缩短 }这段代码实现了一个环形缓冲区。numReadings决定了滤波的强度值越大曲线越平滑但对温度变化的响应也越慢。对于温度这种变化相对缓慢的量取10次平均通常效果很好。你会立刻发现串口输出的温度值变得稳定多了。4.2 防抖逻辑消除阈值附近的警报抖动即使经过滤波温度值在阈值附近微小波动仍可能导致LED频繁开关。这在工业控制中是不可接受的会加速继电器或LED的损耗。我们需要引入“滞回比较”或“防抖”逻辑。基本思想是设置两个阈值一个上限highThreshold一个下限lowThreshold且highThresholdlowThreshold。当温度超过highThreshold时触发警报LED亮。一旦警报触发温度必须回落到lowThreshold以下警报才会解除LED灭。在highThreshold和lowThreshold之间时保持当前警报状态不变。这就像你家空调设定制冷到26°C它可能到25.5°C才停机然后温度回升到26.5°C又启动避免了压缩机在26°C附近频繁启停。// 修改阈值定义 const float highThreshold 30.0; // 触发警报的温度 const float lowThreshold 28.0; // 解除警报的温度 bool alarmState false; // 警报状态false为关闭true为开启 void loop() { // ... 前面读取并计算平滑温度 temperatureC ... // 带滞回效应的预警逻辑 if (temperatureC highThreshold) { alarmState true; // 触发警报 } else if (temperatureC lowThreshold) { alarmState false; // 解除警报 } // 如果温度在 highThreshold 和 lowThreshold 之间alarmState 保持原状 // 根据警报状态控制LED if (alarmState) { digitalWrite(ledPin, HIGH); Serial.println(警告温度超过阈值); } else { digitalWrite(ledPin, LOW); } // ... 延时 ... }通过引入2°C的滞回区间系统在阈值附近的行为就稳定了LED不会再因为0.1°C的波动而闪烁。4.3 功能扩展多级预警与串口交互一个基本的预警系统只能处理“正常”和“警报”两种状态。我们可以扩展它实现多级预警比如低温、正常、高温预警、危险高温甚至通过串口实时修改阈值。多级预警使用多个LED或一个RGB LED来指示不同状态。const int ledGreen 11; const int ledYellow 12; const int ledRed 13; const float tempLow 10.0; const float tempNormalHigh 28.0; const float tempWarning 30.0; const float tempDanger 35.0; void setup() { pinMode(ledGreen, OUTPUT); pinMode(ledYellow, OUTPUT); pinMode(ledRed, OUTPUT); // ... 其他初始化 } void loop() { // ... 获取温度 ... // 多级判断 digitalWrite(ledGreen, LOW); digitalWrite(ledYellow, LOW); digitalWrite(ledRed, LOW); // 先全部关闭 if (temperatureC tempLow) { // 低温可以闪烁绿灯提示 digitalWrite(ledGreen, HIGH); Serial.println(状态温度偏低); } else if (temperatureC tempNormalHigh) { // 正常范围常亮绿灯 digitalWrite(ledGreen, HIGH); Serial.println(状态温度正常); } else if (temperatureC tempWarning) { // 偏高预警常亮黄灯 digitalWrite(ledYellow, HIGH); Serial.println(状态温度偏高注意); } else if (temperatureC tempDanger) { // 高温警报常亮红灯 digitalWrite(ledRed, HIGH); Serial.println(警告温度过高); } else { // 危险高温红灯闪烁 digitalWrite(ledRed, HIGH); delay(200); digitalWrite(ledRed, LOW); delay(200); Serial.println(危险温度严重超标); } delay(800); // 配合闪烁的延时 }串口交互修改阈值这需要解析从串口监视器发送过来的命令。代码会复杂一些需要用到Serial.available()和Serial.parseInt()等函数。基本思路是监听串口如果收到数据则尝试解析为数字并更新对应的阈值变量。这能让你的系统在不停机的情况下动态调整参数更像一个真正的可配置设备。5. 调试技巧与常见问题排查即使按照步骤操作你也可能会遇到问题。别担心这是学习过程的一部分。下面是一个系统性的排查指南。5.1 硬件问题排查清单LED完全不亮检查极性LED长脚正极是否通过电阻接到了数字引脚短脚负极是否接GND接反了不会亮。检查电阻电阻是否连接牢固阻值是否合适可用万用表测量检查引脚代码中ledPin的定义如13是否与实际连接的引脚一致测试LED和引脚写一个简单的测试程序让digitalWrite(ledPin, HIGH)后加一个长延时然后直接给LED两端接上3V电池串联电阻看LED本身是否完好。也可以将LED换到已知正常的引脚如板载LED对应的13脚测试。串口监视器无数据或显示乱码检查波特率确保代码中Serial.begin(9600)与串口监视器右下角选择的波特率完全一致。检查端口在Arduino IDE的“工具”-“端口”菜单中是否正确选择了你的Arduino板所在的COM口Windows或/dev/tty.usbmodemXXXMac/Linux检查线缆USB数据线是否完好有些线只能充电不能传输数据。温度读数异常恒为0、接近0或非常大检查LM35连接最可能的原因是引脚接错。立即断电用手摸一下LM35是否发烫。如果发烫很可能VCC和GND接反了已经损坏。检查供电电压用万用表测量Arduino 5V引脚和GND之间的电压是否稳定在5V左右电压不足会导致ADC读数错误。检查参考电压Arduino Uno默认使用板载5V作为ADC参考电压。如果5V不准读数就不准。可以尝试使用更稳定的内部1.1V参考电压analogReference(INTERNAL);但需要重新换算公式因为LM35的输出电压范围可能超出1.1V。5.2 软件逻辑调试方法分步验证不要一次性写完全部代码。先写一段只读取ADC原始值并打印到串口的程序看看sensorValue是否在合理范围内变化用手加热传感器值应增大。验证了数据采集没问题再加入电压转换、温度转换每一步都打印中间结果验证。利用串口打印Serial.print()是你最好的朋友。在关键判断分支、变量改变的地方都打印一下信息比如Serial.print(Entering if block, temp); Serial.println(temperatureC);。这能帮你清晰地看到程序的执行流程。简化问题如果多级预警逻辑混乱先注释掉其他部分只测试最基本的一级判断。确保基础功能正确后再逐步添加复杂逻辑。5.3 关于ESP8266/ESP32等热门板卡的适配从网络热词可以看到ESP8266/ESP32非常流行。它们功能更强大有Wi-Fi但在这个基础温度预警项目上代码逻辑完全通用。主要区别在于引脚编号你需要根据ESP板子的引脚图重新定义tempSensorPin和ledPin。注意有些引脚有特殊功能如ESP8266的GPIO16常用于唤醒。ADC精度ESP32的ADC默认是12位0-4095参考电压也可能不同通常是3.3V。计算公式需要调整电压 sensorValue * (3.3 / 4096.0)。同时LM35的供电电压也要接3.3V而不是5V否则可能损坏ESP32的ADC引脚其耐受电压通常为3.3V。板载LEDESP8266 NodeMCU的板载LED通常连接在GPIO2D4且是低电平点亮即digitalWrite(LED_PIN, LOW)点亮。这与Arduino Uno的板载LED高电平点亮相反需要特别注意。移植时核心的滤波算法、滞回比较逻辑都可以原封不动地复用这正是学习通用编程思想的好处。6. 项目总结与进阶思考走到这里你已经完成了一个完整的、具备一定鲁棒性的温度预警系统。它不再是一个简单的演示而是一个考虑了数据稳定性、控制可靠性的小型应用原型。回顾整个过程最重要的收获可能不是那几行代码而是解决问题的思路定义需求 - 选择硬件 - 搭建电路 - 编写基础逻辑 - 发现缺陷噪声、抖动- 引入算法优化滤波、防抖- 功能扩展 - 系统调试。这个模型可以作为一个坚实的基础向无数方向扩展远程监控结合ESP8266/ESP32将温度数据和警报状态通过Wi-Fi发送到手机APP如Blynk、IoT平台或你自己的服务器。多传感器网络使用多个LM35或DS18B20单总线可一线串多个监测房间内不同位置的温度。执行机构控制将LED替换为继电器模块当温度过高时自动打开风扇或空调。数据记录添加一个SD卡模块将温度数据连同时间戳记录到文件中用于长期趋势分析。人机界面增加一个LCD屏幕或OLED显示屏本地实时显示温度和状态无需连接电脑。我个人在多次教学中发现初学者最容易在“电压计算”和“滤波防抖”这两个环节卡住。电压计算的问题在于对C语言数据类型运算不熟而滤波防抖则是缺乏实际工程经验。解决前者需要理解整数与浮点数运算的区别解决后者则需要建立起“真实物理世界信号是嘈杂的”这一认知。当你成功实现了平滑的温度曲线和稳定的警报动作时你对嵌入式系统的理解就真正上了一个台阶。下次你可以尝试用中断来优化传感器读取或者用状态机来管理更复杂的系统行为那又将是一片新天地。

相关新闻

AI大模型工程师转型指南:核心技术栈与学习路径

AI大模型工程师转型指南:核心技术栈与学习路径

1. 为什么现在转岗AI大模型正当时?2023年被称为"AI大模型元年",ChatGPT的爆发让全球看到了大语言模型的潜力。根据行业调研数据显示,国内AI大模型相关岗位需求同比增长超过300%,头部企业为资深算法工程师开出的年薪普遍…

2026/7/29 11:39:09 阅读更多 →
多机器人编队控制中的事件触发通信机制与Matlab实现

多机器人编队控制中的事件触发通信机制与Matlab实现

1. 多机器人编队控制的通信痛点与事件触发机制搞过多机器人编队控制的朋友都知道,通信资源消耗是个绕不开的难题。想象一下10台机器人在仓库里协同搬运货架,每秒钟要交换几十次状态信息——位置、速度、加速度数据像雪片一样在无线网络里飞,不…

2026/7/29 11:39:09 阅读更多 →
Python+微信小程序构建家校通电子作业系统实战

Python+微信小程序构建家校通电子作业系统实战

1. 项目背景与核心价值 这个Python微信小程序的"家校通"电子作业系统,本质上解决的是K12教育场景下三个核心痛点:作业流转效率低、家校沟通成本高、学情数据碎片化。我在实际教育信息化项目实施中发现,传统纸质作业本平均每天要耗费…

2026/7/29 11:39:09 阅读更多 →

最新新闻

暗黑破坏神2存档编辑终极方案:5分钟学会d2s-editor可视化修改

暗黑破坏神2存档编辑终极方案:5分钟学会d2s-editor可视化修改

暗黑破坏神2存档编辑终极方案:5分钟学会d2s-editor可视化修改 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的存档修改而烦恼吗?想象一下,你花费几十小时打造的角色&#…

2026/7/29 11:49:20 阅读更多 →
从Excel到企业数据资产池:文件数据入湖的治理规则不能省

从Excel到企业数据资产池:文件数据入湖的治理规则不能省

导语 很多企业在搭建数据资产池的过程中,都会默认一个常识:把散落各处的Excel、CSV文件统统导入数据湖,自然就能沉淀出可用的数据资产。但实际落地过程中,我们观察到一个反常识结论:零散文件无规则直接入湖&#xff0c…

2026/7/29 11:49:20 阅读更多 →
Android工程中使用ncnn进行yolo识别

Android工程中使用ncnn进行yolo识别

参考资料:https://github.com/FeiGeChuanShu/ncnn-android-yolov8/tree/main/ncnn-android-yolov8 将ncnn-android-yolov8称为A工程,我自己的工程称为B工程 1.下载ncnn-android-yolov8工程,将A中的ncnn-20230223-android-vulkan、yolo.h、y…

2026/7/29 11:49:20 阅读更多 →
下一代企业操作系统:当BI、指标中心与AI Agent融为一体

下一代企业操作系统:当BI、指标中心与AI Agent融为一体

导语 很多企业在数字化建设过程中会有一个认知误区:把采购多套数据工具的叠加,等同于搭建了完整的数据驱动体系。但实际上,「企业级数据工具叠加」和「一体化企业数据操作系统」有着本质区别:前者是多个独立工具的简单拼接&#x…

2026/7/29 11:49:19 阅读更多 →
权限治理的三层防线:从数据集到字段级,规模化推广如何守住安全底线

权限治理的三层防线:从数据集到字段级,规模化推广如何守住安全底线

导语 当审计人员坐到你面前,第一个问题往往不是"你们的看板做得怎么样",而是"过去一年,谁在什么时间、看过哪些数据、这些访问是否都在授权范围内"。等保2.0对访问控制、安全审计的分级要求,以及GDPR对"…

2026/7/29 11:49:19 阅读更多 →
DownGit:GitHub精准下载终极指南,3步告别整个仓库克隆烦恼 [特殊字符]

DownGit:GitHub精准下载终极指南,3步告别整个仓库克隆烦恼 [特殊字符]

DownGit:GitHub精准下载终极指南,3步告别整个仓库克隆烦恼 🚀 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 你是不是也遇到过这样的烦恼?在GitHub上发现一个很…

2026/7/29 11:48:19 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻