从零部署EMQX MQTT服务器:Ubuntu安装、MQTTBox测试与生产环境配置指南
1. 从零到一为什么我们需要一个独立的MQTT服务器如果你正在接触物联网项目或者想搭建一个智能家居的试验环境那么“MQTT服务器”这个词你一定不陌生。很多人一开始会直接使用公共的MQTT Broker比如test.mosquitto.org或者broker.emqx.io这确实方便。但很快你就会发现公共服务器存在延迟高、连接不稳定、数据隐私无法保障、无法自定义主题和权限等一系列问题。当你的设备数量超过两位数或者需要处理一些敏感数据时一个自己掌控的、部署在本地的MQTT服务器就成了刚需。简单来说MQTT服务器也叫Broker就像物联网世界的“消息中转站”。所有设备客户端都连接到这个中转站通过发布Publish和订阅Subscribe特定的“主题”Topic来交换信息。自己部署Broker意味着你完全掌控了这个中转站的规则、性能和安全性。今天我就以一个从业者的角度带你从零开始在Linux系统上部署一个高性能、易用的MQTT服务器——EMQX并手把手教你使用一个强大的桌面客户端MQTTBox进行连接测试和高级功能探索。整个过程我会穿插我踩过的坑和总结的经验让你不仅能搭起来更能理解每一步背后的“为什么”。2. 核心选型为什么是EMQX和MQTTBox市面上MQTT Broker的选择不少比如老牌的Mosquitto轻量级的HiveMQ CE以及我们今天要用的EMQX。我的选择逻辑是这样的对于BrokerEMQX性能与扩展性EMQX采用Erlang/OTP平台开发天生为高并发、分布式和软实时系统设计。单节点就能轻松支持百万级的并发连接这对于未来业务增长至关重要。相比之下Mosquitto虽然轻量稳定但在海量连接下的性能表现不如EMQX。功能完整性EMQX开箱即用提供了完善的Web控制台、丰富的认证授权机制如JWT、MySQL/PostgreSQL集成、规则引擎用于消息处理和数据桥接以及监控指标。这些功能在Mosquitto上需要大量插件和手动配置才能实现。社区与生态EMQX拥有活跃的中文社区和详尽的文档遇到问题更容易找到解决方案。其企业版功能强大但社区版EMQX开源版的功能对于绝大多数个人开发者和中小企业项目已经绰绰有余。对于客户端MQTTBox在开发和测试阶段我们需要一个功能全面的GUI客户端而不是仅仅用命令行工具。MQTTBox的优势在于多连接管理可以同时创建和管理多个到不同Broker的连接方便进行跨服务器测试或模拟多设备场景。高级功能支持完整支持MQTT 3.1.1和5.0协议可以方便地设置遗嘱消息Last Will、保留消息Retained Message、服务质量等级QoS 0/1/2等高级特性。脚本与自动化内置JavaScript/Python脚本引擎可以编写脚本模拟复杂的设备上报逻辑这对于压力测试和场景模拟非常有用。数据展示友好以清晰的表格和JSON树状图展示订阅到的消息调试效率远高于命令行输出。基于以上考量EMQX MQTTBox的组合能为我们提供一个从服务器端到客户端的、功能强大且易于上手的全链路开发和测试环境。3. 实战部署在Ubuntu 20.04上安装与配置EMQX我们选择在Ubuntu 20.04 LTS系统上进行部署这是目前云服务器上最主流的长期支持版本之一。以下步骤同样适用于其他基于Debian的发行版。3.1 系统准备与依赖检查首先通过SSH登录你的服务器。确保系统已更新并安装一些必要的工具。# 更新软件包列表并升级现有软件 sudo apt update sudo apt upgrade -y # 安装一些可能需要的工具如curl和wget sudo apt install -y curl wget接下来我们需要获取EMQX的安装包。EMQX提供了多种安装方式包括通过APT仓库、直接下载DEB/RPM包、以及使用Docker。这里我们使用APT仓库的方式这是最便于后续升级和管理的方法。3.2 通过APT仓库安装EMQXEMQX官方维护了APT仓库添加后可以像安装系统软件一样安装和更新EMQX。# 1. 安装必要的工具以通过HTTPS使用APT sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common # 2. 添加EMQX的GPG密钥用于验证软件包 curl -fsSL https://repos.emqx.io/gpg.pub | sudo apt-key add - # 3. 添加EMQX的APT仓库 # 注意这里我们添加的是稳定版stable仓库。如果你想尝试最新功能可以使用 testing 替代 stable。 sudo add-apt-repository deb [archamd64] https://repos.emqx.io/emqx-ce/deb/ubuntu/ $(lsb_release -cs) stable # 4. 更新APT仓库列表使新增的仓库生效 sudo apt update # 5. 安装EMQX开源版 sudo apt install -y emqx注意$(lsb_release -cs)这个命令会自动获取你当前系统的代号如Ubuntu 20.04是focal。确保你的系统版本在EMQX的支持列表中。如果不确定可以去EMQX官方文档查看支持的版本。安装完成后EMQX服务会自动启动。你可以通过以下命令检查其运行状态# 查看EMQX服务状态 sudo systemctl status emqx如果状态显示为active (running)并且没有报错说明安装成功。你还可以使用EMQX自带的命令行工具进行快速健康检查# 使用emqx_ctl命令查看集群状态单节点即本节点状态 sudo emqx_ctl status这个命令会输出节点的运行时间、版本、OTP版本等基本信息。如果看到Node ‘emqx127.0.0.1‘ is started之类的信息说明节点运行正常。3.3 防火墙与安全组配置关键步骤这是第一个容易踩坑的地方。EMQX默认监听多个端口我们需要确保服务器的防火墙如ufw或云服务商的安全组规则允许这些端口的入站流量。EMQX默认使用的主要端口有1883: MQTT TCP协议端口最常用。8883: MQTT SSL/TLS加密端口。8083: MQTT WebSocket端口用于浏览器等Web客户端。8084: MQTT WebSocket SSL/TLS端口。18083: EMQX Dashboard管理控制台的HTTP API端口。假设你使用ufw配置如下# 启用ufw如果尚未启用 sudo ufw enable # 允许SSH端口确保你不会把自己关在外面 sudo ufw allow 22/tcp # 允许EMQX相关端口 sudo ufw allow 1883/tcp sudo ufw allow 8883/tcp sudo ufw allow 8083/tcp sudo ufw allow 8084/tcp sudo ufw allow 18083/tcp # 查看规则是否生效 sudo ufw status numbered重要提醒如果你使用的是阿里云、腾讯云、AWS等云服务器必须在云服务商的控制台安全组中同样添加这些端口的入站规则。云服务器的安全组是位于虚拟机外层的防火墙仅配置系统内的ufw是不够的。我曾在多个项目中因为忘记配置安全组导致本地能连上但外网始终无法访问排查了半天。3.4 首次登录与基础配置现在打开你的浏览器访问http://你的服务器IP地址:18083。你将看到EMQX Dashboard的登录页面。默认用户名admin默认密码public安全警告使用默认密码是极其危险的登录后第一件事就是修改密码。登录成功后建议先进行以下几项基础配置修改管理员密码在左侧导航栏进入系统-用户页面点击admin用户后的“编辑”修改密码并妥善保存。检查监听器进入管理-监听器页面。这里列出了所有已启用的网络服务。确认TCP/1883、WebSocket/8083等监听器的状态都是“运行中”。这可以验证之前的防火墙配置是否真正生效。了解监控概览Dashboard首页展示了连接数、主题数、消息吞吐率等关键指标。在后续测试时这里的数据会动态变化是观察Broker状态最直观的地方。至此一个生产可用的MQTT Broker已经部署完成。它现在可以接受来自任何MQTT客户端的连接了。4. 客户端利器使用MQTTBox进行全方位连接测试服务器搭好了我们需要一个好用的“遥控器”来测试它。MQTTBox是一个跨平台的桌面应用我们将用它来完成从基础连接到高级特性的所有测试。4.1 创建第一个MQTT连接下载与安装从MQTTBox的GitHub Releases页面或官网下载对应你操作系统Windows/macOS/Linux的安装包并安装。新建连接打开MQTTBox点击主界面左上角的“Create MQTT Client”。配置连接参数在弹出的配置窗口中填写以下关键信息Connection Name: 给你的连接起个名字比如My-EMQX-Server。Protocol: 选择mqtt/tcp我们先用未加密的1883端口。Host: 填写你的EMQX服务器IP地址或域名。Port:1883。Client Id: 保持自动生成的即可也可以自定义如MQTTBox_Test_01。MQTT协议要求每个连接必须有唯一的Client ID。Version: 选择3.1.1最通用的版本。其他选项如用户名/密码如果Broker开启了认证、遗嘱消息等可以先留空。点击“Save”保存配置。建立连接配置保存后会在主界面左侧出现一个以你命名的新客户端卡片。点击卡片上的“Connect”按钮。如果一切正常按钮会变为“Disconnect”并且卡片上会显示“Connected”状态。连接失败的排查思路 如果连接失败请按以下顺序排查步骤一在服务器上执行sudo systemctl status emqx确认服务正在运行。步骤二在服务器上执行sudo netstat -tlnp | grep 1883确认EMQX进程正在监听1883端口。步骤三在服务器本地用telnet 127.0.0.1 1883测试本地环回能否连通。如果不通可能是EMQX配置问题。步骤四从你的本地电脑用telnet 服务器IP 1883测试。如果不通99%的问题出在防火墙或云服务商安全组请回头仔细检查3.3节的配置。步骤五检查MQTTBox的Client ID是否与Broker上已有的连接冲突虽然概率较低。可以尝试换一个更独特的Client ID。4.2 发布与订阅理解MQTT通信的核心连接成功后我们就可以体验MQTT最核心的“发布/订阅”模型了。在MQTTBox的客户端卡片界面你会看到“Subscriber”和“Publisher”两个面板。模拟一个温度传感器上报场景订阅主题扮演数据接收方在“Subscriber”面板点击“Add Subscriber”。在“Topic”输入框中填写sensor/temperature/room1。QoS选择0最多交付一次。点击“Subscribe”。现在这个客户端就“监听”着sensor/temperature/room1这个主题了。发布消息扮演温度传感器切换到“Publisher”面板。在“Topic”输入框中填写完全相同的sensor/temperature/room1。在下方的大文本框中输入一条JSON格式的消息例如{value: 24.5, unit: celsius, timestamp: 1689139200}。点击“Publish”。观察结果瞬间在左侧的“Subscriber”面板下你会看到刚订阅的主题下收到了一条新消息内容正是你发布的JSON。同时回到EMQX Dashboard的“监控”页面你会看到“消息”相关的计数增加了。这就是MQTT的精髓发布者不知道也不关心谁订阅了主题订阅者不知道消息来自哪个具体的发布者。双方完全解耦通过Broker和主题这个中间层进行通信。你可以再打开一个MQTTBox客户端订阅同一个主题会发现两个订阅者都能收到消息这就是“一对多”的广播。4.3 探索高级特性QoS、保留消息和遗嘱消息基础通信跑通后我们来试试MQTT协议里几个非常实用但容易混淆的高级特性。1. 服务质量QoSQoS定义了消息传递的保证级别。在Publisher和Subscriber面板都可以设置。QoS 0最多一次消息发出即忘不保证送达。性能最高。适合不重要的数据如周期性上报的传感器状态丢一两条没关系。QoS 1至少一次确保消息至少送达一次但可能重复。发布者会保存消息直到收到接收者的确认PUBACK。适合重要的控制指令但不能接受重复的场景需要业务层去重。QoS 2恰好一次通过四次握手确保消息恰好送达一次。最可靠但开销最大。适合支付、关键状态同步等绝对不能出错或重复的场景。实操对比在Publisher发布消息时分别选择QoS 0, 1, 2观察网络不稳定时可以手动断开再重连模拟Subscriber的接收情况。你会直观感受到不同级别在延迟和可靠性上的权衡。2. 保留消息Retained Message有时候新上线的订阅者需要立刻获取某个主题的最新状态而不是等待下一次发布。这时就需要保留消息。操作在Publisher发布消息时勾选“Retain”选项再发布。效果Broker会保存这条消息。之后任何新的订阅者订阅该主题时会立刻收到这条被保留的消息。每个主题只能保留一条最新的消息。应用场景设备上线后立即获取服务器配置、传感器最新读数、开关最新状态等。3. 遗嘱消息Last Will and Testament, LWT遗嘱消息用于在客户端非正常断开连接如网络突然中断、设备崩溃时由Broker代为发布一条预设的消息。配置位置在创建MQTT连接时的配置窗口中有“Last Will and Testament”区域。如何设置勾选“Set Will”然后填写一个“Will Topic”如device/status/client01和“Will Message”如{status: offline, reason: abnormal}。触发机制当客户端建立连接后如果它没有发送正常的DISCONNECT包就断开了Broker会等待一个“遗嘱延迟”时间可配置然后自动向“Will Topic”发布这条“Will Message”。应用场景实时监控设备在线状态。其他订阅了device/status/的客户端一旦收到某设备的“offline”遗嘱消息就知道它异常下线了可以触发告警。5. 生产环境进阶EMQX的认证与授权配置在公网环境或真实项目中让Broker裸奔是绝对不行的。我们必须为它加上“门锁”——认证和授权。5.1 启用密码认证最基础EMQX支持多种认证方式我们首先配置最常用的“用户名/密码”认证。在Dashboard中配置进入认证-认证页面。你会看到EMQX内置了多种认证器。选择密码认证点击“Built-in Database”认证器对应的“设置”按钮。这个认证器使用EMQX内置的Mnesia数据库存储用户凭证适合中小规模场景。启用并配置在设置页面确保“启用”开关是打开的。其他参数如“密码加密方式”可以选择sha256或更安全的bcryptbcrypt更安全但计算开销稍大。点击“保存”。创建用户在同一个“Built-in Database”认证器页面切换到“用户管理”标签页。点击“添加”输入用户名如device_user和密码。你可以在这里创建多个用户用于不同的设备或应用。现在回到MQTTBox测试断开之前的连接。编辑连接配置在“Username”和“Password”字段填入刚才创建的用户名和密码。尝试连接。如果密码错误连接会被拒绝。你可以在EMQX Dashboard的“监控”-“客户端”页面看到连接失败的原因日志。5.2 使用ACL进行主题权限控制认证解决了“你是谁”的问题授权则解决“你能干什么”。在MQTT中授权主要体现在对主题的发布和订阅权限上这通过访问控制列表ACL来实现。EMQX的ACL规则同样可以配置在内置数据库中。进入ACL配置在Dashboard进入授权-访问控制页面。选择“Built-in Database”作为数据源。添加ACL规则点击“添加”。一条ACL规则主要包含主题可以使用通配符。代表单层通配符#代表多层通配符。例如device//data可以匹配device/001/data但不能匹配device/001/data/temperature。device/#可以匹配所有以device/开头的主题。操作发布、订阅或发布订阅。权限允许或拒绝。用户/客户端规则对哪个用户或客户端生效。可以指定具体的用户名如device_user也可以使用%u代表所有用户或%c代表所有客户端。配置示例规则1允许上报用户device_user允许发布到主题sensor//data。规则2允许订阅控制用户device_user允许订阅主题cmd//device_user。规则3拒绝敏感操作用户device_user拒绝发布订阅主题$SYS/#系统主题通常包含Broker内部信息。重要经验ACL规则的顺序很重要。EMQX会按顺序匹配规则一旦匹配到就执行。通常会把“拒绝”规则放在前面“允许”规则放在后面最后是一条默认规则如“拒绝所有”。这遵循“最小权限原则”即只授予必要的权限。配置完成后用MQTTBox使用device_user登录尝试发布到sensor/001/data应该成功再尝试订阅$SYS/brokers应该被拒绝。通过这样的测试你可以验证ACL规则是否按预期工作。6. 性能调优与监控让Broker更稳健部署好并加上安全措施后我们还需要关注Broker的运行状态和性能确保它能稳定服务。6.1 利用Dashboard进行监控EMQX Dashboard的“监控”模块是首要工具。概览关注“连接数”、“主题数”、“消息速率”发布/订阅TPS。如果连接数接近系统上限或消息速率异常高可能需要扩容或优化客户端代码。客户端在这里可以看到所有在线和离线的客户端详情包括Client ID、IP、连接时间、订阅的主题等。可以强制断开异常客户端。主题查看最活跃的主题、主题树。如果发现某个主题的消息量异常巨大可能需要分析业务逻辑是否合理。订阅查看所有的订阅关系。6.2 关键配置参数调优对于生产环境可能需要调整EMQX的配置文件通常位于/etc/emqx/emqx.conf。修改前请备份。以下是一些关键参数# 连接相关 node.max_connections 1000000 # 单个节点最大连接数根据机器配置调整 zone.external.max_connections 102400 # 外部监听器最大连接数 listener.tcp.external.max_connections 102400 # TCP监听器具体配置 # 会话与消息 mqtt.max_packet_size 10MB # 最大报文大小防止超大报文攻击 mqtt.keepalive_backoff 0.75 # 保活心跳的容错系数网络差时可调大 session.max_inflight 100 # 飞行窗口大小影响QoS 1/2的消息流控 session.max_awaiting_rel 1000 # 等待释放的消息数QoS 2 session.await_rel_timeout 300s # QoS 2消息释放超时时间 # 性能与资源 node.process_limit 2097152 # Erlang进程数上限 node.max_ets_tables 262144 # ETS表数量上限 listener.tcp.external.acceptors 16 # TCP接收器进程数可增加以应对高并发连接 listener.tcp.external.rate_limit 1024,100ms # 连接速率限制修改配置后需要重启EMQX服务sudo systemctl restart emqx调优心法不要盲目修改配置。最好的方法是结合监控指标。例如如果发现连接建立很慢可以适当增加acceptors如果内存增长过快检查max_inflight和max_awaiting_rel是否设置过大导致消息积压。6.3 日志排查当问题发生时当出现连接失败、消息丢失等问题时日志是第一现场。EMQX的日志默认在/var/log/emqx/目录下。emqx.log.*: 主要的运行日志记录INFO、WARNING、ERROR等级别的信息。emqx.log.sasl.*: 更底层的系统应用支持库日志通常用于排查更复杂的问题。常用的日志查看命令# 实时查看最新日志 sudo tail -f /var/log/emqx/emqx.log # 查看包含“error”关键词的日志 sudo grep -i error /var/log/emqx/emqx.log # 查看特定客户端ID的日志非常有用 sudo grep ClientId: your_client_id /var/log/emqx/emqx.log例如如果客户端认证失败日志中可能会出现[error] Client xxx (Username: xxx) login failed for not_authorized这样的记录能帮你快速定位是密码错误还是ACL拒绝。7. 从测试到生产常见问题与避坑指南结合我多年的部署经验这里总结几个高频问题点问题一客户端频繁断开重连日志显示keepalive timeout。原因MQTT客户端会定期向Broker发送PING请求保活包以维持连接。如果网络延迟高或不稳定可能在保活时间内无法完成通信。解决检查网络质量。适当增加客户端的Keep Alive时间如从60秒增加到120秒。检查服务器端配置mqtt.keepalive_backoff适当调大如从0.75调到0.95给网络波动留出余量。问题二消息大量堆积Broker内存持续增长。原因发布速度远大于订阅者的消费速度或者订阅者离线了对于QoS 1/2的消息Broker会为离线会话存储消息。解决在Dashboard“监控”-“客户端”页面检查是否有大量“离线”会话并清理不必要的离线会话。优化业务逻辑避免向无人订阅的主题狂发消息。对于非关键数据考虑使用QoS 0。调整session.max_inflight和session.max_awaiting_rel限制飞行中的消息数量。问题三如何实现Broker的高可用方案EMQX支持集群部署。你可以将多个EMQX节点组成一个集群客户端可以连接到集群中的任意节点订阅和发布的消息会在集群内同步。即使一个节点宕机客户端也可以重连到其他节点实现故障转移。关键步骤需要配置节点发现机制如手动指定、DNS、etcd、K8s等并确保节点间的网络通信端口4370默认互通。这属于进阶部署建议参考EMQX官方集群文档。问题四MQTTBox连接正常但自己的设备端代码连不上。排查99%的问题在于设备端代码的MQTT客户端库配置。Client ID冲突确保设备端的Client ID唯一。协议版本不匹配检查设备端代码中MQTT协议版本是否与Broker兼容通常用3.1.1。Clean Session标志理解Clean Sessiontrue/false的含义。如果设为falseBroker会为客户端持久化会话包括订阅和QoS0的未完成消息下次以相同Client ID连接时可以恢复。如果设备端逻辑没处理好可能导致奇怪的问题。初期建议都设为true。心跳时间设备端的Keep Alive时间设置是否合理。部署和用好一个MQTT服务器远不止于安装和连接。从安全配置到性能调优从协议特性理解到问题排查每一个环节都需要结合具体的业务场景去思考和调整。希望这篇从选型、部署、测试到进阶配置的长文能为你提供一个扎实的起点和清晰的路线图。剩下的就是在你的实际项目中去实践和探索了。记住监控和日志是你最好的朋友遇到问题多看看它们。

相关新闻

做完 HTML 课件、课程网页或小程序后,怎么把它变成自己的作品资产?

做完 HTML 课件、课程网页或小程序后,怎么把它变成自己的作品资产?

不少学生在课程里会完成网页作业、互动课件、数据可视化、小程序原型或社团活动页面。做的时候很投入,提交后却常常只剩下一个压缩包、一个网盘链接,或者一条很快失效的测试地址。这很可惜。因为这些项目其实比一份普通作业更能体现能力:你如…

2026/10/16 7:38:34 阅读更多 →
如何快速解决游戏模组显示问题:BG3ModManager完整排查指南

如何快速解决游戏模组显示问题:BG3ModManager完整排查指南

如何快速解决游戏模组显示问题:BG3ModManager完整排查指南 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 作为《博德之门3》模组管理器…

2026/10/16 7:38:34 阅读更多 →
国际象棋思维训练:从核心规则到AI辅助的现代学习路径

国际象棋思维训练:从核心规则到AI辅助的现代学习路径

1. 从棋盘到思维:国际象棋的现代魅力与核心价值国际象棋,这个拥有超过1500年历史的古老游戏,早已超越了单纯的娱乐范畴,成为一门融合了艺术、科学、体育与哲学的独特智力竞技。它不像许多现代电子游戏那样依赖瞬时反应或视觉冲击&…

2026/10/13 8:31:49 阅读更多 →

最新新闻

Android校园论坛App开发实战:从架构设计到毕设答辩全攻略

Android校园论坛App开发实战:从架构设计到毕设答辩全攻略

1. 项目概述:为什么说这是最适合做毕设的Android选题之一校园信息论坛这个题目,几乎是每年计算机毕业设计里“常青树”级别的存在。我见过太多人选电商系统、选点餐App、选运动打卡,最后做到中期答辩才发现业务逻辑复杂到失控——订单状态机、…

2026/10/16 7:38:11 阅读更多 →
Ubuntu 20.04深度学习环境搭建:NVIDIA驱动+CUDA+cuDNN+PyTorch全攻略

Ubuntu 20.04深度学习环境搭建:NVIDIA驱动+CUDA+cuDNN+PyTorch全攻略

1. 深度学习环境搭建的整体思路与方案选型1.1 为什么选择这套组合搞深度学习环境搭建这件事,说简单也简单,说折腾也真折腾。我前后在不下十台机器上装过这套环境,从实验室的塔式工作站到租用的云主机,每次都会遇到不一样的问题。U…

2026/10/16 7:38:11 阅读更多 →
YOLOv10【第九章:模型导出、部署与加速篇·第9节】NCNN 部署 YOLOv10:算子兼容与后处理适配!

YOLOv10【第九章:模型导出、部署与加速篇·第9节】NCNN 部署 YOLOv10:算子兼容与后处理适配!

🏆 本文收录于 《YOLOv10实战:从入门到深度优化》 专栏。 该专栏系统复现并深度梳理全网主流 YOLOv10 改进方法与工程实战案例,覆盖分类、目标检测、实例分割、多目标追踪、关键点检测、旋转目标检测等多个方向,坚持 持续更新 + 深度解析 + 工程验证。 专栏将围绕 YOLOv10…

2026/10/16 7:38:11 阅读更多 →
STM32 HAL库内部Flash操作与固件大小读取方法详解

STM32 HAL库内部Flash操作与固件大小读取方法详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 7:38:11 阅读更多 →
基于MP2642GR-Z与PIC18F8520的两串电池主动均衡系统设计

基于MP2642GR-Z与PIC18F8520的两串电池主动均衡系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 7:38:11 阅读更多 →
手工扒带Grunge:用Ableton与Python构建音乐数据集

手工扒带Grunge:用Ableton与Python构建音乐数据集

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 7:37:11 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →