基于区块链的物联网项目开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-17 17:57:58

点击下载

作者:(巴西)马克西米利亚诺·桑托斯(Maximiliano Santos),(巴西)埃尼奥·莫拉(Enio Moura)

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

基于区块链的物联网项目开发

基于区块链的物联网项目开发试读:

前言

区块链(blockchain)和物联网(Internet of Things,IoT)已被证明是当下最受欢迎的技术,虽然其使用也才刚刚开始。目前,区块链和物联网的整合已是一些大公司的优先事项之一,且少数公司已开始在一些项目中使用它来实施计划、制定解决方案。

这本书将帮助你用最佳实践案例开发区块链和物联网解决方案。读者对象

本书主要面向负责物联网基础设施安全机制的人员,以及希望在IBM Cloud平台上使用区块链和物联网开发解决方案的IT专业人员,且必须对物联网有基本的了解。本书内容概览

第1章帮你了解物联网如何成为改变游戏规则的平台,如何使用这项技术,如何在物联网世界中起步,IBM物联网平台提供什么功能,以及在创建物联网解决方案时如何利用这些特性。

第2章使用平台和Raspberry Pi锻炼你的技能,帮你创建一个端到端物联网解决方案:一个能够使植物保持充足水分的花园浇水自动化系统。

第3章介绍区块链,并帮助你了解区块链如何用账本为有已知身份的授权网络记录交易。

第4章使用Hyperledger Composer创建一个区块链网络,并探讨如何创建资产、交易功能、访问控制和查询定义。

第5章设计和实施一套解决方案,以解决物流难题。你将能够了解到,在使用物联网和区块链解决方案过程中,食品链中的食品如何能从农场到餐桌被安全跟踪溯源。这样能够获得更多国家对该方案的支持,并在几年后推广普及这种做法。

第6章针对食品安全运输难题,设计解决方案架构,即使用区块链支持分布式账本网络和物联网设备需求,并实现过程跟踪。

第7章展示如何创建区块链和物联网集成解决方案,以解决食品安全运输问题。通过编码和测试上一章设计的组件,你将获得使用区块链和物联网平台的实践经验。

第8章帮助你了解行业趋势、可从物联网和区块链解决方案中创建或派生出哪些新的业务模型,以及有关这些技术的市场和技术趋势。

第9章帮助你理解以往类似项目的经验和场景,以及设计和开发区块链和物联网解决方案的最佳实践与经验教训。充分利用本书

我们希望你熟悉一种编程语言,并具有为嵌入式平台(如Raspberry Pi、Arduino、ESP8266或Intel Edison)开发解决方案的经验。我们将主要使用Node.js和Hyperledger Composer建模语言。入门级的JavaScript技能是受欢迎的。下载示例代码及彩色图像

本书的示例代码及所有截图和样图,可以从https://www.packtpub.com通过个人账号下载,也可以访问华章图书官网https://www.hzbook.com,通过注册并登录个人账号下载。

你也可以在GitHub上查阅本书中的代码,网址为https://github.com/PacktPublishing/Hands-On-IoT-Solutions-with-Blockchain。如代码有更新,它将在现有的GitHub存储库上进行更新。

我们还在https://github.com/PacktPublishing/上提供了丰富的书籍和视频目录中的其他代码包。查一下吧!本书排版约定

本书使用了许多排版约定。

代码文本(CodeInText):表示文本、数据库表名、文件夹名称、文件名、文件扩展名、路径名、用户输入和Twitter句柄中的代码。下面是一个示例:“接下来,打开首选项的IDE,创建一个新的Node.js项目,并安装ibmiotf依赖包。”

代码块如下:

当我们希望提醒你注意代码块的某个特定部分时,相关的行或项以粗体显示:

任何命令行输入或输出如下所示:

粗体:表示一个新的术语,一个重要的单词。这个图标表示警告或重要说明。这个图标表示提示和技巧。作者简介

马克西米利亚诺·桑托斯(Maximiliano Santos)是位于圣保罗的IBM Cloud Garage(IBM云车库)的架构师。他为银行、房地产、保险、化工和消费品行业开发了复杂的软件架构。Max使用IBM Watson的认知服务、物联网(IoT)平台以及机器学习和移动应用设计解决方案。

埃尼奥·莫拉(Enio Moura)是一名企业架构师,在位于圣保罗的IBM Cloud Garage担任交付主管。他在IT服务领域有25年的运营和咨询经验,在集成系统、云计算、架构设计、区块链和基础设施解决方案方面有丰富的经验,对云应用和移动解决方案也有深入的了解。审稿者简介

Fabio Cossini是Avanade公司的数字解决方案架构师,与客户合作完成应用程序现代化工作。他还是专注于数字化转型的跨行业和跨技术解决方案的技术专家和企业架构师。自2012年以来,他一直致力于物联网、云计算、分析、认知计算和区块链的专业与学术研究,支持公司重新定义其商业模式。

我要感谢这本书的作者。他们的工作将使那些有兴趣学习物联网和区块链的人受益匪浅。书中的技术将对塑造业务的未来有很大帮助。

Sanket Thodge是Pi R Square Digital Solutions Pvt有限公司的创始人,是一名专业企业培训师,常驻印度浦那。他是《Cloud Analytics with Goole Cloud Platform》一书的作者,正在撰写另一本书《Blockchain with Artificial Intelligence》。凭借在大数据方面的专业知识,他探索了云、物联网、机器学习和区块链等技术。他在物联网领域申请了多项专利,并与众多初创企业和跨国公司合作,提供咨询和企业培训。

Xun(Brian)Wu在区块链、大数据、云、用户界面和系统基础设施的设计与开发方面拥有超过17年的丰富实践经验。他是《Blockchain By Example》《Hyperledger Cookbook》《Blockchain Quick Start Guide》《Seven NoSQL Databases in a Week》等书的合著者,还对超过50本Packt出版社出版的技术书籍进行了技术性审查。他曾担任多家区块链初创公司的董事会顾问,并拥有若干区块链专利。他拥有新泽西理工学院的计算机科学硕士学位。他与两个漂亮女儿Bridget和Charlotte住在新泽西州。

我要感谢我的父母、妻子和孩子的耐心和支持。第1章了解物联网并在IBM Watson物联网平台上开发

当今世界,计算机能够处理难以想象的数据量,任何人都可以生产和销售自己的设备。正因为如此,物联网(Internet of Things,IoT)已经成为当前商业环境中的一个热门话题,人们之间的联系也比以往任何时候都更加紧密。

在本章中,你会看到物联网是如何改变游戏规则的,物联网产业可以做些什么。我们将研究如何在物联网世界中起步,了解IBM物联网平台特点,并学习如何利用该平台创建自己的物联网解决方案。

本章将讨论如下主题:

·物联网技术。

·物联网通用案例。

·物联网技术要素。

·IBM Watson物联网平台特性和功能。

·在IBM Watson物联网平台上创建物联网解决方案。1.1 什么是物联网

有很多关于物联网的定义,网络上常见的文章通常都认为它是一组通过互联网连接的各种事物,包括人、物体、计算机、电话、建筑物、动物等。

物联网这一术语是自嵌入式系统能够连接到互联网以后才开始使用的。物联网的范围也在不断扩大,从电脑、移动电话,到智能手表、恒温器和冰箱,甚至包括整条生产线。

DIY群体进一步深化了这一变革,在世界范围内,你会发现多种通过物联网搭建的原型系统,如Arduino、Raspberry Pi以及其他芯片系统,它们价格更低廉,编程语言对用户更为友好,甚至支持图形编程。

例如,冰箱互联有哪些优点?物联网技术使得制造商能够了解用户行为,判断用户从上午9点到下午6点不在家,因为在这个时间段,冰箱门连续一个月都没有打开过。如果可据此对冰箱程序进行重新编程以减少在此期间的能耗,会怎样?如果同一家制造商查看所有此类用户数据,会怎样?结论是,通过深入了解不同群体每天如何与冰箱互动,并据此创建新的模型,这种解决方案在环保、定制化和经济性方面更具优势,而且还可以据此更新冰箱软件,使其更智能,而不必重新购买新软件。

在这种大的背景下,苹果公司也发布了HomeKit和HealthKit等物联网方案实施框架,这些框架的设计都是针对不同的应用目标,但其原理大同小异,都是通过事物互联来实现各种应用。

例如,人们可以将门窗感应器、照相机、恒温器、灯泡和锁等物体连接到互联网,然后使用iPhone上的HomeKit等APP在世界任何角落控制它们。这样就可以在回家的路上自动启动恒温器,或者当你在外面的时候能收到诸如开门之类的通知,它甚至可以通过与体重秤相连,告知你每天的体重。Google、亚马逊和其他公司也推出了类似实施框架。

IBM Watson物联网平台区别于以上实施框架的是,它并不提供具体的应用,而是侧重于提供一个安全的、可扩展的、可靠的平台,作为设备和应用之间的桥梁。1.2 物联网通用案例

冰箱是物联网在家用电器领域应用的典型案例,在本章中,我们还将讨论其他几个比较成功的物联网应用案例。1.2.1 车互联

从自动驾驶汽车来看,汽车制造商可通过车互联了解司机驾车习惯,据此提升自动驾驶系统的人性化及安全性。

从厂商角度来看,车互联还可以提前检测出问题组件,从而提前召回,提升顾客满意度,同时降低问题组件生产成本;从车主角度来看,车互联可以监测汽车零部件磨损情况,并降低维修费。1.2.2 人互联

人们在运动时,可通过智能手表来监测自身健康状况。存储和分析这些数据,可为医学研究提供依据,据此预测疾病,改善生活质量。

此外,健康设备互联(如体重秤、心脏监测仪和血压计)并使用区块链技术共享数据,可为每人建立统一的医疗报告。医生利用这些数据,可提升诊断准确性,也使疾病分析预测成为可能。

物联网还在2016年里约热内卢奥运会上发挥了重要作用。比赛中使用了许多互联设备来采集运动员运动过程的身体信息,利用这些信息可随时跟踪运动员比赛过程中的身体异常状况。也可据此研制或改进体育装备,例如自行车等,并研发新的体育项目。

以上实例说明,物联网将彻底改变我们的生活方式,我们应该对此更加关注。1.3 物联网技术要素

物联网解决方案的实现需要一组要素,而不是仅仅依赖某些设备和应用就能实现。这些要素可为公司和员工提供更多价值。在本节中,我们将讨论这些要素中的一部分,如设备、硬件和软件,这些对于设计和实现有效的物联网解决方案至关重要。1.3.1 设备

设备处于物联网解决方案的边缘,事实上,这些设备就是我们物联网中提到的事物,这些事物通常可以发送和接收数据信息。

举个例子,嵌入式土壤水分探测仪可监测土壤湿度,当湿度降至43%时,该设备会向其连接的平台发送报告,该平台存储数据的同时进行判断,并向该设备发送打开水阀的指令,以恢复土壤湿度。当然,这种交互还涉及设备相关的其他方面,这将在接下来的部分中讨论。现在,我们先看一下设备部分。

这里的设备是具有模拟或数字(或两者兼备)处理能力的计算单元,通过探测仪和执行器读取和写入模拟和数字信号来实现交互功能。

模拟信号是一种可以在一定范围内变化的信号。以Arduino Uno板为例,它有一个10位分辨率的模数转换器(ADC),这意味着它可以读取0~5V之间的电压,并将它们映射到0~1 023之间的整数值10(2=1 024)。模拟信号通常用于读取模拟传感器的数据。

数字信号是二进制信号,只有两个可能的值:0或1,高或低。这种信号主要用于识别或改变开关状态,例如,打开或关闭LED灯泡。1.3.2 边缘计算

设备还可以自行处理一些简单任务,例如,在土壤湿度低于50%时,打开水阀1分钟,5分钟之后再检查一次土壤湿度。

也可处理一些复杂任务,例如,确定一辆无人驾驶汽车的摄像头拍摄到的某个物体是等待过马路的行人还是一棵树。

必须获取和分析这类信息的设备不能总是依赖于网络或应用程序,如果其中一个出现问题,整个系统就会失灵。

为此,人们为这类设备提供了一种不同的能力,叫作边缘计算功能,即在解决方案的边缘(也就是设备自身)分析处理的能力。边缘计算允许设备在“脱机”状态下执行一些操作和计算,而不需要与网络连接。

设备是物联网解决方案的重要组成部分,在选择使用哪类设备时,最好的办法就是确保设备本身具备所有功能。

但由于一个物联网解决方案涉及的设备数量非常多,如果设备设计过于冗余,又会引发项目成本、耗电、连接协议、用户体验甚至解决方案复杂性等问题。1.3.3 网络

将这些设备连接到互联网是物联网解决方案的另一重要因素,如何连接就变得至关重要。现在普遍使用的网络标准是无线(Wi-Fi)或有线网络、蜂窝/移动网络、LPWAN和LoRa。这些网络标准各有利弊,具体如下。1.Wi-Fi或有线网络

Wi-Fi(无线)是互联网上最常见的标准通信模式,它假设互联物体能够连接到IEEE 802.x网络,因此能够处理基于IP的网络。

市场上有许多具有Wi-Fi功能的设备,如ExpressIf ESP-8266和ESP-32模块、Texas Instruments CC3200、Microchip ATSAMW25、Intel Edison和Galileo等。当然还有许多其他组合,它们整合了Wi-Fi控制器和微控制器(MCU)功能。

Wi-Fi模块相对便宜,特点是能够支持较高有效载荷传输,其可靠性较高,连接速度高达6.7 Gbps。

下图为基于Wi-Fi的物联网解决方案示例:

多个设备可以连接到一个节点,例如路由器上,路由器再连接到互联网,并允许连接到路由器上的设备访问互联网。2.蜂窝/移动网络

移动电话使用的网络连接即是蜂窝网络。这种网络的基本思想是将一个大的区域划分为多个小的区域,每个小区域都有一个由基站和多个收发器组成的无线网络连接,可提供语音、文本和数据传输等服务。

如果某解决方案中的设备处于Wi-Fi网络覆盖范围之外,例如汽车中,这种情况下可以使用移动网络。如果解决方案不能依靠用户的网络,例如,你使用的设备需要付费订阅且设备的使用依赖网络链接,那么这种情况下也需要使用移动网络。当使用付费订阅网络时,即使用户禁用网络连接,设备也可继续工作。

下图描述了标准移动网络工作情况:

从上图可见,移动天线向一定区域提供信号,范围内的设备可通过无线网络连接到移动天线,并使用移动服务提供商提供的互联网连接等服务。3.LPWAN

LPWAN(低功耗广域网)属于无线网络的一种,适用于远程、低比特率、数据传输量较小的网络环境。

LPWAN主要使用低功耗、低比特率和低频设备,但在连接到事物时网络会变得非常强大。这是因为它使用的是长效电池和低功率设备。但也有许多限制,例如每天对有效载荷或传输的消息有一定限制。

较低的频率使得LPWAN非常可靠并且对干扰不敏感,甚至在大范围传播信息时也是如此。LPWAN提供商通常限制网络中的信息数量。有很多LPWAN提供商,其中最有名的大概是Sigfox。

LPWAN没有从设备或网关到互联网的直接连接。相反,它们通常有预先准备好的网络,网络的一端是设备,另一端则拥有许多Web hook和功能,你可以在这一端连接到你的应用或平台:

与移动网络不同的是,LPWAN网络不提供到设备的互联网连接,而是提供方法创建从设备向网络发送的事件的触发器。举个例子,你可以在LPWAN供应商网络的“边缘”创建一个应用和一个链接到互联网的触发器,这样无论何时从一个设备收到数据触发事件,它就利用从设备发布的事件中得到的数据调用一个互联网上的可用服务。4.LoRa或LoRaWAN

LoRa网络图类似LPWAN网络,除了不使用服务提供商基础设施之外,LoRa网络可以有一个允许设备连接到互联网的网关。负责LoRa网络基础设施的人是网络的所有者,这意味着不依赖网络服务提供商就可以创建自己的网络:

有几种技术与LoRa的模型相同,具有不同的协议,例如ZigBee。Phillips Hue使用同样的方法将灯泡、LED条纹和其他Hue设备连接到ZigBee网关,然后再将ZigBee网关连接到Hue云。5.网络小结

总之,当选择网络连接时,下表可作为参考:1.3.4 应用程序协议

物联网解决方案确定了最合适的设备后,下一步就是确定用于与设备通信的协议。物联网解决方案倾向于使用轻量级协议,如MQTT等。这不是唯一可以在物联网中使用的协议,但是由于IBM Watson物联网平台依赖于MQTT和REST,而且REST非常流行,下面看一下MQTT。MQTT

MQTT代表消息队列遥测传输。它是一种基于发布和订阅模式的极其轻量级的消息传递协议。与任何消息队列模型一样,它是一个异步协议。

如下图所示,发布和订阅(pub/sub)模型依赖于三个要素:

这三个要素情况如下:

·发布者是生成任何内容并将其发布到指定主题的参与者。

·订阅者是事件使用者。订阅者订阅其感兴趣的主题,并在发行者每次为其订阅创建发布时获取发布的事件。

·代理负责接收发布物并将感兴趣的主题通知订阅者。

现在让我们继续讨论下一个重要的技术元素。1.3.5 分析与人工智能

在物联网解决方案中分析软件或人工智能软件组件并非不可缺少,但如果使用它们处理从设备收集的数据,则可提前预警设备故障,也可更好地理解用户行为等。

例如,通过一组节能洗衣机捕获的数据可能会发现,该设备能耗比想象中要多。根本原因是由于缺乏润滑剂,因为现有润滑剂量对于非热带国家的发动机是不够的。

据此,再将这些信息与销售数据一并分析,发现大约8个月前欧洲售出了100万台此类洗衣机。对于洗衣机制造商,可从洗衣机必须更换备件的早期运费中获益;还可以为其供应商提供润滑剂需求预测数据;也可根据此数据分析进行新产品设计。1.4 IBM Watson物联网平台特性

IBM Watson物联网平台是连接各类应用、设备、网关、事件处理和管理任务等物联网解决方案的纽带,它支持REST和MQTT协议,可以在IBM Cloud平台(以前的IBM Bluemix)上使用。IBM Cloud平台是一个基于Cloud Foundry和Kubernetes的云平台。

本节我们将讨论IBM Watson物联网平台的以下主要特性:

·仪表盘。

·设备、网关和应用。

·安全性。

开始啦!1.4.1 仪表盘

当访问IBM Watson物联网平台时,将首先看到商业智能仪表盘。这个仪表盘可以由许多仪表盘和卡片组成,为物联网解决方案提供了一些可视化形式:

研究一下这个屏幕上的仪表盘和卡片,以熟悉界面。1.4.2 设备、网关和应用

该平台中的另一个功能是设备管理控制。这一功能可以创建和删除设备、网关、应用和设备类型,还可以对设备进行检查和启动操作,例如固件升级请求或重置:

你还可以创建API密钥,以便其他应用可以连接到物联网,并与解决方案的其他组件进行交互。1.4.3 安全性

还可利用IBM Watson物联网平台保障解决方案的安全性。包括创建设备连接策略、设备IP地址白名单和黑名单,或者查看一些国家的相关规定。你还可以对物联网解决方案管理员进行授权。1.5 创建你的第一个物联网解决方案

本章前几节没有对设备和应用进行深入剖析,要理解它们在物联网解决方案中的作用,还需要举些例子。

这里的场景是,有一台设备连接到IBM Watson物联网平台,设备发送时间戳作为数据,还用到一个应用,该应用使用Node.js将数据打印到stdout:

改进一下,在解决方案中增加一个网关,如下图所示:

总而言之,网关连接与设备连接的不同之处在于,你可以使连接到物联网平台的设备更加抽象化或专业化,是否增加网关还要取决于这样做是否能够使解决方案更简单、成本更低或者带来其他便利。1.5.1 创建网关

创建网关的首要任务就是创建一个物联网机构。如果你没有IBM ID和IBM Cloud账户,注册过程也非常直观,只需几分钟。如果你已经拥有IBM ID和IBM Cloud账户,请访问http://bluemix.net的IBM Cloud平台。首先,登录并为本书中的练习创建一个新空间。

登录到IBM云平台并访问指定空间后,选择Creat resource选项以访问服务目录:

在菜单中选择Internet of Things,并创建一个名为Internet of Things Platform的服务,然后选择Create选项:

创建完成之后,选择Launch选项,访问这个物联网平台:

此物联网平台网址是:https://xxxxxx.internetofthings.ibmcloud.com/。

这里,xxxxxx是你的机构ID,整个过程中都要使用它。1.5.2 创建应用

创建应用就是允许实际的应用或服务连接到指定的Wastson物联网平台机构。

1.为了做到这一点,可以通过IBM Cloud仪表盘访问物联网平台,从旁边的菜单选择App,然后选择Generate API key,在Description字段填写:Hands-On IOT Solutions with Blockchain-Chapter 1 App。最后,单击Next:

2.在下拉列表中选择Standard Application,并单击Generate Key。你将获得一个API密钥和身份验证令牌。以表格形式记录这些内容,如下所示,因为你需要使用这些信息才能连接到应用程序:

3.接下来,打开首选项的IDE,创建一个新的Node.js项目,并安装ibmiotf程序包:

4.package.json文件大致如下所示:

5.现在,创建一个名为应用application.json的文件,内容如下:

6.创建一个名为index.js的文件,并添加以下内容:

7.通过运行npm start命令来测试应用:

祝贺你,你刚创建了连接到IBM Watson物联网平台的应用。

8.现在,更新index.js,使其具有以下内容:

现在,每当设备发布事件时,都会将事件打印到stdout。在下一节中,我们将创建一个设备来发布事件。1.5.3 创建设备

在本节中,你将执行类似的步骤,创建一个连接到IBM Watson物联网平台并发布事件的假设备(fake device)。

1.按照安装步骤创建物联网平台服务,在菜单中选择Devices,然后选择Add Device。创建名为DeviceSimulator的设备,并在Device ID字段中填写DeviceSimulator01。

2.因为它只是一个模拟器,所以只需单击Next,直到你到达向导的末尾:

3.注意生成的设备凭据格式如下:

4.回到你喜欢的IDE,并创建与以前的应用基本相同的项目:

5.package.json文件如下所示:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载