如何使用 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复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。

使用Java语言;数据库:Mysql;经典技术组合(MQTT、Spring Boot、Shiro、MyBatis、Druid、Ehcache、Thymeleaf、Bootstrap、Swagger)开发,支持多数据源,支持代码一键生成。


功能模块:

设备管理、开关管理、计划管理、传感器管理、传感器数据展示、报警规则管理、设备日志、用户管理、角色管理、部门管理、岗位管理、菜单管理、字典管理、参数管理、通知公告、 *** 作日志、登录日志、在线用户、定时任务、代码生成、系统接口、服务监控、缓存监控、在线构建器、连接池监视等。

功能特点:

1、硬件使用 ESP8266,基于MQTT协议,自建物联网云平台。

2、支持云固件升级、设备远程重启。

3、支持音频播放、开关、普通灯、调色灯等各种用电设备控制。

4、单个模块可控制8路用电设备开关,可对模块信息、开关信息、计划任务、报警规则等维护管理。

5、云平台可对各类传感器管理,对传感器数据有多种展示方式。可设置阈值报警规则,符合报警规则的可执行自定义的动作。

6、模块具有一键配网功能,变更网络时无需重新烧写程序,方便快捷。

7、控制端可使用任意网络(2G/3G/4G/5G/WiFi/等)控制灯、热水器、电视、电机、窗帘、监控等各种用电设备,不受任何地区限制。

8、可云端存储模块各路开关状态,模块断电或重启后可自动同步云端模块各路开关状态,具有开关状态记录功能。

9、可记录设备所有 *** 作记录,模块、用户上下线记录等,并具有多种类型的数据统计展示。

10、控制设备命令下达后有状态反馈,可确保设备控制命令执行成功,且延时低。

11、具有心跳检测功能,模块掉线或模块重启后模块可自动重连MQTT服务,具有模块上下线提醒功能(平台消息提醒、邮件提醒)。

12、具有定时功能,可指定某一时刻执行、周期执行、延时执行、自定义Cron表达式执行等 *** 作。

13、可多模块接入云平台,可统一管理、控制模块各路设备开关。

14、云平台可对所有用户管理,每个用户可配置不同角色、不同权限,具有权限分配功能。

15、前端采用完全响应式布局,支持电脑、平板、手机等所有主流设备。

17、具有代码一键生成功能(包括控制器、模型、视图、菜单等),方便快速开发。

18、支持多数据源,简单配置即可实现切换。

19、支持菜单、按钮及数据权限分配,亦可自定义数据权限。

20、具有完善的XSS防范及脚本过滤,彻底杜绝XSS攻击。

21、Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。

22、支持服务监控、数据监控、缓存监控等功能。

物联网的英文名称为"The Internet of Things” 。由该名称可见,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础之上的延伸和扩展的一种网络;第二,扩展到了任其用户端延伸和何物品与物品之间,进行信息交换和通信。因此,物联网的定义是通过射频识别(RFID)装置、红外感应器、 全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
物联网的整个结构可分为射频识别系统和信息网络系统两部分。射频识别系统主要由标签和读写器组成,两者通过RFID空中接口通信。读写器获取产品标识后,通过internet或其他通讯方式将产品标识上传至信息网络系统的中间件,然后通过ONS解析获取产品的对象名称,继而通过EPC信息服务的各种接口获得产品信息的各种相关服务。整个信息系统的运行都会借助internet的网络系统,利用在internet基础上的发展出的通信协议和描述语言。因此我们可以说物联网是架构在internet基础上的关于各种物理产品信息服务的总和。从应用角度来看,物联网中三个层次值得关注,也即是说,物联网由三部分组成:一是传感网络,即以二维码、RFID、传感器为主,实现对“物”的识别。二是传输网络,即通过现有的互联网、广电网络、通信网络等实现数据的传输与计算。三是应用网络,即输入输出控制终端。
EPC系统是一个非常先进的、综合性的和复杂的系统。其最终目标是为每一单品建立全球的、开放的标识标准。如图2.4所示,它主要由全球产品电子代码(EPC)体系、射频识别系统及信息网络系统三大部分组成[17]。

图24 EPC系统的构成图
(1)EPC编码标准
EPC编码是EPC系统的重要组成部分,它是对实体及实体的相关信息进行代码化,通过统一并规范化的编码建立全球通用的信息交换语言。
(2)EPC标签
EPC标签是装载了产品电子代码的射频标签,通常EPC标签是安装在被识别对象上,存储被识别对象相关信息。标签存储器中的信息可由读写器进行非接触读/写。
32 EPC系统特点
(1)开放的体系结构
EPC系统采用全球最大的公用的刀又TERNET网络系统。这就避免了系统的复杂性,同时也大大降低了系统的成本,并且还有利于系统的增值。梅特卡夫(Metcalfe)定律表明,一个网络大的价值是用户本系统是应该开放的结构体系远比复杂的多重结构更有价值。
(2)独立的平台和高度的互动性
EPC系统识别的对象是一个十分广泛的实体对象,因此,不可能有那一种技术适用所有的识别对象。同时,不同地区,不同国家的射频识别技术标准也不相同。所以开放的结构体系必须具有独立的平台和高度的交互 *** 作性。EPC系统网络建立在INTERNET网络系统上可以与INTERNET网络所有可能的组成部分协同工作
(3)灵活的可持续发展的体系
EPC系统是一个灵活的开放的可持续发展的体系,可在不替换原有体系的情况下就可以做到系统升级。整体的EPC网络 *** 作依赖于RFID系统和网络应用系统的介入,使产品信息有效的传播。安装在不同需求链环境的解读器可以读取标签中储存的产品数据。因此供应链数据可以通过网络及时地检查、更新或者交换信息。
33 EPC编码编码标准
EPC码是新一代与EAN/UPC码兼容的编码标准,在EPC系统中EPC编码与现行GTIN相结合,因而EPC并不是取代现行的条码标准,而是由现行的条码标准逐渐过渡到EPC标准或者是在未来的供应链中EPC和EAN.UCC系统共存。EPC中码段的分配是由EAN.UCC来管理的。在我国,EAN.UCC系统中GTIN编码是由中国物品编码中心负责分配和管理。同样,ANCC也即将启动EPC服务来满足国内企业使用EPC的需求。
EPC码是由一个版本号加上另外三段数据(依次为域名管理者、对象分类、序列号)组成的一组数字。其中版本号标识EPC的版本号,它使得EPC随后的码段可以有不同的长度;域名管理是描述与此EPC相关的生产厂商的信息。
第四章 物联网在家庭中应用
随着时代的发展,中国已经逐步进入了老龄化社会,以后我们社会面临的现状将是一对年轻的夫妻,在照看自己小孩的同时,还要照看2~6对老人,这就为全社会出了一个难题。每家都雇保姆,显然不现实;那么,只能通过科技的手段来解决这个问题了,靠提高家庭的生活品质、方便家庭与外界的信息交互、用传感节点感知家里发生的情况等,这就为家庭物联网的实现奠定了社会基础。
物联网的概念正大行其道,也使人们看到了社会未来的发展趋势,然而物联网大部分却停留在概念阶段,真正规模应用还有待时日。家庭区域相对狭小、需求比较明确,最有可能优先实现物联网的应用。它不只是现代家庭现实的需要(照看老人、孩童),更是人们日益增强的家庭安全
41家庭物联网应用领域
寒冷的冬季,供暖系统使北方城市家庭充满温暖,而当白天大部分人离家上班的时候,空空的房间仍温暖如春。我们需要一个智能化的供暖控制系统。在生产安全领域,在食品卫生领域,在工程控制领域,在城市管理领域,在人们日常生活的各个方面,甚至在人们的娱乐活动中,都需要建立随时能与物体沟通的智能系统。通过装置在各类物体上的电子标签(RFID),传感器、二维码等经过接口与无线网络相连,从而给物体赋予智能,可以实现人与物体的沟通和对话也可以实现物体与物体相互间的沟通和对话。在电度表上装上传感器,供电部门随时都可知道用户的用电情况,实现用电检查、电能质量监测、负荷管理、线损管理、需求侧管理等高效一体化管理,一年来降低电损。在电梯装上传感器,当电梯发生故障时,无需乘客报警、电梯管理部门会借助网络在第一时间得信息,以最快的速度去现场处理故障。
42发展历程
1999年,物联网的概念就已被提出,10年间,世界各国都在加紧研究。物联网的发展共分为四个阶段:第一个阶段是大型机、主机的联网,第二个阶段是台式机、笔记本与互联网相联,第三个阶段是手机等一些移动设备的互联,第四阶段是嵌入式互联网兴起阶段,更多与人们日常生活紧密相关的应用设备,包括洗衣机、冰箱、电视、微波炉等都将加入互联互通的行列,最终形成全球统一的“物联网”。
对于互联网来说,20世纪80年代是黄金时代,这段时间出了一个知名的人物——鲍勃•卡恩(BobKahn),他被人们称为互联网之父(被赋予同样称呼的人还有好几个)。在为互联网做出卓越贡献的同时,他也非常有远见的为另一个始于上世纪80年代的项目——分布式传感网(DistributedSensorNet,简称DSN)——做了奠基。在那个年代,传感器远比我手上的这个大得多,要用一辆卡车来拉。这么大的传感器作为一个个节点组织在一起,通过微波彼此相连,就组成了传感网。
庞大的传感器在体积方面跟不上人们对其功用上的期望,于是研究者们就开始思考能不能把它做得小一点、再小一点。于是,在上世纪90年代,“智能微尘”(SmartDust)这个很有意思的概念出现了,提出者是KrisPister,他是加州大学伯克利分校的教授。这一概念认为可以将计算和通讯集成在约1~2平方毫米的超微型传感器中,用以对周围环境的参数进行探测。其核心的成分是微电机系统(Micro-Electro-MechanicalSystem,简称MEMS;这个概念在当时引起非常大的轰动),该系统中可以集成很多和机械有关的传感器。
当时KrisPister这批人有一个幻想——在蒲公英上面悬挂一个传感芯片,蒲公英飞到哪里就探测哪里的信号,再把信号传递回来。虽然只是一个假想,但当时真有科学家信心百倍地投入其中,并且还把所需的数据算出来了。比如有空气动力学专家计算出了芯片应有的重量等等。在2001年,加州大学伯克利分校的实验室真做出了这种理想中的芯片雏形,比米粒还小,可谓“细如发丝,薄如蝉翼”。他们送给了我一个,当时我还精心包装了一下。可惜最近找不到了,特别遗憾。倘若芯片里面还有电留存的话,说不定我就能通过网络定位到它的“安身之所”了。
在这一时期,有三所高校和研究机构在传感器领域处于领军地位,一是加州大学伯克利分校(以KrisPister为代表,他们提出了“智能微尘”理论),另外两个是加州大学洛杉矶分校(他们提出了“微无线技术”)和施乐帕克研究中心(XeroxPARC)。施乐帕克研究中心的团队主要由我带领,我们做的是传感信息处理和“智能物质”(SmartMatter),希望能把计算、微电机系统放到物理世界中,与“智能微尘”也有非常紧密的联系。
自本世纪初以来,对于传感的研究越来越受到人们的重视,有很多学校和大公司的研发机构开始进行了类似的研究,并有许多新兴公司借此东风异军突起。将传感器连接成“网”或“系统”,就成了传感网。除了传感网以外,类似的概念也相继提出,比如“CyberPhysicalSystem”和“InternetofThings”(简称IOT)。相较而言,IOT的概念在提出的初期更接近于日常生活,比如常见的RFID(RadioFrequencyIdentification,射频识别)技术就是它的一部分。
关于传感网和物联网的历史,若从大的传感器开始算起,传感网诞生至今应有30年了;而若从微传感网(MicroWirelessSensorNetwork)来说,应该仅有15至20年:微传感网始于上世纪90年代,那个时期的人们刚刚提出“微电机系统”的概念,试图把传感器和计算机处理和通讯全部都集成在一个芯片上,即“智慧微尘”。
其实传感器的历史,归结起来就八个字——从大到小,以点到面。这八个字看似简单,但做起来却是困难重重——要想让传感器真正“飞入寻常世界中”,它必需在体积、造价、能耗等方面进行“瘦身”,这样它才真正能够进入到物理世界。
然而,造型的缩小并不是传感进入生活的唯一条件,还需要互联网技术的配合以实现从点到面的网际联系。就IP地址而言,物联网应采用IPv6(IPv4必然不够),它有128位两进制的IP网址数,这相当于给世界上的每个沙粒都赋予了一个 IP地址。唯有当所有的物体都有一个属于自己的IP的时候,物联网才能真正实现。总而言之,物联网的实现需要这两方面的相辅相成:一是利用微处理技术(micro-fabrication),提高集成度;其二是运用IP技术,以提供足够丰富的网址。
43面临的问题
国内智能家居市场存在很多问题。1、进入门槛较高,一般一次性投入要1、2万元,这就大大限制了中等收入以下人群的购买需求。2、功能华而不实,很多都是遥控个灯光、音响,需求跟投入不成比例。3、生搬硬套,将原来很多工业上使用的东西直接照搬到家庭里,缺少人性化,不能完全适合家居生活需要。4、很多智能家居企业缺少核心技术,东拼西凑,组成个系统就推广,导致成本增高、企业竞争力下降。
RFID超高频技术在我国的应用尚处于起步阶段,一些项目的应用只是试点,还没有得到广泛应用,也没有在供链上应用。比如,只在某一个仓库里应用,或只在生产线上应用。应该说,这些试点项目全
都属于闭环状态的应用,在供应链上串起来应用的案例国内还没有出现。
物联网发展潜力无限,但物联网的实现并不仅仅是技术方面的问题,建设物联网过程将涉及到许多规划、管理、协调、合作等方面的问题,还涉及标准和安全保护等方面的问题,这就需要有一系列相应的配套政策和规范的制订和完善。
首先是技术标准问题。标准是一种交流规则,关系着物联网物品间的沟通。各国存在不同的标准,因此需要加强国家之间的合作,以寻求一个能被普遍接受的标准。
其次是安全的问题。物联网中的物品间联系更紧密,物品和人也连接起来,使得信息采集和交换设备大量使用,数据泄密也成为了越来越严重的问题。如何实现大量的数据及用户隐私的保护,成为待解决的问题。
第三,协议问题。物联网是互联网的延伸,在物联网核心层面是基于TCP/IP,但在接入层面,协议类别五花八门,CPRS、短信、传感器、TD-SCDMA、有线等多种通道,物联网需要一个统一的协议基础。
第四,终端问题。物联网终端除具有本身功能外还拥有传感器和网络接入等功能,且不同行业需求各异议,如何满足终端产品的多样化需求,对运营商来说的一大挑战。
第五,地址问题。每个物品都需要在物联网中被寻址,就需要一个地址。物联网需要更多的IP地址,IPv4资源即将耗尽,那就需要IPv6来支撑。IPv4 向IPv6过渡是一个漫长的过程,因此物联网一旦使用IPv6地址,就必然会存在与IPv4兼容性问题。
第六,费用问题。目前物联网所需的芯片等组件的费用较高,若把所有物品都植入识别芯片花费自然不少,如何有效解决这一问题仍需考虑。
第七,规模化问题。规模化是运营商业绩的重要指标,终端的价格、产品多样性、行业应用的深度和广度都会地用户规模产生影响,如何实现规模化是具有待商讨的问题。
第八,商业模式问题。物联网在商业应用方面的业务模式还不是很明朗,商业模式问题值得更进一步探讨。
第九,产业链问题。物联网所需要的自动控制、信息传感、射频识别等上游技术和产业已成熟或基本成熟,而下游的应用也单体形式存在。物联网的发展需要产业链的共同努力,实现上下游产业的联动,跨专业的联动,从而带动整个产业链,共同推动物联网发展。
要建立一个有效的物联网,有两大难点必须解决:一是规模性,只有具备了规模,才能使物品的智能发挥作用;二是流动性,物品通常都不是静止的,而是处于运动的状态,必须保持物品在运动状态,甚至高速运动状态下都能随时实现对物品的监控和追踪。
实现物联网,首先必须在所有物品中嵌入电子标签等存储体,并需安装众多读取设备和庞大的信息处理系统,这必然导致大量的资金投入。因此,在成本尚未降至能普及的前提下,物联网的发展将受到限制。已有的事实均证明,在现阶段,物联网的技术效率并没有转化为规模的经济效率,目前的所谓物联网应用也没有一个在商业上获得了较大成功。例如,智能抄表系统能将电表的读数通过商用无线系统(如GSM短消息)传递到电力系统的数据中心,但电力系统仍没有规模使用这类技术,原因在于这类技术没有经济效率。
物联网的关键在于RFID、传感器、嵌入式软件及传输数据计算等领域,包括“云计算”、无线网络的扩容和优化等均是物联网普及需解决的问题。只有通过“云计算”技术的运用,才能使数以亿计的种类物品的实时动态管理变得可能。从目前国内产业发展水平而言,传感器产业人水平较低,高端产品为国外厂商垄断。

使用应用层协议提供可靠性。

TCP是传输控制协议,是一个可靠的面向连接的协议。它允许网络间两台主机之间无差错的信息传输。

UDP 是用户数据报协议,它采用无连接的方式传输数据,也就是说发送端不关心发送的数据是否到达目标主机,数据是否出错等。收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。

从结构上划分,物联网应用层包括以下三个部分:

1、物联网中间件:物联网中间件是一种独立的系统软件或服务程序,中间件将各种可以公用的能力进行统一封装,提供给物联网应用使用。

2、物联网应用:物联网应用就是用户直接使用的各种应用,如智能 *** 控、安防、电力抄表、远程医疗、智能农业等等。

3、云计算:云计算可以助力物联网海量数据的存储和分析。依据云计算的服务类型可以将云分为:基础架构即服务(IaaS)、平台即服务(PaaS)、服务和软件即服务(SaaS)。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存