前言

物联网(IOT)的概念很早就有了,只是在共享单车普及之前物联网并不被多数人所熟知,因此听起来很神秘。今天文章的主题就和大家一起聊一聊关于物联网(IOT)相关的话题,并从技术的角度解析下大家每天会使用到的共享单车在系统技术层面的运行原理,希望能够给大家的生活带来点小乐趣。

什么是IOT

对于从事互联网技术相关工作的朋友来说,IOT这个词多多少少应该都听说过,其实IOT这个词的就是英文“Internet Of Things”的简称,即我们所说的物联网。那么什么是物联网?它与我们现在使用的互联网是个什么关系呢?

从概念上来说物联网是指通过信息传感设备、按照约定的协议,将物品与互联网连接起来从而实现信息交换和通信,以实现传统物品设备的智能化。我们现在经常说的智能硬件,实质上就是物联网概念的落地与应用。例如,在实际生活中的很多场景,如通过手机控制空调的开关、电灯的开关以及各种智能跑步机、学习机等等都是IOT的应用场景。

通过上述阐述,也可以看出实际上物联网本质上也是依托互联网的,没有互联网特别是移动互联网3G、4G、WI-FI及未来5G网络的支撑,物联网也是玩不起来的。相对于传统互联网设备电脑、手机而言,由于物联网设备种类繁多,因此硬件部分定制化开发的场景会比较多,当然这一点并不用太担心,在我国的深圳做硬件嵌入式开发的公司非常多,只要你有需求和钱一切都不是问题!

关于硬件部分主要涉及电路板设计及嵌入式软件开发相关的工作,设备通过嵌入式软件逻辑与移动网络连接,例如蓝牙、WI-FI及移动互联网,一部分特殊场景还会通过物联网短信进行连接,如有些共享单车就会通过短信进行指令补偿传输之类,这里就不多说了,大家稍微知道下就行。

IOT协议之MQTT

接下来重点和大家讨论下IOT物联网协议的知识,MQTT是物联网中的一个基础性协议,英文全称是"Message Queue Telemetry Transport",翻译过来也称为遥测传输协议。MQTT是一个基于客户端-服务器端的消息发布/订阅传输协议,这种方式非常适合物联网的场景,在网络信号及稳定性不高的地方也可以有效的实现设备与网络服务的交互通信。

在MQTT协议中有三种身份:发布者(Publish)、代理服务器(Broker)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端、只有消息代理是服务器,消息的发布者也可以同时是消息的订阅者。从这几点看MQTT协议似乎与我们日常系统中使用的消息中间件类似,只是消息的发布及订阅被嵌入到设备的逻辑中了。在MQTT中传输的消息主要分为:主题(topic)和负载(payload)两部分。Topic可以理解为消息的类型,而payload则可以理解为消息的内容。MQTT设备与服务器端的交互示意图如下:

在MQTT协议中,每个设备根据协议都有自己作为消息消费方而订阅的Topic以此来接收服务器端下发的操作指令;与此同时每个设备也会作为消息发布方向服务器端指定订阅的Topic发送消息,以此来实现设备与服务器端的通信交互。

共享单车IOT系统

通过上面的基本描述,相信你对IOT及IOT中设备与服务端交互的MQTT协议已经有了一些认识,那么日常使用的共享单车IOT系统是如何设计的呢?通过一张图来解析,如下:

在共享单车中当你拿起手机扫码二维码进行开锁后,手机端会调用后台服务接口,之后会通过IOT连接服务,向具体的设备以MQTT协议的方式下发开锁消息,锁设备通过SIM卡会保持与物联网消息服务器的连接监听,对自己设备所约定的Topic实现消息订阅,如果收到开锁消息,则会触发自身的嵌入式软件逻辑完成机械马达动作从而实现开锁。由于基于MQTT协议的开锁指令与设备收到指令完成开锁是一个异步的过程,所以锁设备在执行完开锁指令后会通过约定的上行Topic向IOT服务发送开锁状态上报信息,服务端通过监听制定Topic队列,感知锁的开关状态,从而触发后续的骑行相关的业务逻辑,如创建骑行订单、开始进行骑行计费等等。关锁及其他流程与此类似。

以上就是共享单车通过IOT物联网开关锁的基本逻辑,原理上就是通过消息队列来实现的,而在真实的场景中出于对网络不稳定性的补充,现在主流的共享单车还会以蓝牙及物联网短信作为补充,以提高开锁成功率,因为不是主要涉及IOT的逻辑所以大家理解下就行。

另外关于IOT系统的方案选择问题,现在各大云计算公司都已经提供了IOT云服务,如阿里云、AWS-IOT等,基于现有的IOT服务会减少设备管理及连接资源的负担。而如果想自己搭建物联网服务,也可以通过消息队列进行封装(如使用RocketMQ),只是如果设备量大,还需要考虑连接资源及系统性能问题,除此以外也需要考虑设备管理相关的内容。对于初创公司而言,在资源不是特别丰富的时候,通过成熟的云计算服务实现IOT也是一个不错的选择!

从内容上看,共享单车所采用的技术并没有什么特别之处,技术方案均为目前已经比较成熟的方案,本质上只是物联网技术结合移动支付场景的一个商业模式创新。不过我们也不得不承认,共享单车的出现的确改变了很多人的出行方式,方便了我们的生活!

推荐阅读:

分布式事务之如何基于RocketMQ的事务消息特性实现分布式系统的最终一致性?

—————END—————

识别图片二维码,关注“无敌码农”获取精彩内容

共享单车IOT物联网系统是怎么设计的?相关推荐

  1. java计算机毕业设计高校共享单车管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计高校共享单车管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计高校共享单车管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

  2. java基于微信小程序的共享单车电动车租赁系统 uniapp 小程序

    随着在我国国民水平的提高,低碳环保的概念也深入人心越来越多的人选择了绿色环保的出现方式,共享单车更是为绿色出行提供了一个有利的保障.通过本人的调查研究发现,很多大学的共享单车的管理还是用手工传统的方式 ...

  3. 共享洗鞋柜物联网系统有哪些功能?

    共享物联网的发展改善了我们的生活质量,从共享单车到共享充电宝,每一个物联网设备的发展都宣告着又一次胜利,共享设备的优势在于便捷. 比如说,我们去打车太近,走路又太费时间的地方,就可以随时随地扫一辆单车 ...

  4. IOT物联网系统架构

    主要由 IotCloodServer物网联服务平台, IotAdminWeb物联网管理平台, IotDataProcessing物联网数据平台, IotDeviceGateway物联网边缘网关, Io ...

  5. 物联网概论(IoT)_Chp10 智慧地球与物联网应用/M2M/共享单车/无人驾驶

    Chp10 智慧地球与物联网应用 建设物联网需要三大基石: 1)标识物体,包括通过RFID.传感器将物体的信息实时反映出来: 2)传输的通道,比如电信网: 3)高效的.动态的.可大规模扩展的资源计算处 ...

  6. 基于asp.net的共享单车管理系统的设计与实现

    随着时代的发展,我国的国民经济一直在稳步的提升,共享单车的是用来一直在不断的攀升,为了能够更加方便快捷的管理共享单车,需要开发一套利用计算机进行管理的共享单车后台管理系统 系统登录页面 维修员信息信息 ...

  7. 共享单车管理系统_长沙市首个共享单车管理及运维调度系统在天心区上线

    为进一步规范天心区互联网租赁自行车秩序,近期天心区城市管理委员会办公室印发了<天心区互联网租赁自行车(电动自行车)乱象综合整治工作方案>,开展辖区互联网租赁自行车乱象综合整治行动. 连日来 ...

  8. 用python写了个共享单车租借系统!

    最近为巩固知识,找了一个小的程序来写写,于是就有了这个简易的共享单车的出租系统,来看代码吧: class Bike:# 初始化方法 no代表车辆编号.age代表车辆年限.# state代表车辆状态,0 ...

  9. 从共享单车看城市云反射弧的工作运行机制

    作者:刘锋,黄子铜 概要:智能时代,我们的城市从架构上也越来越类脑化,从运转上变得越来越智慧,共享单车基于物联网技术,很便捷地解决了最后一公里的需求,是城市云脑中云反射弧在交通领域一个显著的案例. 1 ...

最新文章

  1. iOS学习笔记(十三)——获取手机信息(UIDevice、NSBundle、NSLocale)
  2. 在Linux中su和sudo区别,Linux中su和sudo的用法和区别
  3. win7和Ubuntu16.04之间相互远程控制
  4. android 权限
  5. 面试题27 二叉搜索树转换为双向链表
  6. FreeMarker整合Spring 3(转)
  7. 千方百剂创建账套服务器文件,千方百剂数据库设置教程.docx
  8. C#获取本地IP地址
  9. 基于模型的软件开发方法综述
  10. IIS 访问页面出现500 – 内部服务器错误的解决方案
  11. matplotlib作图示例——阻尼衰减曲线、XRD数据绘图、三角函数绘图、超越函数绘图、正态分布随机数(插值多项式)
  12. 如何在 Ubuntu 和其他 Linux 发行版中启动、停止和重启服务
  13. sqlite3基础学习
  14. 艾司博讯:拼多多全店推广是什么意思?
  15. sws_kp操作(selenium webdriver+python)
  16. ModelSim 修改测量时间显示的单位
  17. azure 和 aws比较_AWS,Azure和Google Cloud Backup解决方案比较
  18. 文远知行们穿越“羊城”封控区,有讲好无人车这个故事吗?
  19. 易基因|一种全新的检测DNA羟甲基化的技术:ACE-Seq
  20. group by与order by的区别

热门文章

  1. 关于html的一些小知识
  2. 毕业设计-基于微信小程序投票系统
  3. 微信小程序 绝对路径和相对路径
  4. 数据仓库-物理模型设计
  5. .then写法和async await 有啥区别?
  6. 中汇(天津)税务师事务所
  7. 分享几个AI绘图的学习网址
  8. 大猫咪头像,我的新头像
  9. java 初学者_初学者:如何在Outlook 2013中创建,管理和共享日历
  10. vue 实现搜索历史_微信小程序实现搜索历史功能