-
我参加了活动,很快就学到了知识,完成很快。
-
一、前言近年来,物联网引领了继计算机、互联网之后世界信息产业的第三次发展浪潮,且逐步在各行各业得到更广泛的应用。物联网的定义是万物互联,表示任何设备都可以连在一起,进行数据交互。那么物联网到底是什么?设备如何上云?云平台又是什么?很多不是物联网专业的,不是搞嵌入式的或者是刚学习物联网的都不太清楚,虽然概念性的东西百度一大堆,书上也是各种专业词汇,如果无法将这些概念性的东西实体化,最终还是理解不了整个流程,云里雾里。那么接下来以华为云IOT平台为例,从最基础开始一步一步的完成一个智慧路灯的项目开发,让大家对物联网有个详细的理解。本次讲解的智慧路灯是一个真实产品模型,去年我在老家的庭院就安装了一个太阳能智慧路灯,使用了一年多了感觉非常不错。先介绍下这个款太阳能智能路灯支持的功能:(1)支持太阳能充电,也支持接市电。(2)路灯本身支持独立联网,也支持连接WIFI(如果是家里庭院使用,一般可以接自己家里的WIFI,如果有的话)。(3)路灯上有球形监控摄像头,能监控四周。(4)在厂家提供的手机APP上可以远程查看路灯的电量,充电状态,充电强度,环境光强度,环境温度湿度,查看摄像头画面,远程开关灯、拍照等等。 通过湿度的检测,检测到下雨时手机上还会进行弹窗提示。那么本篇文章的目的就很明确了:利用华为云IOT作为云平台,自己购买硬件实现这款路灯的所有功能(不能说完全一样,但是基本功能都要实现出来)。需要使用的到华为云的产品如下:(1)OBS数据存储(存储上传的数据)(2) IoTDA设备接(设备上云)(3)ECS云服务器(搭建流媒体服务器,接收摄像头的RTMP流)(4)数字化大屏--数据可视化DLV二、整体设计思路在进行正式设计开发之前,先把整体的思路捋一捋。2.1 开发流程下面列出本次开发流程:(1). 注册华为云账号,在物联网模块里,创建产品,创建物模型,创建设备。(2). 采用MQTT客户端,以软件来模拟设备的方式登录华为云物联网平台,实现路灯数据的模拟上传。(3). 开发底层硬件代码,完成设备上云的对接。(4). 购买ECS云服务器,搭建NGINX服务器,作为流媒体服务器接收摄像头上传的数据流。(5). 创建OBS数据存储桶,完成数据存储。(6). 创建数据可视化DLV大屏,显示设备上报的数据。2.2 硬件介绍首先说明: 因为本项目并不是商业项目,目的是以智慧路灯产品的功能开发过程来演示一款物联网产品的开发流程。 所以在硬件选型上不考虑成本,能用模块就采用模块实现。本次设计的智慧路灯硬件上分为3个部分:(1)路灯的太阳能充电部分 : 直接采用现成的充电模块 + 锂电池 + 太阳能板。(2)路灯的传感器数据采集部分 : 单片机采用STM32(小熊派) + NBIOT-BC20 + 温湿度传感器DHT11 + 光敏传感器BH1750(3)摄像头监控部分: 采用树莓派4B + 一个USB摄像头来实现(联网就是直接将网线口插家里的路由器),功能上:利用ffmpeg采集声卡声音、摄像头数据编码RTMP格式后上传到华为云ECS服务器,NGINX接收到数据再转成为HLS格式(HTTP协议),再通过数据可视化DLV大屏的HLS播放器控件进行显示播放。2.3 物理网知识点科普在完成实际操作之前,先提前了解一些知识。本次完成的智慧路灯就是一个典型的物联网产品。 物联网主要体现就是万物互联。 这里面的万物一般说的就是设备,比如:家里的冰箱,电风扇,窗帘,或者是外面马路上的行驶的汽车,商店前台的共享充电宝,工厂里运行的机器这些都是设备。互联表示设备之间可以互相连接,进行数据交换。 设备互联之后,数据就能得到共享,不再是单机设备,可以进行联动操作,能发掘出设备的更多价值。物联网里的设备是如何实现互联的?在物联网里要完成设备连接的方式有很多种,比如:GSM(2-3-4-5G,)、NB-IoT,LORA、WIFI,Zigbee、蓝牙、有线方式(485,CAN,RS232,USB)都可以完成设备连接通信。说到这个设备互联,就有人发言了,怎么没看到MQTT,COAP,HTTP这些协议呀? 从事物联网的人员一定有听过NB-IoT,wifi,蓝牙,zigbee,MQTT,COAP这些词。 那么这些协议直接的关系一定是要搞清楚。上面提到的连接方式:WIFI,Zigbee、蓝牙 这些都是物理层的协议,这些都需要硬件芯片模组支持。 而刚才说的MQTT,COAP,HTTP都是应用层协议,也就是纯软件协议,一般是用来对接服务器,对接云平台的。 所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层应用协议。问题: 设备如何上云?设备要上云就需要遵循云平台,云服务器的协议才能进行通信,比如:MQTT协议、HTTP协议等等。 如何才能支持MQTT协议,HTTP协议?可以采用WIFI,GSM、NBIOT模块进行协议转换,通过MQTT协议连接云平台。问题:设备上云后有什么直观的体验?这个可以从生活中的几个实际场景进行体验:(1)智能摄像头:摄像头上云之后,可以在任何地方打开手机查看家里的监控,实时防盗监控,出远门也安心了。(2)空调、窗户、窗帘设备上云:上云之后,在手机里远程控制家里的设备开关。 在炎热的夏天,下班时可以在手机上控制打开空调制冷、关闭窗户,拉上窗帘。 增强体验感。(3)智能鱼缸上云: 可以远程给鱼儿投喂食物,了解鱼缸里水质情况,含氧量,换水等操作,还能通过摄像头查看鱼缸里的情况,出差都能了解家里的情况。(4)智能花盆上云: 手机上随时了解土壤含水量、周围光照度,空间湿度情况,还能通过手机控制水泵进行浇水。(5)智能井盖上云:城市的井盖下都是污水管道,在井盖上可以安装各种检测传感器,上云之后,城市环境管理局可以详细了解到城市每个井盖的详细数据,在地图上可以看到每个井盖的位置。 通过井盖传感器检测可以了解井盖下的有害气体,易燃气体浓度。下暴雨之后,还可以了解那里管道拥堵,可以第一时间排险。还有很多很多的案例..............三、云平台产品、设备、物模型创建3.1 华为云IOT平台介绍华为云物联网平台(IoT设备接入云服务)提供海量设备的接入和管理能力,可以将IoT设备联接到华为云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品。使用物联网平台建造一个完整的物联网解决方案主要包括3部分:物联网平台,业务应用和设备。1,物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户快速构建各种物联网业务应用。2,设备可以通过固网,2G / 3G / 4G / 5G,NB-IoT,Wifi等多种网络接入物联网平台,并使用LWM2M / CoAP或MQTT协议将业务数据上报到平台,平台也可以将控制命令下发给设备。3,业务应用通过调用物联网平台提供的API,实现设备数据采集,命令下发,设备管理等业务场景。物联网平台支持终端设备直接连接,也可以通过工业网关或家庭网关连接;支持多网络接入,多协议接入,系列化代理连接,解决设备接入复杂的微小和碎片化难题;也提供了更丰富完备的设备管理能力,简化了海量设备管理复杂性,减少了人工操作,提升了管理效率。设备+物联网平台+应用事是最为通用的场景,设备将数据上报到IoT平台,IoT平台对设备进行管理,同时针对不同的事件类型,转换数据推送到用户应用,同时应用可以将命令下发到IoT平台,平台可以缓存/实时下发命令给设备。3.2 创建产品从这里就开始手把手操作了,完成云平台产品创建,设备创建,物模型构建,设备上云测试等等。(1) 登录华为云官网没注册账号就先注册(注册了就忽略,直接登录官网地址: https://www.huaweicloud.com/在产品目录下,找到物联网,再找到IOTDA(2)ioTDA页面链接: http://https://www.huaweicloud.com/product/iothub.html(3)查看平台服务器接入地址这个信息对接下来连接华为云物联网平台很重要: 端口: 1883 域名: a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com IP地址: 121.36.42.100(4)创建产品先云平台先创建一个自己的产品模型。根据自己的产品名字,类型填充: 协议选择MQTT协议,数据格式选择JSON格式。下面的设备类型选择自定义类型。点击确认创建成功。(5)创建自定义模型-添加服务ID产品创建之后,在产品选项页面,点击自己的产品,进入产品详情页面。产品模型用于描述设备具备的能力和特性,平台提供多种方式定义产品模型; 如果没有定义产品模型,设备上报数据时平台仅直接转发,不做解析。点击下面的自定义模型按钮,开始创建模型。设置服务ID:(6)添加属性每个设备都有自己的属性。通俗来讲: 属性字段存放设备上传的数据类型。 比如:根据 温度传感器、湿度传感器、光敏传感器采集的数据类型,在设备模型里就需要创建对应的属性字段来存放这些数据类型。接下来就创建属性:【1】温度字段【2】湿度字段【3】光照强度字段【4】路灯的电量【5】路灯的手动开关按钮路灯除了自动模式下可以自动开关灯外,还能能支持云端手动开关控制。 这个按钮字段的访问权限也给成可读可写。(后续的应用侧开发,可能需要修改这个字段)属性字段添加完毕:(7)总结到这里属性字段已经添加成功。 这创建自定义模型这一步里面设置的服务ID和属性字段的名字比较重要。接下来的设备向服务器上传数据时,规定的JSON格式中就需要填服务ID和对应的属性名称。这样服务器收到数据之后,才知道这个数据是给设备的哪一个字段赋值。下面做个总结,方便后续直接拿来使用。 服务ID: LED 属性名称 数据类型 访问方式 描述 Button int(整型) 可读,可写 路灯的手动开关按钮 humidity int(整型) 可读 环境湿度 temperature int(整型) 可读 环境温度 light int(整型) 可读 环境光强度 Power int(整型) 可读 路灯剩余电量 3.3 创建设备前面一步创建的产品模型是一个抽象的框架,在产品下面的设备才对应具体的硬件。 所以,一个产品下可以创建关联很多的设备。(1)注册设备在对应的产品模型下添加设备。创建完成后,保存设备的ID和设备密匙。我的设备密匙如下: { "device_id": "634e3e423ec34a6d03c84bfb_1126626497", "secret": "1126626497" }这个密匙信息就是设备的身份信息,接下来的MQTT协议交互里,就需要通过这个设备身份信息生成MQTT登录参数,也就是MQTT三元组。(2)设备创建成功根据前面的操作,一个新设备就创建好了。目前还没有登录,这里就还是处于未激活状态。(3)生成MQTT登录三元组拿到设备的密匙信息,利用华为云提供的MQTT连接鉴权信息生成工具,生成MQTT鉴权三元组。在线工具的地址:https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/根据界面提示,填入设备密匙,点击Generate,生成信息。得到的信息如下: ClientId 634e3e423ec34a6d03c84bfb_1126626497_0_0_2022101806 Username 634e3e423ec34a6d03c84bfb_1126626497 Password 67ffb4d7ddc66e6292276aefe5bcc3df0448a3883b0438aaa073113185d7ec20接下来就可以利用这3个参数连接设备设备了。(4)利用MQTT客户端模拟设备登录(激活设备)下面使用的这个MQTT客户端是我自己开发的,主要是方便大家使用连接华为云进行测试。在文章最后会附上工具的下载地址。打开MQTT客户端之后,根据界面提示,填入对应的参数: 这些参数都在前面介绍了的。填好之后,点击登录。登录成功,软件会收到云平台的回应:接下来打开云平台的设备页面,查看状态: 目前设备已经在线了 。目前设备已经激活,还没有上传数据。(5)MQTT主题格式说明设备登录激活之后,接下来的步骤就是上传数据到云平台。MQTT里要了解2个操作操作:订阅主题、发布主题。在产品页面,可以看到主题的格式,以及对于主题的用途:【1】订阅主题对于设备而言,一般会订阅平台下发消息给设备 这个主题。设备想接收平台下发的消息,就需要订阅平台下发消息给设备 的主题,订阅后,平台下发消息给设备,设备就会收到消息。主题的格式如下: $oc/devices/{device_id}/sys/messages/down 根据当前的路灯设备,最终的格式: $oc/devices/634e3e423ec34a6d03c84bfb_1126626497/sys/messages/down【2】发布主题对于设备,发布主题,也就显示向云平台上传数据。发布的主题格式如下: $oc/devices/{device_id}/sys/properties/report 根据当前的路灯设备,最终的格式: $oc/devices/634e3e423ec34a6d03c84bfb_1126626497/sys/properties/report发布主题时,需要上传数据,这个数据格式是JSON格式。上传的JSON数据格式如下: { "services": [ { "service_id": <填服务ID>, "properties": { "<填属性名称1>": <填属性值>, "<填属性名称2>": <填属性值>, .......... } } ] }根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。根据这个格式,组合一下智慧路灯一次上传的数据: {"services": [{"service_id": "LED","properties":{"temperature":24,"humidity":60,"light":1200,"Power":80}}]}(6)利用MQTT客户端上传数据到云平台根据得到的主题格式,和数据格式,填入到MQTT客户端软件里发送。发送成功后,打开云平台页面可以查看到上传的数据。到此,一个物联网产品的模型已经完成。四、构建数据可视化服务(DLV)为了方便显示数据可视化服务器,可以利用华为云的数据可视化服务(DLV)来进行展示数据。华为云物联网平台提供了数据转发服务,对于设备上报的数据,可以选择让平台将设备上报数据推送给应用服务器,由应用服务器进行保存;还可以选择让平台将设备上报数据转发给对象存储服务(OBS),由OBS进行存储,进行永久保存。 数据可视化服务(DLV)可以从OBS文件读取数据呈现为可视化报表,实现数据的可视化显示。接下来要完成的任务是: 将路灯上报的数据转发到OBS存储桶里,然后可视化服务DLV再读取数据进行显示。4.1 创建OSB存储桶地址: https://www.huaweicloud.com/product/obs.html对象存储服务(Object Storage Service,OBS)是一个基于对象的存储服务,提供了海量、安全、高可靠、低成本的数据存储能力。(1)选择管理控制台(2)创建桶填充桶信息: 我这里选择的是 华北-北京一我这里因为要长期使用,这里选择1年的购买权。(3)创建成功4.2 配置数据转发规则(1)创建规则选择左侧导航栏的规则>数据转发,单击右上角的创建规则。填充规则转发的信息:参数名参数说明规则名称自定义,如: led_obs。规则描述自定义,如数据转发至OBS服务。数据来源选择“设备属性”。触发事件自动匹配“设备属性上报”。资源空间和上一步创建的产品所在的资源空间保持一致。点击继续设置:(2)设置转发目标单击添加,设置转发目标。这里的区域选择--华北-北京一。 因为前面的OBS桶创建的时候,设置区域设置的是北京一,然后点击授权。授权之后,选择刚才创建的OBS桶,设置存储数据的目录和文件名字。 文件类型选择CSV。下面设置转发的字段: (如果提示没有授权,点击授权即可)这个转发字段就是表示需要存放的数据是那些,对于路灯而言,肯定是需要存储上报的温度、湿度、电量、光照强度的属性的。 这些属性在创建产品的时候设置,设备上报的也是这些属性。这是设备上传一次云平台的完整数据: { "resource": "device.property", "event": "report", "event_time": "20221018T131627Z", "request_id": "5ee95a0c-262d-43c3-8d31-af453f9952ef", "notify_data": { "header": { "app_id": "7211833377cf435c8c0580de390eedbe", "device_id": "634e3e423ec34a6d03c84bfb_1126626497", "node_id": "1126626497", "product_id": "634e3e423ec34a6d03c84bfb", "gateway_id": "634e3e423ec34a6d03c84bfb_1126626497" }, "body": { "services": [ { "service_id": "LED", "properties": { "temperature": 28, "humidity": 62, "light": 1300, "Power": 90 }, "event_time": "20221018T131627Z" } ] } } }如果我的路灯属性里有一个温度属性字段temperature,我想转发设备上传的这个温度字段,就可以这样写: notify_data.body.services[0].properties.temperature后面的存储目标字段,为了好区分,直接填temperature即可。如果要转发湿度字段humidity,就按下面这样写: notify_data.body.services[0].properties.humidity剩下的按照自己的需要转发的填写即可。如果存储数据时,想知道这个数据是那个产品,那个设备上传的,也可以将设备ID和产品ID转发存储起来:格式如下。 notify_data.header.app_id notify_data.header.device_id我这里只是转发了路灯的4个属性字段:确定后,点击设置完成。(3)启用规则设置完成后,点击启用规则。(4)规则修改如果后续需要修改规则,可以点击设置转发目标页面,点击右下角的修改。可以进行规则修改:(5)数据上报测试为了验证转发规则是否生效,接下来使用MQTT客户端多上报几次数据到云平台。上传之后,打开OBS存储桶的控制台页面。打开转发规则存储的OBS桶。找到存储数据的文件,点击下载。下载下来,打开可以看到存储的数据:到此,数据转发,存储已经成功了。4.3 配置数据可视化服务数据可视化服务(Data Lake Visualization)是一站式数据可视化平台,适配云上云下多种数据源,提供丰富多样的2D、3D可视化组件,采用拖拽式自由布局,可以快速定制和应用属于自己的数据大屏。地址:https://console.huaweicloud.com/dlv/?locale=zh-cn®ion=cn-north-1#/dlv/screen/list(1)购买服务套餐新用户使用,有一个月基础版的使用权限。 可以点击体验试用获取。 已购买的,直接点击进入控制台。如果体验期已过,就需要自己购买,我这里选择购买1年的基础版60块钱。注意: 这个区域要选择与OBS存储桶一个区域。 否则到时候用不了。购买成功:(2)新建数据连接使用OBS数据源,可以将大屏与OBS服务建立数据连接,在大屏上展示存储在OBS中的CSV文件的数据。选择CSV文件:这里需要填:访问密钥(AK和SK)。获取步骤如下: 1. 登录管理控制台(或者点击右上角自己的用户名)。 2. 将鼠标移到右上角的用户名上,在下拉列表中单击“我的凭证”。 3. 进入“我的凭证”后,在单击“访问密钥”。 4. 在“访问密钥”页面中,可以查看已有的访问密钥ID(即AK),如果要同时获取AK和SK,可以单击“新增访问密钥”创建并下载访问密钥,下载的密钥文件中包含AK和SK。点击新增访问密匙:创建后下载下来:得到密匙之后,填充数据连接的配置:数据连接创建成功:(3)新建大屏选择空白大屏,填好名字,创建大屏。大屏创建成功:(4)新建数据转换器每个控件的数据源如果需要实时读取,需要新建数据转换器。在上方按钮里选择数据转换器。新建一个名称为led_data的数据转换器。关于数据转换器的使用说明,看这里:https://support.huaweicloud.com/usermanual-dlv/dlv_01_0718.html本次新建转换器,不用改代码,直接默认即可。【1】点击 + 号。【2】输入led_data 按下回车。【3】创建完成(5)编辑大屏界面的话,可以根据控件自行设计。我这里采用文本控件来显示路灯设备上传的数据。选中文本控件之后,右边的数据源选择--CSV文件,选择创建的数据连接,再选择数据转换器,然后下面选择文本里需要显示的字段。【1】 拖一个标题控件,用于显示大屏的名称修改属性后:【2】拖一个表格轮播控件,用来显示设备的数据。然后将控件的尺寸合理的设置一下,点击控件,选择控件数据的来源为CSV文件,然后设置数据连接器,设置映射显示的字段。然后将字段展开,设置每个数据对应的名称。如果觉得字体小了,可以改变字号:如果想改变轮播图的样式,也可以在这里设置:下面是创建好的界面:如果想显示设备上传的数据时间,可以在 规则转发里 ,将设备上报的时间也转发存放到CSV文件里,DLV大屏就可以显示时间了。(6)预览界面(7)发布界面分享链接:https://console.huaweicloud.com/dlv/vision/share/?id=a4b0adf1d0d94b29aafd53fda4a3d0cc&locale=zh-cn®ion=cn-north-1在界面可以看状态已经是发布状态了:然后将链接分享给其他人,都可以通过浏览器打开访问查看效果。这是手机上查看效果:到此,DLV大屏已经配置完毕。五、ECS云服务器部署流媒体服务器智慧路灯上有一个监控摄像头,为了方便查看摄像头推送的视频流,这里购买华为云的ECS服务器,部署NGINX服务器,接收流媒体数据。5.1 购买ECS服务器官网地址: https://www.huaweicloud.com/【1】选择弹性云服务器 ECS。【2】区域选择华北北京一。【3】系统选择CentOS 7.4 。【4】配置网络【5】立即购买5.2 登录ECRS服务器在控制台选择云服务器,直接网页上登录终端即可。5.3 部署NGINX服务器(1) 先安装一些工具yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel gcc gcc-c++ yum install -y vim wget lsof git zip unzip(2)获取Nginx二进制源码rtmp模块暂时只支持Nginx13-15版本,当前就在官网下载Nginx14wget http://nginx.org/download/nginx-1.14.2.tar.gz tar xvf nginx-1.14.2.tar.gz (3)获取nginx-rtmp-modulewget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.1.tar.gz tar xvf v1.2.1.tar.gz(4)编译nginxcd nginx-1.14.2 ./configure --add-module=../nginx-rtmp-module-1.2.1/ --with-http_ssl_module make && make install #建立软链接 ln -s /usr/local/nginx/sbin/nginx /usr/bin特别说明:如果在配置时报错,一般就是缺东西了,安装了再配置。 比如:报错 ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the mo .... 解决: yum -y install pcre-devel yum -y install openssl openssl-devel(5)修改Nginx的配置文件打开/usr/local/nginx/conf/nginx.conf文件,在文件最后面加入下面的配置。 rtmp { server { listen 8888; application live { live on; } } }上面8888是rtmp推流和拉流的端口。修改nginx.conf之后,重启nginx服务: sudo service nginx restart重启服务之后,使用netstat -ltn命令查看TCP监听的端口,确认下Nginx的监听端口是否正常。正常情况,一个是我们自己设置的rtmp服务监听端口8888,还有一个80是Nginx默认的HTTP服务监听端口。接下来可以在浏览器里输入本机IP地址:http://127.0.0.1/,查看Nginx服务开启状态。(6)设置开机启动 wget http://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx chmod +x /etc/init.d/nginx update-rc.d nginx defaults(7)控制nginx服务的3个命令: 启动、停止、重启 service nginx start service nginx stop service nginx restart 或者 nginx -s reload (运行中生效配置文件)(8)进行rtmp推流 服务器搭建好之后,推流和拉流的地址就是: rtmp://<服务器IP地址>:8888/live/<推流存放的目录> 例如: rtmp://127.0.0.1:8888/live/xl(9)nginx保存推流视频文件如果需要让推流上来的文件保存下来后续进行查看历史文件,可以配置nginx进行保存。在原来的/usr/local/nginx/conf/nginx.conf配置文件里rtmp模块中增加新的配置: record all; record_unique on; record_path "./video"; #视频缓存的路径 record_suffix -%Y-%m-%d-%H_%M_%S.flv;完整/usr/local/nginx/conf/nginx.conf里的rtmp模块的配置如下: #RTMP服务 rtmp { server { listen 8888; application live { live on; #开启实时 record all; record_unique on; record_path "./video"; #视频缓存的路径 record_suffix -%Y-%m-%d-%H_%M_%S.flv; } } }配置之后执行命令nginx -s reload重启服务器即可。(10)rtmp直播流转为hls直播流什么是HLS直播流? HLS 全称是 HTTP Live Streaming,是一个由 Apple 公司提出的基于 HTTP 的媒体流传输协议,用于实时音视频流的传输。目前HLS协议被广泛的应用于视频点播和直播领域。 原理介绍 HLS 跟 DASH 协议的原理非常类似。通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件,提供给客户端,让客户端顺序地拉取这些媒体文件播放,来实现看上去是在播放一条流的效果。由于传输层协议只需要标准的 HTTP 协议,HLS 可以方便的透过防火墙或者代理服务器,而且可以很方便的利用 CDN 进行分发加速,并且客户端实现起来也很方便。 HLS 把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS 是音视频的媒体信息。HLS协议编码格式要求: 视频的编码格式:H264 音频的编码格式:AAC、MP3、AC-3 视频的封装格式:ts 保存 ts 索引的 m3u8 文件配置/usr/local/nginx/conf/nginx.conf将RTMP流转为HLS流。在http模块的server配置里增加新的配置: location /live_hls{ types { #m3u8 type设置 application/vnd.apple.mpegurl m3u8; #ts分片文件设置 video/mp2t ts; } #指向访问m3u8文件目录 alias ./m3u8File; #和rtmp模块里的hls_path设置路径一样 add_header Cache-Control no-cache; #禁止缓存 }在rtmp模块的server配置里增加新的配置: hls on; #开启hls hls_path ./m3u8File; #hls的ts切片存放路径 (这是个目录,会自动创建的) hls_fragment 2s; #本地切片长度 hls_playlist_length 6s;#HLS播放列表长度/usr/local/nginx/conf/nginx.conf文件的完整的配置如下: worker_processes 1; #Nginx进程数,建议设置为等于CPU总核数 events { worker_connections 1024; #工作模式与连接数上限 } rtmp_auto_push on; #RTMP服务 rtmp { server { listen 8888; application live { live on; #开启实时 record all; record_unique on; record_path "./video"; #视频缓存的路径 record_suffix -%Y-%m-%d-%H_%M_%S.flv; hls on; #开启hls hls_path ./m3u8File; #hls的ts切片存放路径 hls_fragment 2s; #本地切片长度 hls_playlist_length 6s;#HLS播放列表长度 } } } #HTTP服务 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8099; server_name localhost; location / { root html; index index.html index.htm; } location /live_hls{ types{ #m3u8 type设置 application/vnd.apple.mpegurl m3u8; #ts分片文件设置 video/mp2t ts; } #指向访问m3u8文件目录 alias ./m3u8File; add_header Cache-Control no-cache; #禁止缓存 } location /control{ rtmp_control all; } location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl{ root ./nginx-rtmp-module-master; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }配置之后重启服务器即可。5.4 视频推流测试按照前面的配置,RTMP推流地址和HTTP访问地址如下: 接下来硬件上采集到摄像头数据,通过ffmpeg编码后,直接填写下面地址进行推流即可。 RTMP推流和拉流地址: rtmp://127.0.0.1:8888/live/video01 那么对应的HTTP的访问地址:http://127.0.0.1:8099/live_hls/video01.m3u8说明: 转为HLS流之后,如果浏览器支持HLS流就可以直接输入地址播放。一般手机浏览器都支持的。比如:苹果手机的自带浏览器,QQ浏览器等浏览器都支持直接播放HLS流。PC机的谷歌浏览器默认是不支持的。六、硬件设计硬件上分为两个部分: (1)摄像头部分 (2)太阳能充电+传感器部分5.1 摄像头监控实现(1)硬件组成摄像头远程监控部分采用:树莓派4B + USB摄像头实现。 视频压缩,编码,推流采用ffmpeg实现。(2)编译FFMPEG视频编码,推流需要用到ffmpeg的库,需要先下载ffmpeg源码进行编译,得到xxx.so。由于编译ffmpeg需要一些其他的库,再编译ffmpeg之前先编译其他的一些库。【1】编译安装NASM 下载NASM库: http://distfiles.macports.org/nasm/ pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/nasm-2.14.02.tar.bz2 ./ pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf nasm-2.14.02.tar.bz2 pi@raspberrypi:/media/pi/DS小龙哥/work $ cd nasm-2.14.02/ pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ ./configure pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ make pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ sudo make install【2】编译X264下载地址: https://www.videolan.org/developers/x264.html pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/x264-master.tar.bz2 ./ pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf x264-master.tar.bz2 pi@raspberrypi:/media/pi/DS小龙哥/work $ cd x264-master/ pi@raspberrypi:/media/pi/DS小龙哥/work/x264-maste $ ./configure --prefix=$PWD/_install --enable-shared pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ make && make install pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ sudo cp _install/include /usr/ -rf pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ sudo cp _install/lib /usr/ -rf【3】编译ffmpeg下载地址: http://www.ffmpeg.org/download.html pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/ffmpeg-4.2.2.tar.bz2 ./ pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf ffmpeg-4.2.2.tar.bz2 pi@raspberrypi:/media/pi/DS小龙哥/work $ cd ffmpeg-4.2.2/ pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo apt-get install libomxil-bellagio-dev pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ ./configure --enable-shared --prefix=$PWD/_install --enable-gpl --enable-libx264 --enable-omx-rpi --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal --enable-encoder=h264_omx --enable-omx pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ make && make install pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/include /usr/ -rf pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/lib /usr/ -rf pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/bin /usr/ -rf pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ ffmpeg -v ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 8 (Raspbian 8.3.0-6+rpi1) .. ..................... ..........................(3)推流代码推流代码篇幅较长,这里就不贴出来了。不过这个功能也可以采用命令行实现: 推流本地实时音频视频到流媒体服务器 示例: [xl@DS_小龙哥 linux_c]$ ffmpeg -f video4linux2 -r 12 -s 640x480 -i /dev/video0 -f alsa -i default -ar 44100 -ac 1 -f mp3 -qscale 10 -f flv "rtmp://127.0.0.1:8086/live/123" 参数解析: -f video4linux2 指定linux下的视频驱动框架 -s 640x480 指定视频尺寸 -i /dev/video0 摄像头节点 f alsa 声卡驱动框架 -i default 选择声卡,这里选择默认声卡 -ar 44100 声音采样频率 -ac 1 单声道 -f mp3 MP3音频 -qscale 10 设置画面质量,值越小画面质量越高 f flv 指定封装格式 "rtmp://127.0.0.1:8086/live/123" 流媒体服务器地址(4)DLV可视化大屏显示监控视频由于华为云的DLV可视化服务组件里的rtmp播放器在基础版里无法使用,这里的推流就不用DLV进行演示了。 如果买了高版本的DLV可视化服务,将RTMP或者FLV播放控件拖到界面上,在属性里设置ECS服务器里的推流地址即可播放监控视频了。5.2 智慧路灯部分智慧路灯硬件: 太阳能充电板 + 锂电池 + 充电模块 + STM32F103系统板 + BH1750光强传感器 + DHT11温湿度传感器 + BC20-NBIOT模块。(1)硬件组成【1】太阳能板【2】充电模块【3】BC20 -- NBIOT模块【4】温湿度 + 光敏传感器(2)BC20上云调试BC20是一款高性能、低功耗、多频段、支持 GNSS 定位功能的 NB-IoT 无线通信模块。BC20 在设计上 兼容移远通信 GSM/GPRS/GNSS 系列的 MC20 模块,方便客户快速、灵活的进行产品设计和升级。 BC20 提供丰富的外部接口和协议栈,同时支持中国移动 OneNET 物联网云平台,为客户的应用提供极 大的便利。【1】上电初始化操作 查询模块是否正常 AT OK 获取卡号,查询卡是否插好 AT+CIMI 460041052911195 OK 激活网络 AT+CGATT=1 OK 获取网络激活状态 AT+CGATT? +CGATT: 1 OK 查询网络质量 AT+CSQ +CSQ: 26,0 OK AT+CEREG=? //检查网络状态 +CEREG: 0,1 //找网成功 OK【2】连接MQTT服务器 连接MQTT服务器 AT+QMTOPEN=0,"a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com",1883 OK +QMTOPEN: 0,0 登录MQTT服务器 命令格式: AT+QMTCONN=<tcpconnectID>,<clientID>,<username>,<password> AT+QMTCONN=0,"6210e8acde9933029be8facf_dev1_0_0_2022021913","6210e8acde9933029be8facf_dev1","6cea55404b463e666cd7a6060daba745bbaa17fe7078dfef45f8151cdf19673d" OK +QMTCONN: 0,0,0 订阅主题 命令格式: AT+QMTSUB=<tcpconnectID>,<msgID>,"<topic1>”,<qos1>[,"<topic2>”,<qos2>…] AT+QMTSUB=0,1,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/messages/down",2 OK +QMTSUB: 0,1,0,2 发布主题 命令格式:AT+QMTPUB=<tcpconnectID>,<msgID>,<qos>,<retain>,"<topic>","<msg>" 先发送指令: AT+QMTPUB=0,0,0,0,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/properties/repor" 等待返回 ">" 接着发送数据.不需要加回车。 "{"services": [{"service_id": "gps","properties":{"longitude":12.345,"latitude":33.345}}]}" 数据发送完毕,再发送结束符。 十六进制的值--0x1a 。某些串口调试助手可以适应ctrl+z 快捷键输入0xA 等待模块返回"OK",到此数据发送完成。 OK +QMTPUB: 0,0,0(3)STM32硬件代码这里的完整工程代码篇幅较多,这里就不贴出来了。对于华为云iot平台而言,这里硬件实现的代码最终功能与上面的MQTT软件模拟效果是一样的。 采集硬件上的数据上传到云平台。七、总结通过智慧路灯的项目,介绍了一个物联网设备如何上云,云平台如何配置,数据可视化大屏如何对接显示的整个流程。 如果手上没有智慧路灯的硬件,也可以通过文中介绍的MQTT客户端软件,模拟设备数据进行数据上传,一样可以完成云端的所有操作。 有了可视化大屏,就可以实时查看设备的状态,本次的例子里设计的界面比较简单,如果想设计酷炫,可以查看官方的模板,在新建大屏的时候可以选择模板进行创建。
-
互联网使用的兴起确实促进了通过数字方式进行的数据交换。物联网、人工智能/机器学习、自动化和数据运营等当前趋势,以及数字印度等政府倡议所进一步倡导的趋势,正在说服领导者采用一种有助于他们在数字经济中蓬勃发展的方法。此外,Covid-19大流行也大大扩大了印度采用数字技术的规模。虽然大流行肯定会破坏商业生态系统,但也为企业提供了加强数字基础设施、为未来做好准备的机会。不过,一个不可避免的争论是网络安全。网络安全已经成为每个组织关注的一个领域,无论其可能拥有多少资源来对抗网络攻击。随着时间的推移,攻击者已经开发出更新的策略,部署最新的技术来窃取数据和密码等关键信息,并破坏运营,从而影响整体业务。随着我们迈向数字化的未来,印度正成为网络攻击者关注的焦点。根据印度计算机应急响应小组(CERT-In)的一份报告,今年(截至2022年6月)报告了超过67.4万起网络安全事件。印度企业面临的挑战是什么?虽然印度企业在过去十年中已经开始了数字化之旅,但其生态系统仍然缺乏对网络威胁、及其影响和预防的知识和理解。勒索软件、网络钓鱼和数据盗窃等网络攻击可能会带来许多业务挑战,如客户和数据丢失、声誉损害、财务损失和知识产权盗窃。因此,企业了解网络安全及其对组织的影响至关重要。企业需要意识到,网络威胁和攻击等破坏会影响企业的整体效率和生产力。物联网(IoT)在提高企业生产力方面的作用随着企业不断创新,以构建更智能、更互联的工作空间,组织正在为团队和工作场所配备物联网应用程序,以维持运营。他们正在使用连接设备与团队协作,并跟踪、监控和管理整个组织的操作。以下是企业可以通过物联网应用寻求的一些好处。改善协作——通过远程或混合工作,物联网使设备和人员能够跨地理位置连接,无论规模大小。其允许团队使用便携式设备和云托管应用程序进行实时协作和网络共享。简化操作——物联网应用程序还能够简化和简化流程,同时与相关团队共享实时更新。例如,在库存管理中,可以跟踪和监控资产,同时为管理人员提供资产移动、位置和交付方面的实时状态。通过智能物联网传感器,可以跟踪物品在仓库或商店中的确切位置。增强客户体验(CX)-通过物联网应用,特别是企业。面向消费者的企业有一个令人兴奋的机会与其客户沟通和参与。物联网应用程序可以提供交互式、经济实惠且易于访问的平台,以收集反馈并利用数据获得洞察力以改进CX。例如,酒店可以为客房配备智能物联网设备,将客户24小时全天候直接连接到前台,并收集有关服务的反馈。采用基于云的网络安全解决方案组织现在存在于一个复杂的基础设施环境中,这比以往任何时候都更加加剧了互联网的基本问题。他们曾经依赖于解决这些问题的本地盒子从未被设计用于这样的环境。其结果是,网络层的重大架构转变正在进行中,为了确保跨组织最重要资产的速度、可靠性和安全性,基于云的网络安全解决方案是必要的。零信任密封零信任是一种安全框架,需要对试图访问网络边界内外的专用网络上信息的设备或人员进行严格和持续的验证。由于互联网是所有业务运营的主要平台,因此实施像零信任t这样的安全模型是极其关键的,其要求用户、设备和系统通过强制执行基于身份的数据访问规则来证明其可信度。这通过减少对周边生态系统保护的依赖来增强安全性。随着数字化、技术创新和不断变化的工作环境,企业必须确保其人员和流程得到保护。虽然实施网络安全解决方案似乎是一项艰巨的任务,但这是一项值得投资的投资,可以使企业安全并为未来做好准备。
-
在应用调试页面下载的代码中,jar调用getAccessToken 会返回证书不可信
-
1. 前言随着互联网海量数据的爆发式增长,物联网、人工智能、大数据、5G新科技手段的不断推进,人们已走进万物互联的时代。生活周边所有的物体都可以连接上云端管理,目前不仅仅是生活家电、实体设备、农业大棚上云;现在宠物、农场的牲畜、动物园的动物都已经上云,通过传感器上报的数据,在云上可以实时查看这些动物的身体情况,生活环境的指标等等。设备上云都需要搭建一个物联网云平台,作为设备的云端大脑,搭建一个完善的云端物联网平台是非常耗费资金、人力的,好在市面上已经有很多大公司提供了物联网平台服务;截止到今天,市场上有数百种物联网平台可以使用,每天都有很多新的物联网平台涌现。使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户快速构建各种物联网业务应用。设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP或MQTT协议将业务数据上报到平台,平台也可以将控制命令下发给设备,业务应用通过调用物联网平台提供的API,实现设备管理、数据上报、命令下发等业务场景。 下面就精选出一系列设备上云、物联网周边技术开发的相关文章,帮助大家快速了解物联网云平台的基本使用,了解设备如何快速上云、包括一些项目实战案例。2. 设备上云案例🚩 (1)我做了一个智慧路灯应用 cid:link_0简介: 这篇文章基于华为云IOT平台构建了一个智慧路灯应用,其中用到了以下相关的云产品:弹性服务器ECS、虚拟私有云VPC、弹性公网IP、项目管理Project、部署CloudDeploy、代码托管、编译构建、消息通知服务SMN、设备接入IOTDA等。如果对这些技术感兴趣,可以点击进去仔细阅读学习。🚩 (2)基于华为云IoT设计的智能门锁cid:link_1简介 在智能家居、物联网普及的时代,智能锁在很多家庭都已经用上了,这篇文章就介绍如何使用华为物联网云平台实现智能锁的应用场景构建,硬件上采用了STM32F103ZET6 + ESP8266+步进电机实现。在华为云IOT物联网平台构建智能锁项目,配置好云端,设备端通过ESP8266连接华为物联网平台,实现数据上报,交互,实现远程开锁、关锁、获取锁的状态等功能,不用担心忘记出门关锁,也不用担心忘记带钥匙无法开门的情况。🚩 (3)基于华为云IoT设计的森林火灾预警系统cid:link_2简介: 采用华为云iot物联网平台快速搭建一个森林火灾预警联动控制系统模型,模拟演示检测到森林火灾之后,如何快速上报到云平台,向关联的指定服务器发送数据报告,并自动向抽水泵发送指令,打开开关抽水灭火。🚩 (4)基于华为云IoT设计的云端绿化管理系统cid:link_3简介: 城市绿化是整个城市的脸面,为了让整个城市看起来生机勃勃,绿化工人每天都辛勤的养护马路边的花花草草,为了根据方便管理城市的植物生成状态,这篇文章利用意法半导体的STM32L431+ESP8266 WIFI ,配合华为云物联网平台服务器,组建一个微小型的绿化管理系统,结合外部传感器采集的数据,并利用这些数据判断是否进行灌溉,可以在云端查看每个区域植物土壤的温湿度、空间的温湿度信息。🚩 (5)基于移远QuecPython开发板对接华为云cid:link_4简介: QuecPython是移远电子推出的一种使用Python语言的物联网开发方案,可以为物联网开发者提供全新的开发体验,相对于传统的开发方式,QuecPython解决了开发耗时久、难度大、资料少、生态差等问题,具有易学、高效、安全、稳定等特点。这篇文章就介绍,如何基于移远QuecPython开发板,使用其内部固件开发demo对接华为云IOT云平台,完成数据交互。🚩 (6)解锁华为云新技能-AIOT开发全流程(1)【设备接入-ESP端侧数据收集[MQTT]-实时数据分析】(步步截图较详细)cid:link_5简介: 这篇文章作为一篇华为云IOT入门基础文章,介绍华为云物联网平台产品、设备创建流程,再创建MQTT虚拟设备完成上云步骤。整篇文章图片、文字介绍都很详细,对初学者来讲,可以快速了解华为云IOT的整体开发流程。🚩 (7)华为云IoTDA服务下的设备管理流程实操cid:link_6简介: 这篇文章介绍了华为云IoTDA诞生的背景,完整介绍了设备对接到华为云IoTDA平台运营的对接流程,和用华为云IoTDA的相关业务场景,还有实操了整个MQTT模拟设备对接平台的详细步骤。🚩 (8)从零开始体验IoTDAcid:link_7简介: 这篇文章作为一篇华为云IOT入门基础文章,从零开始体验IoTDA,按照官网参考文档实操笔记,采用官方的烟雾传感器为例,快速入门、再到设备接入服务。🚩 (9)教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino开发)cid:link_8简介: 这篇文章介绍开源硬件Arduino+ESP8266接入华为云IOT的整体流程,带大家讲解如何利用Arduino和esp8266系列完成设备接入华为云物联网平台(IOTDA)并完成设备属性上报。esp8266系列作为低功耗高性价比的嵌入式无线网络控制模块,深受对嵌入式感兴趣的小伙伴的喜爱,是很多人理想的一款wifi模块的选择,不仅可以完成通信,还可以当单片机使用完成程序控制,可满足智能家居、远程控制、智慧医疗等物联网应用的需求,总结:功能强大,价格便宜;某宝最便宜的ESP01s或12f系列五六块就可以搞定,对质量有要求的,在某创平台也仅仅是十多块钱,玩法多样。3. 项目实战案例🚩 (1)基于华为云IoT设计的健康管理系统并完成应用侧开发cid:link_9简介: 近几年随着科技的进步和智能化浪潮的到来,智能穿戴设备也在飞速火爆发展,各种健康智能手环,智能手表、智能跑鞋、智能眼镜纷纷上市,并出现了很多针对个人家庭的健康管理设备。比如: 智能血压计、智能心率检测、脂肪秤、智能体重秤等等,都带上了智能、健康各种标签。用STM32加上各种外设传感器配合华为云IOT物联网平台设计一个健康管理设备,通过ESP8266+MQTT协议将数据传输导致华为云物联网平台,并通过华为云的应用侧完成应用层软件开发;设计本项目的目的就是,上手体验华为云物联网平台,并探究一下智能设备的实现原理。🚩 (2)基于STM32+移远BC20+华为云IOT设计的GPS物流电子标签cid:link_10简介: 智慧物流目前在各大物流公司都已经使用,这篇文章介绍的就是智慧物流设计方案,利用GPS技术动态采集物流过程中物品的变化信息和地理位置信息,在系统中加入GPRS模块,利用当前成熟的移动通信技术,在没有有线网络的情况下,也能做到与管理平台数据库之间的通信,能满足监管平台对物品实时信息的需求,当物品出现丢失时或出现异常替换时,实时报告给监管平台,对物流环节中物品进行全程追踪。有效解决了目前贵重物品和危险品物流过程中信息不能实时采集和物品丢失、掉包的问题。🚩 (3)物联网应用开发实践案例-智慧农业cid:link_11简介: 近几年,物联网、智能家居、AI人工智能技术发送非常迅速。在物联网技术的支撑下,如今农业逐渐走向现代化,自动化、现在智能化的农业生产成为了主流。告别“刀耕火种”的传统农业后,现代农业也正在向智慧型转变,当前智慧农业模式已经深入到农业生产的各个环节,灌溉、施肥、植保等细分领域都将与物联网、信息技术等先进科技相结合,效率、效果也将得到大大提高。这篇文章利用华为云IOT物联网平台实践搭建一个智慧农业智慧大脑,设备平台采用小熊开发板,搭载的CPU是意法半导体的STM32L431芯片,这是意法半导体推出的低功耗芯片;配合外部的一些专业传感器,能够获取空气中的温湿度数据,光照度数据等,根据种植区的空气温湿度数据,判断是否进行灌溉。🚩 (4)华为云智慧农业开发实践案例 cid:link_12简介: 适宜的温度、湿度、光照是农作物生长的必要条件,而传统农业通常很难对这些环境条件进行量化,更不要说通过分析这些数据,提炼出对农作物更好的培育方法。通过传感器将环境条件转化为数据,并通过网络将数据上传至华为云平台,同时采用算法实现当光照不足、湿度较高时,则启动机械装置,补光、开启风扇马达,改善培育条件。也可以通过控制华为云平台,远程控制机械,达到想要的效果。🚩 (5)华为云数据可视化DLVcid:link_13简介: 利用集群将小熊派开发板数据上报数量、时间和所属区域到物联网平台,物联网平台将数据通过数据接入服务转发至MapReduce服务,MapReduce服务处理数据并写为统计文件,数据可视化服务从统计文件读取数据展现为报表。同时设计了Mysql打通了更多外界的数据源,实现了数据的实时更新。🚩 (6)华为云IoT数据分析流程实操cid:link_14简介: 介绍了数据分析诞生的背景和华为云数据分析的诞生,和使用华为云数据分析的相关业务场景,还有实操了整个IoTDA模拟设备数据对接到数据分析平台的详细步骤。个人体验过后觉得华为云数据分析还是很不错,可以对接各种数据源,能把自己想要的数据源利用数据分析平台提取实际有价值的数据。🚩 (7)华为云数据转发与分析cid:link_15简介: 在实际场景中,一个云平台可能会有若干的设备连接和海量的数据上报,上篇文章里使用小熊派 STM32 开发板移植了 LiteOS 和 PahoMQTT 并且成功连接华为云,实现了数据的上传和命令的下放,华为云也提供了数据的转发保存以及数据分析功能,这篇文章就介绍华为云的数据转发保存以及数据分析功能使用。🚩 (8)基于华为云物联网设计的浇花神器cid:link_16简介: 随着社会的不断发展和人们生活水平的逐渐提高,人们逐渐追求高质量的生活,很多人都会选择在家里或办公室种植一些花卉以净化家庭空气,陶冶情操,但是很多人忙于工作、学习、出差、旅游或者一些其他的原因,不能及时地对花卉进行照料,短时间内导致很多花卉因缺水分而影响正常生长,长时间不照料有些名贵的花卉直接死亡。基于上述状况,提出了此基于物联网的智慧浇花系统。该系统采用工业级高精度土壤温湿度传感器采集花盆中的突然温湿度,环境的温度湿度,通过ESP8266 WIFI实时上传当前的土壤温湿度、环境光照度等数据到华为云物联网云平台,可以通过 app实时查看花卉的土壤湿度、环境温度等信息,并且本地通过OLED显示屏实时显示这些信息,可以设定某种花适宜的生长的土壤湿度条件,实现自动控制给花浇水,即能让花卉生长在适宜的湿度下。4. 物联网应用场景科普🚩 (1)华为云IoT,亿级接入,鸿蒙加持cid:link_17简介: 最近几年,华为自主研发的 鸿蒙 系统,开始广泛的出现到人们的视野中可以说但凡接触过互联网的人,哪怕是在某音、某站都或多或少听说过 鸿蒙还有华为也是近几年在行业内的一个领跑位置,不断创新研究新技术、新功能!尤其是物联网方面,华为更是一个出色的领跑者,位列2019世界物联网排行榜榜首!🚩 (2)华为云IoT智慧物流案例01 | 背景介绍与环境搭建cid:link_18简介: 以智慧物流案例为背景,介绍基于华为云-北斗和4G Cat1模组的智慧物流开发。🚩 (3)华为云IoT智简联接,开启物联世界新纪元cid:link_19简介:华为云loT战略:聚焦物联网基础设施(技术基础设施,商业基础设施),做好三个联接(联接万物,联接生态,联接行业),与生态伙伴一起,打造华为loT行业解决方案,使能行业数字化转型。2个基础设施,3个联接,N个行业方案。🚩 (4)黑湖 × 华为云IoT强强联手,让数据驱动智能制造cid:link_20简介:详细解读黑湖科技与华为云IoT联合解决方案架构及黑科技,在工业互联网基地中快速交付服务离散制造企业,帮助工厂低成本、高效率地实现从客户下单、原料入厂到成品出厂之间的全链路数字化管理。黑湖智造借助云计算、智能手机、loT设备 ,基于数据聚合、多角色协同、可视化分析、智能决策四大功能版块,用数据和算法帮助企业缩短生产周期、降低库存积压、提升产能利用率、透明化制造流程,实现数据驱动下的精益制造。🚩 (5)Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型cid:link_21简介: 介绍华为云IoT数据分析服务基于物联网资产模型,整合IoT数据集成、清洗、存储、分析、可视化,为IoT数据开发者提供一站式服务,降低开发门槛,缩短开发周期,快速实现IoT数据价值变现,让工厂数字化转型升级“触手可及”。🚩 (6)以小窥大,从一盏路灯看亿万物联网之路cid:link_22简介: 介绍华为云设备接入服务(IoT Device Access),它是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。全新升级后的设备接入服务IoTDA,整合了原设备接入服务和设备管理服务的功能。🚩 (7)全球SIM连接解决IoT设备换卡难问题cid:link_23简介: 随着物联网时代发展的越来越迅速,物联网设备中的物联网卡是必不可少的硬件之一。但是传统物联网卡的流量,管理,换卡难,其他的包括国内国外流量对接等问题,都是企业开发出产品面临的痛点,本文的全球SIM联接就是解决这些问题。🚩 (8)华为云IoT设备接入服务都有哪些功能?cid:link_24简介: 设备接入服务(IoTDeviceAccess)是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。基于华为云物联网平台的物联网系统如图9-6所示,其主要分为几个部分:终端设备、设备连接、消息通信、设备管理、数据流转、物联网应用,以及与华为云的其他服务进行的数据互通和协同。🚩 (9)一文读懂物联网平台cid:link_25简介: 物联网业务的迅猛发展需要一个终端接入解耦、能力开放、安全可靠的平台作为支撑。华为为用户提供一个接入无关、电信级安全可靠、开放和弹性伸缩的平台——华为云物联网平台,帮助企业和行业用户应用实现快速集成,构建物联网端到端整体解决方案。物联网平台架构大致可以分为四层:终端层、接入层、平台层、应用层,其中平台层又可以细分为设备连接层和业务使能层。🚩 (10)物联网平台的由来及发展趋势cid:link_26简介: 生态平台发展启示目前,市场上对平台、生态等概念的解读与诠释有很多,但生态是基于开放平台来进行承载这一观点获得了业内共识。下面从产业价值角度对平台模式、生态体系进行探讨,由此说明发展平台型生态体系的重要意义。平台模式平台模式描述的是有企业搭建的,以自身为核心的开放式协同体系。搭建平台的企业为平台主体,负责平台的整体支撑与运营。企业内、外部相关角色,如资本、员工、合作企业、用户等,在满足一定准入条件时均可自发地通过平台,作为参与者与企业发起实时协作。因此,不同于传统的商业合作模式,依靠Web2.0技术或移动互联网技术的支撑,平台模式可以实现开放式、实时性的企业协作。同时,值得注意的是,在物联网平台模式下,平台参与者之间也会由于平台主体的存在而相互有交集或合作。🚩 (11)一盏智能灯,点亮家庭和工业照明的新未来cid:link_27简介: 从家居到工业场景,点亮一盏智能灯带来的不仅仅是光亮,数据在流转之间,改变了我们的生活,也推动了整个城市的智能化建设。点亮一盏灯,一个简单的开关控制即可,这是传统的照明场景。在AI、IoT技术快速发展的当下,亮灯这个动作有了无限的想象空间和可能性,承载着诸如安全、舒适和健康等更高层次的需求,乃至关乎到整个城市的智能化建设。🚩 (12)初识华为云 IoT 边缘cid:link_28简介: 介绍IOT边缘服务,IoT 边缘是物联网平台在客户现场或近场的眼神,具有边云协同、离线运行、就近计算等特点;包含边缘硬件、边缘软件、边缘云服务,其中边缘硬件部署在客户现场,软件运行在硬件上,软硬件在本地组成物联网边缘,支持物联网设备就近接入,就近计算,与边缘云服务建立协同的通道,支持数据的上下行; 华为 IoT Edge 是华为云 IoT 平台的边缘服务,作为物联网平台的现场数据入口,提供容器化和进阶级运行时软件作为底座,支持泛协议接入;5. LiteOS系列精选案例LiteOS是在2015华为网络大会上华为发布的敏捷网络3.0中的一个轻量级的物联网操作系统,LiteOS体积只有10KB级,而且实行开源,使智能硬件开发变得更加简单。Huawei LiteOS是华为1+2+1物联网解决方案的组成部分,遵循BSD-3开源许可协议,自开源以来,已经和一些厂商、家电企业达成了合作,华为希望通过开源、开放将LiteOS打造成像安卓一样的物联网终端的物联网操作系统。Huawei LiteOS其具备「零配置」、「自发现」和「自组网」能力,让使用 LiteOS 的物联终端能够自动接入支持的网络。Huawei LiteOS 将使得智能硬件的开发变得更加简单,从而加快实现万物的互联互通。为了让大家对LiteOS整体使用有个清晰的理解,下面列出LiteOS系列使用文章,涉及到LiteOS移植、配置、连接云端交互等知识点。🚩 (1)漫谈LiteOS系列-LiteOS概述cid:link_29简介: 物联网技术包括万象,其端测开发离不开LiteOS,这篇文章主要介绍LiteOS概述包括定义、特点、SDK、应用以及意义,支持的硬件、其与鸿蒙的关系,对开发板的串口、中断、gpio、用户按键、时钟、systick、timer、移植等知识加以介绍,以便于大家更简单的进行LiteOS后续内容的学习。🚩 (2)STM32L476移植华为LiteOS系列教-介绍集成开发环境背景cid:link_30简介: 介绍单片机集成开发环境,对比Keil、IAR、IoTStudio集成环境的区别,了解单片机开发的本质。作为入门单片机开发的一篇科普文章,对接下来的IoTStudio集成环境、LiteOS学习做个铺垫。🚩 (3)基于LiteOS Studio零成本学习LiteOS物联网操作系统cid:link_31简介: 大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资。LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开发环境,做到零成本,非常方便初学者学习。Qemu是一套由FabriceBellard编写的以GPL许可证的模拟处理器,在GNU/Linux平台上使用广泛,也支持在X86环境上运行。有关Qemu的介绍可参考其github社区内容。LiteOS Stduio使用Qemu realview-pbx-a9开发板来模拟运行LiteOS开源工程。本篇文章主要介绍Windows下基于Qemu运行LiteOS方法,方便快速上手LiteOS。🚩 (4)华为liteOS明星开发板--小熊派初探cid:link_32简介: 小熊派目前提供的代码支持两种开发环境,分别为华为提供的 LiteOS Studio 编译器和Keil 公司提供的 MDK v5 两种 开发模式。这篇文章介绍 LiteOS IDE LiteOS Studio基本使用,LiteOS Studio 是华为基于 LiteOS 嵌入式系统软件开发的工具,支持 C、 C++、汇编等多种开发语言,提供代码编辑、编译、烧录及调试等一站式开发体验。🚩(5)LiteOS内核源码分析系列五 LiteOS内核位操作模块cid:link_33简介: 这篇文章带领大家一起剖析了LiteOS位操作模块的源代码,LiteOS提供的辅助功能模块–位操作,在互斥锁等模块对位操作有使用。位操作是指对二进制数的bit位进行操作。程序可以设置某一变量为状态字,状态字中的每一bit位(标志位)可以具有自定义的含义,分析代码比较简单,参考官方示例程序代码,编译运行加深理解。🚩 (6)漫谈LiteOS之开发板-LiteOS移植(基于GD32450i-EVAL)cid:link_34简介: 这篇文章要从为什么移植,以及移植的分类,开发环境、移植流程以及测试5个角度对采用非接管中断的方式将LiteOS移植到GD32450i-EVAL(2019)开发板上的详细流程做介绍。嵌入式设备的芯片型号和外设的差异较大,资源有限。而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板。可移植性是嵌入式操作系统与普通操作系统的显著区别之一,而所谓移植就是通过一定的代码修改使得该操作系统适配自己的开发板,以使得自己的开发板可以运行一些手头开发板没有配套的编译工程。🚩 (7)LiteOS大揭秘【01】:5分钟带你了解LiteOS传感框架cid:link_35简介: 本篇文章主要介绍LiteOS传感框架的架构、特点、使用场景。LiteOS传感框架即Sensor Hub,是一个基于Huawei LiteOS物联网操作系统的传感器管理框架。随着物联网的发展,物联网终端越来越智能化,例如在个人穿戴、智能家居、家用医疗等终端上将配置越来越多的传感器,来获取更多传感数据,使终端更加智能,使得开发和维护变得复杂和困难。LiteOS传感框架将物联网终端设备上例如加速计(Accelerometer)、陀螺仪(Gyroscope)、气压仪(Barometer)、温湿度计(Humidometer)等不同类型的传感器统一管理,通过抽象不同类型传感器接口,屏蔽其硬件细节,做到“硬件”无关性,非常方便于物联网设备的开发、维护和功能扩展。🚩 (8)小熊派LiteOS移植LVGLcid:link_36简介: 之前使用小熊派实现了鸿蒙动画的开机界面,具体使用的技术栈为 STM32 + LiteOS + LVGL + FATFS +DMA 方式实现,刷新效率非常高,本篇教程是先通过 STM32CubeMX 来配置 小熊派的 TFT 初始化代码,开启 DMA 加速,配置完成后获取 LVGL 的代码,移植到工程里面,然后将 TFT 驱动接口和 LVGL 接口对接,在运行 Demo 代码。🚩 (9)漫谈LiteOS之开发板-LiteOS硬中断移植(基于GD32450i-EVAL)cid:link_37简介: 本文是用接管中断方式进行LiteOS移植,嵌入式设备的芯片型号和外设的差异较大,资源有限。而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板。可移植性是嵌入式操作系统与普通操作系统的显著区别之一,而所谓移植就是通过一定的代码修改使得该操作系统适配自己的开发板,以使得自己的开发板可以运行一些手头开发板没有配套的编译工程。移植通常分为系统移植和驱动移植,驱动移植需要依赖具体的外设,本文主要介绍操作系统的移植。采用的主要方案是硬中断接管和不接管中断中的硬中断方式。🚩 (10)STM32F103-LiteOS移植教程cid:link_38简介: 本文基于STM32F103C8T6,详细讲述华为LiteOS的移植过程。开发工具是MDK5,LiteOS官方已经适配过cortex M系列内核的单片机,因此移植过程非常简单。LiteOS有两种移植方案:OS接管中断和非接管中断方式。接管中断的方式,是由LiteOS创建很管理中断,需要修改stm32启动文件,移植比较复杂。STM32的中断管理做的很好,用不着由LiteOS管理中断,所以我们下边的移植方案,都是非接管中断的方式的。中断的使用,跟在裸机工程时是一样的。6. 总结全球范围内新一轮科技革命和产业变革正在孕育兴起,以物联网、大数据、人工智能为代表的信息技术加速与实体经济结合,快速转化为现实生产力,并升级成为重塑生产组织方式、转变增长方式的基础设施和关键要素。全球范围内物联网产业在新的网络技术、平台技术的推动下掀起了新一轮的发展热潮。在这一过程中,物联网技术创新也进入活跃期,需从技术和产业的角度对物联网发展的趋势和方向进行研究。虽然物联网近年来的发展已经渐成规模,各国都投入了巨大的人力、物力、财力来进行研究和开发。但是在技术、管理、成本、政策、安全等方面仍然存在许多需要攻克的难题。华为云推出的物联网平台,提供了海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。想要快速体验华为云物联网平台,将第2小节设备上云案例的几篇文章仔细读一遍,照着步骤操作一遍对华为云物联网平台就会有个详细的了解。
-
华为智慧园区对于LoT和数据分析功能十分强大,但是园区三维模型整体展示,以及园区数据实时态势感知不够直观,有没有可能通过华为云与thingJS、51world等主流建模平台进行接口开放,开发新的智慧园区解决方案
-
使用BC35-G通信模块,设备一直显示未激活状态。
-
目前使用的是华为云IOTDA基础版实例,设备是ESP8266 12F主控,移植了华为云设备端SDK,通讯协议为MQTTS。发现设备断电后华为云控制台还是显示在线,需要等待一分钟左右设备状态才刷新为离线态,感觉这个体验不太友好,有什么建议吗?
-
旅游业正在经历前所未有的转变。这些转变是由新兴科技推动的,整体的趋势是转为使用移动式服务、大数据和物联网来实现服务的自动化。与此同时,流程管理和云应用软件也在让这个行业发生变革。 这个行业还出现了一些新兴竞争者,其中很多都采用更趋于以客户为中心的数字化商业模式,而行业巨头们则正在奋力追赶。可以说,科技已彻底变革了整个旅游业。消费者已习惯于在做出出行决定前查看基于算法而管理的网站和App。同时,消费者对线上办理登机手续或使用电子出行文件也早已习以为常。鉴于物联网同样也具备改变旅游市场的潜力,因此各企业需要在自身的数字化转型中采取有策略的方式。这意味着要去了解有哪些机会以及怎样在保护企业不受风险威胁的情况下利用这些机会。让我们一起来看看即将引发下一场变革的四大关键事物。跨越边境的增长旅游业具有全球化特性,这一点自不必说。因此,支持旅游业的基础设施也必须是全球化的。要识别并实现成功的数字化转型,旅游业就必须具备一流的全球化基础设施和信息工具。其中使用正确的连接服务尤其重要。来看看物联网和航空公司。物联网最大的好处就是能够让本来黑暗一片的领域具备可见性。不过,航企要提高可见度,就需要有极为可靠的网络基础设施,用其来支持基于物联网的传感器和设备,借此连接飞机、行李标签以及中间的一切环节。此外,旅游企业进入新的地区市场时,必须要以新科技、有竞争力的新服务和正确的商业模式为重点,才能够实现递增式收益。这意味着不仅要在国内市场提供连接服务,在国际市场也需如此。不过,要做到这一点,企业最终可能不得不与数百家移动通信服务供应商谈判,才能在每个国家都实现物联网服务的移动式访问。对于大多数企业来说,这根本就是不可行的。更好的方案则是只与一家供应商签约。而这家供应商要能够就所有访问协议展开谈判、能够提供端到端的移动与云连接以及数据管理服务。这种方式可保障跨边境的连通性,且不会让企业头疼。生产力更强、更高效的机组人员和客户无压力的出行体验在这个数字化时代里,还有大量机组人员每日仍要依赖于打印的旅客名单和纸制版的其他关键文件。这不仅导致效率低下,还容易出现人为的错误。而像平板电脑这样简单的设备,如果与航企和机场的中央IT系统连接,就能够让机组人员无需再使用纸制文件,还能够为机组人员提供最新的政策、程序和提示信息,从而也能够让乘客享受更顺畅的乘坐体验。但这还只是个开始。旅游企业已在利用强大的大数据来创建超个性化的体验。具体做法则是分析旅客的喜好、社会行为和购买模式等数据。酒店发挥了物联物强大的能力,就能够让房间实现“智能化”。这样,住客甚至在办理入住前就能够根据自己的喜好来调节房间内的温度、照明度并控制房间内的娱乐设施。已经有旅游企业在采纳并使用这项科技,目的是既简化又充实出行体验,向自己的客户提供真正个性化的内容。这样的思维正在带来业务并形成收益。一家中型酒店企业近期利用大数据让自身官网的重复访问次数增长了50%以上、直接预订额增长了15%。全球各组织均已开始向员工、合作伙伴和客户提供无缝的多平台协作,并且正在从中受益。同样,航企会由于航班延误或计划外的维修而产生巨大的成本。事实上,据估算,只要飞机在停机坪上意外维修两小时,航企就要掏15万美元的费用。此类延误可导致利润率下滑,降低客户满意度。因此,民航企业都在采取行动,这或许也是意料之中的事。这些企业正在利用科技帮助管理可预测的维修并避免飞机出现故障和技术性延误。世界顶级的客户体验物联网不仅能够让旅游企业为自己的客户提供无缝的体验,供应链内所有合作伙伴都能够从中获益。可以想像一个涉及航企、地面交通、酒店和保险公司在内的整合型旅游套餐。贯穿这些企业是为了带来无缝的终端客户体验。物联网使得无需进行人工干预就能够实现无缝化的体验,并且还是比之前高效得多的体验。以一座繁忙的机场行李处理团队为例。如果让其能够访问有关丢失行李的实时信息,则可以大大提高效率,同时还能够让传输链具备透明性。各组织要成功整合供应链,就需要跨不同渠道和平台提供一致的体验,且要采用一个已连接的通讯系统以避免出现信息孤岛,同时还要有能力在需求波动时确定该使用何种解决方案。这一切的关键是要投资建设支持此类新服务和新能力的IT基础设施。杜绝风险随着各企业都在对数字化商业服务投资,其也可能日益暴露于黑客骚扰和网络犯罪中。因此,解决可能存在的安全漏洞,便是确保数字化转型项目不会导致企业或其商业供应链合作伙伴遭受安全威胁的关键所在。要让风险最小化,不只是要保护数据和应用软件不遭遇外部威胁。同样关键的还有要确保服务的连续性,使业务中断的情况趋于零,这样才能够避免客户的行程安排受干扰。听上去风险是不是挺大?与全盘避免数字化转型、从而被落在后面相比,这样做的风险并不大。就设备和云连接来看,各企业需要通过安全的私人网络访问物联网数据,同时要确保有效的资产和政策控制。稳健的安全服务将保护企业免受一系列网络威胁。而安全的移动连接环境则能够带来更高级别的数据安全,从而能够保障旅客的安全、维护企业的信誉。走向新时代旅游企业向新市场和海外市场进军时,需要有全球化的视野。对于拥有正确的工具、且有科技合作伙伴支持的组织来说,加强自身业务、占领全球市场份额的机会是极其重要的。只要妥当地控制了相关的商业风险,就会发现大量此类机会。在全球化数字转型战略中部署物联网,能够优化生产力、实现效率最大化,同时提升客户体验的品质。这是一段值得去走的旅程。
-
感谢华为云提供免费的沙箱实验,学习体验非常好,能帮助开发者切实掌握感兴趣产品的应用。如果可能,希望开放更多的沙箱实验,比如ROMA,IOT Edge 关于Modbus、OPC协议设备接入场景,这样有利于开发者和合作伙伴更好的体验产品,更有利于产品的推广使用。
-
本人是从事工业流程自动化,基本上上整天面对的都是设备,PLC,HMI,scada等等。最近想学习了解下IOT,需要强调说明的是本人之前从未有任何从事IOT相关工作经历的一个小白。我现在简单将PLC内的几个bool或者int传送到IOT。如果已经可以在平台里看到这些数据。但是我不知道下一步应该怎么做,有没有哪位大声指点一下
-
订阅$oc/devices/test666_device_test01/sys/shadow/get/response/#主题失败,其他平台主题正常如果修改oc_mqtt_tiny.c中hub_stpe函数,在subscribe前添加publish方法就可以正常订阅但是会再进入hub_step重新连接一次,请问这是什么原因?
yd_248991805
发表于2022-11-08 10:30:39
2022-11-08 10:30:39
最后回复
yd_248991805
2022-11-17 17:45:08
174 10 -
小熊派设备在线状态,但是华为云平台接收不到数据是什么原因呢?请帮忙
-
前言 物联网是在互联网的基础上延伸和扩展的一种网络,其用户端延伸和扩展到了任何物品之间,彼此进行信息交换和通信,目的是实现所有物品与网络的连接,从而方便识别、管理和控制。 无线物联网的特点包括:全面感知、实时准确传递物品信息、利用智能计算技术对海量数据进行分析和处理,以实现智能化控制。 由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的 HTTP 协议应用在物联网上就显得过于庞大而不适用。 MQTT 协议和 CoAP 协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境。 内容 CoAP(Constrained Application Protocol 受限应用协议) CoAP 是 6LowPAN 协议栈中的应用层协议。COAP 协议网络传输层由 TCP 改为 UDP。 COAP 是二进制格式的,HTTP 是文本格式的,COAP 比 HTTP 更加紧凑。 轻量化,COAP 最小长度仅仅 4B,一个 HTTP 的头都几十个 B 了。 支持可靠传输,数据重传,块传输。 确保数据可靠到达。 支持 IP 多播,即可以同时向多个设备发送请求。 非长连接通信,适用于低功耗物联网场景。 MQTT(Message Queuing Telemetry Transport 消息队列遥测传输) 为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布 / 订阅型消息协议。轻量、简单、开放和易于实现。 1. 使用发布 / 订阅消息模式,提供一对多的消息发布,解除应用程序耦合 2. 使用 TCP/IP 提供网络连接 3. 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量 这些特点使它适用于受限环境。例如,但不仅限于此: ・特别适合于网络代价昂贵,带宽低、不可靠的环境 ・能在处理器和内存资源有限的嵌入式设备中运行 ・使用发布 / 订阅消息模式,提供一对多的消息发布,从而解除应用程序耦合 ・使用 TCP/IP 提供网络连接 ・提供 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制 哪种协议?从应用场景要求的层面分析如何选用 1、服务端主动发送给客户端的数据(反控)的时效性(如通过 APP 控制硬件动作) 因 MQTT 协议是保持连接的,所以及时性相对很好;CoAP 协议是无连接响应式通讯,因此不能主动推送,要等客户端访问才可以携带回去,及时性相对较差。 2、设备环境对底层协议的要求或限制 MQTT 协议是建立在 TCP 协议基础之上的,因此他也具备 TCP 协议的优缺点;CoAP 协议是建立在 UDP 协议基础之上的,因此他也具备 UDP 协议的优缺点。 3、在 NAT 网络环境中是否需要调整 因 MQTT 协议是保持长连接的,所以在 NAT(Network Address Translation,网络地址转换)下没有问题;CoAP 协议因是无连接方式,需要使用 NAT 穿透性手段。 NAT NAT(Network Address Translation,网络地址转换)是 1994 年提出的。当在专用网内部的一些主机本来已经分配到了本地 IP 地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用 NAT 方法。这种方法需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球 IP 地址。这样,所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和因特网连接。 4、实现多对多的通信还是单对单通信 因 MQTT 协议的消息模型是发布/订阅式的,所以是可以多对多通信的;CoAP 协议的消息模型是请求 / 响应式的,所以是单对单通信。 5、服务质量等级及自动重连重发 因 MQTT 协议有 QoS 配置,支持服务质量等级和自动重连重发机制;CoAP 本身不具备,需要应用层自己来写这个逻辑。 6、对网络稳定性要求 MQTT 协议利用自动重连重发机制解决网络不稳定问题,断网就会触发重连;CoAP 协议只有客户端发送的时候需要保证网络连接正常,其他时段无需连接。 7、对硬件设备的功耗影响 MQTT 协议因有保持连接,所以功耗略高于 CoAP 协议。 ———————————————— 版权声明:本文为CSDN博主「YF云飞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/flyTie/article/details/126186579
-
网络附着是成功的, 但是上报数据却失败了, 是为什么?
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签