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

文章目录

  • 物联网基于python云平台的接入
  • 1.设计目的
  • 2.功能要求和关键问题
    • 2.1 系统功能描述
    • 2.2复杂工程问题分析
  • 3.系统整体框架设计
  • 4.模块的设计和实现
    • 4.1 阿里云基础和设计
      • 4.1.1 阿里云概述
      • 4.1.2 阿里云应用设计
    • 4.2 PC端与设备端
      • 4.2.1 PC端
      • 4.2.2 设备端
    • 4.3 图形界面开发
      • 4.3.1 登陆窗口界面
      • 4.3.2 注册窗口界面
      • 4.3.3 数据传输窗口界面
    • 4.4 阿里云数据上传和保存
      • 4.4.1 从设备端上传到云平台
      • 4.4.2 PC本地获取云平台信息
  • 5. 调试和运行结果
    • 5.1碰到的问题和解决方案
    • 5.2运行结果
  • 6.心得体会
  • 7 . GitHub查看

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所示,后续开发皆需

图 创建产品与定义功能

围绕展开。在此基础上,分别创建两个设备即对应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

阿里云平台接入python版相关推荐

  1. 关于使用python实现AIR724ug连接阿里云平台

    文章目录 前言 一.python实现AIR724连入阿里云平台 1.windows端实现 (1)使用串口进行调试 (2)python开发准备 1.linux端实现 (1).串口准备 (2).检测相关依 ...

  2. [笔记]阿里云物联网之业务服务端(java、php)接入阿里云平台

    文章目录 前言 准备 相关资料 相关介绍 消息通信 云产品流转 RocketMQ 服务订阅 MNS AMQP Topic通信 创建设备 Mqttfx设备接入(模拟设备) 安装mqtt.fx 1.71版 ...

  3. 工业智能网关BL110应用之60:如何实现智能楼宇控制BACnet 接入阿里云平台

    COM口采集 楼宇控制BACnet的配置 工业智能网关一共有四个COM 接口, 以COM口采集楼宇控制BACnet MS/TP设备为例,COM口 485接口A+.B-分别对应楼宇控制 BACnet M ...

  4. RS485转以太网网关BL110之44:实现欧姆龙 PLC CJ/CS/CP 接入阿里云平台

    COM口采集欧姆龙 PLC CJ/CS/CP 的配置 RS485转以太网网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/R ...

  5. 阿里云IOT网关BL110应用之28:实现三菱 PLC FX3U 接入阿里云平台

    COM口采集三菱 PLC FX3U 的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选串口(默 ...

  6. STM32F103+ESP8266接入阿里云平台(曲折的上云之路)

    STM32接入阿里云 文章目录 STM32接入阿里云 前言 一.所需环境 二.配置步骤 1.烧录固件 2.stm32的配置 总结 前言 在这之前学习了ESP8266接入阿里云,平台是arduino,虽 ...

  7. AIR724 4G模块云平台接入教程(2)- 阿里云物联网平台

    AIR724 4G模块云平台接入教程(2)- 阿里云物联网平台 Aliyun IOT 设备配置和接入 自动注册 一型一密 一机一密 消息通信 通信主题 通信流程 使用实战 属性上报 异步服务调用 同步 ...

  8. go 服务接入短信验证码功能(对接阿里云平台)

    简介 短信验证码还是比较常用的功能,已经有了很成熟的方案,本篇介绍的是对接阿里云的短信服务,一条短信大概两分钱. 基本的流程是: 到对应的云平台申请权限,大致费用都差不多 照着官方文档进行对接,并集成 ...

  9. 【详细教程】App inventor连接阿里云平台(APP显示STM32发来的温湿度数据等)

    前言: 目前已经成功将esp8266连接上了阿里云平台,实现了温湿度等数据的上云操作.但是在阿里云查看数据非常的不方便,因为阿里云的Web网页版都是临时的,链接在一段时间后会失效,除非绑定了域名才能长 ...

最新文章

  1. 一般将来时语法课教案_「英语语法」一般过去时用法技巧全解
  2. MySQL远程表访问设置
  3. Shell中的while语句
  4. 宿主机linux,宿主机上安装小linux
  5. 人民日报“权威认证”吃鸡装备哪家强,不服来辩!
  6. [Flags]标识的Enum不能使用Html.GetEnumSelectList方法
  7. 如何在Hibernate中维护表的历史记录
  8. Online开发初体验——Jeecg-Boot 在线设计流程
  9. web-使用wsgiref模块模拟web框架
  10. 给你一份详细的web前端CSS布局指南,请查收
  11. 谷歌开源 VR 应用
  12. Word文档转PDF后文件变小、图片不清晰解决办法
  13. UE4 UI界面的层级切换
  14. 计算机专业学生的必备文具,初一新生必备文具100件 学霸用的文具清单
  15. 【实践与问题解决28】最全超分辨率(SR)数据集介绍以及多方法下载链接
  16. BJOI2019 勘破神机 新解
  17. 昆石VOS3000_2.1.6.0.0一键安装教程
  18. python学习笔记之pyinstaller failed to execute script问题
  19. Service Mesh初识
  20. 以吃货的角度去理解云计算中On-Premise、IaaS、PaaS和SaaS

热门文章

  1. jQuery superslide 72个扩展效果
  2. java 控制器 返回 json_SpringMVC中controller返回json数据的方法
  3. 5.6. SAN配置
  4. 2021亚太杯C题全网最全解题思路+塞罕坝林场数据数据分享
  5. 小六的搜索笔记(转)
  6. 直播平台搭建|实现完整直播流程,考验直播平台性能
  7. 通过双击.py文件启动Python IDE编辑器
  8. APMCM(亚太地区数模竞赛)2014年-C题:Research about Public Elementary Teachers for Vocational Education(附获奖论文)
  9. 使用了新的WEB-RTC软电话之后,W公司前台小黄的工作效率提高了,烦恼变少了...
  10. 如何在lambda表达式域中使用局部变量?