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

微信小程序——stm32+esp8266+onenet实现查看温湿度,控制单片机

(最新已验证)stm32 + 新版 onenet +dht11+esp8266/01s + mqtt物联网上报温湿度和控制单片机(保姆级教程)

:↓↓👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇  👇  👇  👇  👇  👇  👇  👇  👇 

(最新已验证)stm32 + 新版 onenet +dht11+esp8266/01s + mqtt物联网上报温湿度和控制单片机(保姆级教程)icon-default.png?t=O83Ahttps://blog.csdn.net/Wang2869902214/article/details/142501323

注       👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆 👆

注:代码和文章内容创作不易,使用或分享代码时请标注来源

读者们也可以加入STM32链接OneNET的群聊,交流一些遇到的问题也可以互相探讨:

                资料代码自助下载            Q:983362248

效果展示:

微信小程序stm32+esp8266+onenet显示温湿度和控制单片机

下图为微信小程序演示图 :

 详细功能描述:

1.查看数据:能够显示单片机上传到OneNET MQTT 设备的数据

2.下发数据:能够使用OneNET的属性设置,下发数据去控制单片机执行对应的操作

微信小程序中使用OneNET API的Token

注意:这里的Token2.0软件生成后的的Token与前面单片机代码中AT指令的Token不一样,不要混淆了

下载Token2.0 

 放在百度云盘中一直说我链接违规,OneNET官方下载区这个软件也找不到了,很奇怪,所以需要资料的读者们,可以评论区留言联系方式,

或者在交流群中, 资料代码自助下载    Q:983362248

Token2.0工具使用方法

①:userid/{用户id},用户id可以在OneNET的【用户中心】->【访问权限】中获取

②:截止时间戳,填写一个几年后的时间戳即可

③:填入用户AccessKey,可以在OneNET的【用户中心】->【访问权限】中获取

④:选择 sha1  

⑤:填入 2022-05-01  【格式一致】

最后点击右边的生成,最后会得到微信小程序用的Token

代码详细描述:

信息设置

  // 页面初始数据  
  data: {  
    onenetData: [],       // 用来存储设备属性值的数组  
    deviceStatus: [],     // 用来存储设备状态信息的数组  
  },  
  config: {  
    //生成authInfo教程地址:https://blog.csdn.net/Wang2869902214/article/details/134910701,看完记得点个赞噢!
    authInfo: "version=2022-05-01&res=userid************245&met*****************n=Jh9mxJLncSY8CUNh*******HXVkJXk%3D",  
    productId: "Yq****hrM6p",  //产品id
    deviceName: "C***",       //设备名称
    apiBaseUrl: "https://iot-api.heclouds.com",  
    startTime: 0,  
    endTime: 0,  
    limit: 1  
  },  

 介绍如何在微信小程序调用OneNET的API(GET请求)

                这里以获取设备最新状态为例(获取温湿度)

// 获取mqtt设备最新属性值  
  fetchOnenetData() {  
    const { apiBaseUrl, productId, deviceName, authInfo } = this.config;  
    wx.request({  
      url: `${apiBaseUrl}/thingmodel/query-device-property?product_id=${productId}&device_name=${deviceName}`,  
      method: "GET",  
      header: {  
        'Authorization': authInfo  
      },  
      success: (res) => {  
        // 更新设备属性值数据  
        this.setData({  
          onenetData: res.data  
        });  
      },  
      fail: (err) => {  
        console.log("OneNET数据请求失败");  
        console.error(err); // 处理请求失败的情况  
      }  
    });  
  },  

执行成功后会将数据放入【onenetData】中,如下图所示:

之后就可以利用这个数据去实现你想要的功能了

介绍如何在微信小程序调用OneNET的API(POST请求)

// 设置设备属性值  
setOnenetData(CommandValue) {  
  const { apiBaseUrl, productId, deviceName, authInfo } = this.config;  
  wx.request({  
    url: `${apiBaseUrl}/thingmodel/set-device-property`,  
    method: 'POST',  
    header: {  
      'Authorization': authInfo,  
    },  
    data: {  
      "product_id": productId,  
      "device_name": deviceName,  
      "params": {  
        "cmd": CommandValue  
      }  
    },  
    success: (res) => {  
      console.log("设备状态信息");  
      console.log('成功接收数据:', res.data); // 打印接收到的数据  
  
      // 检查响应是否成功  
      if (res.data && res.data.code === 0 && res.data.data && res.data.data.code === 200) {  
        // 显示成功提示框  
        wx.showToast({  
          title: '操作成功', // 提示的文字内容  
          icon: 'none', // 图标类型,默认是'none'  
          duration: 500 // 提示框自动隐藏的时间,单位是毫秒  
        });  
      } else {  
        // 可选:如果需要,也可以在这里处理非成功的情况  
        console.log('操作未成功,具体信息:', res.data);  
      }  
    },  
    fail: (err) => {  
      console.log("设备状态信息请求失败");  
      console.log('请求失败:', err); // 打印错误信息  
  
      // 可选:显示失败提示框  
      wx.showToast({  
        title: '操作失败',  
        icon: 'none',  
        duration: 1000  
      });  
    }  
  });  
},  

这里的POST API相当于是OneNET API调试中的属性设置,用来下发数据:

例如下方的代码,就是调用上方的POST请求代码去实现属性设置,从而单片机接收到数据去执行对应的操作,这里还包含了回应措施

应用场景如下:

如果你需要控制开关灯,你要如何确定单片机执行了你的操作呢,在文章最开头的链接中,里面包含了单片机的代码,如果单片机接收到了微信小程序的数据后,如果能提取出指令,那么就会回应微信小程序,代表单片机收到数据了,如下图所示,如果单片机返回了正确的code,就会显示操作成功:

代码:
 

success: (res) => {  
      console.log("设备状态信息");  
      console.log('成功接收数据:', res.data); // 打印接收到的数据  
  
      // 检查响应是否成功  
      if (res.data && res.data.code === 0 && res.data.data && res.data.data.code === 200) {  
        // 显示成功提示框  
        wx.showToast({  
          title: '操作成功', // 提示的文字内容  
          icon: 'none', // 图标类型,默认是'none'  
          duration: 500 // 提示框自动隐藏的时间,单位是毫秒  
        });  
      } else {  
        // 可选:如果需要,也可以在这里处理非成功的情况  
        console.log('操作未成功,具体信息:', res.data);  
      }  
    },  
    fail: (err) => {  
      console.log("设备状态信息请求失败");  
      console.log('请求失败:', err); // 打印错误信息  
  
      // 可选:显示失败提示框  
      wx.showToast({  
        title: '操作失败',  
        icon: 'none',  
        duration: 1000  
      });  
    }  
  });  

如下图所示: 

  // 开灯逻辑的实现  
  toggleLightOn() {  
    console.log('开灯');  
    this.setOnenetData(10021); // 开灯时设置属性  
  },  
  
  // 关灯逻辑的实现  
  toggleLightOff() {  
    console.log('关灯');  
    this.setOnenetData(10020); // 关灯时设置
  }

附加:

类似上方的GET或者POST请求代码还可以实现更多的功能,具体可以参考下面的图片中,自行浏览其用法,其他的用法与上方的差别不大,只需更改具体的url参数即可

获取到的数据使用方法 

这里使用{{onenetData.data[1].value}},下标需要根据你的实际数据来确定下标数

  <!-- 设备属性值展示,根据属性类型使用不同的单位 -->
  <view class="data-values">
    <!-- 显示可调电阻,单位为百分比(%) -->
    <text style="font-size: 50rpx; margin-bottom: 280rpx;">{{onenetData.data[2].value}} ℃</text>
    <!-- 显示温度值,颜色根据计算结果变化,单位为摄氏度(℃) -->
    <text style="font-size: 50rpx; ">{{onenetData.data[1].value}} %</text>
  </view>

例如:

 

如果需要湿度的value值,以上图数据为例:
 湿度值:{{onenetData.data[1].value}}

手机预览:

如果是直接使用博主提供的微信小程序文件,需要更改微信小程序的AppId

然后手机预览微信小程序后,需要在手机微信小程序中右上角点击三个点,然后进入【开发调试】

再重新进入微信小程序即可

文章结尾

如需获取资料,请点赞收藏后,评论区留下联系方式,博主看到后第一时间发送代码!

读者们也可以加入STM32链接OneNET的群聊,交流一些遇到的问题也可以互相探讨:

                资料代码自助下载            Q:983362248

### 回答1: STM32ESP8266是目前比较常用的物联网设备,可以实现对传感器的数据采集、处理和传输。如果要将其接入到OneNET平台上,需要以下步骤: 1. 准备硬件:需要一块STM32开发板和一块ESP8266模块,以及一个温湿度传感器。 2. 搭建开发环境:使用Keil等集成开发环境进行代码编写和调试。开发环境需要支持STM32的C语言编程。 3. 编写程序:首先要实现STM32温湿度传感器之间的通信,采集数据并监测数据的变化。然后再使用STM32ESP8266之间的串口通信,将数据发送到OneNET平台。 4. 配置OneNET平台:打开OneNET官网,注册帐号并创建设备模板,将上传的数据添加到设备模板中。配置好硬件设备所属的产品和数据流,获取设备的Key和Topic。 5. 实现数据上传:使用AT指令控制ESP8266OneNET服务器进行通信,将采集的数据上传到设备模板中。 总之,需要通过串口通信实现stm32esp8266之间的数据传输和控制,然后通过AT指令控制esp8266连接OneNET云平台并上传数据。需要充分理解OneNET平台的产品和设备模板、数据流等概念,并具备一定的开发经验和编程能力。 ### 回答2: 在将STM32ESP8266联合使用来接入onenet云平台中,需要遵循以下步骤。 第一步,选择合适的传感器来测量温湿度。通常可选择DHT11或DHT22等温湿度传感器。 第二步,在STM32连接传感器,通过ADC模块读取传感器测得的温湿度数据,并将数据存储在内存中。 第三步,通过STM32ESP8266进行串口通信,将读取到的温湿度数据传输给ESP8266。 第四步,通过AT指令将数据通过ESP8266连接onenet云平台。需要注意的是,需要在onenet平台中创建数据流,并获取到数据流ID、设备ID、以及密钥等信息。 第五步,将数据通过HTTP POST方式发送到onenet平台,实现数据上传。 最后,进行数据接入验证。可通过在onenet平台上查看数据流图表来确认数据是否上传成功。 总而言之,将STM32ESP8266联合使用来接入onenet温湿度,需要通过温湿度传感器获取数据,通过STM32ESP8266进行串口通信,并借助AT指令将数据上传到onenet平台。务必进行数据接入验证,以确保数据上传成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

送外卖的CV工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值