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

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

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

相关推荐
魔猴疯猿5 小时前
香橙派(Orange Pi)入门使用教程:从开箱到跑通第一个项目
单片机·嵌入式硬件·物联网
温柔章鱼哥5 小时前
端边云协同物联网开发平台有哪些供应商?完整平台方案梳理
物联网
智鸟科技GemeOpen开发者智能设备5 小时前
智能插座二次开发如何接入Home Assistant,从零开始完整工程实现(Python+React)
开发语言·python·物联网·react.js·智能家居
TDengine (老段)6 小时前
TDengine TSDB 实战排障四(升级与兼容)
android·java·大数据·数据库·物联网·时序数据库·tdengine
当下新鲜事8 小时前
四方电气DX100开环矢量变频器在精雕机主轴驱动中的参数分析
大数据·物联网·业界资讯
华允物联-HUAIOT8 小时前
带隔离的串口服务器有必要买吗?隔离作用对比
服务器·物联网
李永奉9 小时前
中科蓝讯SDK开发-一拖多烧录盒烧录使用教程
单片机·嵌入式硬件·物联网·智能手机·电脑
XLYcmy11 小时前
基于图神经网络的物联网固件漏洞静态挖掘技术方案 上
神经网络·物联网·网络安全·二进制·elf·漏洞检测·固件
芯次元玩家12 小时前
想要参加物联网峰会,全年展会论坛的举办周期与月度排期一览
物联网
fan_00012 小时前
国密TLCP协议,LKT4305GMT护航物联网安全通信
单片机·嵌入式硬件·mcu·物联网·加密芯片