第五章 Freertos物联网实战 微信小程序篇

本篇是设计微信小程序部分,完成与云平台的对接。在本章我们将完成使用微信小程序去控制LED灯的亮灭和读取温湿度信息。如果对云平台搭建和其他部分不清楚的地方,可以回顾前几章的内容:【Freertos实战】零基础制作基于stm32的物联网温湿度检测(教程非常简易)

内容演示

【Freertos实战】基于onenet物联网温湿度检测

一、软件下载(环境搭建)

微信小程序的开发使用的是微信开发者工具,大家可以在官网进行下载。我选用的是稳定版windows 64位的。

在下载安装完后,我们可以新建一个工程

这里大家再次搜索进入微信开发者平台,进入小程序首页,网址:微信小程序开发管理

将域名改为https://iot-api.heclouds.com 后重新打开工程,观察域名是否发生更新。若发生变化,那我们的环境就全部配置完成,可以开始正式开发。

二、软件设计

对于想快速制作的大家,可以下载我的资料,资料下载。然后导入我的工程。

选择完毕后,进行创建。这样就可以直接使用我的工程来进行修改。提高效率。

在打开工程以后,可以看到几个不一样的后缀文件,分别是js、json、wxml、wxss。其中json一般我们不在里面进行操作,主要是在js中进行业务的编写。wxml是页面的设计、wxss则是字体和图片的版式。

对于云端的数据请求获取和LED控制下发,采用的是HTTP的方式。获取数据放在了app.json在。

首先创建了三个变量,分别用于存储温湿度和LED的亮灭状态。

cpp 复制代码
// app.js
App({
  globalData: {
    Temp:3,
    Humi:4,
    LED:false
  },

HTTP上传设置,控制LED

cpp 复制代码
  // 上传设备属性数据的方法
setDeviceProperty(params) {
  return new Promise((resolve, reject) => {
    wx.request({
      url: "https://iot-api.heclouds.com/thingmodel/set-device-property",
      header: {
        'Authorization': 'version=2018-10-31&res=products%2FPtAFXPCG49%2Fdevices%2FDB01&et=1756260513&method=sha1&sign=TcuMb4Vdl%2FQiGc6AkEceJHmt2pI%3D',
        'content-type': 'application/json'
      },
      method: "POST",
      data: {
        product_id: 'PtAFXPCG49',
        device_name: 'DB01', // 修正:添加逗号
        id:'123',
        params: params // 设备属性参数
      },
      success: (res) => {
        console.log("API响应:", res.data);
        if (res.data.errno === 0) {
          resolve(res.data); // 返回成功结果
        } else {
          reject(res.data.msg || 'API错误'); // 返回错误信息
        }
      },
      fail: (error) => {
        console.error('请求失败:', error);
        reject(error.errMsg); // 返回网络错误
      }
    });
  });
}

获取云端的数据

cpp 复制代码
    const getinfo = () => {
      return new Promise((resolve, reject) => {
          wx.request({
              url: "https://iot-api.heclouds.com/thingmodel/query-device-property",
              //将请求行中的数字换成自己的设备ID
              header: {
                'Authorization': 'version=2018-10-31&res=products%2FPtAFXPCG49%2Fdevices%2FDB01&et=1756260513&method=sha1&sign=TcuMb4Vdl%2FQiGc6AkEceJHmt2pI%3D',
                'content-type': 'application/json'
              },
              method: "GET",
              data: {
                product_id: 'PtAFXPCG49',
                device_name: 'DB01'
              },
              success: (res) => {
              console.log("API响应:", res.data);
              const properties = res.data.data || []; // 数据在data.data数组中
      
                // 遍历属性数组,提取value
                properties.forEach(prop => {
                switch (prop.identifier) {
                  case 'Humi':
                    this.globalData.Humi = prop.value; // 湿度值(字符串,如"100")
                    break;
                  case 'LED':
                    this.globalData.LED = prop.value === 'true'; // 转换为布尔值
                    break;
                  case 'Temp':
                    this.globalData.Temp = Number(prop.value); // 转换为数字
                    break;
                  default:
                    console.warn('未知属性:', prop.identifier);
                }
              });
      
              console.log('全局数据更新:', this.globalData);
              resolve(); // 解析成功
           },
              fail: (error) => {
                  console.error('获取数据失败:', error);
                  reject(error);
                }
            });
        });
   };

如果直接使用我的代码,需要将token、产品ID和设备ID换成自己的,否则会连到我的设备上。

token参数,换成自己的。

产品ID和设备ID也换成自己的

在云服务创建完成和微信小程序编码完成后,就可以开始正式的测试了。

可以看到,我的微信小程序与云平台数据同步

相关推荐
九河云1 小时前
物流仓储自动化升级:物道供应链 AGV 机器人实现分拣效率提升 60%
人工智能·科技·物联网·机器人·自动化
学术小白人2 小时前
第十三届物联网标识、信息与知识国际会议(IIKI 2025)
物联网·信息可视化
无敌最俊朗@3 小时前
MQTT 关键特性详解
java·前端·物联网
祐言QAQ14 小时前
(超详细,于25年更新版) VMware 虚拟机安装以及Linux系统—CentOS 7 部署教程
linux·运维·服务器·c语言·物联网·计算机网络·centos
Stanford_110616 小时前
关于物联网的基础知识(四)——国内有代表性的物联网平台都有哪些?
人工智能·物联网·微信·微信公众平台·twitter·微信开放平台
捷米研发三部1 天前
DeviceNet转ProfiNet协议转换网关实现西门子PLC与丹佛斯变频器通讯的配置案例
网络·物联网·自动化
柱子jason1 天前
使用IOT-Tree消息流InfluxDB模块节点实现标签数据的时序数据库存储
数据库·物联网·时序数据库·influxdb·iot-tree
沐欣工作室_lvyiyi1 天前
基于物联网的智能衣柜系统的设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·毕业设计·智能衣柜
TDengine (老段)1 天前
TDengine 聚合函数 ELAPSED 用户手册
java·大数据·数据库·sql·物联网·时序数据库·tdengine
TDengine (老段)1 天前
TDengine 聚合函数 HYPERLOGLOG 用户手册
大数据·数据库·物联网·哈希算法·时序数据库·iot·tdengine