ThingsBoard-GateWay Modbus串口接入实战:modbus.json配置与排错指南
如果你正手拿一台带串口的工业设备准备把它上面的Modbus RTU数据接到ThingsBoard平台那么在ThingsBoard-GateWay上配置modbus串口总线几乎是你绕不开的一步。我前前后后给好几组现场设备做过这类接入最深的感受是真正的难点不在平台侧而在网关侧的modbus.json配置。波特率、从站地址、寄存器类型、字节序任何一个参数不对整个链路就静悄悄。这篇内容就是把我实际配置和排错的过程完整梳理一遍适合刚开始接触物联网网关、或者已经在ThingsBoard-GateWay上被串口Modbus折腾到没脾气的开发者。1. 网关接入modbus串口设备的整体设计思路1.1 为什么偏偏选ThingsBoard-GateWay很多人在边缘侧接过Modbus设备时第一反应是自己写个脚本用pymodbus或者libmodbus定时去读仪表然后把数据用MQTT推到ThingsBoard。这个思路本身没有错但一旦设备数量多起来、现场又要远程改配置、还得保证断线自动恢复自己写的脚本就会变成维护负担。ThingsBoard-GateWay本身就是为这个场景做的它在本地运行专门负责把各种工业协议转换成ThingsBoard平台能理解的数据模型。网关接管协议转换之后Modbus的一堆寄存器、从站地址、字节序细节全部被隐藏在后端ThingsBoard侧只需要关心设备名称和遥测字段。我甚至不需要预先在平台侧创建设备网关联调时会自动建立对应设备等配置对了数据就直接出现在设备面板里。这套机制让我在现场少干了很多重复劳动。还有一点容易被忽略网关支持多个协议扩展并存。同一个网关上我可以同时跑Modbus、OPC-UA、MQTT、BLE等多个连接器各自独立配置互不干扰。这意味着未来往现场加设备不需要改架构只需要多开一个配置段。1.2 modbus串口总线的场景特质Modbus串口总线准确说通常是Modbus RTU over RS-485。RS-485是物理层标准特点是差分信号、抗干扰强、传输距离能到上千米非常适合工厂车间和户外配电房这类环境。Modbus RTU则定义了链路层的数据帧格式设备地址、功能码、数据区、CRC校验。一套总线上可以挂多个从站设备从站地址从1到247主站通过轮询方式和每个从站交互。这种结构决定了配置思路上三个要点。第一串口参数必须和每台从站设备完全一致波特率、数据位、停止位、校验位一个都不能错。第二主站轮询是顺序发生的同一时刻总线上只能有一个请求所以不能指望同时对一堆设备做高频并发采集。第三从站设备是“被动响应型”网关不主动发问仪表绝不多说一句话。这意味着配置里的轮询周期、超时时间直接决定了数据刷新速度和总线负载。实际现场里RS-485的接线还经常出幺蛾子A/B线接反、屏蔽层没接地、终端电阻缺失这些物理层问题会在网关配置时表现为莫名的超时和乱码。所以做串口Modbus接入一定要有“配置问题硬件问题同时排查”的思维。1.3 配置文件里藏着的核心逻辑ThingsBoard-GateWay的Modbus扩展核心配置在网关config目录下的modbus.json里。整个文件的结构可以理解成三层第一层masterConfig定义网关行为比如用串口还是TCP、轮询周期、串口参数第二层devices数组定义总线上每个Modbus从站如何映射成一个ThingsBoard设备第三层attributes和timeseries定义从站的哪些寄存器数据点对应平台设备的什么字段。把这套结构想清楚了后面填参数就不会慌。我见过不少人一上来就复制网上的片段结果跑不通原因就是没搞懂每一层到底在干嘛。特别是deviceNodeId和targetSlaveID的区别前者是网关内部的设备节点标识后者才是总线上真正的Modbus从站地址两者弄混设备名会直接乱掉。在进入具体字段之前建议先做一件事把你手头从站设备的手册打开找到Modbus寄存器表和通信参数页把波特率、地址、寄存器地址、数据类型、字节序都抄到一张纸上。配置就能少走一半弯路。2. modbus串口配置详解一个字段一个坑2.1 transportType和serialSettings先把串口参数对齐masterConfig里最关键的是transportType串口场景固定填serial。它决定了下面走哪一组连接参数如果填成tcp网关就会去找TCP配置段导致串口永远没反应。对应串口参数用的是serialSettings块字段并不复杂但每一个都值得较真port串口设备路径Linux下通常是/dev/ttyUSB0、/dev/ttyS0这类。USB转485的适配器一般叫ttyUSB0主板原生串口叫ttyS0。填错路径网关也能启动但日志会一直刷设备打不开。baudRate波特率常见9600、19200、38400、115200。这个必须和设备侧完全一致差一个数字都白搭。dataBits数据位Modbus RTU固定8位。stopBits停止位绝大多数设备是1。parity校验位可选NONE、EVEN、ODD。工业老设备偶校验和奇校验都比较常见强烈建议先看手册。举个例子我接一台老款电表时手册上写着9600, 8, 1, EVEN我默认填了NONE结果读数据时有一半请求超时。后来用串口监听工具看了总线上的报文才意识到校验位不对。校验位这种参数光看报错很难看出来因为它不会导致完全黑屏只是偶发丢包和读错值。还有一个容易忽略的问题serialSettings里的port如果是数值而不是字符串网关解析JSON时可能会直接报类型错误。我习惯把所有字段都写成字符串或整数后走一遍JSON格式检查再让网关加载。2.2 serverConfig轮询周期和串口独占serialSettings下面是serverConfig里面最重要的两个字段是pollPeriod和disableOtherSerialInput。pollPeriod是网关对总线上从站发起轮询的周期单位毫秒。它决定数据延迟但不是说设得越小越好。Modbus是半双工总线一个请求发出后必须等从站回应超时之后才能处理下一个请求。如果pollPeriod设得太小网关会把大量时间耗在等待超时上反而降低有效采集率。我的习惯是先从大往小调比如先设3000ms跑通再逐步降到500ms观察日志里没有超时再收手。disableOtherSerialInput这个字段表示网关是否独占这个串口。如果设为true网关会停止监听其他程序对串口的输入直接把串口作为Modbus主站通道使用。在同时跑调试软件的场景下这个开关容易被忽略。我调试时习惯先用一个独立串口工具验证设备能正常回包确认后再交给网关独占。serverConfig里的timeout和retries字段虽然没有在默认配置中强制出现但如果你遇到复杂总线上偶发超时可以给请求加一个超时毫秒数并指定重试次数。这有点像在网络请求里做超时重传既能容忍偶发抖动又不会因为一直死等某一个掉线从站卡住整条总线。2.3 devices数组从站映射到网关设备devices数组里每个元素代表总线上一个Modbus从站在平台侧对应的一台设备。举例来说如果总线上挂着3台温湿度表地址分别是1、2、3那这里就至少要有3个对象每个对象里的targetSlaveID分别填对应地址。重要的字段是deviceNodeId、deviceName、deviceType和transport.targetSlaveID。deviceNodeId是网关内部的节点标识必须唯一它可以和deviceName无关。网关最终上报到ThingsBoard时会自动组合deviceNodeId和目标从站地址生成一条设备标识通过控制台日志能看到生成的设备名。deviceName则是你希望平台侧显示的名字比如“车间温湿度1号”。这里的配置坑我踩过一次deviceNodeId里带中文或特殊字符网关虽然能创建但某些版本的日志和设备匹配会出问题。后来我统一用项目缩写加数字编号比如tmp_hum_01干净且好排查。transport块里目前主要是targetSlaveID也就是Modbus从站地址。不要把这个地址理解成寄存器地址它对应的是总线上每台设备的“门牌号”。部分仪表的设备地址还可以在面板上改配置前最好确认一下仪表当前实际地址而不是只看手册默认值。2.4 attributes、timeseries和数据类型转换attributes和timeseries是两个数组分别描述网关要把哪些寄存器数据作为设备属性哪些作为时序遥测数据上报。差别很简单属性是“不太变的信息”比如设备序列号、固件版本、量程范围时序数据是“高频变化的值”比如温度、湿度、压力、电流。每个数据点的关键字段有这些typeModbus功能码。3代表读保持寄存器4代表读输入寄存器。选择依据是设备手册里的寄存器类型。保持寄存器一般存配置类和可写参数输入寄存器则多存只读测量值。address寄存器起始地址。注意Modbus协议里的地址是从0开始的而很多设备手册里写的是40001、40002这种PLC风格的地址需要做换算40001对应地址040002对应地址1。换算错了数据会整体错位。registerCount读取的寄存器个数。16位整数读1个寄存器32位整数或浮点数读2个寄存器。数量不对边界就会对不上。byteOrder字节序。Modbus协议本身是大端传输但有些设备的32位数据会把低字放到前面这里需要按手册设置BIG、LITTLE等选项。multiplier和offset数据缩放和平移。比如仪表原始值是整数1234实际代表12.34℃那么multiplier设0.01网关上报前会做value raw * multiplier offset的换算。attributes和timeseries里还可以嵌套一层自定义属性对象用来给数据点打标签也就是上报到平台时附带的额外元信息。实际应用里我常用它标记数据点的工程单位、位置编号方便在仪表板里做筛选和展示。3. 从零配置一个Modbus-RTU温度传感器3.1 场景与准备我用一个最常见的场景来演示现场某设备柜内装了一个温湿度变送器支持Modbus RTU挂在RS-485总线上从站地址是1波特率9600数据位8停止位1无校验。寄存器表里保持寄存器地址0是温度值放大10倍的整数实际分辨率0.1℃保持寄存器地址1是湿度值同样放大10倍地址2是我的传感器序列号。准备工作有几件。一台Linux主机或ARM开发板一个USB转RS-485适配器一根双绞线连到变送器的A/B端子。接线时务必确认A对A、B对B。物理连接处理好之后用系统命令先确认串口被识别比如在Linux下ls /dev/ttyUSB*能看到设备节点就说明驱动正常。此时如果用普通用户打开串口大概率会遇到Permission denied解决办法是把当前用户加进串口设备所属的用户组然后重新登录会话。为了不让第一轮配置变成抓瞎我会先用一个小脚本测试设备能不能正常应答Modbus请求确认物理链路和寄存器地址都对再改网关配置。这样排查问题时可以清晰划分硬件问题和软件问题。3.2 完整的modbus.json配置示例下面这份配置可以直接套用。它定义了一台ThingsBoard设备“TH Sensor 01”通过串口读两个保持寄存器作为实时温度、湿度遥测同时把一个输入寄存器数据作为设备的modbus_id属性。{ masterConfig: { transportType: serial, serialSettings: { port: /dev/ttyUSB0, baudRate: 9600, dataBits: 8, stopBits: 1, parity: NONE }, serverConfig: { pollPeriod: 2000, disableOtherSerialInput: true }, devices: [ { deviceNodeId: th_sensor_01, deviceName: TH Sensor 01, deviceType: default, transport: { targetSlaveID: 1 }, attributes: [ { tag: modbus_id, type: 4, address: 2, registerCount: 1, byteOrder: BIG, attributes: { label: Modbus ID } } ], timeseries: [ { tag: temperature, type: 3, address: 0, registerCount: 1, byteOrder: BIG, multiplier: 0.1, timeseries: { label: Temperature } }, { tag: humidity, type: 3, address: 1, registerCount: 1, byteOrder: BIG, multiplier: 0.1, timeseries: { label: Humidity } } ] } ] } }我把温湿度都放在保持寄存器里所以type填3modbus_id放在输入寄存器里type填4。如果设备手册里温度是浮点数那registerCount就得改成2并确认byteOrder。千万别小看multiplier的作用很多仪表都把浮点数放大成整数存储不加缩放系数平台上的读数直接多两位小数。3.3 配置验证和启动步骤配置写好之后不要直接扔给网关。我的习惯是先做两步预检。用python跑一个小脚本验证从站应答这样做的好处是隔离问题。如果脚本也读不到数据就说明问题出在串口参数或物理链路跟网关配置无关。from pymodbus.client import ModbusSerialClient client ModbusSerialClient( methodrtu, port/dev/ttyUSB0, baudrate9600, parityN, stopbits1, bytesize8, timeout1 ) client.connect() rr client.read_holding_registers(0, 2, slave1) if not rr.isError(): print(rr.registers) client.close()如果脚本返回了寄存器值就可以把modbus.json放到网关的config目录替换原有文件。改文件前务必先备份比如执行cp modbus.json modbus.json.bak。网关在Linux下通常以服务方式运行改完配置需要重启进程常见命令是systemctl restart thingsboard-gatewayDocker部署则重启容器。启动之后立刻看日志。日志路径一般在网关目录下的logs/thingsboard-gateway.log重点看Modbus扩展的启动日志有没有类似“Modbus connector started”的记录。如果看到超时、缓存读取失败之类的错误多半是配置参数有偏差。一切正常的话去ThingsBoard平台刷新设备列表能看到网关自动创建了设备稍等一两个轮询周期temperature和humidity两个遥测键就会开始有数据。3.4 轮询周期与串口负载估算配置里的pollPeriod到底填多少这里有一个很实用的估算方法。以9600波特率为例串口上每个字符的传输时间约等于10位除以波特率大概1.04毫秒。一个标准的Modbus RTU读请求帧是8字节其中包含地址、功能码、寄存器地址、寄存器数量、CRC校验。如果从站响应2个寄存器响应帧大约是9字节。加上Modbus协议要求的帧间隔时间整个请求-响应周期大约在25到30毫秒。所以说就算总线上挂了5台设备每个设备各读2个寄存器pollPeriod设成1000毫秒总线负载也远没有到瓶颈。但如果设备数量多或者每个设备要读几十个寄存器响应帧变长总耗时就会明显增加。举例来说单台设备读取20个保持寄存器时请求帧8字节响应帧变成45字节加帧间隔约55毫秒。总线上挂10台这样的设备一轮轮询就要550毫秒。这时pollPeriod设1500毫秒或2000毫秒才比较稳。理解了这一点就不会盲目把pollPeriod调到几百毫秒。半双工总线的带宽就那么多请求越密等待超时的概率越大。我在现场通常先用3000毫秒跑通再根据总线上设备数量和日志里的超时次数慢慢往下压。4. 常见问题排查与调试实录4.1 典型故障速查表下面这张表是我几次现场排错里总结出来的按“现象 → 原因 → 解决”组织适合遇到问题时直接对号入座。现象常见原因排查与解决网关日志报串口打开失败串口路径错误或权限不足确认/dev/ttyUSB*存在把用户加入串口设备组并重新登录日志频繁出现读取超时波特率、校验位与设备不一致对照设备手册核对serialSettings必要时用串口监听工具抓帧设备数据全是0或极大值寄存器地址、类型或字节序错用modbus调试脚本逐寄存器读确认实际值和数据类型后再改配置设备在平台侧创建了但没有遥测timeseries字段的tag或功能码不对检查type是3还是4tag名是否含特殊字符个别从站始终无响应其他从站正常从站地址冲突或该设备掉线检查targetSlaveID是否唯一用Modbus Poll等工具单独测试该地址修改配置后网关报JSON解析错误多写了逗号或字段类型不对用JSON格式化工具校验确认port写成字符串、pollPeriod写成整数这些场景里读超时是最常见的也是最让人头疼的。因为它背后可能隐藏着三种不同的问题串口参数不匹配、接线接触不良、从站地址不对。我的经验是先抓帧再猜用逻辑排除。4.2 几个只有踩坑才知道的串口技巧第一串口权限问题比你想象中更常见。很多新手在Linux下用主用户启动网关以为权限没问题结果某个插件进程以不同用户身份运行打不开串口。建议先确认启动网关的用户身份并确保该用户对串口设备有读写权限。一般来说把用户加入串口设备所属组重新登录一次就能解决。第二RS-485是半双工总线同一时刻只允许一个主站发起请求。调试时如果用两个工具同时轮询总线上会产生冲突表现为一个工具正常、一个工具疯狂超时。所以网关配置的disableOtherSerialInput要开调试软件也得在网关跑起来之前退出。不会总线上有主站去访问已经被网关占用的串口设备。第三抓帧是排查利器。用一个USB转串口工具并联到RS-485的A/B线上监听总线上的Raw数据用任意支持串口监听的十六进制工具抓包。如果看到网关发了请求帧但从站没回问题大概率在从站侧或地址匹配如果请求帧都没发出来问题在网关配置或串口占用。这样做判断比靠猜快得多。第四寄存器地址的起点经常误导人。设备手册标注40001对应地址0这是PLC习惯的标识法。配置里address要填0不填40001。这个错误我犯过一次读出来的数据全部错位还带着异常值后来用脚本从地址0开始挨个读才反推出手册的对应关系。第五字节序遇到32位数据时一定要看设备手册。Modbus RTU标准本身是低字后发还是高字后发没有统一规定完全看厂商实现。byteOrder配错不会报错只是数值变得很离谱。怀疑字节序不对时可以把读到两个寄存器的原始值打出来手动组合成高字低字对比实际工程值很快能确认顺序。最后再分享一点个人习惯。每次改完modbus.json我都不会直接翻到最后看结果而是先在配置目录下用JSON校验工具确认格式再启动网关看日志最后去平台看数据。这套流程看起来多花了几分钟实际上避开了大量“改了配置没生效”的无效加班。串口Modbus接入只是物联网网关的起步技能跑通了这一块后面再接触TCP从站、多设备轮询、断线重连这些高级玩法思路都是相通的。至少我在折腾完这套配置之后再看ThingsBoard-GateWay的其他协议扩展明显感觉配置文件那套“连接参数设备映射点位定义”的思维模型是通用的。希望这篇配置方法说明能帮你少走我之前走过的弯路。

相关新闻

AI辅助毕业论文写作:四款工具实测与提效指南

AI辅助毕业论文写作:四款工具实测与提效指南

1. 毕业论文这道关,为什么越来越多人开始靠AI闯?每年到了三四月份,校园里的气氛就会变得微妙起来。图书馆里坐满了人,打印机前永远排着队,朋友圈里开始出现"凌晨三点改稿打卡"之类的动态——没错&#xff0c…

2026/10/17 12:05:40 阅读更多 →
大模型技术栈轻松入门:从模型到产品,收藏这份分层指南!

大模型技术栈轻松入门:从模型到产品,收藏这份分层指南!

本文深入浅出地解析了大模型相关技术栈的各个层级,包括模型层、运行时层、能力层、编排层和产品层,帮助小白和程序员更好地理解和应用大模型技术。文章详细介绍了DeepSeek Harness、Agent、Skill、Workflow等关键概念,并通过实例和图表让读者…

2026/10/17 12:05:40 阅读更多 →
T_MATS工具箱:MATLAB/Simulink航发部件级建模实践指南

T_MATS工具箱:MATLAB/Simulink航发部件级建模实践指南

简介:面向航空发动机建模与仿真场景的T_MATS工具箱安装包,基于MATLAB环境运行,用于搭建JT9D涡扇发动机等热力系统模型并开展性能分析。压缩包共400个文件,整体大小5.8MB,包含106个slx模型文件、104个m脚本、92个html说…

2026/10/17 12:05:40 阅读更多 →

最新新闻

STM32+PT100温度采集系统:从恒流源电路到ADC插值计算的完整方案

STM32+PT100温度采集系统:从恒流源电路到ADC插值计算的完整方案

简介:基于STM32单片机与PT100铂电阻的温度采集系统资料包,整合程序源码、原理图与全套开发文档,适用于嵌入式初学者及从事工业温度监测项目开发的工程师。整个压缩包共277个文件,大小约18.09MB,主要包含62个C源文件、5…

2026/10/17 14:04:56 阅读更多 →
Codex 三种入口怎么选?CLI、桌面端与 VS Code 插件对比指南

Codex 三种入口怎么选?CLI、桌面端与 VS Code 插件对比指南

1. 三种入口摆在面前,先搞清楚它们各自解决什么问题 刚接触 Codex 这类 AI 编程助手的人,十有八九会卡在同一个问题上:CLI、桌面端、编辑器插件,到底该从哪个开始用。我当初也是这样,装了三四个工具,结果每…

2026/10/17 14:04:56 阅读更多 →
压缩机喘振与旋转失速建模:Greitzer模型与防喘振控制实践

压缩机喘振与旋转失速建模:Greitzer模型与防喘振控制实践

简介:压缩机喘振与旋转失速是制约轴流式与离心式压缩机安全高效运行的关键不稳定现象,本书正是针对这一主题的系统性学术专著。内容由浅入深,涵盖压缩机基本原理、喘振与旋转失速的物理机制、压缩系统建模方法,以及基于模型的控制…

2026/10/17 14:04:56 阅读更多 →
s3cmd实战指南:对象存储命令行操作与自动化备份

s3cmd实战指南:对象存储命令行操作与自动化备份

做运维和开发的人,多多少少都跟对象存储打过交道。对象存储那套HTTP接口设计得相当简单,可一旦遇到批量上传日志、同步服务器目录、定期清理过期备份这类需求,光靠浏览器里的管理控制台一个文件一个文件地点,效率低到让人怀疑人生…

2026/10/17 14:04:56 阅读更多 →
千笔AI写作助手:MBA论文冲刺之夜的结构优化、格式校准与降重实战

千笔AI写作助手:MBA论文冲刺之夜的结构优化、格式校准与降重实战

深夜十一点,MBA论文定稿提交的最后期限逼近,文档却停在第3章,参考文献格式乱成一团,目录页滚动不到头。这种场景发生在太多人身上——白天工作时间被排满,留给论文的只有深夜和周末,等到交稿前一晚才发现&a…

2026/10/17 14:04:56 阅读更多 →
AI绘图工具快速制作小说封面:51mazi实操指南

AI绘图工具快速制作小说封面:51mazi实操指南

做小说封面这件事,过去一直是很多作者心里的老大难。花钱找设计师吧,一版改三五次,报价从几十到几百不等;自己动手用PS吧,光是图层、字体、滤镜就能劝退一大半人。我认识的不少作者,最后都是直接套网站模板…

2026/10/17 14:03:56 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 14:23:36 阅读更多 →