基于ESP32与MQTT的智能漏水监测系统DIY指南
1. 项目概述从“漏水警报”到“主动防御”的智能家居升级最近在折腾家里的智能家居发现一个挺有意思但容易被忽视的痛点水管漏水。这事儿说大不大说小不小。你可能觉得家里装了净水器、前置过滤器就万事大吉了但老化的角阀、松动的软管接头、或者冬天水管冻裂这些隐患随时可能给你来个“水漫金山”。传统的应对方式是什么要么是等楼下邻居找上门要么是等自己发现地板泡发了损失已经造成。所以我动手做了一个“Bolt Water Alert”系统名字直白点就是“螺栓漏水警报器”。它的核心目标不是被动报警而是主动监测、即时响应把漏水风险扼杀在萌芽状态。这个项目本质上是一个低成本的物联网IoT解决方案它通过部署在水管关键节点如厨房水槽下、卫生间马桶旁、热水器下方的传感器7x24小时监测是否有水泄漏。一旦检测到异常系统会通过多种方式比如手机App推送、短信、甚至自动关闭水阀立即通知你让你哪怕不在家也能第一时间采取措施。这不仅仅是买个现成的漏水报警器那么简单而是一套可以根据你家户型、水管布局和智能家居生态进行深度定制和扩展的DIY方案。无论你是智能家居爱好者还是单纯想给家里加一道安全防线的普通用户这套思路和实现方法都能给你带来实实在在的帮助。2. 核心设计思路与方案选型2.1 需求拆解我们要解决什么问题在动手之前得先想清楚这个“Bolt Water Alert”到底要干嘛。我把它拆解成了几个核心需求可靠检测这是基石。传感器必须能稳定、准确地识别水的存在误报没水乱叫和漏报有水不响都要尽可能避免。即时通知检测到漏水后信息必须在几秒内触达用户。延迟几分钟可能就意味着多损失几万块。低功耗与常电设计传感器通常安装在橱柜角落不方便频繁更换电池。因此一部分关键传感器如阀门控制器可能需要接常电而电池供电的传感器则必须极度省电续航至少一年。本地与云端双保险完全依赖云端服务器万一家里断网就抓瞎了。系统需要具备本地逻辑处理能力即使断网核心的报警和关阀动作也能执行。可扩展与集成它不应该是一个信息孤岛。最好能和我已有的智能家居平台如Home Assistant、米家、Apple HomeKit打通实现更复杂的联动比如漏水时自动开启摄像头录像、关闭插座电源等。成本可控毕竟是DIY项目需要在性能、可靠性和成本之间找到平衡点。2.2 技术方案选型为什么是它们基于以上需求我对比了几种主流方案方案A商用成品漏水报警器。优点即插即用但功能固定、扩展性差、各品牌生态封闭且高级功能如自动关阀的配件价格昂贵。方案B基于Arduino/ESP8266/ESP32的DIY方案。这是我最終选择的方向。理由如下灵活性极高主控如ESP32功能强大集成了Wi-Fi和蓝牙既能联网上报数据也能进行本地计算。生态丰富有大量成熟的开源代码库和社区支持传感器、执行器选择多样。成本低廉一个ESP32开发板核心成本仅二三十元加上传感器和继电器总成本可以控制在百元以内不含智能阀门。无缝集成通过MQTT协议或原生API可以轻松接入Home Assistant等开源平台实现深度自动化。传感器选型 漏水检测最常用的是接触式水浸传感器。它原理简单通常有两个探针当水连接两个探针形成回路时电阻急剧变化从而触发信号。我选择的是带有常开NO和常闭NC两种输出模式的传感器这样可以根据电路设计灵活选择提高可靠性。对于有条件的点位也可以考虑非接触式传感器如光学或电容式避免探针长期处于潮湿环境可能导致的腐蚀问题但成本稍高。主控选型ESP32是当仁不让的选择。相比ESP8266它拥有更强大的处理能力、更多的GPIO口、蓝牙功能并且功耗控制得更好。这对于未来可能增加的本地复杂逻辑如多个传感器数据融合判断和低功耗待机模式非常有利。通信与集成方案MQTT协议是物联网的“普通话”。ESP32作为客户端将传感器状态发布到本地部署的MQTT服务器例如Mosquitto通常与Home Assistant一起安装。Home Assistant订阅这些主题并据此触发自动化。这种松耦合的设计使得传感器硬件和逻辑控制分离任何支持MQTT的设备都能轻松加入系统。执行器选型可选但推荐 真正的“主动防御”离不开自动水阀。市面上有电动球阀和专用的智能水阀如支持Zigbee或Wi-Fi的。我建议在总进水口安装一个。选择时需注意管径匹配、驱动方式电机直驱还是齿轮减速、供电电压通常为12V或24V DC以及是否支持手动开关安全冗余。通过一个继电器模块ESP32可以控制这个阀门的供电实现远程或自动关闭。注意操作水管阀门涉及家庭供水安全务必在安装前关闭总阀并确认阀门安装牢固、无渗漏。如果不确定请咨询专业水管工。3. 硬件搭建与核心电路解析3.1 物料清单与准备工作在开始焊接和接线前请准备好以下材料组件型号/规格数量说明主控芯片ESP32开发板如ESP32-DevKitC1核心处理与通信单元水浸传感器接触式NO/NC输出若干根据监测点数量确定继电器模块1路或2路5V驱动1用于控制自动水阀电源自动水阀常开型DC 12V/24V管径匹配1安装在总进水口电源模块5V/2A Micro USB电源适配器1为ESP32和继电器供电阀门电源12V或24V直流电源适配器1功率需匹配阀门杜邦线公对公、母对母若干用于连接防水盒1安装ESP32和继电器置于干燥处其他焊锡、热缩管、螺丝刀、电工胶带准备工作规划部署点实地勘察厨房、卫生间、阳台、热水器、洗衣机等所有水源附近确定最容易发生漏水的“风险点”如角阀接头、软管连接处、地面最低点。测试传感器将水浸传感器探针浸入水中用万用表测试其输出信号是否正常变化确认NO/NC模式。配置开发环境在电脑上安装Arduino IDE或PlatformIO并添加ESP32开发板支持。这是后续编写和上传代码的基础。3.2 电路连接详解与安全要点电路连接是项目的物理基础务必准确、牢固。下图是核心的连接示意图文字描述[传感器侧] 水浸传感器输出线通常为蓝/棕两线 - 接至ESP32的某个GPIO口例如GPIO4和GND。 *若使用NO模式传感器常态下开路遇水闭合GPIO口通过上拉电阻读到高电平遇水变为低电平。 *若使用NC模式则相反。代码中需根据实际接线定义触发逻辑。 [主控侧] ESP32的Vin或5V引脚 - 接继电器模块的VCC。 ESP32的GND引脚 - 接继电器模块的GND。 ESP32的某个GPIO口例如GPIO5 - 接继电器模块的IN信号引脚。 [执行器侧] 继电器模块的COM口 - 接自动水阀电源适配器的正极。 继电器模块的NO口 - 接自动水阀的正极输入线。 自动水阀的负极- - 直接接回电源适配器的负极-。 *这样当ESP32给继电器IN信号时COM与NO接通阀门得电关闭假设为通电关阀型。安全与实操心得强弱电隔离ESP32电路5V和阀门驱动电路12V/24V是分开的仅在继电器处通过光耦或线圈进行信号耦合。接线时务必区分清楚避免高压串入低压电路烧毁主控。电源功率充足确保12V/24V电源适配器的输出电流大于自动水阀的工作电流启动电流可能更大否则可能导致阀门无法动作或电源过载。防水处理水浸传感器的探头部分本身是防水的但其引线接头处是薄弱点。可以使用热熔胶或防水电工胶带进行密封。放置传感器时探针应紧贴地面但传感器主体最好用双面胶或支架稍微垫高避免长期浸泡在微量冷凝水中。继电器状态确认市面上继电器模块有高电平触发和低电平触发两种。务必用万用表测试或查看手册在代码中设置正确的触发逻辑。一个简单的测试方法是不给IN信号用万用表测COM和NO是否导通给IN信号后再测COM和NO是否导通。记录下常态和触发态对应到代码里。4. 软件实现与核心代码剖析硬件搭好了接下来是赋予它灵魂的软件部分。我们将编写运行在ESP32上的固件。4.1 开发环境与核心库配置我使用PlatformIO进行开发它比Arduino IDE更专业库管理更方便。项目需要依赖以下核心库可以在platformio.ini中配置[env:esp32dev] platform espressif32 board esp32dev framework arduino monitor_speed 115200 lib_deps pubsubclient # MQTT客户端库用于连接MQTT服务器 wifi_manager_light # 或 WiFiManager用于配网4.2 主程序逻辑与代码实现整个程序的核心逻辑是初始化 - 连接Wi-Fi - 连接MQTT服务器 - 循环检测传感器状态 - 状态变化时发布MQTT消息 - 接收关阀指令。以下是精简后的核心代码框架及注释#include WiFi.h #include PubSubClient.h // 配置区根据你的实际情况修改 const char* ssid YOUR_SSID; const char* password YOUR_PASSWORD; const char* mqtt_server 192.168.1.100; // Home Assistant所在服务器的IP #define WATER_SENSOR_PIN 4 // 水浸传感器连接的GPIO #define RELAY_PIN 5 // 继电器控制引脚 #define MQTT_TOPIC_STATUS home/water_alert/status // 发布状态的Topic #define MQTT_TOPIC_COMMAND home/water_alert/command // 订阅命令的Topic WiFiClient espClient; PubSubClient client(espClient); bool lastWaterState HIGH; // 假设初始状态为无水高电平 bool valveState false; // 阀门状态false为开启 void setup() { Serial.begin(115200); pinMode(WATER_SENSOR_PIN, INPUT_PULLUP); // 使用内部上拉电阻 pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, HIGH); // 初始化继电器为断开状态根据你的继电器逻辑调整 setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(mqttCallback); // 设置收到消息时的回调函数 } void setup_wifi() { delay(10); Serial.println(Connecting to WiFi...); WiFi.begin(ssid, password); while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); } Serial.println(WiFi connected); } void mqttCallback(char* topic, byte* payload, unsigned int length) { // 处理从MQTT服务器收到的消息 String message; for (int i 0; i length; i) { message (char)payload[i]; } Serial.print(Message arrived [); Serial.print(topic); Serial.print(] ); Serial.println(message); if (String(topic) MQTT_TOPIC_COMMAND) { if (message VALVE_OFF) { closeWaterValve(); } else if (message VALVE_ON) { openWaterValve(); } } } void reconnect() { // 如果MQTT连接断开尝试重连 while (!client.connected()) { Serial.print(Attempting MQTT connection...); String clientId ESP32-WaterAlert-; clientId String(random(0xffff), HEX); if (client.connect(clientId.c_str())) { Serial.println(connected); client.subscribe(MQTT_TOPIC_COMMAND); // 重新订阅命令主题 client.publish(MQTT_TOPIC_STATUS, online); // 上线通知 } else { Serial.print(failed, rc); Serial.print(client.state()); Serial.println( try again in 5 seconds); delay(5000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); // 维持MQTT连接并处理接收 bool currentWaterState digitalRead(WATER_SENSOR_PIN); // 检测状态变化 if (currentWaterState ! lastWaterState) { lastWaterState currentWaterState; if (currentWaterState LOW) { // 假设低电平表示检测到水 Serial.println(Water detected!); client.publish(MQTT_TOPIC_STATUS, leak_detected); // 可以在这里添加紧急本地关阀逻辑 // closeWaterValve(); } else { Serial.println(Water dry.); client.publish(MQTT_TOPIC_STATUS, dry); } } delay(100); // 短暂延迟降低CPU占用 } void closeWaterValve() { digitalWrite(RELAY_PIN, LOW); // 触发继电器闭合给阀门供电 valveState true; client.publish(MQTT_TOPIC_STATUS, valve_closed); Serial.println(Water valve closed.); } void openWaterValve() { digitalWrite(RELAY_PIN, HIGH); // 断开继电器停止供电 valveState false; client.publish(MQTT_TOPIC_STATUS, valve_open); Serial.println(Water valve opened.); }代码要点解析上拉电阻INPUT_PULLUP将GPIO口内部上拉到高电平。当传感器探针无水开路时引脚读到高电平遇水闭合时引脚被拉到GND低电平。这样接线简单抗干扰能力也更强。状态去抖实际环境中水滴可能造成信号的短暂波动。上述简单代码没有做去抖在生产环境中建议在状态判断中加入延时确认逻辑例如连续读取50ms都是低电平才判定为漏水避免误报。本地逻辑优先在loop()中检测到漏水后我注释掉了立即关阀的代码。更优的做法是先通过MQTT上报由Home Assistant这个“大脑”根据更复杂的场景例如是否有人在家、哪个区域漏水来决定是否关阀并发送关阀指令回来。这样更灵活。但作为安全冗余你也可以保留这行本地关阀代码实现“检测即关阀”的最终保障。MQTT主题设计主题命名清晰很重要。home/water_alert/status用于发布设备状态在线、漏水、干燥、阀门状态home/water_alert/command用于接收控制命令。这种设计便于在Home Assistant中创建对应的传感器和开关实体。5. 家庭助理集成与自动化配置硬件和固件就绪后我们需要在Home AssistantHA中集成设备并设置自动化这才是实现智能联动的关键。5.1 在HA中添加MQTT设备首先确保你的HA已经安装了Mosquitto broker插件。然后在HA的configuration.yaml文件中添加MQTT传感器和开关# configuration.yaml 片段 mqtt: sensor: - name: Water Leak Sensor Kitchen state_topic: home/water_alert/status value_template: {% if value_json leak_detected %} on {% else %} off {% endif %} device_class: moisture unique_id: water_leak_kitchen_01 switch: - name: Main Water Valve command_topic: home/water_alert/command state_topic: home/water_alert/status state_value_template: {% if value_json valve_closed %} on {% elif value_json valve_open %} off {% else %} unknown {% endif %} payload_on: VALVE_OFF payload_off: VALVE_ON optimistic: false retain: true unique_id: main_water_valve_01配置说明传感器订阅状态主题当收到leak_detected消息时传感器状态变为on漏水并自动获得moisture设备类在HA前端会显示为水滴图标。开关command_topic用于发送开关命令state_topic用于同步阀门状态。payload_on和payload_off定义了开关动作对应的MQTT消息内容。retain: true确保HA重启后能获取到阀门的最新状态。5.2 创建强大的漏水响应自动化设备添加成功后就可以在HA的“自动化”界面创建场景了。这是一个功能完整的自动化示例# 自动化 YAML 示例 alias: [紧急] 检测到漏水 - 全屋关阀并报警 description: 当任何漏水传感器触发时关闭总水阀并发送多重警报 trigger: - platform: state entity_id: - sensor.water_leak_sensor_kitchen - sensor.water_leak_sensor_bathroom to: on condition: [] # 无条件执行 action: # 动作1立即关闭总水阀 - service: switch.turn_on target: entity_id: switch.main_water_valve # 动作2在家庭内部发出强烈警告如有屏幕音箱 - service: tts.google_translate_say data: entity_id: media_player.living_room_speaker message: 警告检测到漏水已自动关闭总水阀请立即检查 # 动作3发送手机推送通知如使用HA App或Telegram - service: notify.mobile_app_your_phone data: title: 家中漏水警报 message: 位置{{ trigger.to_state.name }} 时间{{ now().strftime(%Y-%m-%d %H:%M:%S) }} 总水阀已自动关闭。 data: importance: high channel: emergency # 动作4打开特定区域的灯光便于夜间检查 - service: light.turn_on target: entity_id: light.kitchen_ceiling data: brightness_pct: 100 color_name: red # 动作5录制摄像头片段如有 - service: camera.record data: entity_id: camera.kitchen filename: /media/leak_{{ now().strftime(%Y%m%d_%H%M%S) }}.mp4 duration: 60 mode: single这个自动化实现了从检测到响应的完整闭环执行动作、本地告警、远程通知、辅助处理一气呵成。5.3 高级技巧与深度优化分区与分级报警你可以在不同房间部署多个ESP32传感器节点每个节点有独立ID。在HA中为每个节点创建独立的传感器。这样自动化可以精确知道是“厨房漏水”还是“卫生间漏水”并执行不同的动作例如只关闭对应区域的分支阀门如果安装了的话。防误报逻辑在自动化中加入condition条件。例如可以设置“仅在离家模式input_boolean.away_mode为on时才自动关阀并发送紧急通知如果在家则只发送普通通知并闪烁灯光由人工判断处理”。这避免了洗澡时水溅到传感器引发误关总阀的尴尬。状态持久化与日志利用HA的“历史”和“日志”功能记录所有漏水事件和阀门操作便于事后分析和责任界定。电池供电节点的优化如果传感器节点采用电池供电ESP32的代码需要深度优化。使用深度睡眠Deep Sleep模式仅在水浸传感器状态变化通过外部中断唤醒或定时唤醒时才连接Wi-Fi上报一次状态这样可以极大延长电池寿命。6. 部署、调试与长期维护实录6.1 现场部署的实战要点硬件和软件在桌面上测试通过后就要进行实地部署了。这一步的细节决定系统的长期稳定性。传感器布置位置不要直接放在可能长期积水的地方如地漏旁而是放在水管接口、设备下方的“必经之路”上。可以将传感器探针用双面胶贴在离地面1-2毫米的高度既能检测到蔓延过来的水又不易被灰尘或日常湿气误触发。固定传感器主体和线路一定要固定好避免被橱柜里的杂物碰掉或拉扯。多点监测对于洗衣机、洗碗机这类设备除了地面还可以在设备本身的接水盘或可能的溢水口布置传感器实现更早的预警。主机与电路安装防水盒将ESP32、继电器模块等核心电路装入防水盒即使安装在橱柜里也能防潮防尘。电源走线220V市电和12/24V直流电源线要规范布线最好用线槽或扎带固定远离水管和潮湿环境。阀门安装安装自动水阀前务必关闭总水阀并排空管道余水。按照阀门箭头指示方向安装箭头指向水流方向。安装后手动开关几次确认阀门动作顺畅无卡滞再通电测试。上电与联网测试先不给阀门供电只给ESP32上电。打开串口监视器观察启动日志确认Wi-Fi和MQTT连接成功。在HA中查看对应的传感器实体状态是否正常更新。用湿布触碰传感器探针观察HA中传感器状态是否立即变为“漏水”并测试自动化流程除了实际关阀。6.2 常见问题与排查技巧在部署和长期使用中你可能会遇到以下问题。这里是我的排查实录问题现象可能原因排查步骤与解决方案ESP32无法连接Wi-Fi1. SSID/密码错误2. 信号太弱3. 路由器设置了MAC过滤1. 检查代码中的凭据。2. 用手机测试安装点信号强度考虑加Wi-Fi中继。3. 查看路由器后台将ESP32的MAC地址加入白名单。MQTT连接失败1. MQTT服务器地址/端口错误2. HA中Mosquitto未正确配置3. 防火墙阻止1. 确认ESP32代码中的mqtt_serverIP和端口默认1883正确。2. 在HA的“Supervisor”中检查Mosquitto插件日志。3. 在路由器或服务器防火墙中开放1883端口。传感器状态不稳定频繁误报1. 传感器探针上有灰尘或导电杂质2. 电路受潮或接线松动3. 代码中缺少软件去抖1. 清洁传感器探针。2. 检查所有接线点确保牢固并对裸露接头做绝缘处理。3. 在代码中为传感器读数增加去抖逻辑如连续多次检测才确认状态。自动水阀不动作1. 继电器未正确触发2. 阀门电源功率不足或损坏3. 阀门机械卡死1. 用万用表测量继电器输入信号和输出端通断确认ESP32控制信号和继电器动作正常。2. 测量阀门电源适配器空载和带载电压确保达标。3. 手动扳动阀门手柄检查是否顺畅。新阀门有时需要多开关几次“磨合”。HA中收不到状态或无法控制1. MQTT主题Topic不匹配2. YAML配置语法错误3. 实体未正确生成1. 使用MQTT测试工具如MQTT Explorer订阅#主题查看ESP32实际发布的消息主题和内容与HA配置对比。2. 检查configuration.yaml文件缩进和冒号使用HA的“配置”-“检查配置”功能验证。3. 重启HA核心服务或在“开发者工具”-“状态”中搜索实体名。长期维护建议定期测试建议每季度进行一次完整的系统测试触发传感器确认报警通知和关阀动作均正常。检查电池如果是电池供电节点在HA中监控其电压传感器如果固件上报了的话或设置定期更换电池的提醒。固件更新关注使用的核心库如PubSubClient是否有重要更新特别是安全补丁。清洁传感器每年清理一次传感器探针及其周围的灰尘、油污。从构思到部署“Bolt Water Alert”项目花了我几个周末的时间但带来的安心感是金钱难以衡量的。它不仅仅是一个漏水报警器更是一个可扩展的智能家居安全基座。你可以在此基础上增加水压传感器监测水压突变连接流量计统计用水量甚至与天气数据联动在寒潮预警时自动将水管滴水防冻。整个过程中最大的收获不是最终那个能工作的设备而是从需求分析、硬件选型、电路设计、编程调试到系统集成的完整实践。它让我对家里的隐蔽工程有了更深的了解和掌控。如果你也正在考虑为家庭增添一道数字防线不妨从这个小项目开始亲手搭建起来。

相关新闻

免Root应用级虚拟定位指南:用FakeLocation为每个App单独伪装位置

免Root应用级虚拟定位指南:用FakeLocation为每个App单独伪装位置

免Root应用级虚拟定位指南:用FakeLocation为每个App单独伪装位置 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 手游里有个只在海外上线的限定活动,导航软…

2026/8/19 2:10:36 阅读更多 →
嵌入式按键交互设计:从硬件消抖到软件状态机的可靠实现

嵌入式按键交互设计:从硬件消抖到软件状态机的可靠实现

1. 从“一键切换”说起:一个被低估的交互范式“Press To Switch”,字面意思就是“按下以切换”。这听起来简单得不能再简单了,不就是按个按钮换个状态吗?但如果你在硬件开发、嵌入式系统、物联网设备甚至是一些桌面软件的交互设计…

2026/8/19 2:10:36 阅读更多 →
TLI4971电流传感器:差分霍尔原理、关键参数与TC264实战应用

TLI4971电流传感器:差分霍尔原理、关键参数与TC264实战应用

1. 从“英飞凌杯”到TLI4971:一个电流传感器的硬核价值如果你关注过“英飞凌杯”全国大学生智能汽车竞赛,或者正在为你的项目寻找一颗高性能、高可靠性的电流传感器,那么TLI4971这个名字很可能已经进入了你的视野。作为英飞凌XENSIV™传感器家…

2026/8/19 2:10:36 阅读更多 →

最新新闻

杰理之 变声接口异常死机问题【篇】

杰理之 变声接口异常死机问题【篇】

void audio_voice_changer_mode_switch(u16 uuid, char *name, VOICE_CHANGER_MODE mode)

2026/8/19 2:44:55 阅读更多 →
多智能体协同优化:自动化HPC系统设计探索的工程实践

多智能体协同优化:自动化HPC系统设计探索的工程实践

1. 项目概述:当多智能体遇上高性能计算设计探索最近在跟几个做计算流体力学和芯片架构的朋友聊天,大家不约而同地提到了一个痛点:在高性能计算系统上做设计探索,太“烧”了。这里的“烧”,既指烧钱——动辄数万甚至数十…

2026/8/19 2:44:55 阅读更多 →
杰理之 当样机使用2脚晶振蓝牙测试盒无线升级失败问题【篇】

杰理之 当样机使用2脚晶振蓝牙测试盒无线升级失败问题【篇】

修改办法:按照补丁修改替换OTA.bin 即可

2026/8/19 2:44:55 阅读更多 →
Jetson远程桌面配置指南:基于VNC与Vino的轻量级解决方案

Jetson远程桌面配置指南:基于VNC与Vino的轻量级解决方案

1. 项目缘起:为什么Jetson需要一个“简单”的远程桌面?如果你正在使用NVIDIA Jetson系列开发板,无论是入门级的Nano,还是性能更强的Orin系列,大概率会遇到一个共同的烦恼:开发环境与显示设备的分离。Jetson…

2026/8/19 2:44:55 阅读更多 →
50欧元自制ESP32智能LED互动桌:从蓝牙控制到安卓App开发全攻略

50欧元自制ESP32智能LED互动桌:从蓝牙控制到安卓App开发全攻略

1. 项目概述:用50欧元打造一张会“说话”的桌子几年前,我在一个创客展上看到一张炫酷的互动LED咖啡桌,灯光能随着手指的移动而变幻,当时就被深深吸引。但一看价格标签,动辄几百甚至上千欧元,瞬间劝退。作为…

2026/8/19 2:44:55 阅读更多 →
Arduino UNO R4与运放实战:数模混合信号处理入门指南

Arduino UNO R4与运放实战:数模混合信号处理入门指南

1. 从“数字”到“模拟”:为什么Arduino玩家需要关注运放? 如果你玩Arduino有一段时间了,尤其是用过UNO R3或者最新的UNO R4,你可能会发现一个现象:我们大部分时间都在和“数字”世界打交道。读取一个按钮是高电平还是…

2026/8/19 2:43:55 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

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

2026/8/18 9:04:56 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/17 18:55:16 阅读更多 →
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/17 18:55:55 阅读更多 →