三月份开始,导师接了个本地发行银行的内部一些系统的改造项目。这个项目是一个物联网方向的、银行内部使用的web端的Java项目。里面涉及非常多的与硬件通讯的东西,并非是一个单纯的web端的Java项目。由于该项目中使用的设备来自一二十家不同的厂商,每个厂商采用的通讯方式也各不相同,导致我们在做硬件测试和Java通讯代码的编写也带来不小的麻烦,更不用说工作量了,整个六月七月都在高强度的工作,白天去现场实地测试、调试,晚上回实验室熬夜改代码,一切辛苦尽在不言中。
接下来我对在这个项目中自己做了些什么,又学到了什么东西,做一些总结;
1、 物联网的发展是一定要和硬件建立连接的,从而建立起数据的采集,数据上传到控制中心,最后通过对数据分析给予一定的控制输出。首先如果要采集到硬件设备的信息,我们一定要搞清楚硬件的通讯方式,通过一些软件调试软件来和硬件设备进行数据的交互。目前主流的一些通讯方式主要有TCP/IP、UDP、RS232/485等。由于物联网要实现集中控制,所以所有的硬件设备无论采用什么样的通讯方式,都要通过网线与交换机相连接,这样在使用到串口的通讯方式的设备的时候就要采用一些转换设备把串口通讯通过转换设备来接入到控制中心的交换机上,当然在接入交换机的每个设备中都要设置不同的IP地址。
2、 在采集数据的时候,一定要充分的研究说明书,当然在一些公司为了节约成本可能使用的硬件是小厂家生产的产品,这就导致设备内附的说明书极其简陋甚至不配说明书,这就要我们去联系生产厂家,一般小厂家销售和技术售后都是很好找的,他们也都很直接的会把和设备相关的说明资料发给你。当然你在使用设备的时候遇到什么问题也可以咨询他们。但是一些做的比较的大的厂商,因为内部管理机构比较复杂,把销售和技术部门的职责分配的非常的细致,当我们要去咨询关于他们设备的问题的时候,往往需要先联系销售,通过销售去联系技术人员,再来给我们指导解决技术问题,这可能还是比较好的,有些公司售后部门可能有联系电话,但是却无法打通,只能联系本地的经销商,一层一层的联系技术人员,这会特别的耗费时间。
3、 Web端与硬件设备的通讯,我们是通过在web端调用所需设备的webservice来交互数据的。我们编写的webservice服务是让硬件设备传来的数据一直不停的上传给我们的web端,通过web端来对数据进行分析处理;这样的底层通讯方式会造成数据量的庞大,并且会使通讯效率降低,给设备下发控制命令的时间会有延迟。考虑到这个问题我们的解决方式是,让webservice主动监控硬件设备的数据变化,如有数据的变化,再把设备的实时数据上传给web端,从而经过web端的分析,下发控制命令,这种方式会有效的解决通讯延迟的问题。
4、 硬件厂商一般都会提供二次开发的demo,这些demo可能是用C#编写的,亦或者是Java编写、VB语言编写的;大部分厂商会提供主要的使用C#编写的,因为大部分的客户端就是用C#编写的,好些厂商为了方便就直接在开发包中提供C#编写的demo;一些小厂商,为了节约成本,一般不会设置通过登录固定的IP去修改硬件设备的参数,如果要修改参数就必须运行C#demo,与硬件建立连接,来修改硬件的参数。一些大厂的设备,比如海康威视、昆仑海岸等使用的客户群体比较大,当然客户的要求也就会增多,为了提升自身产品的影响力及降低二次开发的难度,他们都会提供不同版本的、使用不同语言编写的demo。
5、 为了能够让web端与硬件建立通讯,我们必须要编写webservcie,并将其以网站的形式通过IIS部署到服务器上,要编写webservice就必须要熟悉厂商提供的C#demo,有时候我们可能只用到demo中的一些功能,我们并不需要把所有的函数都写进webservice,弄清我们要使用demo中的什么内容,提供可调用的接口,这写是非常重要的,当然我们也要从分的把上述第三点给考虑进去,这点是非常的重要,这关乎我们的系统的整体性能。
以上几点是关于一些硬件的开发所了解到的知识。接下来就是在前端开发所学的和所遇到的问题。
6、 这个项目中,我们要通过硬件实现室内定位,并能够在前端网页中显示出定位的坐标以及在平面图中的位置。这里我们主要是通过svg标签来实现的,我们首先要把客户提供的室内平面图(CAD)通过svg标签来在前端页面中显示,这要求我们知道平面图的缩放尺寸,我们放进svg标签中,不能整张图都放进去,我们也要适当的缩放,并在里面加入滚轮、鼠标操作,来进行放大缩小平移。同时还要熟悉svg内部所属的标签的属性,如何绘制图形,并给图形内部上色和添加事件等。从硬件传来的位置信息要实时的显示在前端页面中。
7、 前端的东西上手比较容易,但是真正能把页面的做的非常漂亮是有一定的难度,如何运用div标签真是一门很大的学问,现在大部分的前端开发都在使用div来进行页面布局,由于接触前端开发事件比较短,虽然知道一些div标签的使用方法,但是div标签的配套使用真的要花费很大的力气,前端页面的优化对于新手来说是真的很耗费时间。
最后,还有一点,开发项目一定要有一定的规范,代码里面一定要添加适当的注释,这会给我们后期的修改和维护带来很大的方便。

web项目与硬件设备的物联网项目总结相关推荐

  1. 完美解决Web项目对接硬件设备的方案

    **有两种方案解决web项目与硬件设备交互,两种方案都是基于C#开发web项目加载器,用到Cefsharp组件来开发的web启动器.**方案1.在开发web项目启动器时(后续简称启动器),集成webs ...

  2. java web项目如何与硬件设备(物联网)进行对接

    2016年9月-2018.1月,做了两个粮食行业(CQ/YL)的项目.有人说,粮食行业有啥要做的,大家可以看看国家粮食局十三五的规划,粮食行业信息化投入了几百个亿. 说实话,现在已经不缺粮了,以前小时 ...

  3. 视频教程-用Java从零开始开发一个物联网项目-物联网技术

    用Java从零开始开发一个物联网项目 多年的产品设计和开发经验,带领团队完成多个知名产品.历任多家大型公司的Java架构师,对知名框架的源码均有深入研究.拥有IT一线开发.教学10多年的实战经验,能充 ...

  4. Hi3861鸿蒙物联网项目实战:智能安防报警

    华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统.开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器.执行器.NFC.显示屏等,同时还配套丰富的拓展模块. ...

  5. Hi3861鸿蒙物联网项目实战:智慧农业

    华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统.开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器.执行器.NFC.显示屏等,同时还配套丰富的拓展模块. ...

  6. Hi3861鸿蒙物联网项目实战:智能测距仪

    华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统.开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器.执行器.NFC.显示屏等,同时还配套丰富的拓展模块. ...

  7. IoT -- (三) 2018 Top物联网项目排名

    每年这个时候,知名物联网研究机构IoT Analytics都会基于市场上纷繁的信息来探索物联网项目的具体实施情况,今年也不例外.作为其追踪物联网生态的一个重要组成部分,IoT Analytics对16 ...

  8. 物联网项目开发工作笔记0001---物联网项目的开发周期,项目管理,厂家合作

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里以我现在做的这个物联网项目(公网对讲产品)为例,因为第一次作为项目经理,带着做物联网项目,所以 ...

  9. 调研1600个物联网项目,我们发现了2018可能大火的物联网应用!

    前面的前面:那位小伙伴有"智能轮渡系统"  "智联工业"  "智慧医疗"  "智慧农业"方面好的解决方案,可以发给小女子 ...

最新文章

  1. JavaScript Collection
  2. 一口气用 Python 写了13个小游戏,摸鱼达人!
  3. pycharm matplotlib 图片显示
  4. KDD走进阿里 数百专家聚集探讨产学研一体化
  5. slf4j的简单用法以及与log4j的区别
  6. 王道计算机网络 数据链路层整理 超详细版
  7. Pandas 文件读取和导出
  8. CAMoE——屠榜 video retrieval challenge
  9. nginx How nginx processes a request
  10. 手机系统一般是用Java写的吗_三大操作系统比较,为什么java开发一般用Linux系统?...
  11. 真正能成大事的人,往往有一个“共同特征”
  12. 在ubuntu16.04-32bits 下编译vlc和vlc-qt开源项目
  13. .Net MVC缓存
  14. 【CentOS7】服务环境搭建
  15. netmeeting 英文开源实例
  16. Win Server2003常见问题的解决然方案
  17. xml 解析错误:语法错误 xml解析错误:找不到根元素
  18. 定时任务每隔10分钟
  19. qt-qss之QSlider样式
  20. java 获取office文件页数_jacob如何获取word文档的页码

热门文章

  1. vivox21 by Android,vivo X21率先升级安卓P,没升级的话这里有方法!
  2. 【Paypal】网站付款标准版
  3. 【动画展示】Focusky教程 | 添加logo
  4. bzoj 5196: [Usaco2018 Feb]Taming the Herd
  5. 输入日期计算当前是一年中的第几天Java
  6. android经纬度转wev墨卡托,GPS工具箱批量导入经纬度教程.docx
  7. linux系统自动登出时间设置,ssh修改超时自动登出时间的方法
  8. ps中修改文件最终的大小
  9. 第二篇 Cesium从零开始
  10. 分布式文件系统的未来