STM32与4G模块接入阿里云物联网平台实战指南
简介本资源面向物联网开发初学者与嵌入式工程师提供STM32微控制器结合有人LET-7S1型4G通信模块接入阿里云平台的完整工程实践。内容围绕串口透传、网络连接建立、设备身份认证、云端消息收发与错误重连等关键环节展开帮助读者理解设备端与云平台之间的双向通信流程适用于远程监控、智能家居、工业自动化等场景的学习与二次开发。压缩包共772个文件以526个C源文件与191个头文件为核心辅以少量txt说明、汇编与工程配置文件涵盖STM32外设驱动、通信协议栈及阿里云SDK适配代码整体约6.84MB目录结构便于按模块查阅。目前已有864人学习下载可作为从硬件连接到云端联调的参考范例帮助读者掌握4G模块透传配置、设备凭证管理与数据打包解析等实用技能。1. STM32 加 4G 模块上云一条被低估的物联网落地路径手里有一块 STM32一个串口 4G 模块想把采集到的温度、湿度、开关量推到云端还要能在手机或后台看到实时数据——这是很多做工业监测、农业大棚、共享设备的人最常遇到的需求。标题里的“STM32有人4G模块接入阿里云平台”说的就是这条链路STM32 负责采集和控制4G 模块负责把串口数据转成网络数据阿里云物联网平台负责设备接入、数据存储和远程下发。它解决的是“设备没有网线、没有 WiFi但又要长期稳定上云”的问题适合做远程抄表、环境监测、设备租赁、充电桩这类场景的开发者。很多人卡在 AT 指令和 MQTT 报文拼装上其实只要把串口透传、三元组、Topic 这三件事理清楚整条链路并不玄学。2. 先理清链路STM32、4G 模块、阿里云各自扮演什么角色2.1 三者的数据流与职责边界STM32 是主控负责跑业务逻辑读传感器、控制继电器、做本地判断。它不直接理解 MQTT只负责把要发的数据通过串口交给 4G 模块。4G 模块是“翻译官”它内部集成了 TCP/IP 协议栈和 MQTT 客户端你给它发 AT 指令它帮你连基站、连阿里云、发报文。阿里云物联网平台是“账本加调度中心”它用三元组ProductKey、DeviceName、DeviceSecret识别设备身份用 Topic 做消息路由用物模型做数据格式约定。常见做法是让 4G 模块跑 MQTT 透传模式STM32 只发 JSON 或自定义格式的串口数据模块自动打包成 MQTT 报文。这样 STM32 端代码量最小不用自己实现 MQTT 协议栈。也有人让 STM32 跑 MQTT 协议栈4G 模块只做 TCP 透传但这对 STM32 的 RAM 和 Flash 要求更高新手不建议一上来就这么干。选型上4G 模块要确认支持阿里云 IoT 的接入域名和 MQTT 协议版本。常见模块都支持 ATMQTT 系列指令但不同固件版本指令集有差异买之前一定要拿到对应版本的 AT 指令手册。STM32 这边F103 系列就够用串口波特率一般设 115200注意和模块的默认波特率对齐。2.2 阿里云物联网平台侧要准备什么登录阿里云物联网平台后先创建产品。产品名可以叫“环境监测终端”节点类型选“直连设备”联网方式选“蜂窝”数据格式选“Alink JSON”。创建完产品再在该产品下创建设备平台会生成三元组。三元组是设备的身份证烧录到 STM32 或配置到 4G 模块里用来做 MQTT 连接时的鉴权。接下来定义物模型。物模型就是告诉平台“这个设备能上报什么、能接收什么”。比如添加一个“温度”属性数据类型 float读写权限“只读”再添加一个“开关”属性数据类型 bool读写权限“读写”。物模型定义好后平台会自动生成对应的 Topic 列表。常用 Topic 有三个属性上报/sys/{ProductKey}/{DeviceName}/thing/event/property/post属性设置/sys/{ProductKey}/{DeviceName}/thing/service/property/set以及服务调用。STM32 要发的数据最终就是往属性上报 Topic 里发 JSON。提示三元组里的 DeviceSecret 只能用于设备鉴权不要把它写死在会公开的代码仓库里。量产时建议用一机一密或者走动态注册。2.3 4G 模块的 AT 指令连接流程下面是一套典型的 AT 指令序列用于让 4G 模块连上阿里云。不同模块指令前缀可能不同这里用通用写法示意实际以模块手册为准。# 检查模块状态 AT # 查询 SIM 卡状态确认已注册网络 ATCPIN? ATCREG? # 设置阿里云接入域名和端口MQTT 通常用 1883 ATMQTTUSERCFG0,1,NULL,{DeviceName}{ProductKey},{DeviceSecret},0,0, # 设置 MQTT 客户端 ID阿里云要求格式为 DeviceName|securemode3,signmethodhmacsha256| ATMQTTCONN0,{ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com,1883,1 # 订阅属性设置 Topic用于接收云端下发 ATMQTTSUB0,/sys/{ProductKey}/{DeviceName}/thing/service/property/set,1 # 发布属性上报报文 ATMQTTPUB0,/sys/{ProductKey}/{DeviceName}/thing/event/property/post,1,0,0,{\id\:\1\,\params\:{\temperature\:25.6},\method\:\thing.event.property.post\}这段指令的逻辑是先确认模块和 SIM 卡正常再配置 MQTT 用户名和密码。阿里云要求用户名格式为DeviceNameProductKey密码用 DeviceSecret 做 HMAC-SHA256 签名但很多 4G 模块内部帮你算好了你只需要把三元组填进对应参数。连接成功后订阅属性设置 Topic这样云端下发的开关指令就能收到。最后发布属性上报报文报文里id是消息序号params里放物模型定义的属性名和值method固定为thing.event.property.post。参数说明ATMQTTUSERCFG第一个参数是连接 ID通常用 0第二个参数 1 表示启用 MQTT后面依次是用户名、密码、客户端 ID 等。ATMQTTCONN的域名要换成你设备所在区域对应的接入点比如华东 2 是cn-shanghai。ATMQTTPUB的 QoS 建议用 1保证消息至少到达一次。3. STM32 端代码怎么写串口收发与 JSON 拼装3.1 串口初始化与中断接收STM32 和 4G 模块之间是串口通信通常用 USART2 或 USART3。初始化时波特率设 1152008 位数据位1 位停止位无校验。接收用中断或 DMA避免阻塞主循环。// 串口初始化以 USART2 为例 void MX_USART2_UART_Init(void) { huart2.Instance USART2; huart2.Init.BaudRate 115200; huart2.Init.WordLength UART_WORDLENGTH_8B; huart2.Init.StopBits UART_STOPBITS_1; huart2.Init.Parity UART_PARITY_NONE; huart2.Init.Mode UART_MODE_TX_RX; huart2.Init.HwFlowCtl UART_HWCONTROL_NONE; huart2.Init.OverSampling UART_OVERSAMPLING_16; HAL_UART_Init(huart2); // 开启接收中断每次收一个字节 HAL_UART_Receive_IT(huart2, rx_byte, 1); } // 中断回调里把字节存入环形缓冲区 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart-Instance USART2) { ring_buf_put(uart_rx_buf, rx_byte); HAL_UART_Receive_IT(huart2, rx_byte, 1); } }这段代码的关键是环形缓冲区。4G 模块返回的数据长度不固定可能一次返回多行 AT 响应也可能分多次返回。用环形缓冲区暂存主循环里再逐行解析避免在中断里做耗时操作。HAL_UART_Receive_IT每次只收一个字节收完自动进回调回调里再启动下一次接收形成连续接收。参数上波特率必须和模块一致。如果模块默认是 9600你设 115200 就会收到乱码。不确定时先用 9600 发AT通了再改。环形缓冲区大小建议 512 字节以上防止高频率上报时溢出。3.2 用 snprintf 拼装阿里云 JSON 报文阿里云属性上报的 JSON 格式固定可以用snprintf拼装。注意 JSON 里的双引号要转义或者用单引号包裹字符串。// 拼装属性上报 JSON void build_property_json(char *buf, size_t len, float temp, int switch_state) { snprintf(buf, len, {\id\:\%lu\,\params\:{\temperature\:%.1f,\switch\:%d}, \method\:\thing.event.property.post\}, HAL_GetTick(), temp, switch_state); } // 发送 AT 指令发布消息 void publish_property(float temp, int switch_state) { char json[256]; char cmd[384]; build_property_json(json, sizeof(json), temp, switch_state); snprintf(cmd, sizeof(cmd), ATMQTTPUB0,\/sys/%s/%s/thing/event/property/post\,1,0,0,\%s\\r\n, PRODUCT_KEY, DEVICE_NAME, json); HAL_UART_Transmit(huart2, (uint8_t *)cmd, strlen(cmd), 1000); }逻辑说明build_property_json把温度值和开关状态拼成阿里云要求的 JSON 格式id用系统 tick 做递增序号避免重复。publish_property再把 JSON 嵌进 AT 指令里发出去。注意 AT 指令里的 JSON 字符串要用双引号包裹而 JSON 内部的双引号需要保留所以外层用\转义。参数说明temperature保留一位小数和物模型定义的数据类型对应。switch用 0 或 1 表示布尔值。HAL_GetTick()返回毫秒数作为消息 ID 足够用。发送超时设 1000ms防止串口阻塞。3.3 解析云端下发的属性设置指令云端下发属性设置时4G 模块会通过串口输出类似MQTTSUBRECV:0,/sys/xxx/thing/service/property/set,...的数据。STM32 需要从这行数据里提取 JSON 部分再解析出switch字段。// 简单解析找到 switch: 后面的数字 int parse_switch_from_json(const char *json) { const char *p strstr(json, \switch\:); if (p NULL) return -1; p strlen(\switch\:); while (*p ) p; return (*p 1) ? 1 : 0; } // 在主循环里处理接收到的行 void process_uart_line(const char *line) { if (strstr(line, property/set) ! NULL) { int sw parse_switch_from_json(line); if (sw 0) { HAL_GPIO_WritePin(RELAY_GPIO_Port, RELAY_Pin, sw ? GPIO_PIN_SET : GPIO_PIN_RESET); } } }这段代码用字符串查找定位switch:然后取后面的值。实际项目中 JSON 可能嵌套更深建议用轻量级 JSON 解析库比如 cJSON但 cJSON 占 RAM 较多STM32F103 上要谨慎。如果只是解析固定字段手写查找更省资源。参数说明strstr区分大小写阿里云返回的字段名是固定小写。parse_switch_from_json返回 -1 表示没找到字段主循环里要判断返回值再操作继电器。4. 避坑与排查为什么你的设备连不上、发不出、收不到4.1 连不上阿里云先查三元组和域名现象4G 模块返回MQTTCONN:0,1或直接 ERROR串口打印连接失败。原因三元组填错、域名区域不对、或者模块固件不支持阿里云签名方式。阿里云要求 MQTT 密码用 HMAC-SHA256 签名有些老固件只支持 HMAC-SHA1就会鉴权失败。解决先用阿里云物联网平台的“在线调试”功能用虚拟设备测试三元组是否正确。确认域名和区域匹配比如设备在华东 2域名就是{ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com。如果模块不支持 SHA256联系模块厂商升级固件或者改用 TCP 透传加 STM32 跑 MQTT 协议栈的方案。4.2 上报成功但云端看不到数据现象AT 指令返回 OK但阿里云物联网平台日志里没有属性上报记录。原因Topic 拼错、JSON 格式不对、或者物模型里没有定义对应属性。阿里云会校验 Topic 和物模型如果属性名不在物模型里消息会被丢弃。解决检查 Topic 里的 ProductKey 和 DeviceName 是否和三元组一致。检查 JSON 里params下的字段名是否和物模型标识符完全一致大小写敏感。在阿里云“日志服务”里查看设备行为日志能看到具体的错误码比如property not found或topic invalid。4.3 串口收不到模块返回现象STM32 发了 AT 指令但环形缓冲区里没有数据。原因串口线接反、波特率不匹配、或者模块没启动。4G 模块的 TX 要接 STM32 的 RXRX 接 TX很多人在这里翻车。解决先用 USB 转串口工具直接连模块确认模块能正常返回 AT 响应。再检查 STM32 串口初始化代码确认波特率和模块一致。如果模块有电源指示灯确认灯亮没有灯就用万用表量模块供电电压4G 模块峰值电流可能到 2AUSB 供电不够会导致模块反复重启。4.4 消息发太快导致模块死机现象设备运行一段时间后4G 模块不响应 AT 指令重启后恢复。原因发送频率过高模块内部缓冲区溢出或者基站信号弱导致重传堆积。阿里云对上报频率有限制免费版每秒不超过 1 条。解决上报间隔建议不低于 5 秒。在 STM32 里加发送队列每条指令等模块返回 OK 后再发下一条。如果信号弱加长超时时间并在代码里做重试重试 3 次失败就重启模块。4.5 设备离线后无法自动重连现象设备运行几天后显示离线但模块还在响应 AT。原因MQTT 心跳超时或者网络切换导致 TCP 断开模块没有自动重连。解决在 STM32 里定时检查模块连接状态比如每 30 秒发一次ATMQTTCONN?查询。如果断开先发ATMQTTDISCONN0清理再重新走连接流程。阿里云要求心跳间隔 60 秒左右模块一般会自动发 PINGREQ但网络异常时需要主控介入。5. 进阶技巧让这条链路更稳、更省、更好维护5.1 用物模型 TSL 做数据校验阿里云物模型支持 TSLThing Specification Language你可以在平台上导出 TSL 文件里面定义了每个属性的数据类型、取值范围。STM32 端可以拿这个文件做本地校验比如温度范围 -40 到 80超出就不上报避免脏数据进云端。常见做法是在代码里定义宏和 TSL 里的范围对齐。#define TEMP_MIN -40.0f #define TEMP_MAX 80.0f int is_temp_valid(float t) { return (t TEMP_MIN t TEMP_MAX); }这样云端规则引擎做报警时不用再处理异常值。TSL 文件还能用来生成设备端代码框架阿里云提供了代码生成工具选好语言就能导出 STM32 可用的 C 模板省去手写 JSON 的麻烦。5.2 断网缓存与补传4G 网络不是永远在线隧道、地下室、基站切换都会断。STM32 可以在本地用 Flash 或 EEPROM 缓存最近几百条数据网络恢复后按时间顺序补传。补传时注意阿里云对历史数据的存储限制免费版只保留 30 天。实现上可以用一个环形队列写指针和读指针分开断网时只写不读联网后从读指针开始发。typedef struct { uint32_t timestamp; float temperature; int switch_state; } data_record_t; data_record_t cache[CACHE_SIZE]; int cache_head 0; int cache_tail 0;补传时每条之间加 100ms 延时避免触发限流。如果缓存满了覆盖最旧的数据保证最新数据优先。5.3 用阿里云规则引擎做转发数据到了阿里云不一定要自己写后台。规则引擎可以把属性上报消息转发到数据库、函数计算、或者消息队列。比如写一条 SQLSELECT * FROM /sys/{ProductKey}/{DeviceName}/thing/event/property/post再配置一个动作转发到表格存储。这样手机 App 或 Web 后台直接查表格存储就行省去自建服务端。规则引擎的 SQL 里可以用WHERE过滤比如只转发温度大于 50 的数据做报警。转发到函数计算时可以写 Python 代码做二次处理比如单位转换、阈值判断。这套组合比自己在服务器上搭 MQTT Broker 再写订阅程序要省事得多。5.4 量产时的三元组管理样品阶段三元组写死在代码里没问题量产时一机一密就要考虑烧录流程。常见做法是在 STM32 的 Flash 里划一个区域存三元组产线用烧录器写入。或者走阿里云动态注册设备首次上电时用 ProductKey 和 ProductSecret 换 DeviceSecret但动态注册需要提前在平台开启且一型一密的安全性低于一机一密。我一般会在代码里留一个device_config结构体三元组从 Flash 读取读不到就用默认测试三元组。这样同一份固件可以用于测试和量产只改 Flash 内容。Flash 读写要注意擦除粒度STM32F103 的 Flash 页大小是 1KB 或 2KB写之前先擦除整页。5.5 用 RTT 或串口打印做黑匣子调试阶段STM32 的串口可能被 4G 模块占用这时候可以用 SWD 加 RTT 打印日志不占串口。RTT 是 Segger 的工具J-Link 调试器支持打印速度比串口快适合看 AT 指令交互过程。如果没有 J-Link也可以把日志存到外部 Flash出问题时再读出来。日志里建议记录每条 AT 指令的发送时间、模块返回的原始数据、JSON 拼装结果、云端下发内容。这样设备离线时你能快速判断是模块没连上还是云端没响应。我习惯在publish_property里加一行 RTT 打印把 JSON 和返回值都打出来调通之后再关掉。这套方案我从 F103 加 4G 模块做到现在最深的教训是不要相信“一次就能连上”。串口线、波特率、三元组、Topic、物模型任何一个环节出错都会导致链路不通。每次改完代码先用 AT 指令手动走一遍流程确认模块和云端都正常再烧录 STM32 程序。这样能把问题范围缩小到一半。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

CRMEB 中的 Guzzle 3.9.3 兼容层:CHANGELOG 全量解读与 COS 上传链路源码印证

CRMEB 中的 Guzzle 3.9.3 兼容层:CHANGELOG 全量解读与 COS 上传链路源码印证

后端电商前端 【免费下载链接】CRMEB 🔥CRMEB开源商城免费开源多语言商城系统,Tp6框架商城,系统可商用;包含小程序商城、H5商城、公众号商城、PC商城、App,支持分销、拼团、砍价、秒杀、优惠券、积分、会员等级、小程序…

2026/10/15 18:42:56 阅读更多 →
认知语言学入门:意象图式与隐喻系统如何塑造思维

认知语言学入门:意象图式与隐喻系统如何塑造思维

1. 这本书不是语言学教材,而是一把解构日常思维的手术刀很多人第一次看到《CL: An Introduction》这个书名,下意识会把它归类为“语言学入门读物”——毕竟标题里明晃晃写着“An Introduction”,作者Vyvyan Evans又是认知语言学领域公认的实践…

2026/10/15 18:42:56 阅读更多 →
FPGA软核实战:在DE2上用OC8051实现点灯与中断验证

FPGA软核实战:在DE2上用OC8051实现点灯与中断验证

简介:这份资源面向FPGA与嵌入式软核学习者,聚焦在Altera DE2开发板上运行OC8051单片机点灯程序这一典型实验。OC8051是开源的8051 IP核,资源中给出了修改后的OC8051源码,并编写了一段LED测试程序用于初始化OC8051的ROM&#xff0c…

2026/10/15 18:42:56 阅读更多 →

最新新闻

30天从零开始学AI应用开发(Day 26):项目三完工:调试 Agent 的血泪经验

30天从零开始学AI应用开发(Day 26):项目三完工:调试 Agent 的血泪经验

这是系列的第 26 篇。整个系列写给零基础、想入行 AI 的朋友,每天一篇,30 天后你会做出 3 个能写进简历的项目。这篇解决什么问题 昨天项目三跑通了,有几个朋友说规划步骤挺像样,也有人报告了各种奇怪的状况:跑着跑着不…

2026/10/15 19:24:19 阅读更多 →
中国汽车工业软件的卡脖子清单:从PLM到MES的国产替代路线分析

中国汽车工业软件的卡脖子清单:从PLM到MES的国产替代路线分析

文章目录引言:一辆车背后的软件战争一、汽车工业软件的全景图:五大品类与三条工具链二、卡脖子清单逐项拆解2.1 三维CAD:有替代,但成熟度差距明显2.2 CAE仿真:国产空白最多的重灾区2.3 EDA电子设计自动化:差…

2026/10/15 19:24:19 阅读更多 →
全球大厂的“去英伟达”实验

全球大厂的“去英伟达”实验

头图由AI生成文 | 田渝编 | 沈校10月12日晚间,微软董事长兼首席执行官萨提亚纳德拉在社交媒体上公布了微软自研芯片的最新计划。2027年,微软计划大规模部署Azure Maia 300。当日,微软股价当天上涨1.14%至541.15美元,市值重回4万亿…

2026/10/15 19:24:19 阅读更多 →
被停牌的茶百道,更惨的是加盟商?

被停牌的茶百道,更惨的是加盟商?

多米诺骨牌效应才刚开始。文|段泽钰编|郭梦仪1848年,加州淘金热兴起。商人布兰南做了一件事:他先囤积了大量采矿工具,然后跑到街上大喊“金子!金子!”人群蜂拥而至,工具价格翻倍&…

2026/10/15 19:24:19 阅读更多 →
3Dmol.js 分子可视化实战:浏览器端渲染与交互分析

3Dmol.js 分子可视化实战:浏览器端渲染与交互分析

简介:这份前端项目资源以3Dmol.js为核心,面向具备一定JavaScript基础、希望在网页中实现分子结构可视化的开发者与化学教育工作者。它解决的是在浏览器端解析并渲染PDB、MOL、SDF等分子数据、构建可交互三维模型的问题,适合用于化学教学演示、…

2026/10/15 19:24:19 阅读更多 →
北航何静:Codex调用SketchUp实操,常见智能体均适用

北航何静:Codex调用SketchUp实操,常见智能体均适用

北京航空航天大学副教授何静实测 AI 智能体驱动 SketchUp 草图大师自动建模,覆盖 ChatGPT、Claude Code、Workbuddy、OpenClaw 多款智能体,对比 4 种建模实现路径,完成多类型建筑场景建模与迭代修改。实测场景:现代住宅、10 层玻璃…

2026/10/15 19:23:17 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/14 16:30:29 阅读更多 →
影刀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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →