阿里云平台接入python版

2023-11-09

物联网基于python云平台的接入

1.设计目的

学习使用云平台记录收集设备数据反馈给用户端,实现物联网与云平台的连接,了解物联网与云平台的关系以及实现流程。

2.功能要求和关键问题

2.1 系统功能描述

1、设计一个图形用户界面,来实现文本数据或二进制数据(比如图像文件或者音频文件等)的双向传输。

2、将接受的数据展示在图形界面或打开。

3、登陆注册系统

2.2复杂工程问题分析

将本地与云平台相连,传输数据和接收数据。通过来自阿里的python第三方库linkkit进行连接。用base64库对接收数据进行编码转码以便传输,这里接收后要将字符串转变为字节流写出。

首次连接设备与云平台时无法正常接入,通过继承重构官方文档给的三方库函数,得以解决实现正常上传。根据官方帮助文档创建消费组订阅但是我将双向传输连接在一个设备的一个订阅中,连接造成冲突,云与设备一直重复上线下线操作,后来想到类似于QQ的登录顶号意识到需要走两条线路进行传输。

思考用户如何将接收到的数据展示在图形界面时,起初我的想法是直接将数据解码展示,但是展现的只是数据的文本信息,并不能将图片展示,所以创建了一个目录用于存放接收到的临时数据,每次连接阿里云都将重置该目录下的文件。且每次传输都会覆盖上次传输的数据。

3.系统整体框架设计

总体设计分为五大模块:PC端接收和发送、设备端发送与接收、登陆注册。

两端分别连接登陆窗口与收发系统,将云消息暂时存储在本地计算机以显示在图形界面或打开观看,并且在每下次连接时清空暂存信息。

4.模块的设计和实现

4.1 阿里云基础和设计

4.1.1 阿里云概述

阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。

4.1.2 阿里云应用设计

在阿里云平台创建一个初始化产品,并赋予其四大功能如图1所示,后续开发皆需

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sd4XKetT-1669300726163)(file:Users/dehaomeng/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image002.jpg)]

图 创建产品与定义功能

围绕展开。在此基础上,分别创建两个设备即对应PC端与设备端,以便后续可以进行相互传输如图2所示.

在这里插入图片描述

图2 创建两个设备

在规则引擎中选择服务端订阅—>消费组列表—>创建两个消费组(依然是为了能够实现双向传输)—>订阅列表—>创建订阅(如图3-图5所示)
在这里插入图片描述

图3 创建订阅

在这里插入图片描述

图4 消费组信息

在这里插入图片描述

图5 订阅产品信息

至此,阿里云平台设置暂时告一段落

4.2 PC端与设备端

两个端口实现数据相互传输,大致内容相同,只需连接不同的阿里云平台设备即可,所以此后内容主要以设备端开发详细讲解

4.2.1 PC端

即用户端,用户可以接收到设备发送的数据,并记录下来。

4.2.2 设备端

设备端即用户不可见端,向用户传取数据以便用户可以获知所需要的信息数据。

4.3 图形界面开发

4.3.1 登陆窗口界面

用户凭据用户注册信息,可以在数据库中找到对应的用户信息以便识别信息,并且为用户提供连通注册界面的按钮,以便存入用户身份方便下次使用。如图6所示

在这里插入图片描述

图6 登录界面窗口

4.3.2 注册窗口界面

用户通过此界面可以向数据库发送创建信息,以获取拥有向PC端发送信息的权力,主要作用为连接数据库,从数据库中查找是否用户名冲突和写入用户身份信息的作用,如图7所示
在这里插入图片描述

图7 注册界面

4.3.3 数据传输窗口界面

此界面即为我们本次开发的主要窗口界面,主要提供了连通阿里云物联网平台和向PC端发送信息选择功能与数据接收并展示在图形界面的功能如图8所示

在这里插入图片描述

图8 传输数据窗口

PC发送数据,设备端收入并显示是如图9和10(打开音频播放软件)所示
在这里插入图片描述

图9 接收传输的数据

在这里插入图片描述

图10 接收音频

4.4 阿里云数据上传和保存

4.4.1 从设备端上传到云平台

分别通过界面中选择不同类型的数据上传到阿里云平台后,可在云平台中看到数据和PC端本地查看到暂时数据,如图11所示(视频因数据量过大,网速原因上传时间较长,容易造成卡顿,所以此处将接口关闭,如果想到改善方法取消注释即可连通此处接口)

在这里插入图片描述

图11 阿里云平台接收信息

4.4.2 PC本地获取云平台信息

PC设备通过下载云平台数据判断文件类型,写入到本地磁盘后,并且在每下词连接阿里云时进行数据清空。如图12所示

在这里插入图片描述

图12 本地暂存信息

5. 调试和运行结果

5.1碰到的问题和解决方案

起初,可以正常连接阿里云平台,但无法将数据如我们预期一般正常传输上去,通过改进判断方式,将字节流数据转为字符串。后续出现获取信息时字符串转字节流数据错误,对字节流进行了base64编码。

但与此同时出现新的问题,base64.b64decode解码只能对4的倍数的字节流进行编码,在外网中找到一个解决方案使用base64.urlsate_b64encode编码会自动进行填充“=”使字节流的长度为4的倍数。

5.2运行结果

PC和设备端分别打开登陆窗口界面完成登陆。

在这里插入图片描述

图1左图为PC窗口,右图为设备窗口

(后续图片皆是如此)

在这里插入图片描述

图2 注册窗口界面

在这里插入图片描述

图3连接阿里云平台
在这里插入图片描述

图4选择向PC发送的数据[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

图5 PC端获取到的数据展示在图形界面中

6.心得体会

基于python的云平台的接入我是第一次接触,完全从零开始,在此之前并不了解云平台的概念,本次课设又恰巧收考试周影响,做的内容差强人意,但是基本实现了相互传输的功能。寒假在将其修改补进再深入了解一下这个概念。

本次课设的要点在于如何接入云平台,并且理解云平台的概念。运用云平台的传输方式和存储方式大大降低了硬盘的内容空间损耗,并且实现了物联网设备与用户的互通,将实时数据通过网络发送到PC用户端,可以更快的,更便捷的让用户不在时刻为某件事而担忧。物联网云平台强化设备与产品的概念。用户通过订阅和设备发布的形式进行数据交互。将数据上传后的开发便容易的多。

我一开始觉得这个课设并不会多难,但是当真正上手后发现对云平台的陌生使得本应该很快完成的我一误再误,从阅读官方文档到整合官方代码这一点事就耗费掉了我大约两天的时间(期间有考试和复习)。所以目前只实现了三种数据的传输,后续我会完善优化视频数据传输,增加一些输入与反馈功能。

大量的阅读他人的优秀代码对于改进自己的“垃圾堆”有的极其有效的帮助,并且一定要在书写代码时,时时刻刻保持良好习惯,我在此次开发过程中深受其害,只是一个小小的变量名使得我的传输数据和接收数据彻底混乱以致我不得不回退代码以及写完之后不得不进行重构函数。

不得不提一句图形界面的开发尽量避免使用tkinter吧,实在太难开发了……,踩到的坑是一个接一个。不过在此次开发中又新学到许多三方库的搭建和组合使用。

希望能看到这篇文章的同学吸取不良习惯的教训,提前培养好习惯。

7 . GitHub查看

https://github.com/ITApeDeHao/AlibabaCloudAccess

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

阿里云平台接入python版 的相关文章

  • 腾讯云 Finops Crane 开发者集训营 - 云原生如何助力企业搞定成本优化

    引言 随着docker的技术普及 越来越多的企业加入了云计算发展进程 云原生产业发展迅猛 云原生建设投入比例明显 面对大规模的集群投入 部署 维护等问题也逐渐产生 越来越多的企业对云原生不断提出更高要求 同时云原生技术简化运维的效能提 升开
  • 一文揭秘饿了么跨端技术的演进、实践与落地

    本文会先带领大家一起简单回顾下跨端技术背景与演进历程与在这一波儿接着一波儿的跨端浪潮中的饿了么跨端现状 以及在这个背景下 相较于业界基于 React Vue 研发习惯出发的各种跨端方案 饿了么为什么会选择走另外一条路 这个过程中我们的一些思
  • 高防cdn和高防服务器的区别,有什么不一样

    CDN通俗的理解就是网站加速 可以解决跨运营商 跨地区 服务器负载能力过低 带宽过少等带来的网站打开速度慢等问题 一个网站的服务器性能比较差 负载能力有限 优势面临突发流量 招架不住 直接导致服务器奔溃 网站打不开 CDN 跟 高防服务器
  • EI会议——移动互联网、云计算和信息安全国际学术会议

    移动互联网 云计算和信息安全国际学术会议 International Conference on Mobile Internet Cloud Computing and Information Security 火热征稿中 大会官网 htt
  • 云函数部署之网易云

    云函数部署之网易云 云函数 什么是云函数 就是可以让你没有服务器 本地电脑不用下载Python也可以使用这个项目 而且还是白嫖 既解决了很多人部署的麻烦 也给了那些被劝退的朋友回来的勇气 十分钟便可以全部弄完 1 进入云函数 这里拿腾讯云的
  • 阿里云盘正式上架,速度25MB/s!(附下载链接+邀请码)

    今年 8 月 阿里巴巴推出了一款名为 阿里云网盘 的独立 App 定位为C端用户提供服务 网盘空间更大 下载速度更快 但之后很快这款App就下架了 也许是阿里没有准备好 在经历过几个月的完善之后现在又重新上架了 11月18日消息 阿里云网盘
  • 阿里云无影云电脑怎么买?阿里无影云电脑教程

    可以理解成一台普通的远程连接的电脑不能用于建站之类 纯粹处理办公文档一类 阿里云无影云电脑怎么买 云电脑无影在哪里买 阿里云无影云电脑已经底调上线 可以在阿里云官方云小站购买 目前 阿里云无影云电脑针对新用户有优惠活动 mini版无影云电脑
  • 汽配企业如何利用MES管理系统优化生产流程

    随着汽车市场个性化需求不断增强 汽配企业急需数字化转型来满足客户需求 如何优化生产流程 提高生产效率和产品质量成为了关键问题 汽配企业MES管理系统可以通过数字化技术和智能化设备 优化生产流程 提高生产效率和产品质量 下面 我们将介绍汽配企
  • 北森,SaaS风口上的「新范式」

    在单纯的战略表象背后 成立19年 北森在每一个节点做选择的核心驱动力是什么 这家公司是否拥有自己内部的 组织密码 作者 皮爷 出品 产业家 2013年 纪伟国决定要去美国 取取经 和他同行的还有参与了北森A轮融资的经纬等机构投资人 对于北森
  • Anaconda学习

    Anaconda conda 创建 激活 退出 删除虚拟环境 Anaconda超详细教程2023 7 10 windows 网络连接错误 1 首先学习anaconda是什么 Anaconda 官方网站 就是可以便捷获取包且对包能够进行管理
  • 逍遥子突然辞去阿里一切职务!之前不再担任董事长,现在阿里云CEO也卸了

    金磊 发自 凹非寺量子位 公众号 QbitAI 阿里巴巴史上最大架构重组仅半年后 再次迎来重大变革 原集团CEO张勇 花名 逍遥子 正式卸任 同时辞去阿里云董事长和CEO职务 这一次 阿里巴巴掌门的接力棒交到了蔡崇信和吴泳铭 花名 东邪 手
  • 全国职业技能大赛云计算--高职组赛题卷④(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • 腾讯云购买服务器多大合适?

    对于个人日常建站来说 购买多大的服务器合适需要根据实际需求进行考虑 一般个人用户的话2GB或者是4GB内存接基本够用了 原文地址 腾讯云购买服务器多大合适 轻量云Cloud 首先 需要考虑的是网站的访问量 如果只是一个简单的个人网站 每天只
  • 终于,AWS Aurora 也走向了融合架构,这一次阿里云 PolarDB-X 确实遥遥领先

    作者 张云杨 2023 年 11 月 27 日 AWS 在 re Invent 大会上宣布推出 Amazon Aurora Limitless Database 预览版 根据 官方博客 的说明 Aurora Limitless 允许用户在
  • AWS-WAF-CDN基于速率rate的永久黑名单方案(基于lambda实现)

    参考方案 有坑 所以产生了这篇博客 点击跳转 1 部署waf 有则跳过 必须存在一个rate速率规则 后面的方案堆栈要用 新建rate速率规则 关联cdn资源 2 部署堆栈 美国东部 弗吉尼亚北部 us east 1 1 堆栈文件获取方式
  • 利用阿里云的尖端数据库解决方案增强游戏数据管理

    在快节奏和动态的游戏世界中 对于努力为玩家提供无缝体验的公司来说 管理大量数据是一项关键挑战 阿里云是亚太地区的主要参与者 也是全球公认的运营数据库管理系统领导者 提供量身定制的创新解决方案 以应对游戏公司面临的独特数据管理挑战 这篇博客探
  • 天翼运行高校云盘在线扩容

    天翼云文档地址 https www ctyun cn document 10027696 10169558 1 输入 growpart命令 检查此云主机是否已安装growpart扩容工具 若出现图中回显信息 则说明已经安装 无需手动安装 注
  • 8大数字技术打造ESG发展新范式!工业“双碳”建设应该这么做

    随着国家 双碳 目标的提出 数字化 绿色化证进入历史交汇 协同发展 路径合一 相辅相成的重要阶段 在此背景下 中国信通院 中国航天航空 工业互联网产业联盟于2022年联合出版了 数字技术赋能工业碳达峰碳中和应用指南 以下简称 指南 今年又细
  • 服务器3M固定带宽什么意思?够用吗?

    云服务器3M固定带宽是什么意思 速度快吗 3M固定带宽是指云服务器的公网带宽 用于在外网提供服务的 3M带宽的下载速度是384KB 秒 上传速度是1280KB 秒 对于个人博客或流量不多的企业官网速度还是挺快的 阿里云服务器网aliyunf
  • 思腾合力赞助CCF YOCSEF太原第十一届学术委员会第三次全体会议

    2024年1月6日 由思腾合力赞助的 CCF YOCSEF太原第十一届学术委员会第三次全体会议暨AC换届选举活动 在山西大学举办 华北区教育行业负责人宋肖敏出席本次会议 会议汇聚了众多学术界和企业界的精英 共同探讨人工智能和计算机科学的未来

随机推荐

  • 波形失真总结

    失真是输入信号与输出信号在幅度比例关系 相位关系及波形形状产生变化的现象 音频功放的失真分为电失真和声失真两大类 电失真是由电路引起的 声失真是由还音器件扬声器引起的 电失真的类型有 谐波失真 互调失真 瞬态失真 声失真主要是交流接口失真
  • QApplication、QGuiApplication和QCoreApplication三者的区别与联系

    为什么80 的码农都做不了架构师 gt gt gt 从继承关系看 QApplication父类是QGuiApplication QGuiApplication父类是QCoreApplication 开发的应用无图像界面 就使用QCoreAp
  • Ant Trip 【HDU - 3018】【欧拉通路一笔画问题】

    题目链接 欧拉通路与欧拉回路不同 欧拉通路其实不强制要求走回 也就是不要求最后从哪开始 然后再回到哪 这道题 是问的我们需要走几次一笔画 那么 很显然 考虑入度出度以及连通性 在同一个联通块中 我们可以拆分成如下几种可能 形成闭环 无奇数度
  • REST API 最佳入门指南

    点击上方 程序员大咖 选择 置顶公众号 关键时刻 第一时间送达 如果你看到这里 你以前可能听说过API 和REST 然后你就会想 这些都是什么东西 也许你已经了解过一些这方面的知识 但却不知道从何入手 在这个教程中 我将会诠释REST的基础
  • create umi创建项目

    1 环境准备 安装node node确保它是 8 10 或更高版本 node v v14 17 0 安装yarn 推荐用于yarn管理 npm 依赖 npm install g yarn gt yarn 1 22 10 preinstall
  • keepalived工作原理和配置说明

    keepalived是什么 keepalived是集群管理中保证集群高可用的一个服务软件 其功能类似于heartbeat 用来防止单点故障 keepalived工作原理 keepalived是以VRRP协议为实现基础的 VRRP全称Virt
  • 斗智斗勇 -- 谷歌浏览器的主页被篡改

    不知道从什么时候开始 每次我打开谷歌浏览器 都会跳出2345网址导航 界面花里胡哨的 今天实在是忍无可忍了 就对他动手了 百度了半天 又是禁服务 又是删注册表的 一直然并软 最后实在没办法 只能装个电脑管家试试了 解决完问题再卸载吧 安装好
  • 在rdesktop 远程时报如下错误Autoselecting keyboard map ‘en-us‘ from localeCore(warning): Certificate received

    在rdesktop 时报如下错误 Autoselecting keyboard map en us from locale Core warning Certificate received from server is NOT trust
  • IT项目管理第七次作业

    完成作业1 3的要求 使用 project 或其他项目管理工具 1 假设 每项工作的单位小时成本数如下表 项目经理单位小时成本为100 项目团队成员单位小时成本为60 WBS条目 小时数 单位小时成本 美元 子层总合 美元 WBS第二层的总
  • java 内存溢出 扩大jvm内存

    随手小记 今天下午遇到一个问题 java lang OutOfMemoryError Java heap space 内存溢出问题 遇到这个问题一般有两个解决方式 第一种 修改代码程序 代码中存在大量未被释放的对象引用 或者gc 机制没有来
  • 全排列 Ⅱ--回溯算法

    LeetCode 全排列 给定一个可包含重复数字的序列 返回所有不重复的全排列 示例 输入 1 1 2 输出 1 1 2 1 2 1 2 1 1 解法 回溯法 解题思路 思路很简单 因为要全排列 所以每一个数字都可能选择 即选择区间为 0
  • 最新版Bootstrap5教程——Bootstrap5基础

    个人主页 这个昵称我想了20分钟 往期专栏 速成之路 jQuery 速成之路 SQLserver 速成之路 Ajax 系列专栏 最新Bootstrap5教程 Bootstrap5 Bootstrap5简介 Bootstrap5下载 Boot
  • Linux下shell脚本实战之批量新建用户

    Linux下shell脚本实战之批量新建用户 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 1 使用提供的user txt用户列表 2 批量新建user txt中用户 二 脚本内容 1 查
  • java 简单 数组 自然合并排序

    题目 对所给元素存储于数组中或链表中 选择一种情形 写出自然合并排序算法 结果演示 基本思想 自然排序是在合并排序的基础上修改而成 合并排序 给出一个n个元素无序的整数数组 将其一分为2 则一个子集为n 2 再将子集划分为2 不断划分直到只
  • 电赛控制-----经验分享

    1 赛前准备 先简单介绍一下电赛 电赛是两年一届 单数年是大电赛 全称是全国大学生电子设计大赛 之前由瑞萨电子赞助 所以之前也叫瑞萨杯 从19年开始赞助方变成了TI公司 偶数年是小电赛 全称是 TI杯 模电邀请赛 这里不得不提TI公司的实力
  • json库报错(TypeError: the JSON object must be str, bytes or bytearray, not TextIOWrapper)

    使用json库导入json文件时 报错 TypeError the JSON object must be str bytes or bytearray not TextIOWrapper import json f open data d
  • 学习TensorFlow,调用预训练好的网络(Alex, VGG, ResNet etc)

    视觉问题引入深度神经网络后 针对端对端的训练和预测网络 可以看是特征的表达和任务的决策问题 分类 回归等 当我们自己的训练数据量过小时 往往借助牛人已经预训练好的网络进行特征的提取 然后在后面加上自己特定任务的网络进行调优 目前 ILSVR
  • oracle12542,关于客户端报的ORA-12542

    最近用户一个小应用系统总是出故障 windows的系统上跑一个VB写的小客户端程序 出现问题的时候 系统会弹出以下信息 Microsoft ODBC driver for oracle ORA 12542 TNS address alrea
  • GC日志分析

    JVM的GC日志的主要参数包括如下几个 XX PrintGC 输出GC日志 XX PrintGCDetails 输出GC的详细日志 XX PrintGCTimeStamps 输出GC的时间戳 以基准时间的形式 XX PrintGCDateS
  • 阿里云平台接入python版

    物联网基于python云平台的接入 文章目录 物联网基于python云平台的接入 1 设计目的 2 功能要求和关键问题 2 1 系统功能描述 2 2复杂工程问题分析 3 系统整体框架设计 4 模块的设计和实现 4 1 阿里云基础和设计 4