发表于2024-12-22
IoT开发实战 CoAP卷 物联网与网络协议核心技术开发教程书籍 REST MQTT协议 pdf epub mobi txt 电子书 下载
基本信息
作者: 徐凯
丛书名: 物联网核心技术丛书
出版社:机械工业出版社
ISBN:9787111577805
上架时间:2017-9-27
出版日期:2017 年9月
开本:16开
版次:1-1
所属分类:计算机
目录
前言
第1章 物联网与网络协议1
1.1 本章主要内容1
1.2 物联网与IP2
1.2.1 IPv42
1.2.2 IPv62
1.2.3 6LoWPAN3
1.3 物联网与 6
1.3.1 6
1.3.2 REST风格6
1.4 物联网与CoAP7
1.4.1 CoAP8
1.4.2 RFC文档汇总8
1.5 物联网与MQTT协议10
1.5.1 MQTT协议10
1.5.2 MQTT主题10
1.5.3 MQTT服务质量11
1.6 本章小结12
第2章 物联网与开源硬件13
2.1 本章主要内容13
↓展开全部内容
前言
为何写作本书
几年前我作为一名嵌入式工程师参与了一个关于低功耗车载终端的研发项目,该低功耗车载终端中包含一个GPS模块和一个GPRS(2G)模块,工程师们希望通过少的能量消耗把终端的GPS坐标上传至Web服务器中。虽然需求直截了当,但是在开发的过程中却出现了各种各样的分歧。例如传输协议采用UDP还是TCP,有的工程师认为UDP没有连接过程,传输时间更短,有的工程师认为TCP更加可靠而UDP也许会出现“丢包”现象。经过多次争论终选择了UDP传输加自定义重传的方式。所谓自定义重传,就是车载终端把相同的数据包按照一定的时间间隔连续传输三次,每个数据包都包含一个递增的子序号,服务器通过子序号来剔除重复内容。通过增加这种容错机制似乎解决了UDP的“缺陷”,但是由于终端设备采用单向传输方式,并不要求服务器返回响应,所以终端根本不知道它上传的数据是否被正确处理。
在项目开发的过程中,工程师们在终端设备与Web平台的衔接方式的选择上也出现了不少分歧。在定制应用层协议时嵌入式工程师更喜欢二进制协议,但对于Web开发工程师来说JSON和XML才是他们所擅长的内容。因此,Web开发工程师单独做了一个UDP套接字服务,使终端设备可以把二进制内容转化为JSON格式的数据包,再把这个JSON数据包“POST”到一个服务器。此时对于Web开发工程师来说,设备其实是在提交表单。
经过工程师们的不断努力,这个低功耗车载终端如期完成。但是项目完成之后我不禁思考:这个项目是不是可以做得更好一点,是不是可以打破嵌入式工程师和Web开发工程师的技术鸿沟,是不是有更好的应用协议可以满足项目需求,是不是低功耗终端也可以提交表单?查阅了众多资料之后,我找到了CoAP。
回想硕士毕业之后我“执着”地成为一名专注于物联网的软件工程师,而我本科和硕士的专业都与机械工程相关。与其他计算机或电子专业不同,机械工程特别强调规范和标准,所以设计过程必须严格遵守规范。虽然表面上这显得异常死板,但是这种规范却大大提高了系统的互换性,节约了开发成本。在这种理念的指导下,我总是先寻找标准解决方案而不是随时随地准备“造轮子”。CoAP是一个由IETF(Inter Engineering Task Force,互联网工程任务组)组织编写的面向低功耗设备的物联网应用层协议,协议编号为RFC 7252。我非常高兴找到了应用“标准”,而不是又找到了一组“轮子”。
CoAP有很多优点,而这些优点正好可以解决上文提到的低功耗车载终端所遇到的问题:
1)CoAP传输层协议采用UDP,对于终端来说UDP的确可以减少一部分能耗。
2)CoAP采用请求/响应工作模式,当终端设备发送CoAP请求之后,服务器将返回响应码,终端通过响应码可以判断服务器的处理结果。
3)CoAP包含重传机制,不用再重新设计重传方法。
4)CoAP参考了的大量成功经验,如CoAP请求方法、CoAP选项定义和CoAP响应码等,所以Web开发工程师也可以非常容易地掌握CoAP。
CoAP可以帮助低功耗智能终端接入网络,通过这种标准协议也可以降低物联网系统的开发难度,尤其可降低物联网Web平台的开发难度。对于应用CoAP的终端设备来说,同样会遵守REST标准,使用类似的资源描述方法,使用相同的请求方法,应用相同的JSON数据包。对于物联网Web平台来说,处理一次终端设备的数据上传和处理一次Ajax表单提交同样容易。
我个人喜欢阅读技术图书,通过阅读图书可以系统地掌握一门新技术,我也希望本书可以帮助读者熟练掌握CoAP,并把它应用于物联网系统中。
目标读者
本书适合物联网爱好者、嵌入式工程师和Web开发工程师。
对于物联网爱好者而言,本书的示例可以让你更快地熟悉物联网系统。本书包括很多与物联网系统相关的基础知识,通过这些基础知识的学习可以加深你对物联网系统的理解。通过本书中的多个动手示例,你可以掌握物联网系统的调试方法。
对于嵌入式工程师而言,本书可以帮助你从不同角度了解低功耗设备如何连接网络。通过CoAP的学习可以从另一个角度熟悉。CoAP和都是设备连接网络的常见手段。
对于Web开发工程师而言,可以从另一个角度了解设备如何提交“表单”,通过学习CoAP你会发现低功耗终端设备也可以很流畅地接入系统,而不需要做多余的协议转换。
如何阅读本书
本书的主要内容大致分为三部分:
部分:第1~3章。第1章介绍与物联网应用直接相关的各种协议,这些协议包括IP、6LoWPAN协议、IEEE 802.15.4协议、、MQTT协议和CoAP等;第2章介绍与物联网应用相关的开源硬件Arduino和树莓派,无论是Arduino还是树莓派都是开源硬件领域的“明星产品”,在这些硬件平台上可以快速实现CoAP;第3章与前面两章不同,该章通过多个示例详细介绍与CoAP息息相关的网络协议—IP、UDP、TCP和,掌握这些协议是学习CoAP的基础。
IoT开发实战 CoAP卷 物联网与网络协议核心技术开发教程书籍 REST MQTT协议 pdf epub mobi txt 电子书 下载