【智能家居入门之微信小程序控制下位机】(STM32、ONENET云平台、微信小程序、HTTP协议)

实现微信小程序控制单片机外设动作

    • 一、使用ONENET可视化组件控制单片机外设动作
    • 二、使用微信小程序控制单片机外设动作
    • 三、总结

本篇博客话接上文: https://blog.csdn.net/m0_71523511/article/details/135892908
上一篇博客实现了微信小程序接收单片机上传的数据,本篇博客实现微信小程序控制单片机外设动作,这样两篇博客合起来就成了完整的最简单智能家居。项目源码也在上一篇博客中。

一、使用ONENET可视化组件控制单片机外设动作

首先进入多协议接入界面,选择之前创建好的产品
在这里插入图片描述
点击添加数据流模板
在这里插入图片描述
添加成功之后点击设备列表里的数据流,就可以看到多了一个数据流
在这里插入图片描述
接下来进入可视化项目
在这里插入图片描述

在这里插入图片描述
然后点击编辑进入编辑界面
这里由于我的免费体验时间到了,所以直接用b站up主的图片:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存之后点击预览,此时就可以点击按钮了,在设备管理中的数据流中可以看到ledbtn数据流变化:
在这里插入图片描述
这样设置完成之后就可以进入keil编辑代码了,下面是主函数中接收指令的代码:

ledbtn = esp8266_get_data("ledbtn");//不断获取云平台下发打开或关闭LED指令if(ledbtn == 1){LED0 = 0;}else{LED0 = 1;}

二、使用微信小程序控制单片机外设动作

在上一节微信小程序代码的基础上添加按键来实现本节功能:
①index.wxss文件
将图片和字体大小改小:

/**index.wxss**/
.userinfo {display: flex;flex-direction: column;align-items: center;color: rgb(141, 10, 10);font-size: 15px;
}.img {width: 100rpx;height: 100rpx;
}.usermotto {margin-top: 200px;
}

②index.wxml文件
最后加上这两行代码,添加按键:

<button type="primary" style="margin-top: 20px;" bindtap="kai">开灯</button>
<button type="warn" bindtap="guan">关灯</button>

③index.js文件
onload函数前加上两函数:

  kai:function(){let data={"datastreams": [  {"id": "ledbtn","datapoints":[{"value": 1}]},//led是数据流的名称,value是要传上去的数值]	}//按钮发送命令控制硬件wx.request({url:'https://api.heclouds.com/devices/1038269453/datapoints',header: {'content-type': 'application/json','api-key':'wfsF4bCGtQIQmW=3wTsPnrdjuFA='},method: 'POST',data: JSON.stringify(data),//data数据转换成JSON格式success(res){console.log("成功",res.data)},fail(res){console.log("失败",res)}})},guan:function(){let data={"datastreams": [  
{"id": "ledbtn","datapoints":[{"value": 0}]},
//led是数据流的名称,value是要传上去的数值]	
}//按钮发送命令控制硬件wx.request({url:'https://api.heclouds.com/devices/1038269453/datapoints',header: {'content-type': 'application/json','api-key':'wfsF4bCGtQIQmW=3wTsPnrdjuFA='},method: 'POST',data: JSON.stringify(data),//data数据转换成JSON格式success(res){console.log("成功",res.data)},fail(res){console.log("失败",res)}})
},

这里注意设备id和api-key记得换。
在这里插入图片描述

三、总结

经过实测,这个发送数据给云平台不知道什么原因总是发送失败,这样会导致小程序下发数据时无法收到,因为程序卡死在重发数据给云平台的逻辑里,这个项目的代码实现比较鸡肋,延迟太大,之后会继续给出基于MQTT协议的智能家居和使用freertos的智能家居项目。
总的来说这个项目用于环境监测是没问题的,但是无法实时准确的使用上位机控制下位机。

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

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

相关文章

R语言【taxlist】——summary(),show(),print():打印taxlist对象及其内容的概述

Package taxlist version 0.2.4 Description 一种方法&#xff0c;用于显示 taxlist 对象内容的概述或所选分类组的概述。 Usage ## S4 method for signature taxlist summary(object,ConceptID,units "Kb",check_validity TRUE,display "both",maxs…

三、防御保护---防火墙安全策略篇

三、防御保护---防火墙安全策略篇 一、什么是安全策略二、安全策略的组成1.匹配条件2.动作3.策略标识 三、防火墙的状态检测和会话表1.会话表2.状态检测技术 四、ASPF--隐形通道五、用户认证1.用户认证的分类2.认证方式3.认证策略4.认证域 一、什么是安全策略 传统的包过滤防火…

Mysql 更新数据

MySQL中使用UPDATE语句更新表中的记录&#xff0c;可以更新特定的行或者同时更新所有的行。基本语法结构如下&#xff1a; UPDATE table_name SET column_name1 value1,column_name2 value2,……, column_namen valuen WHERE(condition); column_name1,column_name2,……,…

mcu专用看门狗复位芯片(如MAX706)

mcu专用看门狗复位芯片&#xff08;如MAX706&#xff09; 为什么要使用电压复位芯片RESET引脚WDO引脚MR引脚WDI引脚 国产替代型号应用电路1 推荐电路&#xff08;用一个跳线帽使能/关闭看门狗功能&#xff0c;调试MCU时防止看门狗芯片随便触发复位功能&#xff09;&#xff0c;…

字符串函数自实现

1.strlen size_t strlen(const char *s);返回字符个数&#xff08;不包含结尾\0&#xff09; #include<stdio.h> #include<string.h>int mystr(const char* s) {int cnt 0;int index 0;while(s[index] ! \0){index;cnt;}return cnt; } int main() {char s[] &…

智能时代:自然语言生成SQL与知识图谱问答实战

语义解析 前言语义解析的应用场景总结概论语义解析和大模型的关系延伸阅读 前言 语义解析技术可以提高人机交互的效率和准确性&#xff0c;在自然语言处理、数据分析、智能客服、智能家居等领域都有广泛的应用前景。特别是在大数据时代&#xff0c;语义解析能够帮助企业更快速…

Unity中使用Ultraleap的InteractionButton组件

本节在上一节基础上进行&#xff0c;上一小结参考如下&#xff1a; Unity中创建Ultraleap 3Di交互项目 本节工程文件如下&#xff1a; Unity中使用Ultraleap的InteractionButton组件 本节结构有所更改&#xff0c;主要是参考官方示例结构进行重新调整&#xff0c;和上一小节相…

定时任务的corn表达式简要介绍

corn表达式的各项从左到右依次为&#xff1a;corn&#xff1a;秒 分钟 小时 日期 月份 星期几 年份 秒&#xff1a;0-59 分钟&#xff1a;0-59 小时&#xff1a;0-23 日期&#xff1a;1-31 月份&#xff1a;1-12 或 JAN-DEC 星期几&#xff1a;0-6 或 SUN-SAT 年份&#xff1a…

使用Process.Start()打开文件夹时出现访问被拒绝异常

默认的打开形式 Process.Start(folderPath); 解决方案 System.Diagnostics.Process.Start(Environment.GetEnvironmentVariable("WINDIR") "\explorer.exe", folderPath); 参考文献 c# - 使用 Process.Start() 打开文件夹时访问被拒绝异常 - IT工具网…

asp.net core接口报500错误排查

接口已经进行了try catch捕捉&#xff0c;但是还是报错&#xff0c;放到web.config下的错误&#xff0c;主要是是将stdoutLogEnabled修改为true <aspNetCore processPath"dotnet" arguments".\xxxx.dll" stdoutLogEnabled"true" stdoutLogFil…

·中介者模式

中介者模式 中介者模式 中介者模式 介绍&#xff1a;用一个中介对象来封装一系列的对象交互&#xff0c;中介者使各对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。 实现&#xff1a;抽象中介者类&#xff0c;定义一个…

硬件知识(2) 手机的传感器-sensor

#灵感# 看看小米在干啥 手机型号&#xff1a;Redmi Note 13 Pro&#xff0c;解读一下它宣传的手机卖点。 目录 宣传1&#xff1a;1/1.4" 大底&#xff0c;f/1.65 大光圈&#xff0c; 宣传2&#xff1a;支持 2 亿像素超清直出&#xff0c;分辨率高达 16320 x 12240 宣…

Flutter CustomPainter 属性介绍与使用

Flutter 中的 CustomPainter 是一个强大的工具&#xff0c;允许开发者通过自定义绘制来创建各种复杂的图形和动画。本文将介绍 CustomPainter 的一些重要属性以及如何使用它们来实现自定义绘制。 1. CustomPainter 简介 CustomPainter 是一个抽象类&#xff0c;用于自定义绘制…

多态、多态的特点、类型转换(Java)

一、多态介绍 多态是在继承/实现情况下的一种现象&#xff0c;表现为&#xff1a;对象多态、行为多态。 对象多态就比如水果可以是苹果也可以是西瓜。 行为多态如何分辨呢&#xff0c;编译的时候会看People类中是否有run方法&#xff0c;运行的时候看Teacher中或者Student中的…

工具推荐系列-极客编辑器(实时在线编写md文件同步GitHub)

工具项目地址&#xff1a;https://github.com/geekeditor/geekeditor-desktop-releases/tree/main 工具基础配置方法&#xff1a;https://www.geekeditor.com/workspace1.x.html 详细同步代码仓的方法可以用下面&#xff1a; 如何创建GitHub仓库 及生成获取AccessToken&#xf…

大专生能不能学习鸿蒙开发?

目前安卓有2,000万的开发者。本科及以上学历占比为35%&#xff1b;iOS有2,400万开发者&#xff0c;本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历&#xff0c;在2023年华为开发者大会上余承东透露华为的开发者目前有200万&#xff0c;但鸿蒙开发者统计的数据…

wpf 数据转换(Bytes 转 KB MB GB)

效果 后端 using ProCleanTool.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data;namespace P…

Vscode移植到VS2010遇到的问题C++

如果在vscode能运行&#xff0c;就是C版本的问题&#xff0c;VS2010仅支持部分C11及以上的功能&#xff0c;仍然有一小部分不支持&#xff0c;但是他的警告信息和错误信息又很不明显&#xff0c;所以花了很多时间纠错。 总结&#xff1a; 看这三种for循环 for (const Product…

华为服务器资源查看npu-smi info、lscpu、lsblk

您可以通过以下命令来查看华为服务器的显卡资源&#xff1a; 查看CPU信息&#xff1a; lscpu该命令将会列出服务器的CPU信息&#xff0c;包括型号、频率、核心数等。 查看内存信息&#xff1a; free -h该命令将会列出服务器的内存信息&#xff0c;包括总内存容量、已使用内…

[论文笔记] PAI-Megatron 源码解读之Mistral的滑动窗口sliding window

这段代码是 _make_causal_mask 函数中处理滑动窗口局部注意力的部分。这里的目的是创建一个额外的掩码,以便在自注意力机制中只考虑每个位置附近的一定数量的位置,而不是所有之前的位置。这通常用于减少计算复杂性和提高长序列处理的效率。 代码分析如下: diagonal = past_k…