如何使用 NB-Iot + Arduino 通过MQTT协议上传数据至阿里云平台?

如何使用 NB-Iot + Arduino 通过MQTT协议上传数据至阿里云平台?,第1张

有很多通信模块只有TCP功能,没有MQTT功能,比如WIFI,W5500等模块,还有一些NBIOT模块,但是又想连接阿里云物联网平台,官方提供了 *** 作系统,需要自己移植,很麻烦,比较难看得懂。就在想有没有一些简单一定的方法。
心想MQTT是基于TCP的,能否使用TCP转MQTT?因此就想使用TCP协议然后转MQTT协议连接阿里云物联网平台,经过试验证明是可以的。
首先我们先分析一下如何登陆接入Onenet平台。
先从它数据格式开始分析。首先我们要从后台取出三个信息,我们以这个为例。
我们把产品ID,设备名称,设备秘钥,简称三要素 (具体是什么看你自己的设备)
其实阿里云物联网平台的MQTT协议用的就是标准的,不过它加入了自己的认证方式。
MQTT协议需要上传四个参数,报活时间,clientID,用户名,密码。
那么阿里云的就在clientID,用户名,密码做了手脚。
clientID比较长,按照一定的格式
用户名:设备名和秘钥组成
密码:使用了加密串进行了加密,有sha1或者MD5加密方式
下面我们来介绍一下
MQTT接入都是发十六进制的数据。
么我们发送的时候就是这样子的一串数据
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36
十六进制解释
数据长度:0x74
协议数据长度 0x00 0x04
协议类型: 0x4d 0x51 0x54 0x54
协议数据: 0x04 0xC0
keepAlive数据:0078
ClientID长度:0033
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c
用户名:0009
用户名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34
密码长度:0028
密码: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36复制代码上面的就是连接服务器的连接包
下面呢,我们来做个发布包(上传数据到服务器)
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d
十六进制数据解释
数据头:0x30
数据长度:0x1D
TopicName数据长度:0009
TopicName数据内容:2f7379732f706f7374
主体json数据: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。

可以,mqtt是物联网,是今后发展的重大趋势之一,比如现在的小米之家就可以通过小爱同学完成家庭内绝大多数工作,这些信息在这些数码设备是共通的,但前提是需要有网络,也就是互联网,没有网络是无法正常进行工作的。

物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,指令数据通过API调用下发至设备端,实现远程控制。

物联网平台也提供了其他增值能力,如设备管理、规则引擎、数据分析、边缘计算等,为各类IoT场景和行业开发者赋能。

如下是共享单车基于物联网平台的解决方案。
物联网平台提供边缘计算能力,支持在离设备最近的位置构建边缘计算节点处理设备数据。

在断网或弱网情况下,边缘计算可缓存设备数据,网络恢复后,自动将数据同步至云端。

提供多种业务逻辑的开发和运行框架,包括场景联动、函数计算和流式计算,各框架均支持云端开发、动态部署。

边缘计算能力允许在最靠近设备的地方构建边缘计算节点,过滤清洗设备数据,并将处理后的数据上传至云平台。
物联网应用可广泛应用于:智能生活、智能工业、智能楼宇、环境保护、农业水利、能源监控等环境。计算平台主要涉及:

开发者使用设备接入SDK,将非标设备转换成标准物模型,就近接入网关,从而实现设备的管理和控制。

设备连接到网关后,网关可以实现设备数据的采集、流转、存储、分析和上报设备数据至云端,同时网关提供规则引擎、函数计算引擎,方便场景编排和业务扩展。

设备数据上传云端后,可以结合云功能,如大数据、AI学习等,通过标准API接口,实现更多功能和应用。

物联网 (IoT) 设备必须连接互联网。通过连接到互联网,设备就能相互协作,以及与后端服务协同工作。互联网的基础网络协议是 TCP/IP。MQTT(Message Queue Telemetry Transport,消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

通过从传感器、计量器等器件获取环境、资产或者运营状态信息,在进行适当的处理之后,通过传感器传输网关将数据传递出去;同时通过传感器接收网关接收控制指令信息,在本地传递给控制器件达到控制资产、设备及运营的目的

通过公网或者专网以无线或者有线的通信方式将信息、数据与指令在感知与控制层、平台服务层、应用服务层之间传递,主要由运营商提供的各种广域IP通信网络组成,包括ATM、xDSL、光纤等有线网络,以及GPRS、3G、4G、NB-IoT等移动通信网络

物联网平台是物联网网络架构和产业链条中的重要环节,通过它不仅实现对终端设备和资产的“管、控、营”一体化,向下连接感知层,向上面向应用服务提供商提供应用开发能力和统一接口,并为各行各业提供通用的服务能力,如数据路由、数据处理与挖掘、仿真与优化、业务流程和应用整合、通信管理、应用开发、设备维护服务等

丰富的应用是物联网的最终目标,未来基于政府、企业、消费者三类群体将衍生出多样化的物联网应用,创造巨大的社会价值。根据企业业务需要,在平台服务层之上建立相关的物联网应用,例如,城市交通情况的分析与预测,城市资产状态监控与分析,环境状态监控、分析与预警(如风力、雨量、滑坡),健康状况监测与医疗方案建议等

向下接入分散的物联网传感层,汇集传感数据
向上面向应用服务提供商提供应用开发的基础性平台和面向底层网络的统一数据接口,支持具体的基于传感数据的物联网应用

从设备底层到云端应用都由技术人员自行开发,对研发能力和开发时间都是不小的挑战
物联网应用存在共性需求如安全是否可以以云服务的方式提供这些功能?
物联网平台使物联网应用的快速实现成为可能,并从开发难度、功能性能和稳定可靠等多方面提供服务保证

DMP一般集成在整套端到端M2M设备管理解决方案中,解决方案提供商联合合作伙伴一起,提供通信网关、通信模块、传感器、设备管理云平台、设备连接软件,并开放接口给上层应用开发商,提供端到端的解决方案

大部分DMP提供商本身也是通信模组、通信设备提供商,如DiGi,Bosch等,本身拥有连接设备、通信模组、网关等产品和设备管理平台,因此能帮助企业实现设备管理的整套解决方案

一般DMP部署在整套设备管理解决方案中,整体报价收费;也有少量单独提供设备管理云端服务的厂商,每台设备每个月收取一定的运营管理费用

M2M连接数大、SIM卡使用量大、管理工作量大、应用场景复杂、要求灵活的资费套餐、低的ARPU值、对成本管理要求高

包含基础大数据分析服务和机器学习两大功能

未来物联网平台上的机器学习将向人工智能过渡,比如IBM Watson拥有IBM独特的DeepQA系统,结合了神经元系统,模拟人脑思考方式总结出来强大的问答系统,可帮助企业解决更多商业问题

AWS IoT可在连接了Internet的设备(如传感器、制动器、嵌入式微控制器或智能设备)与AWS云之间提供安全的双向通信,并使云中的应用程序能够与连接了Internet的设备进行交互。这样,用户能从多台设备收集遥测数据,然后存储和分析数据;也可以创建应用程序来通过手机或平板电脑控制这些设备

AWS IoT包括设备网关、消息代理、规则引擎、安全和身份服务、Device Shadow服务等组件

平台案例

通过使用AWS的服务,艾拉物联可以无需投资传统数据中心,便可提供企业级服务。在AWS的支持下,艾拉物联将全球的服务都可以整合到一个云平台上,以最小成本开拓了国际业务,使得各地都可以使用同样的开发及运维工具

AWS云服务安全、稳定、可扩展以及全球覆盖的特性加快了涂鸦业务的全球化部署,为保证海外涂鸦客户和合作伙伴能够享受到本地化的服务体验提供了坚强保障

使用AWS云平台给Sengled生迪带来的好处包括简化运维、节省人力成本、节省资源成本,同时可以灵活地扩展应用系统。AWS提供的丰富功能,使运维工程师不必研究学习传统的运维工具和方法,就可以建立起一套完整、可靠的交付系统和运维平台

物联网平台是阿里云针对物联网领域开发人员推出的一款设备管理平台。高性能IoT Hub实现设备与云端稳定通信,全球多节点部署有效降低通信延时,多重防护能力保障设备云端安全。此外,物联网平台还提供丰富的设备管理功能、稳定可靠的数据存储能力,以及规则引擎。使用规则引擎,您仅需在Web上配置简单规则,即可将设备数据转发至阿里云其他产品,获得数据采集、数据计算、数据存储的全栈服务,真正实现物联网应用的灵活快速搭建

平台案例

24小时ATM式自助售药机支持用户线下24h到店扫码付款,当场取货;线上平台下单,骑手限时送达。同时提供完备的商户管理后台,可以进行订单管理、货道管理与财务管理

仓库猫用于解决仓库的科学监测、信息化、网络化管理等问题。可以做到防火监测、防盗监测、防水监测、防潮监测、能够帮助企业快速搭建店铺的监测系统,报警系统,云存储系统

OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台

OneNET包括设备接入、设备管理、API,>要想成为系统的的物联网工程师需要系统学习。由浅入深地对嵌入式物联网技术以及Linux平台全面掌握,能够独立胜任物联网开发、嵌入式Linux应用开发、5G周边产品开发、底层系统开发、设备驱动开发、从终端到云技术开发以及Linux衍生产品等多方面工作。可以更加系统的了解嵌入式物联网相关行业知识。
具体所学知识包括:
1嵌入式C语言高级编程及行业应用
2各常用数据结构与算法相关知识,以及面向接口的编程
3GUI图形库应用开发技术
4Linux *** 作系统使用
5Linux系统编程
6Linux系统网络编程
7Linux网络路由及数据交换技术
8嵌入式数据库
9嵌入式C++语言编程,以及面向模板库的应用开发
10OpenCV、OpenGL等图像处理
11AI模型训练及场景定位识别应用
12RFID场景应用
13zigbee低功耗网络技术
14Bluebooth组网技术
15MQTT云平台搭建技术
16NB-IOT各大云平台通信技术
17基于5G技术的嵌入式物联网行业应用
18ARM体系结构
19Bootloader启动过程
20常见Bootloader源码及平台移植
21嵌入式Linux内核裁减以及移植
22嵌入式Linux平台搭建技术及技巧
23Android ROM包制作流程
24Android底层驱动开发
25嵌入式从8位到64位硬件底层开发
26嵌入式Linux设备驱动移植以及开发
如果有机会通过十个左右的大项目实践,掌握物联网+嵌入式实际项目案例开发流程,提高研发技能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13002039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存