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

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

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

相关推荐
sdyeswlw15 小时前
热烈庆祝 | 一二三物联网携这款产品入选2025年度山东省首台(套)技术装备生产企业及产品名单
物联网
耐达讯通信技术1 天前
“乾坤大挪移”:耐达讯自动化RS485转Profinet解锁HMI新乾坤
运维·网络·物联网·自动化·信息与通信
时序数据说1 天前
时序数据库IoTDB:为何成为工业数据管理新宠?
大数据·数据库·物联网·开源·时序数据库·iotdb
jianqiang.xue1 天前
Proteus8 + STM32CubeMX 实现 STM32F103R6 串口通信教程
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·proteus
ManThink Technology1 天前
热计量表通过M-Bus接口实现无线集抄系统的几种解决方
物联网
taxunjishu2 天前
基于 CC-Link IE FB 转 DeviceNet 技术的三菱 PLC 与发那科机器人在汽车涂装线的精准喷涂联动
网络·人工智能·物联网·机器人·自动化·汽车·区块链
猫猫的小茶馆2 天前
【C语言】汇编语言与C语言的混合编程
c语言·开发语言·stm32·单片机·嵌入式硬件·mcu·物联网
范纹杉想快点毕业2 天前
zynq 开发系列 新手入门:GPIO 连接 MIO 控制 LED 闪烁(SDK 端代码编写详解)
c语言·笔记·stm32·单片机·嵌入式硬件·mcu·物联网
漫途科技2 天前
科技赋能田园:数字化解决方案开启智慧农业新篇章
科技·物联网·智慧农业
jonyleek2 天前
【JVS更新日志】低代码、物联网、无忧企业计划9.3更新说明!
物联网·低代码·开源·团队开发·软件开发·软件需求