IOT学习笔记(一):初步了解IOT

1.背景说明

        初次接触物联网还是5年前,那时候还是移动互联网的时代,物联网根本看不上眼;转眼5年过去,当初的当红炸子鸡已经变的不是那么热情了,如同寒武纪物种大爆发后的上万年优胜劣汰的演变,已经是物竞天择,适者生存的时代了,移动互联网也慢慢褪去了热情,回归到理性。
        而这时候,反观物联网,人工智能,大数据慢慢的占据主要市场,成为一片新的蓝海,越来越多的机会在这些领域涌现;越来越多的人才,资本的进入,相信在不远的未来,也会像移动互联网那样生机勃勃,充满机会。

2.物联网技术体系

先上一张图,对物联网整体有个认识。
在这里插入图片描述
物联网大致分为四层,从上到下依次是:应用层,平台层,网络层和感知层,网络层和感知层更多会和硬件关联性大,显示层和用户最直接交互,那么平台层就是人和硬件连接的纽带,一个好的平台层可以抹掉人和物的差异,这也就是物联网的妙处,最后物还是要为人服务,接下来就简单说下这四层的关系。

2.1应用层

       如果你是做互联网出身的,那么对应用层应该很熟悉,这层就是面向用户的,这里的用户一般指ToB用户,例如商场中的监控室,经理等,但不局限,也可以是ToC用户,主要就是提供一个可视化的界面,让用户可以查看状态,实现一些交互操作行为;
       因为这层主要是UI展示和客户的实际想法,所以并没有特别成熟的产品可供使用;这里需要注意的是,传统的交互多以平面交互为主,这种已经有很多现成控件可供使用,也可以让前端开发人员定制开发,难度都不大;但是近些年流行起2.5D/3D交互,做的好效果确实惊艳,但是因为刚开始,整个问题还比较多,例如建模的性能问题,成本问题,小一些的项目根本无法承受少则十几万,多则上百万的研发费用;

2.1.1 3D视图

       3D建模国内有一些先行者,精耕物联网领域,也已经有一些沉淀,具有代表性的如:
(1)优诺ThingJS(http://www.thingjs.com),但需要说明的是他们使用的底层技术也是国外开源方案Threejs,这个方案也是很多页游使用的方案;优诺的优势在于使用这个平台在物联网垂直领域做了很多优化,实现了很多控件,在优诺平台上做二次开发,可以省去不是时间成本,但笔者让一个10年经验的前端开发者接入这个平台建模,给出的回答也是非常耗时,建模成本过高;
优诺除了提供平台工具外,也可以代工开发,咨询后发现收费略高,这也是一般项目对3D望而却步的原因;
因为不能放视频,所以截个图大家看看效果,需要视频的可以私信我,文件略大;
在这里插入图片描述
(2)blend4web(https://www.blend4web.com),国外针对三位小场景开源框架,因为时间原因,没有深入研究;
(3)threejs(https://threejs.org/),前端3D建模框架,开源,不是针对物联网的,所以建模需要从头做,不适合无经验开发者和小公司;

2.1.2 2.5D视图

说完了3D,聊聊退而求其次的方案2.5D,其实这么说不太公平,2.5在很多方面还是要优于3D的,没有最好的技术方案,只有最合适的技术方案;
2.5D在性能和成本控制上要优于3D很多;目前国内2.5D建模方案提供商很多,这里举几个我调研过的,仅供参考。
(1)易景空间(https://www.esmap.cn),深圳的一家公司,提供在线地图编辑器,室内/室外地图整体解决方案,室内定位解决方案,地图私有/共有云部署等;收费是按照平米收,费用基本是3D建模的十分之一或者更低;
放一张效果图,直观感受下;
在这里插入图片描述
在这里还要说明下,受限于前端设备的性能,尤其是手机端,上3D基本不可能,所以在移动端2.5是首选,建模做的好,效果上其实差不了太多。
(2)百度地图/腾讯地图/高德地图,这些地图厂家也做地图类的定制方案,但是积极性不高,还有外包给三方做的,就不详细说明了;

除了以上说的需要建模的展示外,其他显示控件有不少大平台提供了现成控件供开发者使用,例如阿里云平台的http://datav.aliyun.com ;里面有不少淘宝天猫等积累的控件,还有一些开发者开发的,也提供工具自己组合。

2.2 平台层

       平台层其实算是整个物联网的一个核心,如果把感知层比作手脚,鼻子,眼镜,网络层比作神经系统,那平台层绝对是大脑,负责数据收集,处理和反馈。

2.2.1 巨头平台

       目前物联网平台层也是各个巨头投入的重点,带头的包括阿里云物联网平台,中移物联网,华为物联网等,其中以阿里云最大,据不可靠数据,接入的物联网设备已经40亿+了。
       除了这些巨头的平台,大部分公司现在更愿意自己开发平台层,其中的原因很多,包括数据安全,协议不同,可选设备有局限等,举个例子,你想接入阿里云的网联网平台,那你的设备必须刷阿里云的sdk,这个对设备选择就产生了局限,而且很多阿里云生态企业也是一边支持阿里云的设备,一边搭建自己的平台,两边协议和产品批次还有差异,兼容和数据处理都是问题。

2.2.1 开源平台

       除了大平台,还有哪些物联网开源平台可供选择呢?
下面这片文章整理了目前市面上90%以上的开源平台,可供大家参考:https://www.freebuf.com/articles/paper/194382.html
       这里面如何选择,首先第一语言,我肯定java优先,非java的排除,第二,github的star,目前物联网平台star都不多,但是ThingsBoard是java中最多的,所以ThingsBoard就成为了我的首选。
https://thingsboard.io/docs/user-guide/install/docker/
https://github.com/thingsboard/thingsboard
这是thingsboard的官网和github地址,下一篇就开始做开发环境的搭建。

2.3网络层

       网络层连接硬件传感器和平台,是数据回传的通道;这里依赖各种网络,例如wifi,移动网络,局域网等,也依赖于一些硬件设备,例如网关(很多传感器是没有网络传输能力的,需要经由网关进行中转)。
       传输最为重要的就是传输协议了,物联网现有的传输协议非常多,常用的包括Larawan,NB-IOT,modbus-rtu等,后续专门一篇来说明这些协议吧。

2.4感知层

各种硬件传感器,温度湿度传感器,烟雾传感器等等。

物联网技术的初步说明先写这么多,欢迎批评指正。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级通信协议。在IoT项目中,MQTT协议可以用于控制远程外围设备,例如传感器、执行器等。 以下是使用MQTT协议控制IoT项目中远程外围设备的步骤: 1. 安装MQTT服务器:首先,需要安装一个MQTT服务器,例如Mosquitto或者EMQ。这个服务器将作为消息代理,接收来自发布者的消息,并将其传递给相应的订阅者。 2. 编写发布者代码:发布者是发送消息的设备或应用程序。在IoT项目中,发布者可以是传感器或者其他执行器。将你的设备连接到MQTT服务器,并通过发布者代码发送消息。 3. 编写订阅者代码:订阅者是接收消息的设备或应用程序。在IoT项目中,订阅者可以是控制设备的应用程序。将你的设备连接到MQTT服务器,并通过订阅者代码接收消息。 4. 订阅主题:发布者和订阅者需要共享主题。主题是一种标识符,用于将消息路由到正确的订阅者。在IoT项目中,主题可以是传感器的名称、执行器的名称或者其他标识符。在代码中,使用主题来指定要发布或订阅的消息。 5. 发送和接收消息:在代码中,使用MQTT客户端库来发送和接收消息。发布者将消息发送到指定的主题,订阅者将接收到该主题的消息。 使用MQTT协议可以轻松地控制IoT项目中的远程外围设备。通过发布者和订阅者代码,可以发送和接收消息,并将其路由到正确的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值