树莓派数据远程传输学习记录——TCP/IP协议连接OneNet云平台传输数据的方法

2023-11-01


项目场景:

本人在进行树莓派项目开发时进行数据远程传输(4G/WiFi通信)过程中,由于自己主研究方向是硬件开发,不善于使用Web云端等方式对数据进行可视化的展示。所以一般都将采集到的传感器数据传输到网络调试助手,以实现对Web端的模拟。


问题描述:

若用如下图所示的网络调试助手进行模拟数据展示的话,主要问题有:
(1)是可视化的程度比较低,功能展示起来不太美观;
(2)对收集到的数据不能进行解码处理、图像化处理、以及对采集到的数据数据进一步处理等的操作。
在这里插入图片描述
而如下图所示的OneNet云平台不仅拥有非常美观的前端界面,而且自带有登录注册,提供TCP/IP通信,进行数据可视化展示等服务,可以为广大硬件开发人员提供非常不错的数据展示平台。
在这里插入图片描述


解决方案:

OneNet云平台前期项目搭建准备:

首先在OneNet云平台这边,我们登录之后,在自己头像这边点击账号信息;
在这里插入图片描述
在点进去的界面内,上主菜单有一个全部产品服务,点出来的框内可以看到有多协议接入这个选项;
在这里插入图片描述
点进去后可以看到有TCP透传这个选项,由于本人在做树莓派开发过程中基本都是TCP/IP进行通信,因此选择该选项,进行产品的添加;
在这里插入图片描述
在点击添加产品后,有诸多的信息填入选项(该产品是自己的项目,不算设备,设备在项目生成后会有另外添加)可以依据自己的项目进行填写,也可以随便填,但是联网方式和接入协议不能错写;
在这里插入图片描述
填写完成后,便能出现如下图所示的可视化界面;在这里插入图片描述
我们需要在设备列表的界面,对设备进行添加;
在这里插入图片描述输入相关信息的界面中,有个鉴权信息,十分重要,后期要用的,这边提一下,引起注意!!
在这里插入图片描述
添加设备之后,就会出现新的一个离线设备,在右边操作属性中,有一个详情的连接;
在这里插入图片描述
点击详情之后,出来的界面会有很多详细信息,我们可以注意到有一个API地址,然而我们TCP/IP通信时,用的都是IP地址,两个地址不太一样,但可以相互转换,具体定义可以参考代理IP与API接口,因此我们还需要解决怎么用IP进行连接的问题。
在这里插入图片描述
我们点击设备列表,返回到设备信息后,可以看到有个脚本解析,在这边,我们需要上传一个sample.lua的脚本,实现IP地址对OneNet云端的通信。
脚本链接:https://pan.baidu.com/s/1A6cKhVsHb2vKazemWp36sw
提取码:mgtz
在这里插入图片描述
添加脚本后,云端这边就可以通过IP地址+端口号进行通信连接了,此外OneNet云平台本身就有提供固定的IP地址和端口号

IP:183.230.40.40
端口号:1811

在这里插入图片描述


以网络调试助手模拟树莓派建立连接并发送数据:

为了方便直接观看建立过程,我们先以网络调试助手模拟树莓派与OneNet云平台建立连接,准备前期图片如下;
在这里插入图片描述
由于云平台一方是作为服务端先开启连接接口,因此网络调试助手这边协议类型应该为TCP客户端(Client)
在建立连接之后,还需要先发送一个登录报文,以通过脚本连接对应的设备,报文格式如下;
在这里插入图片描述
发送报文之后,即可直接接收到recived的回复
在这里插入图片描述
此时云平台一放也可以显示出一个设备的在线接入:
在这里插入图片描述
此时我们发送一个1,云平台一方也可以将数据与具体输入时间进行展示;
在这里插入图片描述
在这里插入图片描述
到这里,以网络调试助手模拟的树莓派即可成功连接OneNet云平台,并且能够进行数据的传输。


树莓派与OneNet云平台进行对接:

树莓派与外部云端进行TCP/IP通信的方法,我们之前在树莓派TCP传输协议(socket通信) 一发一收与多发多收的博客中,已经有所介绍,详情可以点进去观看;
我们这边只需要通过以socket为框架的TCP/IP协议进行通信并发送数据即可,并且在发送数据之前先发送接入报文,所需代码如下:
发送端(服务端) fa.py代码:

#coding=utf-8
import socket
import cv2
import numpy
import time
import smbus
import math

def SendVideo():
    address = ('183.230.40.40', 1811) # 地址:IP+端口号
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建sock对象
        sock.connect(address) # 与客户端连接
    except socket.error as msg: # 判断连接是否发生错误
        print(msg)
        sys.exit(1)
    DataBase=b'*512656#123456#sample*' #输入连接报文
    sock.send(DataBase)
    while 1:
        time.sleep(0.1)
        sock.send(b'123'); #发送数据
        
        sock.settimeout(1) # 计时1秒,若无信息接收则关闭recv
        try:
            data=sock.recv(10)
            #print(data)
        except socket.timeout as e:
            #print(f"{e}")
            continue

if __name__ == '__main__':
    SendVideo()

最后总结:

至此就完成了树莓派与OneNet云平台建立TCP/IP连接,实现了数据的可视化,节省了在项目开发过程中需要额外进行Web端设计的成本。
过程中可能有些地方没有说明清楚,还请大家多多交流,记得点赞+关注哦!!
请添加图片描述

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

树莓派数据远程传输学习记录——TCP/IP协议连接OneNet云平台传输数据的方法 的相关文章

随机推荐

  • 使用百度地图接口实现自定义网页地图开发实现

    上午研究了下一些网站都已经实现好的地区 公交 线路等等一些基于 地图 的服务 这些服务都是基于诸如百度 谷歌地图服务接口下的二次开发 百度地图接口服务免费 而且开发文档 API介绍详细 所以本文暂先介绍如何调用百度地图服务 API http
  • java中四大作用域

    Java的四大作用域为 PageContext ServletRequest HttpSession ServletContext 下面一起了解一下Java的四大作用域吧 首先按照作用范围来算 是PageContext jsp页面
  • 路由器从外向内访问(端口转发)及从内向外访问(NAT)的配置

    路由器从外向内访问 端口转发 及从内向外访问 NAT 的配置 描述需求 最近工作上有一个需求 大致意思就是解决路由器内外访问的问题 这个问题可以分成两部分 一个是外部设备 如服务器 能主动访问路由器局域网内的主机 另一个就是内部的主机需要能
  • Java基础-反射

    反射的基本作用 关键 反射是在运行时获取类的字节码文件对象 然后可以解析类中的全部成分 反射的核心思想和关键就是 得到编译后的字节码 class 文件对象 反射的第一步 获取Class类对象 如此才可以解析类的全部成分 获取Class类的对
  • (四)PointPillars论文的MMDetection3D代码解读——网络结构篇

    四 PointPillars论文的MMDetection3D代码解读 网络结构篇 PointPillars 是一个来自工业界的模型 整体的思想是基于图片的处理框架 直接将点云从俯视图的视角划分为一个个的立方柱体 Pillars 从而构成了伪
  • php no route to host,解决 重启后zerotier无法远程连接,显示”no route to host”

    解决 重启后zerotier无法远程连接 显示 no route to host 第一步 禁用桌面环境 桌面环境重启时经常会无原无故卡住 导致远程连不上 systemctl set default graphical target 第二步
  • ubuntu 20.04 安装make_ext4fs

    制作文件系统发现 sudo make ext4fs command not found 解决方法 sudo apt install android sdk ext4 utils sudo apt install e2fsprogs sudo
  • 使用纯C语言定义通用型数据结构的方法和示例

    文章目录 前言 以实现优先队列来描述实现思想 基本类型的包装类型 比较函数 演示 总结 前言 最近一段时间在复习数据结构和算法 用的C语言 不得不说 不学个高级语言再回头看C语言根本不知道C语言的强大和完美 不过相比之下也有许多不便利的地方
  • 历时30个小时 更新到了25905.1000 版本 23H2

  • 【Vue3】之vuex的安装与配置

    安装 yarn add vuex 4 或 npm install save vuex 4 创建 新建store js store js import createStore from vuex export default createSt
  • Pyinstaller 使用说明

    安装 cmd pip install pyinstaller 也可以自己下载安装包 解压后通过执行python setup py install 使用 pyinstaller F myPython py 或者用python pyinstal
  • 用IDEA创建第一个SpringBoot程序,并开发一个JSON接口

    1 打开idea主界面选择 Create New Project 2 在弹出的页面中我们选择左侧的 Spring Initializr jdk版本选择自己安装的版本 PS jdk版本要1 8以上哦 3 下一个页面 在Group栏输入组织名
  • IDEA代码覆盖率测试

    代码覆盖率测试 1 使用idea自带的代码覆盖率工具 1 创建test文档 右击将 test 目录设置为测试文档 2 选中需要测试的类 按Ctrl shift T 创建测试类 并选中要测试的方法 在测试案例中 编写测试代码 点击Edit C
  • 小程序分包实现

    目录 一 使用场景 二 操作方式 1 建立分包文件夹 2 文件构建 3 文件配置 三 总结 一 使用场景 微小程序分包常用于代码量较大的小程序 发布时会受到大小限制 二 操作方式 1 建立分包文件夹 在项目根目录下创建分包文件夹 此处我创建
  • L1-8 乘法口诀数列

    本题要求你从任意给定的两个 1 位数字 a1 和 a2 开始 用乘法口诀生成一个数列 an 规则为从 a1 开始顺次进行 每次将当前数字与后面一个数字相乘 将结果贴在数列末尾 如果结果不是 1 位数 则其每一位都应成为数列的一项 输入格式
  • ad电阻原理图_光敏电阻的基础知识介绍

    39G电子技术 电路 电子元件等 全套资料免费领 干货下载 十天学会单片机完整版 100个实例 PPT 点击上方红字 即可获取 一 光敏电阻 光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器 表面还涂有防潮树脂 具有光电导效应 二 特
  • TCP 拥塞窗口原理

    学过网络相关课程的 都知道TCP中 有两个窗口 滑动窗口 在我们的上一篇文章中有讲 接收方通过通告发送方自己的可以接受缓冲区大小 这个字段越大说明网络吞吐量越高 从而控制发送方的发送速度 拥塞窗口 也就是本文要讲的 概念 一个连接的TCP双
  • element-plus elplus el-tree三种图标自定义 并且点击图标展开收起 点击文字获取数据

    前言 公司需求 需要实现如下样式的树形列表 基于vue3 element plus 当节点展开时 显示展开的文件夹图标 当节点收起时显示收起的文件夹 最后一级显示文件样式 废话没有了 代码如下
  • C规范编辑笔记(九)

    往期文章 C规范编辑笔记 一 C规范编辑笔记 二 C规范编辑笔记 三 C规范编辑笔记 四 C规范编辑笔记 五 C规范编辑笔记 六 C规范编辑笔记 七 C规范编辑笔记 八 正文 今天我们来分享一下C规范编辑笔记第九篇 话不多说 我们直接来看
  • 树莓派数据远程传输学习记录——TCP/IP协议连接OneNet云平台传输数据的方法

    目录 项目场景 问题描述 解决方案 OneNet云平台前期项目搭建准备 以网络调试助手模拟树莓派建立连接并发送数据 树莓派与OneNet云平台进行对接 最后总结 项目场景 本人在进行树莓派项目开发时进行数据远程传输 4G WiFi通信 过程