首页 > 其他分享 >基于巴法云物联网云平台构建可视化控制网页(以控制LED为例)

基于巴法云物联网云平台构建可视化控制网页(以控制LED为例)

时间:2024-04-06 13:33:44浏览次数:48  
标签:平台 LED 为例 巴法云 巴法 可视化 云物 网页

0 前言

如今大大小小的物联网云平台非常多,但大部分要收取费用,免费的物联网云平台功能则有很多限制使用起来非常不方便。以百度云物联网云平台为例,它的物可视不支持发布主题,等于可视化界面只能作为数据监控而不具备双向通信的能力。
为了解决这个问题,本文使用免费的巴法云物联网云平台,基于http协议的POST方法实现对LED的控制(使用http的POST方法方便嵌入网页),同时构建一个可视化的控制网页增强人机交互性。

1 使用巴法云创建TCP主题并获得连接参数

(1)登陆巴法云后,在控制台找到TCP创客云,在输入框内输入“LED”,点击“新建主题”创建一个名为“LED”的TCP主题:
在这里插入图片描述
创建成功后可以看到如下主题信息:
在这里插入图片描述
(2)在控制台的左上角查看私钥,这是后面连接巴法云的参数之一
在这里插入图片描述
获得了私钥后,我们就能够构建POST请求报文。参考巴法云的接入文档我们发送POST请求报文的所需参数如下:

API: https://apis.bemfa.com/va/postJsonMsg
请求体:
{
    "uid": "7801e4ba1bf7406593d47250797860fd",
    "topic": "LED",
    "type": 3,
    "msg": "on"
}

参数说明:
uid:必须项。用户私钥,前面我们已经获取到。
topic:必须项。主题名,本例是“LED”。
type:必须项。主题类型,当type=1时是MQTT协议,3是TCP协议
msg:必须项。消息体,要推送的消息,自定义即可,比如on,或off等等

2 测试巴法云连接参数是否正确

我们这里使用ApiPost7软件测试一下巴法云连接参数是否正确。根据前面我们获取的参数,构建如下的POST报文:
在这里插入图片描述
点击发送,收到的实时响应如下:
在这里插入图片描述
这说明我们和巴法云物联网云平台的连接正常。
注:
(1)正确返回的格式

{
    "code": 0,
    "message": "OK",
    "data": 0
}

(2)错误返回的格式

{
	"code": 40004,
	"message": "Uid or topic err",
	"data": null
}

3 构建可视化控制网页

我们在网页里添加2个按钮,分别控制LED亮、灭,也就是修改msg的键值分别为“on”、“off”。源码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>LED Control</title>
    <script>
        function sendGetRequest(on) {
            var data;
            const url = 'https://apis.bemfa.com/va/postJsonMsg';
            const data1 = {
                "uid": "你的私钥",
                "topic": "LED",
                "type": 3,
                "msg": "on"
            };
            const data2 = {
                "uid": "你的私钥",
                "topic": "LED",
                "type": 3,
                "msg": "off"
            };
            if (on == 1)
                data = data1;
            else
                data = data2;
            fetch(url, {
                method: 'POST', // 指定请求方法
                headers: {
                    'Content-Type': 'application/json' // 设置请求的Content-Type
                },
                body: JSON.stringify(data) // 将JSON对象转换为字符串作为请求体
            })
                .then(response => {
                    if (response.ok) {
                        return response.json(); // 如果响应成功,解析JSON
                    }
                    throw new Error('Network response was not ok.'); // 如果响应不成功,抛出错误
                })
                .then(jsonResponse => {
                    console.log('JSON response:', jsonResponse); // 处理JSON响应数据
                })
                .catch(error => {
                    console.error('Request failed:', error); // 处理错误
                });
        }
    </script>
</head>

<button onclick="sendGetRequest(1)">
    <img src="./led_on.png" />
</button>
<button onclick="sendGetRequest(0)">
    <img src="./led_off.png" />
</button>
</html>

4 使用可视化网页控制LED

(1)控制LED亮
使用谷歌内核的浏览器打开控制网页,按下“F12”打开控制台。按下“LED ON”,可以看到控制台返回信息如下:
在这里插入图片描述
说明我们已经成功向巴法云平台发布了主题,打开巴法云平台,可以看到接收到的主题内容“on”以及接收到的时间:
在这里插入图片描述

(2)控制LED灭
使用谷歌内核的浏览器打开控制网页,按下“F12”打开控制台。按下“LED OFF”,可以看到控制台返回信息如下:
在这里插入图片描述
说明我们已经成功向巴法云平台发布了主题,打开巴法云平台,可以看到接收到的主题内容“off”以及接收到的时间:
在这里插入图片描述
至此,我们已经实现了基于巴法云物联网云平台通过可视化网页控制LED功能。
相关源码已经上传至CSDN,有需要可下载:
基于巴法云物联网云平台实现可视化网页控制LED亮灭源码

标签:平台,LED,为例,巴法云,巴法,可视化,云物,网页
From: https://blog.csdn.net/kevin1499/article/details/137424661

相关文章

  • 如何不安装客户端下载百度网盘的文档(以PDF为例)
    百度网盘是目前使用比较广泛的网盘,很多方面,人们都会使用百度网盘来传输资料,由于不占用本地空间,因此比较方便,但是,令我们比较头疼的方面就是,只要文件大一点,便会出现如下情景:这种强制下载给用户的体验感十分不好,那么有什么办法绕过呢?方法是有的,作者不久前摸索出,以下内容,以pdf文件为......
  • Qt | 发布程序(以 minGW 编译器为例)
    1、注意:修改pro文件后,最好执行“构建”>“重新构建项目”,否则pro文件的更改将不会反应到程序上。2、发布程序的目的:就是让编译后生成的可执行文件(如exe文件),能在其他计算机上运行。一、编译后生成的各种文件简介QtCreator 构建项目后产生的文件及目录见下图......
  • 【高校科研动态】贵州师大博士生封清为一作在J. Clean. Prod.发文:中国扶贫搬迁对生态
    目录1.文章简介 2.主要研究内容    3.文章引用1.文章简介 论文名称:QuantifyingtheextentofecologicalimpactfromChina'spovertyalleviationrelocationprogram:AcasestudyinGuizhouProvince第一作者及通讯作者:封清(博士研究生),周忠发(教授)第一作......
  • 搜索与图论(五)拓扑排序---以题为例
    给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序......
  • 搜索与图论(四)树与图的广度优先遍历---以题为例
    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环。所有边的长度都是 1,点的编号为 1∼n。请你求出 1 号点到 n 号点的最短距离,如果从 1 号点无法走到 n 号点,输出 −1。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 a 和 b,......
  • 搜索与图论(三)树与图的深度优先遍历---以题为例
    给定一颗树,树中包含 n个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数 n,......
  • 毕业设计:基于深度学习的电影推荐算法 -- 以豆瓣为例 大数据
    目录前言设计思路一、课题背景与意义二、算法理论原理2.1GRU网络模型2.2语言模型2.3推荐算法三、检测的实现3.1数据集3.2实验环境搭建3.3实验及结果分析最后前言    ......
  • 搜索与图论(二)bfs---以题为例
    给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多......
  • 如何模拟在丢包情况下的传输测试(以镭速为例)
    在现代社会,网络通信的可靠性和效率是数据传输的关键因素。网络通信中的丢包问题,作为一种普遍存在的现象,可能对数据传输的完整性和效率产生重大影响。本文的目的是探讨在存在丢包的网络环境中,如何通过模拟测试来评估和改进一款名为镭速的文一、构建模拟丢包环境的技术和方法1.1......
  • 华为交换机常用命令学习,已ENSP模拟器为例
    1.交换机命令手册手册地址:https://support.huawei.com/enterprise/zh/doc/EDOC1000047388?section=j004https://support.huawei.com/enterprise/zh/doc/EDOC1000047388?section=j0062.基础配置命令displaythis用来查看系统当前视图的运行配置。使用示例:<HUAWEI>system-......