NB-IoT特点
NB-IoT在带宽和成本上优势明显,构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署UMTS网络、LTE网络和GSM网络,很容易实现网络的升级。同时,相对于4G网络,它支持的待机时间长,连接高效,而且联网设备的电池寿命很高。
NB-IoT的优势应用场景:正是因为NB-IoT技术成本低、功耗低,所以在定位、水表和停车等领域应用很广泛,如共享单车里就有内置NB-IoT模组,实现物联网通讯。
更重要的是,NB-IoT背靠运营商对于室内场景覆盖有着天然的优势。确定的频谱资源,并可利用运营商原有的室分系统完成覆盖,可通过融合套餐,设备体验等方式将NB-IoT设备推入到用户家庭当中。广泛应用于如智能家居、智能零售和智慧城市等行业中。
NB-IoT虽然优势明显,但在国内的发展现状是缺乏一个统一的开放产业平台,同时标准、芯片、网络和相关的应用层厂商以中小企业为主,还需要壮大自身联盟的实力,打造强大的生态。
LoRa特点
目前在国内,由于备受国家政策、电信运营商和业内大厂的青睐,NB-IoT技术的发展可谓如火如荼。相比而言,此前因频段授权问题沉寂许久的LoRa技术低调很多。
然而,随着阿里巴巴和中国铁塔合作,以及腾讯等互联网巨头宣布加入LoRa联盟的消息又为该产业注入一支“强心剂”,LoRa技术或将在国内迎来又一个春天。
LoRa的一大特点是在同样功耗下比其它无线方式传播的距离更远,实现了低功耗和远距离的统一,LoRa网络主要由基站(也可以是网关)、服务器、LoRa终端和物联网云四部分组成,其特点是应用端和服务器端数据双向传递。
LoRa的优势是超低功耗和多信道数据传输,增加了系统数据容量,网关和终端系统能够支持测距和定位,非常适用于位置敏感的应用。
LoRa拥有着阿里、腾讯、谷歌等的支持,可直接获得围绕在这些头部互联网玩家周围的生态支持。
可以预见,在未来的室内场景中,NB-IoT与LoRa无疑将依托各自的生态进行长期的龙争虎斗。
NB-IoT和LoRa对比
(1) 频段、成本、服务质量
NB-IOT和蜂窝通信使用的是运营商提供的授权频段,因为是专门划分的频段,因此干扰相对要少很多,虽然实际应用中会收取一定的通信费用,但是相应的也会提供更好的信号服务质量,安全性和认证。而且针对目前蜂窝网络基站的建成更有利于快速大规模应用。
LoRa工作在Sub-1G的非授权频段,无需申请便可以建立网络设备,相对来说网络架构简单,而且实际应用中不需要额外付通信费用,但是因为是开放频段,所以实际应用非常广泛,容易受到其他相同频段设备的干扰。
(2) 通信距离
NB-IOT信号覆盖范围取决于其基站密度和链路预算,借助前期的资源优势,能够实现比LoRa更广的范围覆盖和更好的QoS,且NB-IoT自身具有高达164dB的链路预算,使其传输距离可达15km~20km。
LoRa使用线性调频扩频调制技术,既保持了像FSK(频移键控)一样的低功耗特性,也显著增加了通信传输距离,从而提高网络效率和抗干扰能力,即不同扩频序列的终端在使用相同的频率同时发送时不会相互干扰,在此基础上研发的网关能实现多路并行的数据接受,大大扩展了网络容量。LoRa节点的传输距离可达 12~15 km覆盖范围(空旷郊区环境,市区环境传输距离会下降)。
(3) 低功耗、电池寿命
低功耗是物联网的指标之一,关于电池寿命方面需要考虑协议内容和节点电流消耗两个重要因素。
NB-IOT同步协议的节点必须定期地联网,所需要的“峰值电流”比采用非线性调制的LoRa多出了几个数量级,尤其是在唤醒后请求基站到接入服务器的过程中,会存在大量电池电量的消耗。
LoRa是基于ALOHA协议的异步通信方式,因此可以根据具体应用需求进行精准的休眠时间设定,达到充分利用电池电量的目的。
(4) 设备成本
对终端节点来说,LoRa相比NB-IOT更加简单,更容易开发,NB-IOT的协议和调制机制比较复杂,需要更复杂的电路设计和更多的花费,同时NB-IOT采用授权频段,通信需要收取一定的费用。
通过以上的分析,LoRa和NB-IoT最大的区别是:NB-IoT是工作在蜂窝授权频段上,网络由运营商进行部署和维护,为保证能与基站进行正常的通信以及工作,有必要在产品实际部署之前对其功能进行有效的验证。
而LoRa是非蜂窝网络,其标准细节的非公开性,使得产生用于验证的标准信号是个难点。LoRa可以利用传统的信号塔、工业基站甚至是便携式家庭网关来进行。构建基站和家庭网关价格便宜。在成本上来看,LoRa无线模块和NB-IoT无线模块成本相差不大,但在隐形成本上NB-IoT明显是要高于LoRa无线模块。
NB-IoT和LoRa目前都还处于发展的起步阶段,需要各方投入和共同发展。当大规模部署成为可能的时候,NB-IoT和LoRa的模组成本也会进一步降低。就技术方案而言,在短时间内,NB-IoT和LoRa肯定会并行,各有优点、各有缺点,很难说谁压倒谁;但是,如果受到技术方案以外的因素影响,比如赢利模式的创新,与应用行业的紧密结合,借助行业的影响力,两者都有可能率先占据市场。
3 Kittenblock中快速上手IOT31 加载IOT插件
插件已经成功加载:
32 建立IOT本地服务器
我们重新复习下MQTT物理模型:
1首先物联网肯定有一台服务器。不然那些要联网的设备把接收到的数据发给谁呢?服务器的作用就是接收数据,处理数据,分发数据
2多个联网的设备。它们的作用就是给服务器发送数据,或者接受服务器的数据。
本节实验,我们用我们的Kittenblock将本机电脑设置为IOT本机服务器,并且本机也作为一个联网的客户端,对服务器进行消息发送
为了方便学校上课场景(连接外网服务器不方便),我们可以直接通过Kittenblock后台建立起IOT本地服务器。
刚建立器IOT本机服务器,设备列表是空的,当然因为没有设备连接到本地服务器上
33 连接服务器
拖拽积木,设备的ID名称可以自由填写,这个名称是显示在服务器上的
更改完信息后,记得点击下积木块,才会执行这条指令
回到本地服务器的列表查看,可以看到设备CCFIVE已经连上上服务器了
34 订阅话题
设备已经与服务器成功连接后,我们需要进行话题订阅,话题的形式一般是“/”+英文,当然不用“/”也是OK的
回到本地服务器的列表查看,可以看到设备CCFIVE已经订阅了"/hello"的话题
35 话题广播与接收
因为我们现在只有一台设别,所以话题我们自己发送自己接收,我们写一个接收程序,让舞台的小喵说出来
话题发送与接收
现象结果:
36 多台电脑MQTT相互通讯
如果你的实验环境下有多台设备,不妨将多台设备都连接到同一个服务器上,例如下图电脑A、B、C都连接到1921680117上,然后对应向共同的话题推送消息,这时候其它设备如果也订阅了这个话题,它也会收到消息更新。
MQTT 协议 是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。
常用于 IOT 物联网和一些需要服务端主动通知客户端的场景。
1 导入依赖
2 创建 MqttHelper 辅助类,设置回调监听
3 连接 MQTT
连接成功或失败,以及中途的连接掉线,会触发 OnMqttStatusChangeListener 回调
4 MQTT 连接状态监听
5 MQTT 收发消息监听
onSubMessage 订阅的消息回调,因为存在订阅多个 topic 的情况,所以回调能知道是来自哪个 Topic 的消息;
onPubMessage 发布的消息回调,用于确认发布的消息是否发送成功。
6 MQTT 订阅 Topic
需要在 MQTT 连接成功后才能订阅 topic,否则订阅 Topic 不成功,收不到对应消息
7 MQTT 取消订阅 Topic
8 MQTT 发布消息
9 MQTT 断开连接
10 通知设置
由于 MQTT 启动了一个 Service,而 Android 80 以上对于后台 Service 限制时长 5 秒;所以将 MqttService 绑定到 Notification 上成为了一个前台通知;通知的标题和内容显示可以在 stringsxml 中设置,对应属性如下:
Android 80 及以上开启前台服务绑定到通知,80 以下默认不启用,可将 mqtt_foreground_notification_low_26 设为 true,将 80 以下设备也开启前台通知服务
创建 MQTT 实例时需要传送参数 MqttOptions,下面将介绍下部分参数;
1 Topic
MQTT 是一种发布/订阅的消息协议, 通过设定的主题 Topic,
发布者向 Topic 发送的 payload 负载消息会经过服务器, 转发到所有订阅
该 Topic 的订阅者
通配符 : 假想移动端消息推送场景,有的系统消息是全体用户接收,有的消息是 Android 或 iOS 设备接收, 又或者是某些消息具体推送到用户,当然, 对应的多种类型消息可以通过多订阅几个对应的 Topic 解决,也可以使用通配符;
通配符有两个, " + " 和 " # ", 与正斜杠 " / " 组合使用;加号只能表示一级Topic, 井号可以表示任意层级 Topic; 例如: 订阅 Topic为 " System/+ ", 发布者发布的 Topic 可以是 System、System/Android、System/iOS; 但是不能是 System/iOS/123, 而订阅的 Topic 如果是" System/# " 则可以收到;
注意,只有订阅的 Topic 才可以使用 通配符, 发布和遗嘱的 Topic 不能包含通配符
2 ClientID
发布者和订阅者都是属于客户端, 客户端与服务端建立连接之后,发送的第一个报文消息必须是 Connect 消息,而 Connect 的消息载荷中必须包含 clientID 客户端唯一标识;
如果两个客户端的 clientID 一样, 则服务端记录第一个客户端连接之后再收到第二个客户端连接请求,则会向一个客户端发送 Disconnect 报文断开连接, 并连接第二个客户端, 而如果此时设置了自动重连, 第一个客户端再次连接,服务端又断开与第二个的连接, 连上第一个客户端, 如此将导致两个客户端不断的被挤掉重连
注意: clientID 使用的字符最好是 大小写字母和数字, 长度最好限制在[1, 23] 之间;
3 遗嘱消息
可选参数, 客户端没有主动向服务端发起 disconnect 断开连接消息,然而服务端检测到和客户端之间的连接已断开, 此时服务端将该客户端设置的遗嘱消息发送出去
应用场景: 客户端因网络等情况掉线之后, 可以及时通知到所有订阅该遗嘱 Topic 的客户端;
遗嘱 Topic 中不能存在通配符
4 Session
客户端和服务端之间建立的会话状态, 一般用于消息保存, 如果设置清除 Session,则每次客户端和服务端建立连接会创建一个新的会话,之前连接中的消息不能恢复,
而设置不清除会话, 对应发布者发送的 qos 为 1和2 的消息,还未被订阅者接收确认,则需要保存在会话中, 以便订阅者下次连接可以恢复这些消息;
注意: Session 存储的消息是保存在内容中的, 所以如果不是重要的消息,最好是设置清除 Session, 或者设置 qos = 0;
5 心跳包
标识客户端传输一次控制报文到下一次传输之间允许的空闲时间;在这段时间内,如果客户端没有其他任何报文发送,必须发送一个 PINGREQ 报文到服务器,而如果服务端在 15 倍心跳时间内没有收到客户端消息,则会主动断开客户端的连接,发送其遗嘱消息给所有订阅者。而服务端收到 PINGREQ 报文之后,立即返回 PINGRESP 报文给客户端
心跳时间单位为秒,占用2个字节,最大 2^16 - 1 = 65535秒(18小时12分钟15秒),设置为 0 表示不使用心跳机制; 心跳时间一般设置为几分钟或几十秒即可,时间短点可以更快的发出遗嘱消息通知掉线,但是时间短会增加消息频率,影响服务端并发; 微信长连接为 300 秒,而三大运营商貌似也有个连接时间最小的为 5 分钟。
6 qos
服务质量等级 qos 对应两部分,一是客户端到服务端发送的消息, 一是服务端到客户端订阅的消息; 从发布者到订阅者实际 qos 为两段路中 qos 最小的。
qos 可选值 0(最多交付一次)、1(最少交付一次)、2(正好交付一次);
qos = 0 :接收方不发送响应,发送方不进行重试;发送方只管发一次,不管是否发成功,也不管接收方是否成功接收,适用于不重要的数据传输;
qos = 1 :确保消息至少有一次到达接收方,发送方向接收方发送消息,需要等待接收方返回应答消息,如果发送方在一定时间之内没有收到应答,发送方继续下一次消息发送,直到收到应答消息,删除本地消息缓存,不再发送;所以接收方可能收到1-n次消息;适用于需要收到所有消息,客户端可以处理重复消息。
qos = 2 :确保消息只一次到达接收方,发送方和接收方之间消息处理流程最复杂;
Mqtt Qos 深度解读 和 MQTT协议QoS2 准确一次送达的实现
7 payload 负载消息
字节流类型, 是 MQTT 通信传输的真实数据
8 保留消息
发布消息时设置, 对应参数 retain, 服务端将保留对应 Topic 最新的一条消息记录; 保留消息的作用是每次客户端连接上线都会收到其 Topic 的最后一条保留消息, 所以可能存在网络不稳定,频繁掉线重连,每次重连重复收到保留消息;
可以向对应的 Topic 发送一条 空消息,用于清除保留消息。
MQTT 服务搭建 Apache Apollo 服务器 搭建 MQTT 服务
Github 仓库
mqtt 协议
物联网其实是互联网的一个延伸,互联网的终端是计算机(PC、服务器),我们运行的所有程序,都是计算机和网络中的数据处理和数据传输,除了计算机外,没有涉及任何其他的终端(硬件)。
物联网的本质还是互联网,只不过终端不再是计算机(PC、服务器),而是嵌入式计算机系统及其配套的传感器。这是计算机科技发展的必然结果,为人类服务的计算机呈现出各种形态,如穿戴设备、环境监控设备、虚拟现实设备等等。只要有硬件或产品连上网,发生数据交互,就叫物联网。
物联网就业机会非常多,因为物联网技术应用非常广泛,例如:
1、智能家居;智能家居是利用先进的计算机技术,物联网技术,通讯技术,将与家具生活的各种子系统有机的结合起来,通过统筹管理,让家具生活更舒适,方便,有效,与安全。
2、智能交通
3、智能医疗
4、智能电网;智能电网是在传统电网的基础上构建起来的集传感、通信、计算、决策与控制为一体的综合数物复合系统,通过获取电网各层节点资源和设备的运行状态,进行分层次的控制管理和电力调配,实现能量流、信息流和业务流的高度一体化,提高电力系统运行稳定性,以达到最大限度地提高设备效利用率,提高安全可靠性,节能减排,提高用户供电质量,提高可再生能源的利用效率。
5、智能物流
扩展资料
物联网是新一代信息技术的重要组成部分,也是"信息化"时代的重要发展阶段。其英文名称是:"Internetofthings(IoT)"。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。
物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新20是物联网发展的灵魂。
活点定义:利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。物联网是互联网的延伸,它包括互联网及互联网上所有的资源,兼容互联网所有的应用,但物联网中所有的元素(所有的设备、资源及通信等)都是个性化和私有化。
随着物联网技术的高速发展,人们的生活进入了智能化的阶段。本文分享了一种基于物联网技术的远程控制方法,欢迎大家共同探讨。
1、 远程控制原理一,原理框图如下所示:
此种方法,不需要数据库,因此只能实现较少接入设备,实时的查询和控制,如果设备长时间不在线就可能控制失败,(当然如果服务软件一直不清除命令的数据记录,也能够保存一段时间,直至服务器断电或者服务软件关闭,但是一般为了设备的稳定运行,服务软件不会一直保存控制命令,会定时清除并释放相应内存。)
2、 远程控制原理二,原理框图如下所示:
此种方法,手机控制端直接和服务器上面的数据库进行通讯,服务软件定时去在数据库里面查询有无相应设备的数据,并发送给设备进行通讯和控制。这种模式是大多数商用模式的原型,可以同时接入更多的设备,因为设备的信息都在数据库里面,服务软件可以分时进行处理,甚至的软件异常关闭、重启也不影响用户数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)