毕设-解决移动端用HTTP协议从onenet平台上获取数据流的多个数据点的问题

2023-11-13

onenet平台

OneNET是由中国移动打造的PaaS物联网开放平台。平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件、智能家居产品提供完善的物联网解决方案。

产品信息

至于怎么创建产品我就不做过多的介绍了,我个人创建的是多协议接入的产品。在这里插入图片描述
在这个产品里面我添加了两个设备

在这里插入图片描述
kfb1是我的终端设备,使用树莓派作为终端上传数据。为什么使用树莓派呢,因为树莓派功能强大而且可以使用Python进行编程相对于C语言,可以大大缩短开发时间而且容易上手。我个人觉得使用树莓派作为终端是比较可行的。后面我会介绍一下我对树莓派的配置以及怎么获取数据和相关功能的配置文件。
下面是我的终端上传的数据展示。在数据流里面打开。
在这里插入图片描述

补充说明

相关参数的介绍
这个项目是通过调用api的方式来获取数据,使用的是http协议.由于http协议的相关文档没有详细的请求参数。于是我又参考了mqtt协议的文档。并且使用里面的参数拿到了数据。文档链接: link.
在这里插入图片描述

数据的获取

我的毕业设计包含微信小程序、h5移动端app和pc端网页。下面介绍一下移动端获取数据的方法。
官方提供了api的调用,我在微信小程序里面使用api获取的数据。`

下面介绍一下使用sdk方法来获取数据
我的移动端APP使用官方提供的sdk来获取数据流和多个数据点
官方sdk可以去onenet平台下载,我也有上传到资源里面,大家可以下载使用。
1.获取多个数据流,把数据流最新的数据点渲染到页面上

//从onenet平台获取数据
          var devicesid = '11111111111' //改成你自己的设备id
          var apikey = 'ssssssssssssssss' //改成你自己的APIkey
          var api = new OneNetApi(apikey);
          /**
           * 读取设备多个数据流
           * api.getDataStreams(设备id)
           * 如果请求成功会返回数据,请求失败会返回错误码
           * */
          api.getDataStreams(devicesid).done(function (data) {
            console.log('数据请求成功,服务器返回data为:', data);
            var tempdatas = data.data[0];//温度
            var humdatas = data.data[1];//湿度
            var luxdatas = data.data[2];//光照强度
            var tem = tempdatas.current_value
            //jQuery的方法渲染数据
            $("#temp").text('' + tem + '℃'); 
            var hum = humdatas.current_value
            $("#hum").text('' + hum + '%');
            var lux = parseInt(luxdatas.current_value)
            $("#lux").text('' + lux + 'Lux');
            //vue写法
            // vm.tem =tempdatas.current_value
            // vm.hum = humdatas.current_value
            // vm.lux = parseInt(luxdatas.current_value)
          });

2.获取单个数据流的多个数据点
获取单个数据流的多个数据点,处理数据,把数据点通过Vue组件通过图表的方式展示。

历史数据界面
这里把获取到的数据通过Vue的方法来渲染数据,折线图利用Vue的组件库 https://v-charts.js.org/#/line

      let that = this

       //从onenet平台获取数据
        var devicesid = '11111111111' //改成你自己的设备id
        var apikey =  'ssssssssssssssss' //改成你自己的APIkey
        var api = new OneNetApi(apikey);

        // 获取温度的数据节点
        api.getDataPoints(devicesid, {
        datastream_id: 'temperature',//数据流的ID
        start: '2020-10-01T08:00:35' //获取数据点开始的时间
         }).done(function (data) {
         console.log('api调用完成,服务器返回data为:', data);
         //对获取到的数据进行处理
            var temp = data.data.datastreams[0].datapoints
             for (let i in temp) {
               temp[i].at = temp[i].at.slice(5, -4); // 去掉时间,保留日期
              }
             console.log(temp);
   
             var temp1 = JSON.parse(JSON.stringify(temp).replace(/at/g, '日期')) //修改数组里面对象的属性名
             var temp2 = JSON.parse(JSON.stringify(temp1).replace(/value/g, '温度'))
             console.log(temp2[0]);
             var tempData = {
               columns: ['日期', '温度'],
               rows: temp2,
            }
            console.log(tempData);
           that.tempData = tempData
        });

总结

以上就是我毕业设计项目里面通过onenet平台获取数据的方法,我自己做这个项目的时候由于参考文献比较少所以花的时间比较多,有的方法分享出来大家一起互相学习。希望可以帮助到大家,有更好的方法或者建议请留言或私信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

毕设-解决移动端用HTTP协议从onenet平台上获取数据流的多个数据点的问题 的相关文章

  • 自动调整Google网站嵌入代码的高度(html)

    我正在使用 Google 协作平台嵌入 HTML 代码 将代码粘贴到 从网络嵌入 窗口中 输出的长度是可变的 我希望有一种方法可以动态调整父级的高度iframeGoogle 协作平台用于托管我的 HTML 我知道我可以使用 Google 协
  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA
  • pubnub 和 head.js

    有没有人成功整合过pubnub http www pubnub com 和 head js 正确吗 Pubnub http www pubnub com 希望我将他们的脚本放在页面底部并带有 div 就在它前面的标签 这可以确保在最后调用
  • 在 javascript、jQuery 或 css 中,如何让 div 或 iframe 展开以填充其余空间

    我有三个 iframe 我将顶部 iframe 设置为 50px 高度 将底部 iframe 设置为 50px 但我希望中间 iframe 扩展以填充其余空间 有没有一种技术可以用来对任何窗口屏幕尺寸执行此操作 谢谢 example
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • 了解 sort() 比较函数

    我正在使用一个电子商务平台 该平台无法重新排序产品属性字段的选项 这真的很糟糕 因为要插入新选项 您几乎必须删除所有现有选项并重新开始 我正在尝试在客户端进行操作 这是我正在处理的内容 这是针对鞋码的 9 EE 9 1 2 EE 10 EE
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 使用 JavaScript 生成 PDF 文件

    我正在尝试将 XML 数据从网页转换为 PDF 文件 并且希望能够完全在 JavaScript 中完成此操作 我需要能够绘制文本 图像和简单的形状 我希望能够完全在浏览器中完成此操作 我刚刚写了一个名为jsPDF https github
  • 有没有办法将变量从 javascript 导入到 sass 或反之亦然?

    我正在制作一个依赖于块概念的 CSS 网格系统 所以我有一个基本文件 例如 max columns 4 block width 220px block height 150px block margin 10px 它被 mixin 使用 m
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • JavaScript:测试与执行

    我想知道检查字符串 例如邮件 密码等 的最佳方法是什么 i exec a vs i test a exec返回值 test true test 1 way var mail req body mail if check mail exec
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定

随机推荐

  • Golang切片 slice类型

    因为在Golang中 数组的长度是固定的 一旦定义 在后续的操作中就不能更改长度 在某些实际使用场景中就不是那么的的方便 这个时候我们就可以使用切片 slice 类型 1 slice基本定义 Golang 的 slice 是一个引用类型 内
  • 西门子冗余服务器 系统拷贝,西门子(SIEMENS)冗余系统指南.pdf

    西门子冗余系统指南 Siemens redundancy system introduction 使用入门 Edition 2008 年 1 月 摘 要 本文主要介绍了 SIMATIC H 系统的基本组成 S7 400H 硬件冗余原理 S7
  • IDEA中设置网络代理

    需求 在IDEA中使用Database插件连接数据库时提示我需要安装插件依赖的数据库驱动 大家注意不要把这个数据库驱动和你的项目pom文件中导入的数据库驱动搞混了 不是一回事 选择下载后会自动去maven中央仓库下载 下载很慢很慢 而且好几
  • 使用GSM和Arduino作为GPS的替代品

    在本篇文章中 您将学习到如何通过GSM模块和Arduino而不是使用GPS创建导航系统 在本篇文章结束时 您将可以 解有关GSM模块以及如何将其与Arduino一起使用的更多信息 通过GSM模块制作导航系统 关于导航 在导航系统中 无线站定
  • ios mysql管理_App版本管理-iOS版本 - 数据库设计 - 数据库表结构 - 果创云

    数据库大全 App版本管理 iOS版本 来源 YesApi cn CREATE TABLE yesapi appver ios version id bigint 20 unsigned NOT NULL AUTO INCREMENT ap
  • 必看![文心一言] 中国版ChatGPT“狂飙,傲视诛仙

    最近 有一个叫作ChatGPT的技术产品在社交媒体上引起了热议 这是一种基于人工智能的聊天机器人 能够像人类一样进行对话 目前 它在国外的应用已经非常广泛 而中国地区也在迅速跟进 现在 中国版的文心一言来了 这是一款由百度开发的AI 采用了
  • Flutter 图片加载

    奇技指南 本篇文章你将获得 1 Flutter 图片加载方式 2 Flutter 图片加载源码实现流程 3 Flutter 图片加载优化点有什么 本文转载自奇舞移动技术 Flutter Image 在 Flutter 中 Image 是展示
  • 【PTA】整除光棍

    一 题目 光棍 说的是全部由1组成的数字 比如1 11 111 1111等 传说任何一个光棍都能被一个不以5结尾的奇数整除 比如 111111就可以被13整除 现在 你的程序要读入一个整数x 这个整数一定是奇数并且不以5结尾 然后 经过计算
  • linux中/etc/inittab文件分析

    一 什么是init init是Linux系统操作中不可缺少的程序之一 是一个由内核启动的用户级进程 内核启动 已经被载入内存 开始运行 并已初始化所有的设备驱动程序和数据结构等 之后 就通过启动一个用户级程序init的方式来启动其他用户级的
  • Java中float、double、long类型变量赋值添加f、d、L尾缀问题

    1 添加尾缀说明 我们知道Java在变量赋值的时候 其中float double long数据类型变量 需要在赋值直接量后面分别添加f或F d或D l或L尾缀来说明 其中 long类型最好以大写L来添加尾缀 因为小写l容易和数字1混淆 例如
  • 三分钟了解APS系统中生产计划排程模块的基本原理

    版权声明 本文为CSDN博主 weixin 45414340 的原创文章 遵循CC 4 0 BY SA版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net weixin 45414340 article
  • 【吴恩达-AIGC/ChatGPT提示工程课程】第九章 - 总结

    吴恩达 AIGC ChatGPT提示工程课程 第九章 总结 恭喜你完成了这门短期课程 总的来说 在这门课程中 我们学习了关于prompt的两个关键原则 编写清晰具体的指令 如果适当的话 给模型一些思考时间 你还学习了迭代式prompt开发的
  • python实现简单爬虫和数据可视化-爬取豆瓣top250电影信息

    此内容全程跟着成都工业大学的李巍老师爬虫入门视频敲的代码 如有侵权删 观看的视频链接如下 李巍老师爬虫入门视频 整个爬虫可分为三个部分 1 爬取网页 https movie douban com top250 start 0 2 解析数据
  • feign超时时间设置_Spring Cloud 项目各种超时时间设置详解

    1 本文主要内容 服务之间调用Hystrix针对单个方法超时时间设置 Spring Cloud Gateway 针对单独URL的超时时间设置 2 超时时间设置场景 通常整个系统会有统一的接口超时时间设定 一般情况下的增删改查也都会比较快 但
  • 面试经验分享

    核心 几个大块的内容 前期准备 简历 自信 实力 态度 语言表达 1 简历制作 简历要有特点 将博客 GitHub 自己的作品链接 还有电子版本的简历链接直接写上去 很重要 特长描述 工作经历 岗位职责 技能描述 项目经历描述 每一个项目都
  • Altium Designer中的电路仿真

    今天看了下Altium Designer的电路仿真功能 发现它还是蛮强大的 按着help里面的文档 TU0106 Defining running Circuit Simulation analyses PDF 跑了一下 觉得还行 所以就把
  • 【满分】【华为OD机试真题2023 JAVA&JS】寻找符合要求的最长子串

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 寻找符合要求的最长子串 知识点双指针 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给定一个字符串 s 找出这样一个子串 1 该子串中的任意一个字符最多出现2次
  • Type-C协议简介(CC检测原理)

    Type C协议简介 CC检测原理 作者 AirCity 2019 12 15 Aircity007 sina com 本文所有权归作者Aircity所有 1 简介 越来越多的手机开始采用Type C作为充电和通信端口 Type C连接器实
  • mesa源码阅读笔记(7)_顶点变换流程解析

    mesa源码阅读笔记 7 顶点变换流程解析 好久没有写博客 同时也放下对mesa源码的阅读很久了 这一篇会是我最后的一篇 有不尽到之处也会放下了 毕竟OpenGL不是我的强项 后面可能没有这么多时间来关注了 这篇文章有点长 而我也不知道自己
  • 毕设-解决移动端用HTTP协议从onenet平台上获取数据流的多个数据点的问题

    onenet平台 OneNET是由中国移动打造的PaaS物联网开放平台 平台能够帮助开发者轻松实现设备接入与设备连接 快速完成产品开发部署 为智能硬件 智能家居产品提供完善的物联网解决方案 产品信息 至于怎么创建产品我就不做过多的介绍了 我