STM32+华为云IoT+Qt全栈实战:从传感器到远程控制完整链路
前阵子整理柜子的时候翻出一块吃灰的小开发板板子本身不值什么钱真正值钱的是折腾出来的这套东西一块主控负责采集温湿度、控制继电器数据打到云平台再做一个电脑上能用的跨平台控制端。这个项目说白了就是今天标题里的三件套——STM32、华为云IoT、Qt。它解决的问题很朴素人在外面想随时看一眼家里的温度湿度想远程开个灯、动一下风扇又不想局限于某一个操作系统才打开控制界面。这套全栈项目很适合三类人一是学嵌入式但还没碰过云平台的二是会Qt但想知道怎么对接物联网设备的三是正在准备毕业设计或比赛想找一套完整技术链路的。文章不会只贴代码我会把三端各自的“为什么这么做”讲清楚包括那些你在官方文档里翻半天才找到的坑。整个项目跑通之后你手里不只是一块会报数的板子而是一条从传感器到云、再到应用界面的完整业务链条。1. 项目全景拆解这套组合到底解决了什么问题1.1 为什么是“STM32 华为云IoT Qt”这个组合先聊选型。很多人问智能家居项目方案多得很为什么偏偏是这三样我的理由其实很务实每一项都对应一个实际需求。STM32负责端侧硬件控制。作为MCU它是整个系统的“手和脚”读取DHT11温湿度数据、控制继电器开关、驱动LED。选STM32而不是树莓派或者直接上Linux是因为它足够底层能让你对单片机外设、定时器、串口、中断有真正的体感同时STM32资源丰富、价格便宜坏了也不心疼。用它做数据采集和控制是嵌入式开发的基本功学会之后换其他MCU也能快速上手。华为云IoT承担的是“云端大脑”的角色。设备要远程可控必须有平台接收数据并提供命令下发通道。华为云IoT平台免费额度对个人项目绰绰有余产品建模、设备接入、消息跟踪这类功能都做得比较完整而且中国区访问稳定非常适合国内开发者。更关键的是它把复杂的MQTT Broker、设备鉴权、数据存储都托管了你不用自己搭服务器。Qt则是用户直接面对的前端。它跨Windows、Linux、macOS甚至Android写一套界面就能多平台跑同时Qt本身就是C技术栈和嵌入式端天然亲近工程思路一脉相承。用它做智能家居控制端既不用学Web前后端又能交出像样的桌面应用。这三者拼在一起就是端侧采集、云端转发、客户端展示的完整闭环。1.2 同类方案对比为什么云平台路线更适合大多数场景有人会说做个智能家居为啥非要绕一圈云端STM32直接连手机App走局域网TCP不就行了吗。确实很多本地方案也在跑但它的天花板很明显不在同一个Wi-Fi下就没法控制手机和板子之间也不存在“设备管理”的概念。我一开始也试过局域网方案板子通过Socket给PC发数据新鲜感过了就发现这玩意儿换到公司、换到4G网络下完全不可用连想远程看一眼数据都做不到。做云端方案本质上买的是“远程可达数据托管设备管理”。华为云IoT把设备在线状态管理、数据模型校验、命令排队、消息跟踪这些能力都封装好了。你只需要遵守它定义的Topic和消息格式不用自己维护MQTT Broker也不用担心服务器挂了数据全没。对一个人完成三端开发来说这是性价比最高的路线。我也考虑过自建EMQX技术圈子里这种方案也常见但几个现实问题就劝退了服务器成本、安全加固、证书配置、keepalive调优每一项都在消耗你做正事的精力。华为云平台对这些做了托管错误码和排查工具也齐全某个环节出问题你能快速定位是设备侧还是平台侧这对新手是极其重要的。站在个人项目交付的角度自建方案适合想深究云端细节的极客而云平台路线适合想快速做出完整产品的人。这篇博文走的是后者。1.3 完整数据链路先看一遍动工之前先把数据怎么流动说清楚。整条链路分三段第一段是采集。STM32通过GPIO读取温湿度传感器处理之后得到温度和湿度数值。这个动作一般每秒或每两秒做一次。第二段是上报。STM32把数据按JSON格式打包通过串口或者SPI交给ESP8266ESP8266负责Wi-Fi连接并作为MQTT客户端把数据发布到华为云IoT平台指定的Topic。平台收到后会校验数据格式内容合法就存到设备属性里同时更新的还有设备影子。第三段是展示与控制。Qt客户端启动后通过华为云IoT的应用侧API拿到设备列表和最新属性值渲染到界面上。用户在主界面点一下“开灯”Qt调用下发命令API平台会把指令推给在线设备ESP8266收到后再通过串口告诉STM32翻转继电器。控制链路和上报链路方向相反但走的都是同一套Topic机制。看懂了这条数据流后面所有操作都是在为这条链路里的某个环节填细节。我建议你自己画一张类似的流向图联调时对着它找问题在哪里断掉效率会高很多。2. 端侧实操STM32的数据采集与上云2.1 硬件选型与最小系统搭建主控我用的STM32F103C8T6学名叫Blue Pill某宝十几块钱一片性能和资源做这种场景非常够。传感器选了DHT11虽然精度一般但单总线协议简单适合学习如果对精度有要求就换DHT22代码逻辑几乎不用改。执行器部分用一个5V继电器模块用来控制灯光或小风扇。供电要注意一下ESP8266启动瞬间电流比较大不要直接拿电脑USB口同时带两块板子最好用5V/2A独立电源给ESP8266供电否则会出现Wi-Fi连不上或者反复重启的怪问题。搭建最小系统的时候STM32F103C8T6要接8MHz晶振、复位电路、BOOT0拉低然后用ST-Link通过SWD接口下载程序。如果你不熟STM32CubeMX建议先花半天时间把新工程建起来配置PA0作为DHT11数据脚PB0作为LED控制脚USART1接ESP8266。生成工程的时候记住把时钟配到72MHz否则后面单总线时序会出偏差。这里有个非常值得注意的点DHT11的时序是微秒级的GPIO翻转速度不能太慢。我用HAL库的延时函数操作时采样经常不稳定后来改成定时器捕获和微秒级延时才好。建议你在驱动层写一个延时函数直接操作SysTick的计数值或者用DWT计数器比HAL_Delay可靠得多。接线方面DHT11的VCC接3.3VDAT接PA0并加上4.7K上拉电阻GND共地继电器模块的IN接PB0VCC和GND各自接5V和GND但要注意继电器模块和单片机之间的地必须连在一起。驱动负载时如果是强电继电器后端和开发板之间要做好物理隔离线束整理清楚这是安全底线。2.2 用ESP8266打通Wi-Fi与MQTT链路ESP8266在这个项目里的身份是“网络协处理器”。STM32本身没有射频和协议栈需要ESP8266帮它连Wi-Fi、跑MQTT。实现上有两条路可选我先说结论推荐把ESP8266单独烧一个MQTT透传固件STM32通过串口发自定义协议和它通信这样职责清晰排查问题容易。如果你图省事用ESP8266的官方AT固件也行走AT指令去配Wi-Fi和建立TCP连接然后再跑MQTT协议。但这么做的坑是ESP8266的AT固件只提供TCP透传能力MQTT的数据包仍要自己组而且长连接的心跳保活没有现成处理你会发现设备和云端的连接隔一段时间就断开。后来我换成了透传方案ESP8266固件里把MQTTClient库编译进去上电自动连Wi-Fi连MQTT收到云端消息就通过串口原样丢给STM32STM32发的数据也原样发布到指定Topic。这相当于自己做了一个物联网网关。串口通信协议我定义得很简单一帧数据以帧头、长度、载荷、校验和组成。STM32可以把温度数据按照约定格式拼好ESP8266收到之后解析出要发布的Topic和Payload然后用MQTT发布。反向也是一样云端命令到达ESP8266ESP8266拆包之后通过串口发送给STM32STM32解析出控制指令。这套协议不复杂但能避免ESP8266和STM32之间互相踩串口值得好好设计。关于波特率我选115200。太高了ESP8266的软件串口扛不住太低了数据吞吐又慢。115200在ESP8266和STM32之间非常稳妥稳定性优先。2.3 属性上报的JSON数据包怎么组数据要想被华为云IoT识别格式必须符合平台的产品模型定义。设备侧上报属性时发布到Topic的内容大概长这样{ services: [ { service_id: sensor, properties: { temperature: 26.5, humidity: 55.0 } }, { service_id: switch, properties: { led_switch: 0 } } ] }这个JSON结构里service_id要和你在云平台上创建产品时定义的服务一致properties里的每个字段名也要和模型里的属性名对应。我见过很多人的设备明明在线但平台上数据一直不刷新排查到最后就是JSON里的字段名和产品模型字母大小写不匹配。STM32端组JSON我建议用开源库或者手动拼字符串两种方式都行。如果是F103这种资源有限的MCU手动拼就行因为上报结构固定用sprintf也足够char payload[256]; sprintf(payload, {\services\:[{\service_id\:\sensor\,\properties\:{\temperature\:%.1f,\humidity\:%.1f}}]}, temp, hum);注意DHT11的原始数据是整数我做了保留一位小数的映射实际显示26.5℃这种效果更好。上报周期不要设置太短我按每5秒上报一次这样既能看到数据实时变化又不会因为上报太频繁被平台限流。如果你做了阈值判断只有当温度变化超过0.3℃或者湿度超过1%时才上报效果也不错能省不少流量和资源。2.4 接收云端下行的控制指令设备不只上报还得能听话。华为云IoT平台下发的命令会通过特定Topic推送到设备端ESP8266收到后串口发给STM32。STM32这边需要解析出指令里的命令名和参数然后对应操作GPIO。我用到的命令格式是平台标准的命令下发结构{ object_device_id: {设备ID}, command_name: SetLed, paras: { status: 1 } }STM32端收到后判断command_name是SetLed再取出status的值是1就置位PB0点灯是0就清掉。整个解析不需要JSON库直接在串口接收缓冲区里做字符串匹配就行效率高也省内存。这里要说一个容易忽略的事平台把命令发下来之后设备端最好回一个命令响应否则平台上会一直显示命令超时或者未响应。命令响应的Topic和payload格式同样要符合平台规则我一般会在STM32确认执行了GPIO操作之后再把执行结果回传上去。这个环节是设备侧最容易被忽略的但加上之后联调会舒服很多因为可以在平台上直接看到本次命令的完整生命周期。3. 华为云IoT平台侧产品建模与设备接入的细节3.1 创建产品与模型定义要花的心思华为云IoT平台本身不关心你的设备长什么样它只认产品模型。所谓产品模型就是你向平台描述“这个设备有什么服务、每个服务有哪些属性、每个属性是什么类型”。建产品模型这一步看起来像是在表单里点选项但它是整个系统的契约后面设备上报和Qt客户端读取数据都靠它。进入华为云物联网平台后先创建产品。产品名称、设备类型、协议类型这几个选项里协议要选MQTT。创建完成后进入产品开发定义服务和属性。我这里定义了两个服务一个叫sensor包含temperature和humidity属性一个叫switch包含led_switch属性。每个属性要选数据类型温度选decimal开关选int或boolean。在定义属性时我建议把“取值范围”“步长”“单位”这些附加信息也填上。比如温度范围设为-40到80步长0.1单位是℃。这些看起来不起眼但平台会用它们做设备数据的校验和界面展示Qt端拿到元数据之后还能自动生成界面这个后面会用到。如果在模型阶段偷懒没填后面客户端开发反而要花更多时间去适配。产品模型一旦定下来最好不要频繁改。因为STM32端的数据格式、ESP8266的Topic、Qt端的解析逻辑全部围绕模型展开模型改了就是牵一发动全身。我是在动硬件之前就把模型琢磨清楚后面只微调过一次。3.2 设备注册与一机一密鉴权细节模型建好之后要在产品下注册设备。平台会给每个设备生成两个关键信息设备ID和密钥。这就相当于设备的身份证加钥匙后面MQTT连接时要用它完成鉴权。华为云IoT目前最常用的设备认证方式是“一机一密”。每台设备有自己的密钥好处是一台设备的密钥泄露不会影响到其他设备。注册设备时你还可以填写设备名称和备注建议把物理位置或者所属房间写进去比如“客厅传感器”后期Qt显示时会省事很多。MQTT连接时设备的ClientId、Username和Password都不是随便填的。ClientId填设备IDUsername也填设备IDPassword则是用设备密钥做HMAC-SHA256签名得出的结果并且要带上时间戳。这个签名的计算逻辑在不同语言里都有现成库但要注意一个坑签名时间戳必须是UTC秒不能用本地时间也不能用毫秒。我曾经踩过这个坑一直报鉴权失败最后打印出时间戳才发现是差了两个时区。还有一点要注意平台要求MQTT连接的password格式是“时间戳|签名值”这种拼接方式而且签名密钥是设备密钥。如果你用MQTT客户端工具去测试连接可以手动算一次签名放进工具里成功后说明算法没问题再回过来让ESP8266按同样方式生成。这一步如果顺序搞反很容易在设备和平台之间来回猜。3.3 Topic与数据流转的对应关系华为云IoT设备接入的Topic规则并不难记但它是整个项目最容易出错的地方。设备端属性上报的Topic是“$oc/devices/{设备ID}/sys/properties/report”Topic里的设备ID必须和连接时用的一致这个消息是设备发布给平台的。命令下发正好相反。平台向设备下发命令时会往“$oc/devices/{设备ID}/sys/commands/request/{command_id}”这个Topic发送设备要订阅这个Topic。设备端回复命令结果时再发布到“$oc/devices/{设备ID}/sys/commands/response/{command_id}”。这里的command_id是从平台下发的消息里带过来的设备端要做的是把原文里的command_id提取出来拼到响应Topic里。除了命令Topic平台还有一类重要能力叫设备影子。设备上报属性后平台会维护一份最近的状态缓存。即使客户端离线下次上线也能读取到最新值即使设备不在线客户端也能给影子发送期望值等设备恢复后同步。这个特性做智能家居特别实用我在Qt端读取属性时用的就是影子数据而不是要求设备实时在线。如果你想深入调查某个消息是否成功平台的“消息跟踪”功能值得重点使用。它会按时间记录设备的上报、订阅、命令收发全过程。哪一步断了哪条消息格式不对错误码是什么全都能看到。我的经验是凡是设备上线但数据不进平台先打开消息跟踪比对着日志猜快太多了。4. Qt跨平台客户端从界面到云端的一体化4.1 Qt版本选择与MQTT客户端集成Qt在这个项目里负责的是“观测控制”。我不会去用Web前端绕一圈直接用C写桌面应用既贴近嵌入式技术栈又能通过静态或动态编译发布到不同系统。版本选择这里明确一下我用的Qt 6。Qt 6对C17支持更好官方库也更规范。如果你之前的工程还在Qt 5其实也能照做核心逻辑差别不大只是个别网络接口命名有变化。Qt接入华为云IoT有两种思路我说清楚再让你选。第一种是走应用侧REST API。Qt端先通过HTTP请求获取IAM Token然后调用平台提供的设备属性查询和命令下发接口。优点是实现简单逻辑清晰完全是HTTPJSON不需要处理MQTT长连接缺点是数据刷新要靠定时轮询做不到实时推送。第二种是走数据转发在平台配置规则引擎把设备数据转发到你自己的MQTT BrokerQt端作为MQTT客户端订阅。优点是实时性好但你需要额外维护一个MQTT服务器复杂度上来了。对一般智能家居控制场景第一种足够。轮询间隔设1秒用户感知不到延迟代码还不会因为MQTT断线重连这些东西变得复杂。我这篇博文的Qt端就按REST API方案讲。Qt的网络请求用QNetworkAccessManagerJSON解析用QJsonDocument。为了避免界面卡顿我把所有网络请求放到子线程或者用异步信号槽处理绝不在主线程里等响应。界面线程负责刷新UI网络线程负责和云平台打交道这是Qt写网络应用的基本素养。4.2 设备列表与属性面板的数据绑定Qt端界面的设计我分成三个区域左侧是设备列表中间是设备属性面板右侧是控制按钮和日志输出。设备列表的数据来源是平台的应用侧API。调用这个接口会返回当前账号下的产品列表每个产品下面又有设备列表。我拿到数据之后用QListWidget展示每一项除了显示设备名称还把设备ID存在Qt::UserRole里点击时就能拿到对应的设备ID。属性面板要展示温度、湿度、开关状态。华为云IoT的查询设备影子接口会返回设备的全部属性快照里面有reported和desired两个部分。reported是设备实际上报的值desired是期望值。我界面上主要展示reported同时用颜色区分设备在线和离线状态。为了不写死界面我解析了平台返回的属性元数据。比如temperature这个属性在模型里定义的类型是decimal、单位是℃那界面就自动生成一个带单位的标签和一个小数位格式化的显示控件。这样以后模型里新增一个属性Qt端代码不用改界面会跟着模型变化这也是我当初坚持把模型定义完整的原因。数据刷新我用QTimer定时器每2秒拉一次设备影子。拉取时只更新数值变化的部分不重建整个界面避免界面闪烁和控件焦点丢失。这个细节很多人忽略但实际用起来体验差别很大。4.3 下发控制命令的实操写法控制指令的下发在Qt端本质就是一个HTTP POST请求。首先拿到IAM Token和设备的ID然后调用平台的命令下发接口请求体里带上命令名和参数。一个典型的命令下发请求体是{ command_name: SetLed, paras: { status: 1 } }Qt端按钮的点击槽函数里先组织命令内容再调用POST方法异步等平台返回结果。平台返回200只表示它接收到了命令并不代表设备已经执行。设备执行后的结果可以通过查询设备命令状态或者设备影子区确认。我界面上专门开了一个日志区域每条命令从发送到平台确认到设备执行成功都打一行记录联调的时候非常有用。有件事必须提醒同一时间不要连续点十几次控制按钮。平台对单条命令不会立刻重复执行而设备端如果还在处理上一条下一条可能就覆盖了。我处理的方法是按钮发送之后立刻置灰等收到设备影子更新后再恢复这样能避免很多意外状态。如果用户不在同一个局域网甚至出差在外地Qt客户端也一样能控制因为走的是云平台中转设备和Qt客户端不在同一个网络环境也能互通。这也正是这套方案的杀手锏真正的远程控制而不只是局域网遥控器。5. 联调实录常见问题与排查技巧5.1 我踩过的三个典型坑联调阶段比写代码花的时间还多分享三个真实踩过的坑。第一个坑是设备无法上线。ESP8266那边MQTT连接一直报错误我查了驱动代码、查了Wi-Fi最后才发现是password生成时用错了时间戳单位。我用的是毫秒时间戳而协议要求的是秒导致平台验签永远失败。如果你遇到鉴权失败优先检查时间戳单位、校对系统时间、确认HMAC-SHA256的密钥是设备密钥而不是格式化的原始字符串。第二个坑是属性已经上报成功但Qt端查不到。现象很迷惑在平台控制台能看到设备上报了26.5℃但调接口却返回空数据。最后原因是产品模型里没有把属性“发布”给对应的应用侧可见范围。这类问题查起来要靠平台文档和错误码而不是闷头改代码。后来我养成一个习惯任何数据查不到时先在平台控制台的设备详情里确认有没有数据有就说明链路前半段是通的问题锁定在应用侧。第三个坑是Qt端轮询频率太高导致接口返回限流错误。刚开始我把刷新间隔设为300毫秒结果几轮请求之后平台开始拒绝响应。后来把间隔调到2秒并且加了一个错误退避机制如果连续多次429错误就自动把间隔翻倍。这种做法不仅治好了限流问题还让程序显得更健壮。5.2 问题排查速查表把这些经验整理成一张速查表按现象对号入座效率最高现象可能原因排查思路设备一直显示离线设备ID或密钥错误、password签名格式错误、时间戳不是UTC秒用MQTT工具按相同参数模拟连接最小化问题范围MQTT能连上但平台收不到数据Topic拼写不对、JSON格式不符合产品模型、service_id不匹配打开消息跟踪看平台是否报格式错误设备属性上报了但Qt查不到产品模型发布范围没配好、API查询参数不对先在控制台设备详情确认数据存在再排查应用侧接口命令下发显示超时设备没有订阅命令Topic、esp8266没有把命令转给STM32确认设备订阅Topic用串口打印ESP8266收到的原始数据控制页面刷新频繁限流轮询间隔太短、Token过期增加间隔做好Token缓存与自动续期继电器误动作干扰导致GPIO误触发、下拉电阻缺失控制引脚加下拉电阻软件里做防抖校验这张表是复现问题的好帮手也可以作为你团队里新人的入门文档。5.3 这套系统还能往哪些方向扩展这套项目做完之后往上扩展的空间很大。第一步可以先加传感器光照强度、人体红外、烟雾报警都可以接到同一块STM32上上报结构扩成多个服务Qt端界面自动就会跟着模型多出选项卡。第二步可以做联动逻辑。比如温度高于30℃时自动开风扇湿度低于40%时打开加湿器。这类规则可以由华为云IoT的规则引擎在云端实现也可以在Qt客户端本地做看你想锻炼哪块能力。第三步可以把Qt端升级成类似“家庭中心”的应用除了显示和控制再加入历史数据曲线、设备告警推送、多用户权限管理。历史数据可以直接从平台的数据转存服务拉取不用自己存。如果想继续深耕嵌入式方向可以把STM32部分换成低功耗方案比如STM32L0系列配上电池和休眠唤醒实现真正的无线传感器节点也可以引入RTOS把传感器采集、串口通信、状态机管理拆成多个任务工程结构会专业很多。这套全栈项目的价值不在于每一个组件有多高级而在于它把嵌入式、云平台、桌面应用这三个跨度很大的领域串在了一条业务线上。能独立跑完这种端到端项目的人在团队里通常能作为沟通多端的纽带这对项目推进的价值非常大。最后分享一个个人的调试习惯。每次联调这类云到端项目我都会先在PC上装一个通用的MQTT客户端工具用同一套设备和密钥去连接平台。先用它把上报、下行、命令响应全部跑通确认平台的规则和消息格式都没问题再回头去烧STM32。如果反过来直接拿嵌入式环境去调云端配置问题会被隔在三层之外你根本分不清是设备代码错、Wi-Fi不稳还是平台配置不对。先通云端再通硬件这个顺序能省下大半天时间。以后你写任何物联网项目都可以沿用这套思路。

相关新闻

LeagueReplayParser:.rofl重播文件离线解析实战指南

LeagueReplayParser:.rofl重播文件离线解析实战指南

简介:这是一份面向C#开发者与《英雄联盟》数据爱好者的技术工具库,用于解析.rofl格式的客户端重播文件,提取版本信息、对局元数据并触发本地重播,适用于游戏数据分析、自动化回放调试及轻量级LOL辅助工具开发。资源包为505KB的ZIP…

2026/10/14 1:46:14 阅读更多 →
LEF/DEF物理设计文件解析:从5.8手册语法到自动检查脚本

LEF/DEF物理设计文件解析:从5.8手册语法到自动检查脚本

简介:LEF/DEF 5.8语言参考是Cadence官方发布的EDA领域重要规范文档,面向数字IC后端设计工程师、物理验证人员和EDA工具开发者。文档系统阐述了LEF(库交换格式)与DEF(设计交换格式)的定义,前者覆…

2026/10/14 1:46:14 阅读更多 →
2020年VM Pro16.1.0注册、安装以及使用教程

2020年VM Pro16.1.0注册、安装以及使用教程

/* 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 1:45:13 阅读更多 →

最新新闻

LaTeX 2025环境配置:texlive + TeXstudio

LaTeX 2025环境配置:texlive + TeXstudio

文章目录Latex2025环境配置一、LaTeX 简介1.1 什么是 LaTeX?1.2 为什么使用 LaTeX?1.3 如何开始使用 LaTeX?二、texlive下载安装2.1 texlive下载2.2 texlive安装2.3 常见问题2.3.1 用管理员权限打开install-tl-windows.bat 报错2.3.2 Latex安…

2026/10/14 2:20:23 阅读更多 →
从工勘图到资源库:提交 nVisual Studio 与机房设计全生命周期的闭环

从工勘图到资源库:提交 nVisual Studio 与机房设计全生命周期的闭环

从工勘图到资源库:提交 nVisual Studio 与机房设计全生命周期的闭环摘要:工勘图纸的价值在「进入可检索、可复用资源库」之后才被放大——本地文件解决现场与交付,平台解决长期资产。DCDesigner 的「提交 nVisual Studio」把工勘 JSON 一键回…

2026/10/14 2:20:23 阅读更多 →
因果推断教材实战:从AB实验到双重机器学习与策略学习

因果推断教材实战:从AB实验到双重机器学习与策略学习

简介:这份资源是斯坦福大学Stefan Wager于2024年9月更新的《Causal Inference: A Statistical Learning Approach》教科书草稿,面向数据科学、统计学、经济学与公共政策领域的学习者和研究者,帮助其系统掌握基于统计学习方法的因果推断理论与…

2026/10/14 2:20:23 阅读更多 →
游集美Day1:逛完学村走老巷,被这几家街坊常来的小店拦住了脚步

游集美Day1:逛完学村走老巷,被这几家街坊常来的小店拦住了脚步

很多人来集美,打卡完嘉庚建筑、龙舟池,拍几张照片就匆匆返程。 但集美真正动人的烟火,不在网红打卡点,藏在黄昏的社区老巷。 这条路线我按地理位置理顺,不跨区乱跑,骑行顺路,慢逛无赶路压力&…

2026/10/14 2:20:23 阅读更多 →
系统辨识实战教案:M序列设计、RLS实现与工业白化检验

系统辨识实战教案:M序列设计、RLS实现与工业白化检验

简介:本资源是一份面向自动化专业本科生与研究生的《系统辨识》课程教案,聚焦工程建模核心能力培养,解决从实际系统数据中构建可用数学模型的关键问题。教案覆盖实体与模型本质辨析、Zadeh三要素(数据/模型类/准则)理论…

2026/10/14 2:20:23 阅读更多 →
AI 辅助科研溯源闸门:输入·命令·决策·证据四类记录的失败含义与当天最小实验

AI 辅助科研溯源闸门:输入·命令·决策·证据四类记录的失败含义与当天最小实验

千笔-AIWritePaper https://www.aiwritepaper.com Agent 能很快从原始表跑出一张宇宙学风格的斜率图,不等于结果可审查。缺了输入校验和,文件可以被静默替换;命令行事后改参,YAML 里仍写着旧参数;决策条目没有理由&am…

2026/10/14 2:19:23 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →