
物联网
文章平均质量分 62
大鱼>
专注于物联网开发
展开
-
HJ212环境质量检测开发
HJ212 协议是应用于环境监测领域的一种数据传输标准协议。定义了监测设备与数据采集服务器之间的通信流程,包括数据传输、控制指令传输等环节,确保通信的可靠性和稳定性。广泛应用于大气和废气环境监测、水和废水监测、固体废弃物监测、土壤监测、生物污染监测、环境噪声监测、环境放射性监测等多个环境监测领域。例如,在污水处理厂、垃圾填埋场、工厂废气排放口等场所的监测设备,都需要按照 HJ212 协议将监测数据传输到环保部门的监控平台。原创 2024-11-18 18:41:51 · 1628 阅读 · 1 评论 -
JT/T1078、GB/T28181流媒体对讲支持开发说明
MediaServer流媒体服务器,是为满足JT/T 1078道路运输车辆卫星定位系统视频通信协议、GB/T 28181公共安全视频监控联网系统的国家标准,开发的流媒体服务器,用于接入终端的实时音视频流,并转换为可在Web页面或播放器播放的流媒体数据,供客户端调用及音视频播放。同时满足RTSP、RTMP等裸码流推拉流支持。原创 2024-10-28 14:37:36 · 1281 阅读 · 0 评论 -
Java(SpringBoot)利用Postgresql+Postgis进行空间地理信息分析(道路偏移,进出电子围栏等)
之前写过一篇相同的文章,里面代码是基于C#语言《》,之后有不少同学问到有没有Java语言的,去年有个项目刚好有封装。在这里记录一下。原创 2024-10-10 10:09:15 · 959 阅读 · 0 评论 -
部标主动安全(ADAS+DMS)对接说明
上一篇介绍了,这里说一下如何对接主动安全附件服务器。流媒体的对接主要牵扯到4个方面:(1)平台端:业务端系统,包含前端呈现界面。(2)JT/T808网关:部标设备接入网关,这个是非常重要的,是设备与平台进行数据交换的桥梁,流媒体相关的指令操作也必须依赖它完成。(3)部标视频机:符合JT/T808协议的车载视频机器。(4)流媒体服务:符合苏标、粤标、川标、陕标协议的主动安全附件服务,接收文件流,并存储。原创 2024-09-27 13:01:10 · 1467 阅读 · 0 评论 -
Teltonika FMXXX系列定位器解析说明
Teltonika FMXXX系列协议解码原创 2024-07-31 10:35:01 · 607 阅读 · 0 评论 -
GB28181语音对讲实现
我这里使用的是开源的wvp-GB28181-pro项目,首先将设备接入到SIP网关服务。原创 2024-07-16 15:12:23 · 1992 阅读 · 2 评论 -
基于JT/T808、JT/T1078、苏标、粤标视频主动安全监控
如下图是以实时视频点播与部标机产生了主动安全报警,各个服务之间的交互流程说明。整个系统有以下几个核心组件组成:1:系统业务端:车载监控业务系统,给用户提供车载监控整套业务流程与界面呈现;2:JT/T808网关:用来接入部标设备,通过TCP通讯在服务器与设备之间建立长连接进行实时数据交互,比如部标设备的定位数据、报警数据都是通过此应用上传到系统;原创 2024-05-27 15:08:22 · 869 阅读 · 0 评论 -
基于物模型的车辆、货物、资产监控系统研发
我们在做资产监控的时候,被监控的对象并非某个固定的业务,比如可能是:车载、人员、货物、冷箱等等。在开发资产监控系统的时候如何针对不同的设备应用场景在系统中给出不同的界面呈现效果则是非常必要的。这时候,我们就需要针对设备监控的对象给出模型划分,根据设备上报的数据属性动态返回数据源。原创 2023-12-25 10:52:07 · 1108 阅读 · 3 评论 -
Java实现音频转码,WAV、MP3、AMR互转
最近在集成一款产品支持语音双向对讲,首先是采集小程序的音频下发给设备端,然后可以控制设备录音生成音频链路让小程序播放。在这个过程中发现,设备除了AMR格式的音频外,其他的音频都不支持,而微信小程序有不支持AMR格式的音频文件,所以这里需要进行音频转码。原创 2023-11-12 12:13:50 · 2954 阅读 · 0 评论 -
Jt808应答举例
Jt808协议指令封包过程说明原创 2023-10-31 13:24:53 · 730 阅读 · 0 评论 -
Java 音频处理,音频流转音频文件,获取音频播放时长
最近对接了一款智能手表,手环,可以应用与老人与儿童监控,环卫工人监控,农场畜牧业监控,宠物监控等,其中用到了音频传输,通过平台下发语音包,发送远程命令录制当前设备音频并将音频分包传输到服务器上生成音频文件等。其中关于音频的一些简单操作封装成了工具包。原创 2023-10-26 13:10:14 · 1907 阅读 · 0 评论 -
SpringBoot 集成Shell命令实现系统日志查询并通过API返回给前端
在做物联网项目中,为了方便产品测试人员以及第三方产品集成商能通过系统快速获取设备原始数据,因此考虑在物联网终端管理平台增加读取物联网通讯服务记录的终端日志的功能。我的想法是直接通过Java操作Linux服务器的Shell命令,读取日志文件里面的上下行数据。原创 2023-03-05 21:47:31 · 815 阅读 · 0 评论 -
物联网架构实例—Ubuntu 安装MongoDB及完全卸载
apt-key用于管理apt用于验证软件包的密钥列表,已经使用这些密钥验证的软件包将被视为可信。通过刚刚创建的管理员账户连接到我们刚刚安装的MongoDB,此时会有默认的三个系统库。如果执行命令的过程发现有残留文件,则可以执行 rm -r 命令将其移除。如果这时候我们执行show dbs,不会显示我们刚刚创建的数据库。因为我们刚刚创建的管理员账户是admin,密码:123456。因为还未创建过自己的数据库,所以这里还是默认的三个库。再执行show dbs就可以看到刚刚创建的数据库了。原创 2023-01-06 22:00:10 · 1754 阅读 · 1 评论 -
物联网架构实例—Ubuntu 安装Redis
Redis 安装及配置修改,物联网套件的组件之一,作为后续翻阅记录原创 2023-01-06 09:39:17 · 462 阅读 · 0 评论 -
物联网架构实例—Ubuntu 安装RabbitMQ
Ubuntu一步步安装RabbitMQ,包含安装过程中遇到的问题及解决办法,以供后续翻阅。原创 2023-01-03 14:02:08 · 3396 阅读 · 0 评论 -
物联网架构实例—Ubuntu 安装Java 13详细教程
我们可以使用xftp工具将Java环境压缩包上传到服务器的opt目录下,并在opt目录下创建java目录,并给目录设置所有权限。我们可以使用xftp通过界面UI界面操作,也可以通过命令行操作。执行命令将java13解压完后,通过xftp可以看到Java目录下新增了一个jdk-13.0.1的目录2.配置环境变量修改然后保存退出即可使。原创 2022-12-29 14:11:25 · 381 阅读 · 0 评论 -
物联网架构实例—部标过检工具使用(物联网套件压测)
针对物联网套件进行压测时使用到的部标过检工具,这个工具是企业部标平台过检时使用的一个工具,具有一定的标准性,对平台承载能力的一个合理的评判。原创 2022-12-27 13:39:43 · 1005 阅读 · 5 评论 -
C#修改富文本框(RichTextBox)指定内容颜色
C#解包与组包工具,针对的是非严格的808协议,主要是记录对拆包呈现样式的一次问题记录原创 2022-12-17 12:53:35 · 7813 阅读 · 0 评论 -
物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制
在对物联网网关进行压测的时候,发现在腾讯云部署网关程序,设备接入数量只能达到4000多个长连接,之后就再也无法接入终端了。之前在阿里云部署的时候明明可以到达2万左右,而且腾讯云的这个服务器比阿里云的硬件配置还要高上不少,不至于那么差,随后查阅大量资料终于完美解决。原创 2022-12-16 21:39:46 · 3267 阅读 · 1 评论 -
物联网架构实例—框架设计
无论是终端接入还是第三方云厂家IOT服务的数据接入都进行了统一化处理与终端鉴权,最后通过WEBAPI与推送服务套件将数据统一输出给第三方平台。目前对此架构进行单机压测,在一台4核8G,10M带宽的情况下终端长链接在25000个,并发数量量在5500条/秒左右。主要使用的技术路线是:SpringBoot+Netty+RabbitMQ+Redis+MongoDB+MySQL+OBS。后续我会将此框架使用的一些套件以及压测工具和一些过程中遇到的问题记录下来,也方便自己后续温故而知新。原创 2022-12-15 18:08:30 · 736 阅读 · 0 评论 -
基于Netty的UDP服务端开发
1.前言之前基于Netty做了一套TCP与MQTT的服务端,随着系统接入的终端类型越来越多,出现了UDP通讯的设备,虽然这样的设备并非主流,而且通讯机制存在问题,为了考虑系统的兼容性,只能将整套服务做全。2.UDP通讯优缺点UDP 是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送数据。至于对方是否可以接收到这些数据,UDP 协议无法控制,所以说 UDP 是一种不可靠的协议。UDP 协议适用于一次只传送少量数据、对可靠性要求不高的应用环境。与原创 2022-03-25 09:32:42 · 1853 阅读 · 0 评论 -
流媒体开发—H.264/H.265裸流文件推流
之前开发过基于JT/T1078开发了一套流媒体服务,随着细分业务的延伸与客户的需求,希望我们能直接对H.264/H.265裸流文件通过rtmp/rtsp的方式进行推流与拉流。在对流媒体进行改造之后,我们采用ffmpeg进行推流,使用VLC进行拉流验证,过程如下。1.安装ffmpeg我这边使用的Windows环境进行验证1.1.下载ffmpeg下载安装包:https://github.com/BtbN/FFmpeg-Builds/releases我安装的是:ffmpeg-n4.原创 2022-02-10 15:40:02 · 2984 阅读 · 1 评论 -
Netty 实现高并发通讯原理理解
最近写了很多关于Netty应用级别的文章,针对为什么选择Netty来实现高并发通讯,Netty实现高并发通讯的原理是什么?今天有时间把我对Netty的一些理解做个简单的说明,如有不对欢迎指正与探讨。原创 2021-12-07 17:24:08 · 2252 阅读 · 0 评论 -
Netty ByteBuf 按位读操作
前言最近与一个刚接触Netty的学生关于Netty读字节流方面的操作进行讲解,可能对后来同学有点点帮助,所以整理出来供大家探讨。ByteBuf读操作 ByteBuf读操作我们常用的有一下几种:ByteBuf.readByte() 读一个字节,有符号ByteBuf.readUnsignedByte() 读一个字节,无符号 ByteBuf.readShort()读连续的两个字节,有符号ByteBuf....原创 2021-11-25 10:52:19 · 5943 阅读 · 0 评论 -
物联网组网技术优缺点对比:蓝牙、LoRa、wifi、NB-IoT、ZigBee等
1.前言最近对物联网产品自组网技术选型,找到合适的组网技术,让产品自行组网并完成数据的传输。2.参数对比原创 2021-11-01 14:39:45 · 38363 阅读 · 1 评论 -
Netty数据处理:拆包、组包实现
1.前言 最近一直找第三方产品对接,目前已经集成了40多款产品和20多种传感器,实现了不同协议下的针对粘包、半包数据的拆包、组包处理。2.为什么会出现粘包与半包数据 TCP通讯在物联网数据通讯中,目前仍然占据着绝大部分的市场,相比UDP来说,它更加可靠。因为TCP通讯是以二进制流的方式进行,中间是没有间隙的,如果数据传输频率过快则会出现粘包现象。在Netty机制里,传输的数据是存储在ByteBuf中,当我们在接收数据的时候,有可能会一次读取多个包的数据,也可能数据包长...原创 2021-10-30 16:35:27 · 5027 阅读 · 0 评论 -
基于SpringBoot整合Netty开发MQTT服务端
Netty认知Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,相比传统Socket,在并发性方面有着很大的提升。关于NIO,BIO,AIO之间的区别,可以参考这篇博客:NIO 、 BIO与AIO之间的区别_谁念西风独自凉-优快云博客MQTT服务端实现首先我们启动一个tcp服务,这里我用到了Redis与RabbitMQ,主要是与分布式WEB平台之间好对接@Componentpublic class ApplicationEventList.原创 2021-10-21 14:58:08 · 9614 阅读 · 12 评论 -
川标主动安全协议解析说明(T/SCSDX 0002-2021)
随着主动安全智能防控系统的推进,各个省市逐渐出现了地标主动安全智能防控系统,前端时间处理完粤标(广东省的道路运输车辆智能视频监控报警系统通讯协议,详情参考:https://blog.youkuaiyun.com/qq_17486399/article/details/115911316),又迎来了最新的川标(四川省的道路运输车辆主动安全智能防控系统技术规范),川标与粤标都是依赖于JT/T 808-2019,所以同样的,在终端手机号字节数进行了加长,由原来的6个字节拓展到了10个字节,可以通过消息头里面的版本标识进行区分原创 2021-09-09 16:45:28 · 1816 阅读 · 0 评论 -
车联网数据解析常用方法集Java (持续更新)
1. 经纬度经伟度的度分秒的换算关系如下: ①换算关系 :1度=60分;1分=60秒;②换算举例 :一般情况下,换算原理是这样的:把度的数值中的小数点的转换成为分,取分之整数,再把分的小数转换成为秒。 举例说明:例如:31.87654度 把数值度的小数点以后的数字乘以60分/度 :0.87654*60=52.5924分 把数值分的小数点以后的数字乘以60秒/分 :0.5924*60=35.554秒 合计:31度52分35.554秒1.1..原创 2021-09-09 15:59:19 · 1465 阅读 · 1 评论 -
JT/T808消息体转义
JT/T808消息体转义前言C#实现C#转义实现C#反转义实现Java实现JAVA 转义实现JAVA 反转义实现前言在网络传输过程中会存在粘包、半包等问题,在各个厂家做物联网产品的时候,大多会定义一种协议,协议里面包含了数据的包头、包尾以及校验位等字节,主要目的是为了在我们做物联网服务网关(接收物联网设备传输数据的系统)的时候方便对接收的数据进行校验以及处理粘包与半包问题。为了防止消息体里面出现与包头包尾相同的字节出现,在物联网设备进行组包的时候一般会进行转移,就是将消息体中出现与包头包尾相同的字节按原创 2021-06-09 11:53:45 · 3507 阅读 · 1 评论 -
JT/T808校验码计算(按字节异或求和)
JT/T808组包的最重要一个环节之一就是对整个包(除去包头包尾的0x7E)内容按字节异或求和。C# 实现 public int getXorCode(byte[] data) { byte CheckCode = 0; int len = data.Length; for (int i = 0; i < len; i++) { Che原创 2021-06-07 16:31:54 · 3733 阅读 · 0 评论 -
如何对司机驾驶指标进行评价
1.前言最近在思考如何利用智能终端采集的车辆信息,对车辆使用指标与司机驾驶指标进行数据挖掘,给出有价值的信息以供企业对司机进行评定。评定指标可能有多种,比如司机驾驶时长,运行公里数,油耗,以及产生的报警次数。结合这些指标,并对指标进行分类,并利用计算机的强大算力,并以一种最直观的方式展示给客户,这个驾驶员评定功能算具雏形。2.实施2.1.驾驶指标分类我这边考虑到不同的公司可能对指标分类标准不同,并且平台是基于SaaS,所以动态配置才更加符合当下要求。例如:根据百公里产生的特定报警原创 2021-06-02 11:37:42 · 817 阅读 · 0 评论 -
粤标主动安全(T/GDRTA 002—2020)协议集成说明
1.部标依赖粤标主动安全通讯方式、数据类型等是依赖于JT/T 808-2019协议要求,JT/T 808-2019与以往JT/T 808 主要区别在于对终端手机号字节数进行了加长,由原来的6个字节拓展到了10个字节,可以通过消息头里面的版本标识进行区分2.与苏标差异2.1.增加了更多报警状态与苏标主动安全报警协议一样都是采用相同的消息ID来进行上传报警与报警附件,相对苏标增加了更多的报警状态监测高级驾驶辅助系统报警增加了实线变道与车厢过道行人监测报警驾驶员状态监测系.原创 2021-04-20 16:36:42 · 5232 阅读 · 1 评论 -
Java 针对JT/T808国密SM4加解密处理
一、前言应国企客户要求,针对产品上行到平台的数据以及对平台下行到设备的数据进行国密SM4进行加解密,对此进行了SM4加密的理解与封装二、踩坑坑一:密钥大于16个字节当秘钥长度超过16字符(即128位)时会加密失败,报“java.security.InvalidKeyException: Illegal key size or default parameters”的异常这是因为美国对出口软件的控制,如果想移除这个限制需要修改Java环境!而且每个Java环境对这个限制修改还可能不一样!原创 2021-04-17 17:37:47 · 6134 阅读 · 0 评论 -
C#使用ServiceStack.Redis通过密码连接Redis
1.前言最近系统被国内行业某龙头企业采用准备本地化部署,但是在操作Redis方面代码里面一直有个隐患,可能过不了该企业的网络安全扫描,所以花了半天的时间对该问题进行了深究。一直以来我们只是对Redis的使用端口做了控制,局域网内免密码操作的Redis,但是免密操作总是存在风险,但是如何使用ServiceStack.Redis通过密码连接Redis?2.正题ServiceStack.Redis在4.0之后需要商用授权,而我们又使用的是很久的版本2.2,这个版本的ServiceStack.Red原创 2021-03-09 18:42:41 · 4007 阅读 · 2 评论 -
1078流媒体(MediaServer)开发说明文档
一、项目介绍1.项目背景MediaServer流媒体服务器,是为满足JT/T 1078道路运输车辆卫星定位系统视频通信协议开发的流媒体服务器,用于接入终端的实时音视频流,并转换为可在Web页面或播放器播放的流媒体数据,供客户端调用及音视频播放。该项目终端接入部分采用高性能、基于Libuv框架实现,H264及音视频裸流到FLV,RTSP,RTMP的转换2.项目当前进展当前的流媒体服务器,支持满足1078协议的终端音视频接入,GB28181流接入。其中,视频流支持H264格式,音频流支持G7原创 2020-12-18 14:00:01 · 4277 阅读 · 5 评论 -
Linux进程守护—Supervisor(ubuntu)
前言之前开发的一个流媒体服务与网关服务,为了保障其可靠运行,对进程增加了守护,而且大大减低了运维难度。这里就不得不说一下Supervisor。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可原创 2020-10-15 16:11:37 · 3973 阅读 · 0 评论 -
RabbitMQ搭建及MQTT插件安装(ubuntu 16.04)
开始安装(1)更新软件源中的所有软件列表,因为刚刚安装的操作系统可能有很多的软件需要更新apt-get update(2)安装erlang,由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlangapt-get install erlang-nox(3)执行下面命令查看erlang的版本,同时可以判断erlang是否安装成功erl(4)添加公钥wget -O- https://www.rabbitmq.com/rabbitmq-r原创 2020-08-10 18:09:13 · 3676 阅读 · 1 评论 -
使用Java Netty做Concox协议解析
concox协议与部标协议存在着很大的不同,特别是包头包尾的定义,部标使用的是打个byte位,然后通过转义的方式来实现,这也是目前主流的处理方式,无论是808,809还是1078与苏标都是单字节的包头包尾,而concox则使用的是双字节来定义包头包尾,中间无转义的方式,其实也有很多私有协议使用的是双字节的包头包尾。话不多说,我们首先看一下concox的协议格式(以登录包为例): 长度 描述 起始位 2 .原创 2020-08-08 18:37:04 · 5405 阅读 · 0 评论 -
如何优雅的利用C#做协议解析
最近喜欢上了做协议解析,最近使用Java与.NET做了很多的厂家的产品的协议网关。从部标系列到第三方私有协议,通过协议解析过程中了解每款产品的特色与将来可能的应用场景。下面我以一款第三方私有协议为例,利用C#语言进行优雅的做协议解析。原始数据:2475201509260111002313101503464722331560113555309F00000000002D0500CB206800F064109326381A03 序号 名称 值(HEX)原创 2020-07-21 14:44:31 · 6373 阅读 · 0 评论