腾讯 科技 讯 9月18日消息,腾讯宣布将开源自主研发的轻量级物联网实时 *** 作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。
据权威资料显示,全球物联网市场规模发展迅猛,2018年,仅国内物联网市场容量已经超过1万亿,预计2020年国内物联网市场容量可望超过15万亿。作为物联网整个产业链重要一环,终端侧物联网 *** 作系统由于直接对接底层物联网设备,已经成为构建整个物联网生态的关键。
腾讯物联网团队表示:“将腾讯自主研发的物联网 *** 作系统TencentOS Tiny开源,不仅可以将腾讯在物联网领域的技术和经验和全球开发者分享,还能够汲取全球物联网领域的优秀成果和创新理念,最终推动整体物联网生态的繁荣以及万物智联时代的到来。”
腾讯云构筑起全链条IoT云开发能力
在全面上云的背景下,物联网设备也不例外。借助TencentOS tiny提供的更简单的软件接口,亿级物联网设备上云的门槛降降进一步降低,从而帮助物联网开发者能够更便捷的使用云端海量的计算、存储资源,以及先进的AI和大数据算法模型,有效支撑众多前沿物联网技术在智慧城市、智能家居、智能穿戴、车联网等行业的加速落地。
同时,随着TencentOS tiny的开源,结合腾讯云物联网开发平台IoT Explorer,加上之前已经建设完成的国内最大规模LoRa网络,腾讯云物联网已经彻底打通从芯片通讯开发、网络支撑服务,物理设备定义管理,数据分析和多场景应用开发等一站式、全链条IoT云开发服务能力,物联网开发将变得更为简单、高效。
近年来,腾讯在开源上的步伐不断加快,截至9月,腾讯自主开源项目已达84个,Star数超过24万。在物联网领域,腾讯不仅通过开源和开放持续构建良性的物联网生态体系,在产品易用性和开发效率上,腾讯物联网团队也都做了许多针对性优化。
体积
最小仅18KB
、功耗
最低2微安
TencentOS tiny 提供业界最精简的RTOS内核,最少资源占用为RAM 06 KB,ROM 18 KB。在类似烟感和红外等实际场景下,TencentOS tiny 的资源占用仅为:RAM 269 KB、ROM 1238 KB,极大地降低硬件资源占用。同时,看似“麻雀虽小”,却“五脏俱全”。对于复杂的任务管理、实时调度、时间管理、中断管理、内存管理、异常处理等功能,TencentOS tiny都可支持。
在功耗上,TencentOS tiny还应用了高效功耗管理框架,可以针对不同场景降低功耗。比如TencentOS tiny内部的定时机制在发现业务没有运行的时候,会自动启动休眠状态,有效降低功耗。根据实测的数据显示,TencentOS tiny最低的休眠功耗仅有2微安。开发者也可以根据业务场景选择可参考的低功耗方案,降低设备耗电,延长设备寿命。
独具创意的调试功能,助力开发者快速排障
由于很多物联网的终端设备在实际场景下,位于荒郊野外或者很远的地方,出现问题的时候非常难定位。为了能够减少这个问题,当终端出现问题的时候,TencentOS tiny会把一些故障信息记录下来,当它再重启的时候首先把错误数据上报云端,这个功能极大的方便了开发者查找故障原因。从而远在千里之外,就可以快速排除故障。
另外,TencentOS tiny的内核以及其上层的物联网组件框架,都做了高度解耦,保证和其它模块之间连接的适配。同时,TencentOS tiny 还提供多种编译器快速移植指南和移植工具,帮助开发者向新硬件开发板的一键移植,省时省力,有效提升开发效率。
目前,TencentOS tiny已支持意法半导体、恩智浦、华大半导体、瑞兴恒方、国民技术等主流厂商多种芯片和模组。有机会,但是建议不要做泛和大,从垂直领域出发比较好,为啥这样说呢?原因如下。
1、各大运营商、互联网公司、设备制造商等等企业都在做综合性的平台。
国内有阿里、华为、三大运营商、百度、腾讯、小米、海尔、京东、中电科等。
国外有亚马逊、IBM、SAP、
谷歌、GE、西门子、博世等。
通过以上名单可以发现,这些公司的特点。
这说明物联网是未来的发展方向,是值得花钱而且花大钱去布局的事。
2、做综合性的物联网平台,要求的资金、资源和技术要求会很高。因为是综合性平台,那么你得搞清楚各行各业的所使用物联网平台的诉求,行业标准等等,不然你的用户群体就会很窄。
3、面对的竞争对手的实力都不可小觑,你要考虑的是现阶段进入这个领域做平台在技术上能否与以上那些公司一较高下呢?你想投入多少时间和精力去做平台呢?人家都可是布局好几年了,踩了很多坑积累了很多经验,且现在平台已具有一定规模,形成了一定的行业壁垒,特别是华为,据我所知,国内运营商的平台都离不开华为的支持。
物联网平台的玩家之多,让人惊叹啊,那么咱们还有没有机会呢?答案是肯定的,有!但我的建议走垂直领域。
物联网的领域很广泛,所以专业的物联网平台未来会有很多,而这种综合性的物联网平台经过几年的厮杀后,最终也就剩下几家巨头。何谓垂直领域的物联网平台呢?
最基本的就是行业垂直,比如工业、农业、教育、医疗、安防、建筑、家居、交通运输等领域。
以上玩家也有做垂直领域的,比如ABB/西门子/GE/普奥云/博世等,他们专注工业领域,爱立信、诺基亚专注通信领域,而互联网巨头则是走综合性的较多,因为他们有一定客户基础、服务器资源和用户群体,可以面对企业和开发者提供平台服务,海尔/小米等企业就是在智能家居领域发力的。
不出意外,安防领域的海康、大华都在对自己的领域来架设相应的物联网平台。
从专业的角度来看物联网平台类型有功能呢?
物联网平台有五种类型
1网络连接,网络连接平台以物联网系统的网络组件为中心。它们为用户提供保持设备在线所必需的软件、连接硬件和数据指导。它们的网络通常依赖现有的运营商服务和WI-FI,并以一种便于物联网设置的方式配置网络连接。
有机会的,物联网的网少不了平台,没有平台就没有物联网。平台提供基于数据的存储、管理等。数据挖掘、数据分析等都基于云平台来计算。
物联网平台从另一个角度来看,是数据的“聚合”平台,通过大数据分析,给决策提供状态、趋势和决策等。
随着5G时代的到来,“边缘计算”一词越来越多的出现在大众视野。今天我们就来讲讲Arex算力资源平台如何利用“边缘计算”制霸未来物联网20。
什么是边缘计算?
首先我们介绍一下什么是边缘计算:边缘计算是分布式计算技术的一种,分布式系统的崛起催生边缘计算平台和新的网络构架分布式AI会在最后一英里网络中增加更多的计算、智能和处理/存储能力,将引发移动端硬件和算力变革。
在这种配置中,人工智能引擎将依赖于大量物联网传感器和执行器,收集和处理大量的 *** 作现场数据。海量数据将为“本地化”的边缘计算AI引擎提供燃料,这些引擎将运行本地进程并在现场做出决策。
因此网络需要另一种水平的实时边缘计算、数据收集和存储,将推动人工智能处理到网络边缘。这将完成云边缘智能和网络化计算机的循环, 并通过基于区块链的智能合约来完成数据授权和业务运转。
物联网中边缘计算与区块链的结合是大势所趋,会将当前的传统物联网完全颠覆掉。
为什么这么说呢?
传统物联网将被淘汰
伴随着近年来通用计算机设备的飞速发展,各类自动化的智能设备开始进入人们视野,背后是廉价传感器和控制设备的爆炸性增长。传统物联网系统基于服务器/客户端的中心化架构。即所有物联设备都通过云实现验证、连接和智能控制。
中心化的物联网架构存在三个问题。
一是云计算成本,例如在家庭应用场景下,两台家电相距不到一米,也需要通过云端进行沟通。数据汇总到单一的控制中心,企业所销售的物联设备越多,其中心云计算服务支出的成本会越大。由于终端物联设备竞争愈加激烈,利润走低,中心计算成本矛盾会越来越突出。
其次,中心化的数据收集和服务方式,无法从根本上向用户保证数据会合法使用。用户的数据保护完全依靠企业单方面的承诺,难以进行有效的监管。
第三,中心化物联生态系统中,一个设备被攻陷,所有的设备会受到影响。例如《麻省理工 科技 评论》2017年所指出的僵尸物联网,可以通过感染并控制摄像头、监视器等物联设备,造成大规模网络瘫痪。
区块链技术重塑物联网
区块链技术可以利用区块链独特的不可篡改的分布式账本记录特性,构建底层通讯节点、建立链上算力生态、依托分布式存储用于计算服务等区块链技术的综合应用,将全球闲置算力整合起来,通过构建“边缘算力”模式为有需求的用户提供d性可扩容的算力交易、算力租赁等服务。为用户打造一个开放、公平、透明和低门槛的去中心化算力资源共享平台,同时结合丰富的行业经验为全球客户提供更优质的服务。
简单来说就是Arex算力资源平台利用分布式计算模式将全球的闲置算力进行整合,从而构建出高数量级的“边缘算力”,并以此为算力源对需要的应用场景进行高能输出。
边缘算力的应用场景到底有多广阔?
边缘计算将数据处理从云中心转移到网络边缘,计算和数据存储可以分散到互联网靠近物联终端、传感器和用户的边缘,不仅可以缓解云带宽压力,还可以优化面向感知驱动的网络服务架构。(例如家里的空调、热水器与冰箱、安防摄像头等可以通过边缘计算进行协调运行,即使是在连接不上云服务器的情况下,也能确保最佳的节能和服务状态。)
第三方数据分析机构IDC预测,在2020年全球将有约500亿的智能设备接入互联网,除了目前大火的5G通信外,包括大数据人工智能穿戴产品、无人驾驶技术、智慧城市服务等,其中40%的数据需要边缘计算服务。由此可见边缘计算有着强大市场潜力,也是当前各服务商争夺的热点。
无人驾驶技术:
无人驾驶
智能穿戴设备:
智慧城市:
要回答物联网云平台是不是还有机会的问题,首先要搞清楚几方面的状况:
一是定位。从技术角度来说,你是做物联网云平台的那一层,IaaS、PaaS、SaaS,单做某层或是混合?而技术的定位取决于:(1)你觉得那一块是你发掘出的空白或者你觉得有前景?(2)为你的客户提供什么样的价值(3)你想做什么样的商业模式。这三个问题依次定推,最后才决定了你了的技术定位和技术架构。找准定位,这是你开始一切的起点。
二是资源。这个我就不多说了,包括资金、技术、人脉、产业链合作,这是你保障自己可以开始有效行动的基础。
三是团队。团队是真正去实施理想的载体,可以是几个人的创业“作坊”,也可以是有一定规模的公司,也可以是松散的联盟组织。
其实,物联网的市场何其大,需要的云服务何其多,宏观市场和细分市场规模都足够你有所作为。做不做,做不做得好在于自己。至于,做不做设备终端,就看你是怎么玩了。
机会很大
物联网平台承上启下,是物联网产业链枢纽。按照逻辑关系和功能物联网平台从下到上提供终端管理、连接管理、应用支持、业务分析等主要功能。
通信技术发展促进连接数迅速猛增,物联网迎来告诉发展引爆点
连接数告诉增长是物联网行业发展基础
物联网发展路径为连接--感知--智能,目前处于物联网发展第一阶段即物联网连接数快速增长阶段。到2018年,全球物联网连接数将超过手机连接数。
物联网发展第一阶段:物联网连接大规模建立阶段,越来越多的设备在放入通信模块后通过移动网络(LPWA\GSM\3G\LTE\5G等)、WiFi、蓝牙、RFID、ZigBee等连接技术连接入网,在这一阶段网络基础设施建设、连接建设及管理、终端智能化是核心。爱立信预测到2021年,全球的移动连接数将达到275亿,其中物联网连接数将达到157亿、手机连接数为86亿。智能制造、智能物流、智能安防、智能电力、智能交通、车联网、智能家居、可穿戴设备、智慧医疗等领域连接数将呈指数级增长。该阶段中最大投资机会主要在于网络基础设施建设、通讯芯片和模组、各类传感器、连接管理平台、测量表具等。
物联网发展第二阶段:大量连接入网的设备状态被感知,产生海量数据,形成了物联网大数据。这一阶段传感器、计量器等器件进一步智能化,多样化的数据被感知和采集,汇集到云平台进行存储、分类处理和分析,此时物联网也成为云计算平台规模最大的业务之一。根据IDC的预测, 2020年全球数据总量将超过40ZB(相当于4万亿GB),这一数据量将是2012年的22倍,年复合增长率48%。这一阶段,云计算将伴随物联网快速发展。该阶段主要投资机会在AEP平台、云存储、云计算、数据分析等。
物联网发展第三阶段:初始人工智能已经实现,对物联网产生数据的智能分析和物联网行业应用及服务将体现出核心价值。Gartner 预测2020 年物联网应用与服务产值将达到2620 亿美元,市场规模超过物联网基础设施领域的4 倍。该阶段物联网数据发挥出最大价值,企业对传感数据进行分析并利用分析结果构建解决方案实现商业变现,同时运营商坐拥大量用户数据信息,通过数据的变现将大幅改善运营商的收入。该阶段投资者机会主要在于物联网综合解决方案提供商、人工智能、机器学习厂商等
物联网云平台是一个专门为物联网定制的云平台,物联网与普通的互联网是不同的:物联网终端设备比普通互联网手机端,电脑端多出几个数量级;普通互联网对>
之前的涉及的物联网项目中使用的: BLE 低功耗蓝牙(蓝牙40), 支持android 43以上的手机
主从关系: BLE低功耗蓝牙只能做从端设备 ,一个蓝牙主端设备,可同时与7个蓝牙从端设备进行通讯
1)低功耗
低功耗的原理:
1\低功耗蓝牙仅使用了3个广播通道,传统蓝牙技术采用 16~32 个频道
2\每次广播开启时间也由传统的 225ms 减少到 06~12ms(毫秒)
2)传输距离极大提高
传统蓝牙传输距离为 2~10m,而蓝牙40的有效传输距离可达到 60~100m
3)安全性
使用AES-128 CCM加密算法进行数据包加密和认证。
更多BLE蓝牙的解析参考博客 : BLE40教程一 蓝牙协议连接过程与广播分析
添加权限
打开蓝牙
1先拿到BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(ContextBLUETOOTH_SERVICE);
2再拿到BluetoothAdapter bluetoothAdapter = bluetoothManagergetAdapter();
判断是否打开蓝牙
未打开d出 系统d框 ,除了 魅族手机 是打开系统设置
设备/手机都是蓝牙信号
在回调方法中:
一般在扫描的过程中,我们还会设置 设备过滤原则 (因为我只想要搜索到我们想要的设备,忽略无关设备)
如:从 scanRecord -- beacon -- beacontype == 0xFF代表Manufacture,通过与嵌入式软件定义 自己的 Manufacture值即可
用BluetoothDevice得到BluetoothGatt:
断连:
关键问题:连接后一般要做什么事
( 必须在刚连接成功后2秒内app写一个值给设备,否则会被设备断开连接)
主要是读写 characteristic
gattwirteCharacteristic(mCurrentcharacteristic);
gattreadCharacteristic(characteristic);
bluetoothGattsetCharacteristicNotification(data, true);
真实工作中使用的蓝牙库BlueToothKit请参考我的另一篇博客:
android蓝牙入门知识和优秀蓝牙第三方库BluetoothKit的使用
低功耗蓝牙开发算是较偏技术,实际开发中坑是比较多的,网上有很多文章介绍使用和经验总结,但是有些问题答案不好找,甚至有些误导人,比如 :获取已经连接的蓝牙,有的是通过反射,一大堆判断,然而并不是对所有手机有用,关于Ble传输速率问题的解决,都是默认Android每次只能发送20个字节,然而也并不是,,,下面进入正文。
这里用的是 Android50 新增的扫描API,
这里说一下,如果做蓝牙设备管理页面,可能区分是否是已连接的设备,网上又通过反射或其他挺麻烦的 *** 作,也不见得获取到,官方Api 就有提供
与外围设备交互经常每次发的数据大于 mtu的,需要做分包处理,接收数据也要判断数据的完整性最后才返回原数据做处理,所以一般交互最少包含包长度,和包校验码和原数据。当然也可以加包头,指令还有其他完整性校验。下面分享几个公用方法:
我自己封装的一个BleUtil ,因为涉及跟公司业务关联性太强(主要是传输包的协议不同)就先不开源出来了,如果这边文章对大家有帮助反馈不错,我会考虑上传个demo到github供大家使用,
在这先给大家推荐一个不错 Demo ,里面除了没有分包,协议,和传输速率。基本的功能都有,而且调试数据到打印到界面上了。最主要是它可以用两个个手机一个当中心设备一个当外围设备调试。
首先传输速率优化有两个方向,1 外围设备传输到Android 。2 Android传输到外围设备。
我在开发中首先先使用上面那位仁兄的demo调试,两个Android 设备调试不延时,上一个成功马上下一个,最多一秒发11个20字节的包。
后来和我们的蓝牙设备调试时发现发送特别快,但是数据不完整,他蓝牙模块接收成功了,但是透传数据到芯片处理时发现不完整,我们的硬件小伙伴说因为 波特率 限制(差不多每10字节透传要耗时1ms)和蓝牙模块的buff (打印时是最多100byte,100打印的)限制,就算蓝牙模块每包都告诉你接收成功,也是没透传完就又接收了。后来通过调试每次发20K数据,最后是 Android 发是 20字节/130ms 稳定。给Android 发是 20字节/ 8ms 。 (天杀的20字节,网上都是说20字节最多了)
后来看了国外一家物联网公司总结的 Ble 吞吐量的文章(上面有连接),知道Android 每个延时是可以连续接收6个包的。就改为 120字节/ 16ms (为啥是16ms,不是每次间隔要6个包吗,怎么像间隔两次,这时因为波特率影响,多了5个包100字节,差不多 我们的单片机透传到蓝牙模块要多耗时不到10ms )
而Android 发数据可以申请 我们设备的mtu 来得到最多每次能发多少字节。延时还是130ms,即:241字节/ 130ms 提高12倍,这个速度还可以。
根据蓝牙BLE协议, 物理层physical layer的传输速率是1Mbps,相当于每秒125K字节。事实上,其只是基准传输速率,协议规定BLE不能连续不断地传输数据包,否则就不能称为低功耗蓝牙了。连续传输自然会带来高功耗。所以,蓝牙的最高传输速率并不由物理层的工作频率决定的。
在实际的 *** 作过程中,如果主机连线不断地发送数据包,要么丢包严重要么连接出现异常而断开。
在BLE里面,传输速度受其连接参数所影响。连接参数定义如下:
1)连接间隔。蓝牙基带是跳频工作的,主机和从机会商定多长时间进行跳频连接,连接上才能进行数据传输。这个连接和广播状态和连接状态的连接不是一样的意思。主机在从机广播时进行连接是应用层的主动软件行为。而跳频过程中的连接是蓝牙基带协议的规定,完全由硬件控制,对应用层透明。明显,如果这个连接间隔时间越短,那么传输的速度就增大。连接上传完数据后,蓝牙基带即进入休眠状态,保证低功耗。其是125毫秒一个单位。
2)连接延迟。其是为了低功耗考虑,允许从机在跳频过程中不理会主机的跳频指令,继续睡眠一段时间。而主机不能因为从机睡眠而认为其断开连接了。其是125毫秒一个单位。明显,这个数值越小,传输速度也高。
蓝牙BLE协议规定连接参数最小是5,即725毫秒;而Android手机规定连接参数最小是8,即10毫秒。iOS规定是16,即20毫秒。
连接参数完全由主机决定,但从机可以发出更新参数申请,主机可以接受也可以拒绝。android手机一部接受,而ios比较严格,拒绝的概率比较高。
参考:
在iOS和Android上最大化BLE吞吐量
最大化BLE吞吐量第2部分:使用更大的ATT MTU
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)