STM32物联网实战:ESP8266通过OneNET MQTT协议实现微信小程序远程控制完整代码解析

[STM32F103C8T6]基于esp8266模块的wifi控制 工作中一般不直接在中断服务函数里处理数据,而是在收到数据后直接丢给队列,再处理数。无论是蓝牙也好,wifi控制也好,本质都是通过串口收发数据。在中断服务函数里尽量减少使用延时函数及打印函数。通过单片机透传AT指令,连接wifi和服务器。UART2用于测试esp8266是否进行,通过cubemx来创建工程。串口中断,重写虚函数。 阅读详情

1. 项目概述与硬件准备

大家好,今天我来分享一个超实用的STM32物联网项目实战经验。这个项目实现了通过ESP8266 WiFi模块,借助OneNET平台的MQTT协议,最终用微信小程序远程控制STM32设备的完整方案。我自己在实际项目中多次使用这种架构,稳定性相当不错,特别适合智能家居、工业监控这类需要远程控制的场景。

先来看看需要准备哪些硬件设备:

  • 一块STM32开发板(我用的STM32F103C8T6,性价比高)
  • ESP8266 WiFi模块(推荐ESP-01S,便宜又好用)
  • 一些基础外设(LED、温湿度传感器等用于演示控制效果)
  • USB转TTL模块(用于调试ESP8266)

硬件连接非常简单:STM32的USART2的TX接ESP8266的RX,RX接TX,记得共地。供电方面,ESP8266工作时峰值电流可能达到200mA,最好单独供电或者确保你的STM32板子能提供足够电流。

我第一次做这个项目时,在供电上栽过跟头。当时直接用STM32的3.3V给ESP8266供电,结果WiFi连接时总是重启,后来外接了一个3.3V电源就稳定了。所以如果你也遇到不稳定的情况,首先检查供电是否充足。

2. OneNET平台配置详解

OneNET是中国移动推出的物联网平台,对国内用户来说访问速度快、稳定性好。下面我一步步教你如何配置:

首先注册账号并登录OneNET控制台,进入"产品开发"页面创建一个新产品。产品类型选择"设备接入",协议选择"MQTT旧版"。这里有个小技巧:在创建产品时最好提前规划好数据模板,后面代码中需要严格匹配。

创建完产品后,需要添加设备。关键是要记录下几个参数:产品ID、设备名称和设备密钥。这些参数在代码中需要准确配置,否则无法连接。我在代码中是这么定义的:

#define ONENET_MQTT_PRODUCT_ID "7M6S32xnSS"
#define ONENET_MQTT_DEVICE_NAME "20010712"
#define ONENET_MQTT_TOKEN "version=2018-10-31&res=products%2F7M6S32xnSS%2Fdevices%2F20010712&et=2066868610&method=md5&sign=LJFN5pnrXIN6xgTT85NwHg%3D%3D"

设备创建成功后,建议在平台上测试一下通信是否正常。OneNET提供了在线调试工具,可以模拟设备上报数据和下发命令,这对后续调试很有帮助。

3. ESP8266的AT指令配置

ESP8266模块需要正确配置才能连接MQTT服务器。我总结了一个稳定的初始化序列:

uint8_t WiFi_Init(void) {
    uint8_t wifi_retry = 0;
    MQTT_Status.error_code = 0;
    
    if (MQTT_Send_Command("AT+RST\r\n", "", 3, 1, 1000) != 1)
        MQTT_Status.error_code |= (1 << 0);
    
    if (MQTT_Send_Command("ATE0\r\n", "OK", 3, 1, 500) != 1)
        MQTT_Status.error_code |= (1 << 1);
    
    if (MQTT_Send_Command("AT+CWMODE=1\r\n", "OK", 3, 1, 50) != 1)
        MQTT_Status.error_code |= (1 << 2);
    
    if (MQTT_Send_Command("AT+CWDHCP=1,1\r\n", "OK", 3, 1, 50) != 1)
        MQTT_Status.error_code |= (1 << 3);

    // WiFi连接重试
    while (wifi_retry++ < 5) {
        if (MQTT_Send_Command(WIRELESS_WIFI_INFO, "GOT IP", 1, 1, 10000))
            break;
        delay_ms(2000);
    }
    
    if (wifi_retry >= 5) {
        MQTT_Status.error_code |= (1 << 4);
        return 0;
    }
    return 1;
}

这里有几个需要注意的地方:AT+RST后要给模块足够的重启时间(我一般留1秒);ATE0关闭回显可以减少数据干扰;WiFi连接重试机制很重要,因为偶尔一次连接失败很正常。

在实际项目中,我发现ESP8266对电源波动很敏感。如果遇到频繁断开重连,除了检查供电,还可以尝试在AT+CWJAP指令前添加AT+CIPRECVMODE=1指令,设置为透传模式可以提高稳定性。

4. MQTT协议连接与配置

MQTT配置是整个项目的核心环节,主要包括用户配置、服务器连接和主题订阅三个步骤:

uint8_t MQTT_Config(void) {
    MQTT_Status.error_code = 0;
    
    if (MQTT_Send_Command(ONENET_MQTT_USERCFG_INFO, "OK", 3, 1, 50) != 1)
        MQTT_Status.error_code |= (1 << 5);
    
    if (MQTT_Send_Command(ONENET_MQTT_SERVER_INFO, "+MQTTCONNECTED", 3, 1, 10000) != 1)
        MQTT_Status.error_code |= (1 << 6);
    
    if (MQTT_Send_Command(ONENET_MQTT_REPLY_TOPIC, "OK", 3, 1, 500) != 1)
        MQTT_Status.error_code |= (1 << 7);
    
    delay_ms(3000);

#if ONENET_MQTT_SET_ENABLE
    if (MQTT_Send_Command(ONENET_MQTT_SET_TOPIC, "OK", 3, 1, 10000) != 1)
        MQTT_Status.error_code |= (1 << 8);
#endif

    return (MQTT_Status.error_code == 0) ? 1 : 0;
}

连接OneNET的MQTT服务器时,需要注意几个细节:一是服务器地址是"mqtts.heclouds.com",端口1883;二是需要开启SSL加密(AT+MQTTCONN最后一个参数为1);三是连接超时时间要设置足够长(我这里用了10秒),因为网络状况不好时握手过程可能较慢。

主题订阅方面,需要订阅两个主题:属性设置主题用于接收小程序下发的控制命令,属性上报回复主题用于接收平台对上报数据的应答。主题名称有固定格式:$sys/{产品ID}/{设备名称}/thing/property/set和$sys/{产品ID}/{设备名称}/thing/property/post/reply。

5. 数据上报机制实现

数据上报是物联网设备最基本的功能,这里需要将设备数据封装成特定的JSON格式:

void MQTT_Publish_Data(void) {
    char globalBuffer[512] = {0};
    char atCommand[256] = {0};
    uint16_t bufferPos = 0;

    // 组装JSON消息
    bufferPos += snprintf(globalBuffer, sizeof(globalBuffer), "{\"id\":\"123\",\"params\":{");
    for (uint8_t i = 0; i < DATA_ARRAY_SIZE; i++) {
        switch (onenet_data_array[i]->type) {
            case TYPE_BOOL:
                bufferPos += snprintf(globalBuffer + bufferPos, sizeof(globalBuffer) - bufferPos, 
                    "\"%s\":{\"value\":%s}%s", 
                    onenet_data_array[i]->name, 
                    onenet_data_array[i]->value.bool_value ? "true" : "false",
                    (i < DATA_ARRAY_SIZE - 1) ? "," : "");
                break;
            case TYPE_INT:
                bufferPos += snprintf(globalBuffer + bufferPos, sizeof(globalBuffer) - bufferPos,
                    "\"%s\":{\"value\":%d}%s",
                    onenet_data_array[i]->name,
                    onenet_data_array[i]->value.int_value,
                    (i < DATA_ARRAY_SIZE - 1) ? "," : "");
                break;
            case TYPE_FLOAT:
                bufferPos += snprintf(globalBuffer + bufferPos, sizeof(globalBuffer) - bufferPos,
                    "\"%s\":{\"value\":%.1f}%s",
                    onenet_data_array[i]->name,
                    onenet_data_array[i]->value.float_value,
                    (i < DATA_ARRAY_SIZE - 1) ? "," : "");
                break;
        }
    }
    bufferPos += snprintf(globalBuffer + bufferPos, sizeof(globalBuffer) - bufferPos, "}}");

    // 发送AT指令
    snprintf(atCommand, sizeof(atCommand), "%s,%d,0,0\r\n", ONENET_MQTT_PUBTOPIC, bufferPos);
    if (MQTT_Send_Command(atCommand, "OK", 1, 1, 100) != 1) {
        printf("发布指令发送失败\r\n");
        return;
    }

    // 发送JSON数据
    Usart2_SendString(globalBuffer);
    printf("已发送消息内容: %s\r\n", globalBuffer);
}

在实际应用中,我建议给每个上报消息设置一个唯一的ID,这样可以在平台回复时对应起来。数据格式一定要严格按照OneNET的要求,特别是数据类型要匹配。比如布尔值必须是true/false,不能是1/0。

上报频率也需要根据实际场景调整。对于温湿度这类变化慢的数据,30秒上报一次就足够了;对于开关状态这类实时性要求高的,应该在状态变化时立即上报。

6. 命令接收与处理逻辑

命令接收是远程控制的关键,需要处理小程序下发的控制指令:

void MQTT_Processing_Command(void) {
    char *jsonData = NULL;
    
    // 定位JSON数据起始位置
    jsonData = strstr((char*)MQTT_RxBuffer, ONENET_MQTT_REVEIVE_SET_TOPIC);
    if (jsonData)
        jsonData = strchr(jsonData, '{');
    else
        jsonData = strchr((char*)MQTT_RxBuffer, '{');
    
    if (!jsonData) return;

    // 提取命令ID
    uint32_t cmd_id = MQTT_Get_Command_Id(jsonData);
    
    // 提取控制参数
    MQTT_Receiver_Command_Extract(jsonData);
    
    // 发送响应
    MQTT_Receive_Command_Respond(cmd_id, 200, "success");
}

数据处理函数需要从JSON中提取具体控制参数:

void MQTT_Receiver_Command_Extract(char *jsonData) {
    cJSON *json_obj = cJSON_Parse(jsonData);
    if (!json_obj) return;

    cJSON *params = cJSON_GetObjectItem(json_obj, "params");
    if (!params) {
        cJSON_Delete(json_obj);
        return;
    }

    // 处理窗帘控制
    cJSON *item = cJSON_GetObjectItem(params, ChuangLian_Control.name);
    if (item && cJSON_IsBool(item))
        ChuangLian_Control.value.bool_value = item->valueint;

    // 处理加湿器控制
    item = cJSON_GetObjectItem(params, JiaShiQi_Control.name);
    if (item && cJSON_IsBool(item))
        JiaShiQi_Control.value.bool_value = item->valueint;

    // 处理吊灯控制
    item = cJSON_GetObjectItem(params, DiaoDeng_Control.name);
    if (item && cJSON_IsNumber(item))
        DiaoDeng_Control.value.int_value = item->valueint;

    cJSON_Delete(json_obj);
}

在实际应用中,命令处理需要充分考虑异常情况。我建议添加超时重发机制和命令状态反馈。比如当收到控制命令后,除了立即回复平台,还应该将执行结果再次上报,这样小程序端就能知道设备实际状态。

7. 微信小程序开发要点

微信小程序作为控制端,主要功能是发送控制指令和显示设备状态。开发时需要注意几个关键点:

首先是MQTT连接,小程序可以使用WebSocket方式连接OneNET平台。需要在app.json中配置网络权限:

{
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  },
  "requiredBackgroundModes": ["audio", "location"],
  "networkTimeout": {
    "request": 10000,
    "connectSocket": 10000,
    "uploadFile": 10000,
    "downloadFile": 10000
  }
}

控制界面设计要简洁明了,建议使用按钮组控制设备开关,滑块控制亮度等连续值。每次操作后要及时更新UI状态,并显示操作结果。

数据接收方面,小程序需要订阅设备状态主题,实时显示设备上报的数据。建议使用定时器每隔几秒获取一次设备状态,保持数据显示的实时性。

8. 异常处理与稳定性优化

在实际部署中,网络异常和设备重启是常见问题。我总结了几种提高稳定性的方法:

AT指令重试机制:所有AT指令都应该有重试逻辑,我一般设置3次重试:

uint8_t MQTT_Send_Command(char *cmd, char *res, uint8_t MaxSendCount, uint8_t Clear_Buffer, uint16_t timeout_ms) {
    uint32_t start_time;
    bool received;
    uint8_t temp_buffer[RX_BUFFER_SIZE] = {0};
    uint16_t temp_len = 0;
    
    printf("\n发送指令: %s", cmd);
    printf("期望返回: %s\n", res);
    
    while (MaxSendCount--) {
        // ... 发送和检测逻辑
        if (MaxSendCount > 0) {
            printf("剩余重试次数: %d\n", MaxSendCount);
            delay_ms(500);
        }
    }
    printf("所有重试均失败!\n");
    return 0;
}

心跳保持机制:ESP8266需要定期发送心跳包保持连接。我一般每60秒发送一次AT指令检查连接状态,如果断开就立即重连。

数据缓存机制:在网络异常时,重要数据应该先缓存起来,等网络恢复后再上报。我通常使用环形缓冲区存储待上报数据。

电源管理:对于电池供电的设备,需要优化功耗。可以在无操作时让ESP8266进入睡眠模式,有控制命令时再唤醒。

9. 实际应用中的调试技巧

调试物联网项目需要耐心和一些技巧。我常用的调试方法包括:

串口日志分级:将日志分为ERROR、WARN、INFO、DEBUG等级别,通过宏定义控制输出级别,方便定位问题。

#define LOG_LEVEL_DEBUG 0
#define LOG_LEVEL_INFO 1
#define LOG_LEVEL_WARN 2
#define LOG_LEVEL_ERROR 3

#ifndef CURRENT_LOG_LEVEL
#define CURRENT_LOG_LEVEL LOG_LEVEL_DEBUG
#endif

#define LOG_DEBUG(fmt, ...) \
    if (CURRENT_LOG_LEVEL <= LOG_LEVEL_DEBUG) \
        printf("[DEBUG] " fmt, ##__VA_ARGS__)

AT指令日志记录:记录所有发送和接收的AT指令,最好同时记录十六进制和ASCII格式,这样能发现隐藏的字符编码问题。

网络状态监控:定期检查WiFi信号强度和MQTT连接状态,当信号弱时提前预警。

离线测试:先使用串口调试工具模拟ESP8266的响应,确保STM32端的逻辑正确,再实际连接模块测试。

我在项目中遇到最棘手的问题是JSON格式错误,因为OneNET平台对JSON格式要求很严格,多一个空格少一个逗号都会导致解析失败。后来我写了一个JSON格式校验函数,在发送前先检查格式,大大提高了成功率。

10. 性能优化与扩展建议

这个基础框架还可以进一步优化和扩展:

数据压缩:对于频繁上报的数据,可以使用简单的压缩算法减少数据量。比如将多个数据点打包成一条消息上报。

OTA升级:通过OneNET平台实现固件远程升级,这对于部署后的设备维护很重要。

多协议支持:除了MQTT,还可以支持HTTP、CoAP等协议,根据网络条件自动选择最优协议。

本地联动:设备之间可以通过蓝牙或LoRa直接通信,不依赖云平台实现本地联动控制。

安全增强:添加数据加密和设备认证机制,防止未授权访问。

我在实际项目中还添加了设备分组管理功能,可以同时控制多个设备。小程序端也做了场景模式,比如"回家模式"可以一次性打开多个设备。

这个项目最让我满意的是稳定性。经过多次优化后,设备可以连续运行几个月不掉线。即使网络中断,恢复后也能自动重连并补发缓存的数据。

物联网实战指南:新版OneNET物模型与MQTT协议赋能STM32设备上云全流程解析 本文详细解析了如何通过新版OneNET物模型与MQTT协议实现STM32设备上云的全流程。从物模型标准化定义、STM32硬件准备、产品创建配置,到MQTT安全认证、数据上报与远程控制实现,再到微信小程序对接技巧,提供了一套完整的物联网实战方案。重点介绍了OneNET平台的高效对接方法和常见问题解决方案,帮助开发者快速实现设备云端互联。 阅读详情

相关推荐

MQTT协议在STM32上的实战:从OneNet移植到微信小程序控制蜂鸣器

本文详细介绍了如何将MQTT协议应用于STM32单片机,实现从OneNet平台到微信小程序的完整通信链路,最终完成蜂鸣器的远程控制功能。通过硬件选型、MQTT协议栈移植、微信小程序集成及稳定性优化等步骤,为物联网设备开发提供了实用指南。

weixin_29158047的博客 276

stm32控制esp8266的实现STA/AP/STa+AP程序

ATK-MW8266D模块的各个引脚的详细描述,如下表所示。

qq_52590045的博客 3499

使用STM32单片机控制ESP8266连接服务器

通过初始化STM32单片机和ESP8266模块,并发送适当的AT指令,我们可以实现与服务器的连接和数据传输。希望本文对你在STM32和ESP8266的控制和连接方面和ESP8266的控制和连接方面有所帮助。在上面的代码中,我们首先定义了一些ESP8266的AT指令,例如重启模块(AT+RST)、设置模式(AT+CWMODE)、连接到Wi-Fi(AT+CWJAP)、建立TCP连接(AT+CIPSTART)等等。连接时,TX引脚连接到RX引脚,RX引脚连接到TX引脚,同时将GND引脚连接到地。

QoyOle的博客 1181

基于STM32的ESP8266WIFI模块的通信

本文所使用的软硬件开发环境:1.STM32F4系板子2.ESP8266wifi模块3.USB-UART模块4.xcom串口调试助手使用STM32与ESP8266建立通信后,可以实现很多任务,比如通过wifi获取时间,通过wifi连接云平台,通过wifi获取天气与地址等等,这些内容将在下一篇具体展示。

ycming1的博客 9591

直流并联电压源的下垂控制与模拟光伏板特性的方法与仿真

并联直流电源下垂控制方法,下垂特性可以让并联直流电源输出功率/电流自动均衡,直流电源输出特性模拟光伏板的输出特性,具有自动限制输出最大功率的功能

1197

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4733

STM32--ESP8266物联网WIFI模块(贝壳物联)--远程无线控制点灯

前面介绍了ESP8266模块并完成透传设置,接下来就可以连接STM32单片机进行远程无线点灯控制了,这里以STM32F103C8T6单片机为例说明,其他MCU也是类似的。LED灯使用的是C8T6最小系统板上板载的LED灯,选用其他IO口控制的话修改在代码中修改对应的接口就行了。服务器端选用的是贝壳物联,后面有详细的配置端说明

u011816009的博客 1万+

three.js开发3D地图记录(二)

添加地图点击事件,点击区域,地图区域改变颜色并浮起来。

anwebDesigner的博客 1695

(最新版2026)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

最新版 stm32 + 新版 onenet +esp8266/01s + mqtt物联网(保姆级教程) 完美实现连接onenet,并且实现上传数据和下发接收数据进行测试控制led 物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总

Wang2869902214的博客 4万+

华为OD新系统机试真题 2026.5.10 - 美观的灯笼

华为OD新系统机试真题【美观的灯笼】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【美观的灯笼】

qq_45776114的博客 644

YOLO26-seg分割优化:轻量化卷积魔改 | 新的partial convolution(PConv)结合C3k2 | CVPR2023

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 153

(代码易懂实现)新stm32+esp8266/01s+dht11+mqtt onenet上报温湿度和远程控制——STM32代码实现篇

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——STM32代码实现篇 实现STM32与ESP8266/01swifi模块通信,链接OneNET mqtt设备,实现单片机上传数据到OneNET中,并且OneNET可以下发数据控制单片机

Wang2869902214的博客 7941

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 228

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——创建新版OneNET的MQTT协议产品

本文详细讲解了如何利用STM32单片机结合ESP8266无线模块与各式传感器,构建一个多功能的物联网系统,实现远程数据监测及设备控制。通过教程的学习和实践,读者将能够通过微信小程序界面,远端实时查看温度、光照等关键传感器数据,并向设备发送指令,如控制LED灯的开启和关闭。本教程的核心包括单片机与ESP8266模块的硬件连接、固件烧录、云平台数据交互以及小程序开发等关键技术。逐步指导相结合的方式,为读者呈现了一个综合的学习路径,旨在深化物联网技术的理解与应用,为智能设备和智慧生活揭开神秘的面纱。

Wang2869902214的博客 1万+

《YOLOv8:从入门到实战》报错解决 & 专栏答疑

《YOLOv8:从入门到实战》专栏上线后,部分同学在学习过程中提出了一些问题,笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容,笔者特意推出了该篇专栏答疑,针对同学们在学习过程中所提出的问题进行汇总记录,并不断实时更新,希望能够帮助到大家!🌈

小哥谈 1241

高比例风电电力系统储能运行及配置研究(python&Matlab实现)

目录1 概述2 案例3 Matlab实现 3.1 题目及分析3.2 Matlab代码 4 七个题全部代码(值得学习) 下面我们先以第二题为例,然后给出Matlab代码:先考虑风电装机300MW直接替代机组3的发电功率曲线,观察系统功率平衡发生的变化情况。然后在此场景下,以最小发电成本为目标函数,将负荷分配给两台火电机组1、2和风电机组,绘制机组日发电计划图。再将风电装机容量作为一个决策变量,以最小发电成本为目标函数,求取最小发电成本对应的风电装机容量,绘制机组日发电计划图。1. 风电装机300MW、直接

weixin_46039719的博客 1741

【OneNET】_01_使用微信小程序通过新版OneNET平台获取STM32设备信息并进行控制

使用微信小程序通过新版OneNET平台获取STM32设备信息并进行控制

W99BJX的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【最新】微信小程序连接onenet——stm32+esp8266+onenet实现查看温湿度,控制单片机

本文介绍了如何将OneNET物联网平台与微信小程序对接,实现完整的物联网应用开发流程。主要内容包括:1)获取API安全鉴权信息,包括userid、时间戳和AccessKey;2)使用微信开发者工具导入并修改小程序源码,配置OneNET连接参数;3)调试小程序数据获取和设备控制功能;4)添加自定义组件展示更多设备数据;5)通过API查询设备在线状态;6)实现手机端预览调试。最终完成了从硬件采集、云端传输到小程序可视化与远程控制的全链路开发,形成闭环的物联网应用系统。

Wang2869902214的博客 9154

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---云平台篇(一)

做项目也有一段时间了,串口通讯协议大部分都做过了,但是网络通讯协议却没有接触过;目前手头也没有什么着急的项目,趁着空闲时间自己淘宝买了ESP8266-01S WIFI模块,尝试写一下MQTT协议,丰富一下自己的项目经验。欢迎跟随本教程,我们将一步一步地构建起一个智慧型项目,使您的单片机设备能够通过网络与世界互联。整个项目可以概括为以下四个核心阶段,

2301_76762351的博客 3293

新版Onenet物联网平台,微信小程序显示上传信息&发送指令。STM32&ESP8266实现采集数据并上传

ESP8266基于MQTT协议上传数据至新版Onenet&上位机可通过Onenet发送命令给硬件设备。附带Onenet配置教程

qq_53038430的博客 6129

STM32毕业设计——基于STM32+MQTT+WiFi技术的智能家居系统设计与实现(毕业论文+程序源码)——智能家居系统

智能家居技术是在电子信息技术和无线通信技术还有软件技术等技术领域不断发展而产生的新兴技术,这种技术不仅能改变人们日常的生活方式,还能将居住环境变得更舒适。本文的研究设计正是通过上述技术提出一种以无线通信技术为基础实现对室内家居环境进行实时监测、预警、控制的智能家居系统方案。

m0_66238867的博客 3万+

OneNet MQTT接入实战:STM32+ESP8266物联网设备上云指南

物联网设备上云是嵌入式系统开发的关键环节,其核心在于解决资源受限终端与云端服务间的协议适配、安全认证与数据建模问题。MQTT协议凭借低开销、长连接和QoS分级机制,成为STM32等MCU平台对接云平台的首选通信方案;而物模型(Thing Model)则通过结构化数据点定义,实现硬件信号到云端语义的标准化映射。该技术组合显著降低网络重连、指令解析与权限管控等重复开发成本,广泛应用于温湿度监测、智能照明、边缘告警等典型场景。本文以OneNet云平台为载体,详解基于MQTT协议与物模型的嵌入式设备接入全流程。

e4f5g6h的博客 1120

【亲测免费】 自动灌溉系统 keil5(stm32+esp8266+onenet+mqtt)

自动灌溉系统 keil5(stm32+esp8266+onenet+mqtt) 【下载地址】自动灌溉系统keil5stm32esp8266onenetmqtt 本项目是一个基于Keil5开发的自动灌溉系统,适用于大学电子设计课程设计。系统主要由STM32微控制器、ESP8266 Wi-Fi模块、OneNet云平台以及MQ...

gitblog_09706的博客 630

STM32物联网实战:ESP8266+OneNET MQTT协议实现微信小程序远程设备控制与数据交互

本文详细介绍了基于STM32和ESP8266模块,通过OneNET平台和MQTT协议实现微信小程序远程设备控制与数据交互的完整物联网解决方案。内容包括硬件连接、AT指令配置、OneNET设备创建、MQTT数据发布订阅机制以及微信小程序开发集成,为物联网初学者提供实用指导。

l1k9j8h7g6的博客 212
上一篇: MAX30102传感器实战:从硬件连接到心率血氧算法解析
下一篇: AutoGLM与多模态未来:视觉语言模型如何重新定义人机交互
随身带U盘
博客等级 码龄4年 30粉丝 1526原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值