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

news2024/11/18 11:45:51

微信小程序——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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2184231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】进程优先级、调度、命令行参数:从理论到实践(二)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 &#x1f680; 前言一&#xff1a; &#x1f525; 进程优先级 &#x1f375; 基本概念&#x1f375; 查看系统进程&#x1f375; PRI and NI&#x1f375; PRI vs NI&#x1f375; 用to…

【Java SE 题库】移除元素(暴力解法)--力扣

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 题目 2. 解法(快慢“指针”) 3. 源码 4. 小结 1. 题目 给你一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素。元素的顺…

Pre-trained Models for Natural Language Processing: A Survey

前言 预训练模型给下游任务带来的效果不言而喻&#xff0c;有了预训练模型&#xff0c;我们可以使用它来加速解决问题的过程。正如论文中所说的那样&#xff0c;预训练模型&#xff08;PTMs&#xff09;的出现将自然语言处理&#xff08;NLP&#xff09;带入了一个新时代。本篇…

各种饺子的做法

【羊肉馅水饺】 材料:羊肉1000克、洋葱2个、香油3汤匙、盐适量、姜2片、料酒1汤匙、白胡椒粉、十三香1茶匙、 做法&#xff1a; 1.把羊肉剁成肉馅&#xff0c;羊肉选用带一些肥肉的&#xff0c;味道比较香&#xff0c;如果羊肉比较瘦&#xff0c;可以放一些猪的肥肉一起剁成馅…

【Python】探索自然语言处理的利器:THULAC 中文词法分析库详解

THULAC&#xff08;THU Lexical Analyzer for Chinese&#xff09;是清华大学开发的一款中文词法分析工具&#xff0c;集成了分词和词性标注两大功能。THULAC 拥有强大的分词能力和高效的词性标注&#xff0c;适用于多种中文文本处理场景。该工具能够在保证高准确率的同时保持较…

修复OpenSSH远程代码执行漏洞:版本升级到9.9p1

目录 前言1. 备份配置文件2. 下载 OpenSSH 最新版本3. 编译安装 OpenSSH4. 替换旧版 OpenSSH 并创建符号链接5. 重启 SSH 服务6. 验证安装结果结语参考文章 前言 OpenSSH 是一种广泛使用的远程登录协议&#xff0c;它确保了服务器和客户端之间的安全通信。然而&#xff0c;随着…

Linux驱动开发(速记版)--设备树

第五十二章 初识设备树 52.1 设备树介绍 设备树&#xff08;Device Tree&#xff09;是嵌入式系统和Linux内核中用于描述硬件的一种机制。 设备树概述 目的&#xff1a;描述硬件设备的特性、连接关系和配置信息。 优势&#xff1a;与平台无关&#xff0c;提高系统可移植性和可…

【linux进程】进程优先级命令行参数环境变量

目录 一&#xff0c;进程切换二&#xff0c;进程优先级1. 什么是优先级2. 权限 vs 优先级3. 为什么要有优先级4. 优先级的查看方式 三&#xff0c;命令行参数1. 什么是命令行参数2. 为什么要有命令行参数3. 是谁做的 四&#xff0c;环境变量1. 基本概念2. 常见环境变量3. 查看环…

电商店铺多开自动回复软件

在电商平台上开设多个店铺&#xff0c;即店铺多开&#xff0c;是一种扩展业务和增加销售额的策略。然而&#xff0c;店铺多开需要谨慎规划和执行&#xff0c;以避免违反平台规定和管理上的混乱。以下是如何实现店铺多开的详细步骤和注意事项。 1. 确定多开目标 在决定多开店铺…

[云] Getting Started with Kubernetes - Environment setup 环境配置

启动一个 EC2 实例&#xff0c; 请按照以下步骤操作&#xff1a; 登录 AWS 控制台&#xff1a; 打开浏览器&#xff0c;访问 AWS Management Console 并登录到您的账户。 选择 EC2 服务&#xff1a; 在 AWS 控制台的“服务”菜单中找到并点击“EC2”进入 EC2 Dashboard。 启…

Spark SQL分析层优化

导读&#xff1a;本期是《深入浅出Apache Spark》系列分享的第四期分享&#xff0c;第一期分享了Spark core的概念、原理和架构&#xff0c;第二期分享了Spark SQL的概念和原理&#xff0c;第三期则为Spark SQL解析层的原理和优化案例。本次分享内容主要是Spark SQL分析层的原理…

国内车牌号检测数据集 7800张 车牌识别 带标注 voc yolo

车牌号检测数据集 7800张 车牌识别 带标注 voc yolo 车牌号码检测数据集 名称 车牌号码检测数据集 (License Plate Detection Dataset) 规模 图像数量&#xff1a;7800张图像。类别&#xff1a;无分类&#xff0c;主要针对车牌区域的定位。标注个数&#xff1a;10,000多个标…

Windows 11 的 24H2 更新將帶來全新 Copilot+ AI PC 功能

10 月起率先向 Insider 推出。 微軟今日宣布 Windows 11 的 24H2 更新將從 10 月起陸續開放給不同用戶&#xff0c;其中將包括多項全新 Copilot AI PC 功能。首先是回爐重造的 Recall 回顧&#xff0c;官方在聽取社群意見後對安全性做了進一步加強。現在用戶可以自己選擇是否保…

从小IPD到大IPD

IPD体系实施或变革是一个长期的系统工程&#xff0c;需要坚持“总体规划、分步实施”的原则&#xff0c;业界经常有从“小IPD”到“大IPD”的说法。 像华为当年就是从“产品开发流程”开始推行&#xff0c;就是小范围的“小IPD”&#xff0c;后面逐步扩大为“大IPD”&#xff0…

Ubuntu22.04之mpv播放器高频快捷键(二百七十)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

两个向量所在平面的法线,外积,叉积,行列式

偶尔在一个数学题里面看到求两向量所在平面的法线&#xff0c;常规方法可以通过法线与两向量垂直这一特点&#xff0c;列两个方程求解&#xff1b;另外一种方法可以通过求解两个向量的叉积&#xff0c;用矩阵行列式 (determinant) 的方式&#xff0c;之前还没见过&#xff0c;在…

正则表达式调试工具实战

正则表达式调试工具实战 1、新建工程QWidget工程工程名RegexTool 如果QT不会配置,请参考我的博客,QT配置 Widget.cpp 默认内容如下 2、主界面设计 三行两列,每行采用HBoxLayout作为行布局控件,内部一个Lable控件和一个TextEdit控件,采用VBoxLayout 控件包裹三个HBoxLa…

JWT | JWT 漏洞介绍

关注这个漏洞的其他相关笔记&#xff1a;JWT 漏洞 - 学习手册-CSDN博客 0x01&#xff1a;JWT 漏洞介绍 JWT&#xff08;Json Web Token&#xff09;是用于在网络应用环境间传递声明的一种基于 JSON 的开放标准。它通过使用 JSON 对象进行安全的信息传输&#xff0c;可以用于身…

ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

激活函数ReLU,Sigmoid,tanh,softmax性质讲解及使用matplotlib绘制

Sigmoid及tanh sigmoid及tanh的函数图像较为相似,它们的公式如下 Sigmoid公式 tanh公式 Sigmoid及tanh性质解析 Sigmoid和tanh作为激活函数都可以有效完成非线性映射的功效,其中Sigmoid经常作为2分类的神经网络的输出层的激活函数,由于其非线性映射会将输出值转换到0-1的区间…