第五章 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也换成自己的

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

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

相关推荐
BY组态4 小时前
【技术分析】Ricon组态系统的模块化架构设计
物联网·iot·web组态·组态
BY组态6 小时前
【教程】如何使用Ricon组态系统快速构建监控画面
物联网·iot·web组态·组态
BY组态8 小时前
【对比分析】Ricon组态系统 vs 传统组态软件
运维·物联网·web组态·组态
zhaoshuzhaoshu1 天前
BLE(蓝牙低功耗)连接过程详解
物联网·蓝牙·无线
搜佛说1 天前
下一代跨语言原生操作系统商业计划书
物联网·软件工程
BY组态1 天前
Ricon组态系统在实际项目中的应用案例分享
物联网·web组态·组态
Zevalin爱灰灰1 天前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(五)
单片机·物联网·嵌入式·esp8266
Web3_Daisy1 天前
Token 分红机制详解:实现逻辑、激励结构与风险分析
大数据·人工智能·物联网·web3·区块链
BY组态1 天前
从零开始:Ricon组态系统快速入门指南
运维·物联网·web组态·组态
次旅行的库1 天前
MQTT学习笔记
数据库·笔记·物联网·学习