【智能家居入门之微信小程序控制下位机】(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.hqwc.cn/news/439035.html

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

相关文章

day31 贪心算法 分发饼干 摆动序列 最大子序和

题目1&#xff1a;455 分发饼干 题目链接&#xff1a; 455 分发饼干 题意 给孩子分发饼干&#xff0c;每个孩子最多只能有1块饼干 每个孩子i都有一个胃口值g[i] &#xff0c;每块饼干j的尺寸是s[j] 如果s[j]>g[i]可以将这个饼干分配给孩子i 孩子就会得到满足&#xff…

【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(Dispatcher和EventListener)(下)

基于Netty的分布式通信框架实现 前提介绍本节重点Dispatcher&#xff08;分派调度器&#xff09;EventListenerChannelEventListenerChannel通道事件定义ChannelActionEvent Heartbeat、超时及重连机制 前提介绍 经过阅读《【分布式技术专题】「探索高性能远程通信」基于Netty…

短视频矩阵项目年后还能做吗/技术源头搭建分析

短视频矩阵项目年后还能做吗/技术源头搭建分析&#xff1a; 问&#xff1a;矩阵系统年后还可以迭代更新开发继续做吗&#xff1f; 答&#xff1a;可以的&#xff0c;企业依旧有需求 问&#xff1a;如何考察技术团队&#xff1f; 答&#xff1a;以下三个方面 一、是否是抖音…

2024 新年HTML5+Canvas制作3D烟花特效(附源码)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

时隔3年 | 微软 | Windows Server 2025 重磅发布

最新功能 以下是微软产品团队正在努力的方向&#xff1a; Windows Server 2025 为所有人提供的热补丁下一代 AD 活动目录和 SMB数据与存储Hyper-V 和人工智能还有更多… Ignite 发布视频 Windows Server 2025 Ignite Video 介绍 Windows Server 2022 正式发布日期是2021年…

【计算机视觉(CV)技术的优势和挑战】

背景&#xff1a; 在当今数字时代&#xff0c;博客成为了分享知识、展示个人专业能力和吸引读者的重要工具。然而&#xff0c;随着越来越多的博客涌现&#xff0c;如何优化博客的内容和用户体验成为了一个关键的问题。计算机视觉&#xff08;CV&#xff09;技术是一种利用计算机…

对于已交付(客户流失预警)模型的模型可解释LIME

目录 介绍&#xff1a; 数据&#xff1a; 数据处理&#xff1a; 随机森林建模&#xff1a; LIME 例一&#xff1a; 例二&#xff1a; 介绍&#xff1a; LIME (Local Interpretable Model-agnostic Explanations) 是一种解释机器学习模型的方法。它通过生成一个可解…

【AI_Design】Midjourney学习笔记

目录 后缀解析Promot合格使用prompt关键词描述 关键词化合作用关键词网站推荐 联合Chatgpt 后缀解析 –ar&#xff1a;宽高比设置–c&#xff1a;多样性设置&#xff08;数值0-100&#xff0c;默认值0&#xff09;–s&#xff1a;风格化设置&#xff08;数值0-1000&#xff0c…

Java 与 JavaScript的区别

Java 与 JavaScript的区别 Java 与 JavaScript&#xff1a;概述Java的特点JavaScript 的起源JavaScript 的特点Java 与 JavaScript&#xff0c;哪个更好&#xff1f;JavaScript 与 Java 相似吗&#xff1f;Java 与 JavaScript 的区别JavaScript 在服务器端的运行方式是怎样的&a…

《HTML 简易速速上手小册》第10章:HTML 的维护与优化(2024 最新版)

文章目录 10.1 网页性能优化10.1.1 基础知识10.1.2 案例 1&#xff1a;优化网页图像10.1.3 案例 2&#xff1a;使用延迟加载优化性能10.1.4 案例 3&#xff1a;优化 CSS 和 JavaScript 的加载 10.2 SEO 最佳实践10.2.1 基础知识10.2.2 案例 1&#xff1a;创建一个 SEO 友好的博…

Linux系统Shell脚本-----------正则表达式 、grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff08;pattern&#xff09;&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

常用芯片学习——AMS1117芯片

AMS1117 1A 低压差线性稳压器 使用说明 AMS1117 是一款低压差线性稳压电路&#xff0c;该电路输出电流能力为1A。该系列电路包含固定输出电压版本和可调输出电压版本&#xff0c;其输出电压精度为士1.5%。为了保证芯片和电源系统的稳定性&#xff0c;XBLWAMS1117 内置热保护和…