STM32+华为云IoT+Qt:从传感器到界面的物联网智能家居实战
1. 先从需求出发智能家居系统的三层闭环与选型逻辑1.1 家用智能设备的本质其实是三层闭环很多人一开始做智能家居项目第一反应就是“有个App能控制灯就行”。真上手之后会发现这件事远不止“控制”两个字。一个完整的智能家居系统本质上包含三层闭环感知层、决策层、执行层。感知层负责采集温度、湿度、光照、人体红外这类环境信息决策层根据这些信息决定要不要开灯、开风扇、拉窗帘执行层则把决策落到继电器、电机、舵机上。但多数成品智能家居方案最薄弱的地方恰恰是决策层。温度传感器数据被采集上传到厂商云端判断逻辑也是云端控制一旦家里断网本地传感器和执行器就断了联系。所以我在设计这套系统时刻意把决策能力留在STM32端——传感器照读执行器照控云端只做远程可见、远程干预的通道。这个设计决策看起来简单实际决定了整个项目的骨架。1.2 为什么选STM32而不是ESP32、树莓派选型这件事在网上争论很多我的结论是看你想学到哪一层。ESP32自带WiFi和蓝牙开箱即用开发效率确实高适合快速做原型验证。但也正因为网络协议栈、连接管理都被封装得过于友好很容易把它当成黑盒用用完了还是说不清WiFi连接的过程、TCP链路的状态、MQTT报文的结构。树莓派就更不用说了它本身是一台小电脑跑的是Linux系统很多底层的传感器时序、中断、寄存器操作完全接触不到用来做量产设备的基础也不合适功耗、成本、启动时间都摆在那儿。STM32的优势在于它把“控制”这件事做得非常扎实。GPIO的时序、ADC采样、串口通信、中断优先级这些与硬件打交道的细节全部可见可控。网络能力或许不如ESP32自带方便但通过外接一个串口WiFi模块反而能把“网络透传”和“上层协议”这两层拆开理解对你理解整个链路更有帮助。我在这套系统里用的是STM32F103C8T6也就是大家常说的蓝板性价比高、资料多、引脚够用非常适合做智能家居原型。如果你想跑更复杂的本地算法或FreeRTOS任务调度也可以换STM32F407代码主体几乎不用改。1.3 为什么上云而不是自己搭一台服务器有人问既然STM32本地已经能做决策了为什么还要把数据送去华为云IoT我自己的体会是智能家居的价值一半在线下另一半在“远程可见可控”。自建服务器方案听起来很自由但实际要解决的事情相当多。要有公网IP、要做域名、要配HTTPS证书、要处理NAT穿透还要保证服务7×24小时稳定。就算这些都搞定了数据存储、设备管理和消息推送也全得自己写工作量远超一个单片机项目该承载的范围。公有云IoT平台的价值在于它把设备接入、设备管理、状态存储、消息推送这些通用的底座能力都做好了你不用重复造轮子。华为云IoT在设备接入方面支持MQTT协议有设备影子可以保存最新状态还有消息跟踪和规则引擎用来做这套系统的云端中枢非常合适。具体到数据流上整条链路可以用“上行状态、下行命令、旁路查询”九个字概括STM32采集温湿度、光照和开关状态按一定周期发布到华为云IoT平台平台负责保存设备最新属性Qt客户端启动时通过REST接口拉取设备最新状态作为界面初始值运行期间通过MQTT订阅实时接收设备上报用户在界面上点击开关指令经平台下发到STM32STM32执行后把结果状态再上报回来形成闭环。1.4 这套系统适合谁来参考如果你是第一次接触物联网全链路想做一套能从硬件到云端再到界面完整跑通的项目这套方案会非常合适。需要的基础是能编译STM32工程、熟悉串口通信再加一点点Qt界面开发经验。云端部分即使从未用过华为云IoT跟着下文配置也能完成。整个项目做完你对嵌入式状态机、MQTT协议、云端设备模型、跨平台GUI通信这几块都会有很实在的理解。2. STM32端固件一板包办采集、执行与上云2.1 最小硬件清单与接线方案我实际调试用的硬件清单如下成本控制在一百元上下淘宝都能买到。这里给出一份可复现的目录你也可以根据手头库存替换。器件型号建议数量备注主控板STM32F103C8T6最小系统板15V供电3.3V输出给外设WiFi模块ESP8266ESP-01S1串口透传模式3.3V供电温湿度传感器DHT11或DHT221单总线协议占用一个GPIO光照采集光敏电阻 10K电阻1分压电路输入ADC引脚继电器模块低电平触发继电器2控制灯和风扇电源5V/2A USB电源1注意ESP8266瞬态电流可选显示0.96寸OLEDI2C1本地调试方便接线方面ESP8266的TX接STM32的USART1_RXPA10RX接USART1_TXPA9注意共地。ESP8266虽然标称3.3V供电但WiFi发射时瞬态电流可能到300mA建议用单独的AMS1117-3.3稳压给ESP8266供电不要从STM32板上直接取3.3V否则会导致WiFi复位。DHT11数据引脚接PA1光敏电阻分压点接PA4ADC1通道4两个继电器输入分别接PB0和PB1。所有传感器和执行器的电源都要和主控共地这个细节很多人漏掉导致采集值跳动或者继电器无法触发。2.2 固件任务划分状态机比你想的重要很多初学者写单片机程序时习惯用阻塞式延时读一下传感器、延时几秒、再上报一次。这种写法在实验环境能跑但在智能家居场景里有个严重问题执行器响应被采集操作阻塞。试想用户点了App上的开关结果STM32正在执行温湿度采集的延时等待继电器动作被延后几百毫秒体验非常差。我建议用主循环加状态机的方式组织固件不急着上RTOS轻量且可控。主循环里维护一个时间表分轻重缓急每200ms读一次传感器原始值做一次滤波更新内部变量每500ms检查继电器状态是否需要根据本地规则改变每10秒把最新传感器数据打包成MQTT报文发出去每20ms轮询一次接收缓冲检查云端是否有指令进来。传感器读取和网络发送分离开即使网络尝试失败传感器数据依然在更新本地规则依然在执行。这就是前面说的“断网但本地不瘫痪”的硬件基础。2.3 让STM32通过WiFi模组把报文送出去我采用的组网方式是“串口WiFi透传加MCU层组包”也就是STM32通过串口向ESP8266发送AT指令把ESP8266设为透传模式然后STM32直接在串口上发送MQTT协议报文。这样做的优点是上层协议和硬件解耦以后换成以太网芯片、4G模块只要改底层对接层MQTT部分完全复用。为了让WiFi模块连通华为云IoT需要先让它连接家里的无线路由器再把连接目标指向平台的设备接入地址。AT指令按顺序执行ATCWMODE1 ATCWJAP你的WiFi名,你的WiFi密码 ATCIPSTARTTCP,设备接入域名,8883 ATCIPMODE1 ATCIPSTART这里有个容易踩的坑ESP8266的AT固件版本不一样有些需要先设透传模式再连接有些相反。建议先查一下你手里的固件版本稳定方案是先连接TCP再切透传模式。WiFi模块只负责建立TCP链路MQTT包仍然由STM32拼出来。MQTT报文本身不复杂固定头第一个字节是报文类型和标志位第二个字节是剩余长度后面跟着可变头和载荷。你不需要实现完整的MQTT协议栈只要实现CONNECT、PUBLISH、SUBSCRIBE、PINGREQ这四类报文外加一个拆包解析函数整个系统就能跑起来。以PUBLISH上报为例核心逻辑是把主题字符串和JSON载荷拼进报文里void mqtt_publish_properties(float temp, float hum, int light, int power1) { uint8_t payload[256]; char topic[] $oc/devices/{device_id}/sys/properties/report; snprintf((char *)payload, sizeof(payload), {\services\:[{\service_id\:\sensor\, \properties\:{\temperature\:%.1f,\humidity\:%.1f, \light\:%d,\switch1\:%d}}]}, temp, hum, light, power1); build_publish(topic, payload); uart_send(tx_buffer); }主题里的{device_id}必须替换成你在平台上注册设备时拿到的真实设备ID不能写错否则云端直接丢弃这批数据而且设备侧看不到任何报错。这是一个隐蔽的坑我后面联调部分还会展开。固件里还需要周期性地发送PINGREQ报文来维持MQTT连接。华为云IoT这类云端会检测到一定时间内没有心跳的TCP连接并主动断开一般心跳周期建议设成按平台要求配置。很多设备离线的问题就是心跳周期和云端超时阈值不匹配导致的。2.4 指令接收与执行回路指令下行和上报稍有不同。设备端需要先发送SUBSCRIBE报文订阅命令下发主题之后才能收到平台转发的指令。收到平台下发的JSON后STM32需要做三件事解析命令名、执行对应动作、上报执行结果。哪怕只是控制一个继电器也建议按这三步走因为云端后续要判断命令是否成功执行靠的就是设备侧的状态回报。解析JSON在MCU上没有现成的标准库常用的办法是写一个极简的键值提取函数。因为平台的指令JSON结构相对固定只需要查“switch1”字段后面跟的值是什么没必要引入完整的JSON解析器。可以用字符串查找加转换的方式提取数值代码量很小也方便移植。2.5 本地规则是体验好坏的分水岭我在这套原型里做了一条最简单的本地方案温度连续三次超过28度自动打开风扇继电器温度低于25度自动关闭中途无需云端参与。这条规则不经过云只是在主循环里比对内部变量。实测下来本地决策的响应速度大概是几十毫秒而云端回环通常要一秒以上。这个差距让本地规则在体验上完全是另一个档次。做完这个功能你会立刻意识到真正的智能家居设备为什么一定要有本地边缘能力——不是技术炫技而是响应速度和断网可用性的刚需。3. 华为云IoT平台配置产品模型、设备接入与消息流转3.1 产品模型先行后面所有工作才有依据登录华为云IoT控制台后第一步不是急着创建设备而是先定义产品。平台的产品模型通俗地说就是“这个设备的说明书”包含哪些服务、每个服务有哪些属性、属性是什么类型、哪些是只读哪些可写。我的产品模型定义了两个服务一个叫sensor负责温湿度、光照等环境数据一个叫switch负责继电器开关状态。属性方面temperature和humidity定义为浮点数light定义为整数switch1定义为枚举类型0表示关1表示开。之所以建议先把模型定义清楚再注册设备是因为设备上报、云端解析、界面展示全都依赖这套模型。属性名差一个字母、类型不一致都会导致数据在前端看不到但排查起来又特别隐蔽。用平台提供的模拟器或者产品模型校验工具先验证一遍能省很多事。3.2 设备注册、密钥与接入地址的对应关系产品和模型定义好之后就可以注册设备了。注册完成会拿到设备ID和设备密钥这两个字符串在后面会反复用到建议复制到项目配置文件里统一管理。设备密钥不是直接当成密码用的。在MQTT连接时云端会要求你基于时间戳和设备密钥生成一个动态密码。生成规则是先取当前Unix时间戳精确到秒把密钥和时间戳拼接后做HMAC-SHA256运算再进行Base64编码最终得到连接密码。这个环节的顺序和编码特别容易出错。我的建议是在上位机或调试助手里先跑通一次密码生成把结果用平台提供的调试通道验证确认没问题再把这个逻辑移植到STM32端。不要在板子上反复试效率太低。设备接入地址一般在控制台的设备接入信息里能看到格式是一个域名加端口。你要把域名解析出来的IP填进ESP8266的AT连接指令也可以填域名取决于你的模块固件是否支持域名解析。我实测发现直接填IP更稳定所以建议先在电脑上用nslookup解析出IP再用。3.3 上行属性上报Topic和Payload的坑设备属性上报走的是属性上报主题上报内容用JSON格式。平台设备侧消息格式一般是{ services: [ { service_id: sensor, properties: { temperature: 26.5, humidity: 60, light: 300 } } ] }这个结构跟产品模型的定义必须一一对应。我遇到的一个典型问题是把properties里的属性值不小心传成了字符串比如temperature:26.5平台虽然接受消息但产品模型定义是浮点数最后界面展示时会出现数据校验失败。另外要注意平台的消息跟踪功能是排查问题的利器。设备上报以后在控制台的消息跟踪页面能看到消息是否到达、是否被规则处理、是否转发成功。不要靠猜直接看平台侧日志定位会快得多。3.4 下行命令掌握同步和异步的差别平台下发命令有同步命令和异步命令两种风格选择方式取决于产品模型里如何定义命令。同步命令等待设备立即响应超时就认为失败异步命令只管下发设备可以稍后处理。做智能家居控制我的建议是把命令定义成同步并带回执。这样界面端能立刻知道指令成功还是失败交互体验更好。具体操作时STM32在收到命令后执行动作然后向响应主题返回执行结果。这个回执动作一定不能省——很多“指令不生效”的假象其实是设备执行了但没回执界面端误判为失败。4. Qt跨平台客户端设计两条通道实时与稳定兼得4.1 为什么需要REST和MQTT两条通信通道做客户端时有一个常见误区只做MQTT认为实时推送就能覆盖所有场景。实际联调后你会发现依赖单一通道很别扭。设备不在线的时候MQTT没有数据你连一个“设备离线了”的状态都很难判断程序启动时如果只靠订阅等待界面会一直空白用户根本不知道数据有没有在来。所以我设计了双通道REST负责“拉快照”MQTT负责“等推送”。启动时通过REST接口拿到设备当前最新属性作为界面初始状态运行期间订阅MQTT消息实时刷新变化。REST查询不频繁一天也就启动几次MQTT推送的才是常态数据流。两条通道分工合作不需要互相替代。4.2 工程组织与界面层选择Qt工程我建议拆成三个模块网络层、数据层、界面层。网络层封装REST请求和MQTT客户端数据层维护一个当前设备状态的纯数据对象界面层只和这个数据对象交互不直接感知协议细节。这样做的回报是后期换通信方式、调整平台界面几乎不用改。界面层用Widgets还是QML取决于你的目标平台。这套系统主要跑在Windows和Linux桌面上我选了Qt Widgets开发效率高表格和按钮控件都很顺手。如果你计划以后适配手机或者嵌入式触摸屏再考虑QML也不迟。4.3 REST通道启动时拉一次设备快照Qt侧REST请求用自带的QNetworkAccessManager就能完成不需要引第三方库。核心逻辑是构建带鉴权信息的HTTP请求把设备ID拼进URL发送GET请求然后把返回的JSON解析成数据对象。需要注意的是HTTP请求默认是异步的千万不要在界面线程里用阻塞等待否则界面会卡死。正确做法是把响应处理写成lambda回调收到数据后通过信号通知界面更新。4.4 MQTT通道订阅实时状态推送Qt侧用qtmqtt库在工程文件里加上QT mqtt就能使用。连接的参数和STM32端几乎一样设备ID、用户名、动态密码、接入域名和端口只是实现语言从C变成了C/Qt。订阅成功以后设备上报的数据会在onMessageReceived信号里触发。收到JSON后的处理和REST通道一致统一走数据层的更新接口。界面通过属性绑定的方式感知数据变化不需要手动刷新用起来非常顺手。4.5 界面刷新必须遵守的线程规则Qt的信号槽机制有一个隐藏陷阱如果MQTT回调不在主线程直接操作界面控件会导致崩溃或无响应。我的经验是所有通信回调里只发信号界面更新槽函数统一在主线程执行。这条规则写进代码评审要求里都不为过因为“偶尔崩溃”比“一直崩溃”难定位得多。4.6 跨平台编译容易卡住的几个地方Windows上如果要编译qtmqtt需要从Qt官方仓库拉对应版本的源码重新构建然后安装到本地Qt目录比直接运行库要麻烦。Linux上一般需要先安装OpenSSL开发头文件否则MQTT加密连接编译不过。Android如果作为目标平台记得在AndroidManifest里加上网络权限不然所有网络请求都会静默失败。我一开始在这上面浪费了半天时间界面一直空白后来才发现是权限问题这个比较隐蔽。5. 联调实录设备上电到界面显示数据我踩过的四个坑5.1 设备一直离线动态密码生成顺序不对第一次连通整套系统时能耗最多的居然是不在设备端代码而在密码生成这个环节。我当时在电脑上手动生成连接密码后设备还是持续离线。控制台看到的原因是“认证失败”。排查过程是这样的先打开平台消息跟踪看设备认证请求是否到达确认到达后用官方调试工具生成一组标准密码和连接参数接着在电脑上用MQTT测试工具按官方参数连接成功然后我把STM32端配置改成完全一致的参数仍然失败。最后发现问题出在时间戳。电脑端生成密码时用的时间是“未来时间”而设备端代码里时间的基准差了几分钟平台校验时间戳不在允许窗口内拒绝连接。解决办法是把设备端的时间同步逻辑改成在连接前从平台获取服务器时间或者动态生成密码前校准本地时间。实际使用中更稳妥的做法是尽量在短时间内完成连接并且用单一时间源。5.2 设备在线但数据不到云端Subject和JSON键名不一致设备显示在线说明MQTT连接已经建立了。但平台上就是看不到属性值这种情景很迷惑因为连接是通的消息却没到。我用平台的消息跟踪查看后发现上报消息根本没出现在设备消息列表里。逐个检查后问题出在主题末尾多了一个斜杠。主题路径差一个字符平台就不认为这是合法上报主题。另外JSON里的service_id写成了和产品模型定义不一致的名称也会导致平台无法匹配到服务。解决方法是严格对照平台的产品模型定义把主题里的设备ID、服务名、属性名全部复制粘贴过去不要手敲。这个坑的教训是IoT平台对消息格式的要求比普通Web接口严格得多错一个字符和错一个字段效果完全不同。5.3 云端有数据但Qt收不到订阅时机和主题层级当STM32和平台的数据链路已经通了我再开Qt客户端却发现界面始终没有实时数据。一开始以为qtmqtt有问题后来调试才发现平台的消息推送只发给已经订阅了相关主题的客户端。我在程序启动后先发订阅命令但此时设备的上报周期还没到所以没收到任何消息。等下一次上报周期到了客户端又因为网络抖动重新连接订阅状态丢失仍然收不到。这个问题的根因是订阅时机和重连恢复逻辑没有处理好。正确做法是在MQTT连接成功后再主动订阅并且每次重连成功后都要重新订阅一遍。Qt端加一个订阅状态标志位连接成功回调里检查并重新订阅。5.4 指令时灵时不灵回执缺失和半双工冲突设备控制指令的问题体现为“时灵时不灵”一半次数能立刻响应另一半次数要等十几秒甚至超时。借助平台消息跟踪我发现失败的指令在平台侧显示“未响应”。设备确实收到了指令也执行了继电器动作但为什么平台认为没响应排查下来有两个原因。第一个是我在固件里收到了消息后执行了动作但没有向响应主题发送ACK回执。第二个原因是当设备正在上报数据时WiFi模块处于发送状态指令回执被阻塞造成回执超时。解决办法是在指令处理函数里把回执发送放到独立队列中并且提高回执发送的优先级。即使执行动作本身很简单回执也必须在规定时间内发出去。这个细节直接决定了云端是否认为命令执行成功绝对不能省略。6. 这套系统的边界以及继续做下去的几个方向6.1 想真正装进家里还差哪些功课当前原型能跑通但离真正装在家里稳定运行还有一段距离。首先是供电问题开发板配USB电源能跑但长期使用需要换成工业级电源模块并且为WiFi模块和传感器增加保护电路。其次是设备可靠性开发板上的杜邦线在长期震动、氧化后会导致传感器偶发读数异常量产方案应该用PCB和端子连接。最后是网络安全当前通信密钥虽然动态生成但设备端没有做本地密钥安全存储真正的产品需要结合安全芯片或加密存储方案。这些点并不是危言耸听而是我从“跑演示”到“连续运行一个月”的过程中真实感受到的差距。演示系统追求跑通产品系统追求跑不挂两者之间隔着一个完整的可靠性工程。6.2 值得继续做的扩展方向这套骨架的可扩展性很强。在STM32端可以做一套更丰富的本地联动规则比如“晚间光照低且有人移动才开灯”把传感器组合逻辑和时段判断都放本地。云端侧通过平台规则引擎把数据转发到数据库可以生成温湿度日报表、历史曲线这些数据比实时数值更有分析价值。Qt端如果把Widgets改成QML一套代码就能适配手机和桌面再接入语音控制、定时任务、情景模式就是一个功能非常完整的家庭控制系统了。如果你还想继续做多设备联动云端的设备影子就是一个很实用的机制。把设备状态统一存储到影子中客户端不再关心设备是否在线只跟影子交互就好逻辑上会清爽很多。这也是商业智能家居系统普遍采用的设计思路。最后分享一个我个人的调试习惯做这类端到端系统一定要按层验证。先把STM32和平台的链路打通用平台侧的工具确认数据通再单独测Qt到平台的连接确认能拉快照最后才把两端同时打开做真实联动。不要一上来就全链路对调排查范围太大会把自己逼疯。这套项目做完之后你对“数据从传感器到用户界面”的每一层都会有很清晰的画面感这种整体视野是单纯学单片机或者单纯写GUI都得不到的。

相关新闻

MTK高通展锐版本升级烧录全解析:SP Flash Tool/QFIL/ResearchDownload实战

MTK高通展锐版本升级烧录全解析:SP Flash Tool/QFIL/ResearchDownload实战

简介:面向手机方案公司、嵌入式开发与维修技术人员,这份资源汇整了联发科、高通、展锐三大芯片平台的版本升级与固件烧录工具链,涵盖各平台官方线刷工具的核心组件、配置范例与工程化目录结构。资源包共1031个文件,压缩后约181.59…

2026/10/18 1:25:45 阅读更多 →
端到端WebRTC智能摄像头链路:NeuroCast架构解析与落地实践

端到端WebRTC智能摄像头链路:NeuroCast架构解析与落地实践

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

2026/10/18 1:25:45 阅读更多 →
储能锂离子电池组热管理结构设计:从风冷到液冷的温差控制实践

储能锂离子电池组热管理结构设计:从风冷到液冷的温差控制实践

简介:这份PDF文档围绕储能用锂离子电池组的热管理结构设计展开,面向电池热管理、储能系统及仿真分析相关工程师与研究人员,针对电池密集排列下散热不均、温差过大带来的寿命与安全隐患,给出了风冷式热管理设计思路。作者以磷酸铁锂…

2026/10/18 1:25:45 阅读更多 →

最新新闻

2026年AI接口聚合服务深度横评:从调用稳定性看词元之河与硅基流动的中小团队适配度

2026年AI接口聚合服务深度横评:从调用稳定性看词元之河与硅基流动的中小团队适配度

2026年5月完成的一轮 AI 接口聚合服务实测横评,方法论为 72 小时连续压测、12 类典型调用场景模拟与 37 位一线开发者访谈。行业背景值得关注:据《中国AI基础设施白皮书(2026Q1)》,超过 68% 的中小技术团队在大模型应用…

2026/10/18 2:12:56 阅读更多 →
手工LL(1)编译器实战:从词法到语义的5层避坑指南

手工LL(1)编译器实战:从词法到语义的5层避坑指南

简介:本资源是一份完整的高校编译原理课程设计报告,面向计算机专业本科生及编译技术初学者,聚焦Pascal子集编译器的系统性实现与原理剖析。报告涵盖词法分析(含符号表构建与注释处理)、语法分析(自顶向下LL…

2026/10/18 2:12:56 阅读更多 →
香港公司注册怎么办理?

香港公司注册怎么办理?

一、香港公司注册是什么?有什么用? 香港公司注册,是指依据香港《公司条例》,向香港公司注册处提交申请,取得公司注册证书及商业登记证的法律程序。 对跨境卖家、外贸企业和品牌方而言,香港公司主要用于&…

2026/10/18 2:12:56 阅读更多 →
阿里钉钉Java集成实战:组织同步、消息推送与审批回调全链路落地

阿里钉钉Java集成实战:组织同步、消息推送与审批回调全链路落地

简介:本资源是一套面向Java开发者的企业级钉钉集成实战项目,聚焦阿里钉钉开放平台API在业务系统中的落地应用,适用于需实现组织通讯、审批流对接、消息推送及移动办公集成的中高级后端工程师。压缩包共174个文件,含32个核心Java源…

2026/10/18 2:12:56 阅读更多 →
力扣排序题复盘:核心模板、比较器陷阱与高效刷题路线

力扣排序题复盘:核心模板、比较器陷阱与高效刷题路线

说起力扣刷题,排序题目是我最早碰、也最晚想明白的一类。刚开始我以为"过一遍快排和归并就能应付",结果连续几道题把我按在地上摩擦——不是不会写排序,而是不知道题目想让我用什么排序、为什么这么排序、边界条件又藏在哪里。这篇…

2026/10/18 2:12:56 阅读更多 →
BLE OTA断连恢复设计:从参数配置到双Bank兜底的全流程指南

BLE OTA断连恢复设计:从参数配置到双Bank兜底的全流程指南

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

2026/10/18 2:11:56 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →