发表于2024-12-25
√ 物联网的潜能绝不止于解决特定场景的小问题,而是用务实|结构化的方法论来构建大型系统、实现创新、重建秩序。
√ 对 WoT 及其工具链的深刻理解和良好把握,让你得以用成熟的万维网协议建立更大、更智能、更简单的万维物联网。
√ IoT 离不开更大图景及完整生态,作者要用超前视野和大局观,解决无数工具|标准|协议及云服务构成的高度碎片化。
√ 易读到物联网新手可按图索骥建立一个完整的端到端物联网;深刻到创建完所有元素后你已成为熟练的物联网开发者。
本书是介绍万维物联网的入门教材。作者通过将树莓派作为物理设备网关,提出一种构建万物互联的可行方案――利用现有的万维网标准、HTTP 协议,以及HTML、CSS 和JavaScript 技术,让智能产品终端成为开放的万维网的一部分,最终形成物联网和万维网的结合体――万维物联网。本书分为两个部分,第1 章到第5 章是第I 部分,内容涵盖万维物联网基本概念、JavaScript 和Node.js 介绍,通过一个简单的例子来说明如何使用Node.js 的Web 框架与远程设备进行交互。第6 章到第10 章是第II 部分,详细介绍万维物联网技术栈中的各层架构及如何用现有的Web 技术实现各层架构,最终能够形成物理网聚合应用,能够快速创建复杂应用程序,整合各种设备和数据。本书涉猎的技术范围广泛,包括各种Web 和物联网协议、Web 标准及树莓派的原理与实践。适合之前没有丰富嵌入式开发经验,但希望探索物联网世界的Web 开发人员阅读,也适合作为一本初级教程指导树莓派开发者和Node.js 爱好者进行物联网开发实践。
Dominique “Dom” Guinard 是 EVRYTHNG 的 CTO 和联合创始人,EVRYTHNG 是一个大规模的万维物联网云平台,通过连接产品到万维网让它们变得更智能化。Dom 拥有苏黎世联邦理工大学的博士学位,他在学校期间致力于万维物联网架构的早期研究:万维物联网架构是物联网的一个开放的应用层。早在 2012 年,他的博士论文被授予 ETH 勋章。在这之前,Dom 花了十年时间研究了许多物联网项目:与 Sun Microsystems 公司合作探索大规模 RFID 网络,研究移动电话作为物联网网关的作用,在苏黎世联邦理工大学的 Auto-ID 实验室参与诺基亚的一些研究,在麻省理工学院的 Auto-ID 实验室将 EPCglobal RFID 网络用于万维物联网,以及用四年时间在 SAP 的企业级软件中整合标记的对象和无线传感器网络。
Vlad Trifa 是 EVRYTHNG 的联合创始人、产品研发的执行副总裁。他是分布式嵌入传感器和交互式设备与使用 Web 技术的企业应用软件集成方面的公认专家。曾经他是麻省理工学院的感知城市实验室的研究员,在美国和新加坡研究城市与移动计算,在加州大学洛杉矶分校研究生物和分布式信号处理,以及在日本东京的国际电器通信基础研究所(ATR)研究人与机器人交互和神经系统科学。他也曾经作为 SAP 的助理研究员,在工厂自动化与企业计算方面获得工业经验。Vlad 以博士学位毕业于苏黎世联邦理工大学计算机科学专业并拥有瑞士洛桑联邦理工学院机器人学、人工智能和机器学习方向的计算机科学硕士学位。
吴亮(月影)奇虎360高级技术经理,360前端团队 奇舞团 负责人,w3ctech顾问。曾先后在微软亚洲研究院做过访问学生、金蝶软件担任项目经理,百度电子商务事业部担任Web开发项目经理。多年来致力于Web标准和JavaScript技术的推广,活跃于国内各技术社区。
一系列奇妙的点子,也是对IoT工具集的一个极好的补充。
——Mike Kuniavsky 帕洛阿尔托研究中心创新服务部
IoT需要一个应用层,而改造Web的应用层是明智的做法!这本不错的书将向你展示如何在几周内达成目标。
——Sanjay Sarma
麻省理工大学AutoID实验室
Dom和Vald是IoT界的精神领袖,他们专注于如何通过实践达到目标。
——Andy Chew
思科(英国)
本书对WoT这样复杂的主题进行了由浅入深的介绍,而且还写得非常通俗易懂!
——Steve Grey-Wilson
PTC公司旗下Thingworx
第I 部分 物联网与万维物联网基础
1 从物联网到万维物联网
1.1 定义物联网
1.2 进入万维物联网
1.2.1 万维物联网场景:连接旅店
1.2.2 对比物联网和万维物联网
1.2.3 物联网简史
1.3 使用案例――为什么连接设备
1.3.1 无线传感器网络和分布式传感
1.3.2 可穿戴和自我量化
1.3.3 智能家居和建筑
1.3.4 智能城市和能源网络
1.3.5 智能制造与工业4.0
1.3.6 智能物流和供应链
1.3.7 营销2.0
1.4 万维物联网――增强版的物联网
1.4.1 更容易编程
1.4.2 开放和可扩展标准
1.4.3 快速且易于部署、维护与集成
1.4.4 元素之间的松耦合
1.4.5 广泛使用的安全和隐私机制
1.4.6 万维物联网的弊端
1.5 总结
2 你好,万维物联网
2.1 初识万维物联网设备
2.1.1 主角登场:树莓派
2.2 练习1――在万维物联网上浏览一个设备
2.2.1 第1 部分――Web 作为用户界面
2.2.2 第2 部分――Web 作为API
2.2.3 小结
2.3 练习2――从一个WoT 传感器中轮询数据
2.3.1 第1 部分――轮询当前传感器读数
2.3.2 第2 部分――轮询和绘制传感器读数
2.3.3 第3 部分――实时更新数据
2.3.4 小结
2.4 练习3――作用于现实世界
2.4.1 第1 部分――使用一个表单来更新显示的文字
2.4.2 第2 部分――创建你自己的表单来控制设备
2.4.3 小结
2.5 练习4――让别人知道你的设备存在
2.5.1 小结
2.6 练习5――创建你的第一个物理网聚合应用
2.6.1 小结
2.7 总结
3 Node.js 与万维物联网
3.1 JavaScript 崛起:从客户端到服务端到智能产品
3.1.1 在智能产品中引入JavaScript
3.2 Node.js 简介
3.2.1 在电脑上安装Node.js
3.2.2 用Node.js 写一个Web 服务器
3.2.3 以JSON 格式返回传感器数据
3.3 Node.js 的模块化
3.3.1 npm――Node 的包管理器
3.3.2 通过package.json 和npm 完全管理依赖
3.3.3 你的第一个Node 模块
3.4 理解Node.js 事件循环
3.4.1 多线程Web 服务器
3.4.2 单线程、非阻塞Web 服务器
3.5 开始异步编程
3.5.1 匿名回调
3.5.2 具名回调
3.5.3 控制流库
3.6 总结和课外阅读
4 嵌入式系统入门
4.1 进入嵌入式设备的世界
4.1.1 业余爱好者的设备与工业级设备
4.1.2 实时操作系统与Linux
4.1.3 小结及超越树莓派
4.2 建立你的第一台WoT 设备――树莓派
4.2.1 入手树莓派
4.2.2 选择你的树莓派
4.2.3 购物清单
4.2.4 设置你的树莓派
4.2.5 连接你的设备
4.3 安装Node.js 到树莓派
4.3.1 在树莓派上使用Git 和GitHub
4.3.2 小结
4.4 连接传感器和执行器到树莓派
4.4.1 理解GPIO 端口
4.4.2 使用面包板连接电子元件
4.4.3 用Node.js 访问GPIO
4.4.4 课外阅读
4.5 总结
5 构建智能产品网络
5.1 连接智能产品
5.1.1 网络拓扑结构
5.1.2 网络分层模型
5.2 智能产品的网络层协议
5.2.1 从空间的角度考虑
5.2.2 网络协议和IoT
5.2.3 IoT 个人局域网
5.2.4 IoT 广域网
5.2.5 网络层协议的选择
5.3 智能产品的应用层协议
5.3.1 ZigBee 和蓝牙的应用层
5.3.2 Apple HomeKit 和Google Weave
5.3.3 消息队列遥测传输
5.3.4 资源受限的应用协议
5.3.5 应用层协议的选择
5.4 万维物联网架构
5.4.1 第1 层:接入层
5.4.2 第2 层:发现层
5.4.3 第3 层:共享层
5.4.4 第4 层:整合层
5.4.5 为什么WoT 是重要的
5.4.6 课外阅读
5.5 总结
第II 部分 构建万维物联网
6 接入层:智能产品的API
6.1 设备、资源和Web 智能产品
6.1.1 表述性状态转移
6.1.2 为什么需要一致的接口
6.1.3 原则1 :可访问资源
6.1.4 原则2 :通过表述来操作资源
6.1.5 原则3 :自描述信息
6.1.6 原则4 :超媒体作为应用程序状态引擎
6.1.7 小结――Web 智能产品设计过程
6.2 超越REST :实时万维物联网
6.2.1 WoT 需要事件
6.2.2 发布/ 订阅
6.2.3 webhook――HTTP 回调
6.2.4 Comet――用hack 的方式让HTTP 支持实时Web
6.2.5 WebSocket
6.2.6 未来:从HTTP/1.1 到HTTP/2
6.3 总结
7 实现 Web 智能产品
7.1 连接设备到Web
7.2 直接集成模式――在设备上实现 REST
7.2.1 创建WoT 服务器
7.2.2 资源设计
7.2.3 表述设计
7.2.4 接口设计
7.2.5 通过WebSocket 实现pub/sub 接口
7.2.6 小结――直接集成模式
7.3 网关集成模式――CoAP
7.3.1 运行一个CoAP 服务器
7.3.2 通过网关代理CoAP
7.3.3 小结――网关集成模式
7.4 云端集成模式――EVRYTHNG 的MQTT
7.4.1 设置EVRYTHNG 账号
7.4.2 创建MQTT 客户端应用程序
7.4.3 使用action 来控制智能插座
7.4.4 创建一个简单的Web 控制应用
7.4.5 小结――云端集成模式1
7.5 总结
8 发现层:描述和发现Web 智能产品
8.1 可发现性问题
8.2 发现智能产品
8.2.1 网络发现(Network discovery)
8.2.2 Web 上的资源发现
8.3 描述Web 智能产品
8.3.1 Web 智能产品模型简介
8.3.2 元数据
8.3.3 属性
8.3.4 行为
8.3.5 智能产品
8.3.6 在树莓派上实现Web 智能产品模型
8.3.7 小结――Web 智能产品模型
8.4 语义化的Web 智能产品
8.4.1 关联数据和RDFa
8.4.2 约定的语义:schema.org
8.4.3 JSON-LD
8.4.4 课外阅读
8.5 总结
9 共享层:安全地分享Web 智能产品
9.1 保障智能产品安全性
9.1.1 加密基础
9.1.2 Web 安全与TLS :HTTPS 的S
9.1.3 在树莓派中启用TLS 以支持HTTPS 和WSS
9.2 授权和访问控制
9.2.1 通过 REST 和 API token 进行访问控制
9.2.2 OAuth :一个Web 身份验证框架
9.3 社交化万维物联网
9.3.1 社交化万维物联网认证代理
9.3.2 实现社交化万维物联网认证代理
9.4 课外阅读
9.5 总结
10 整合层:物理网聚合应用
10.1 构建一个简单的App――自动生成UI
10.1.1 Web 智能产品的通用用户界面
10.2 物理网聚合应用
10.2.1 使用Node-RED 工具创建物理网聚合应用
10.3 使用向导式工具来创建物理网聚合应用:IFTTT
10.3.1 将入侵者警报推送到 Google 电子表格上
10.3.2 使用自建通道发送请求
10.3.3 将入侵警报信息从Twitter 推送到Google 电子表格
10.4 课外阅读
10.4.1 从简单的聚合应用到大数据聚合应用
10.4.2 更好的用户体验
10.5 总结
附录A Arduino、BeagleBone、Intel Edison 与WoT
译者序
物联网(IoT)正在悄然改变着整个世界。以前收快递,快递员要拿着单子给收货人手签,现在只要扫描一下就可以了。在图书馆里借阅和归还图书,不再需要人工一本一本地记录,只需要将一叠书放在扫描器上,贴着RFID 标签的书就能被图书管理员的电脑记录和自动跟踪。连接到智能手机的健康手环能够随时监控你的健康状况。自己不在家时,如果家中有异常,安装在家里的智能摄像机会第一时间拍下险情或入侵者照片并发送警报给你。家中的一些小家电开始具备上网的功能,当你下班将要回家时,可以通过手机控制家中的暖气或空调开始工作,以便于你进入家门时,家中已经达到了令人舒适的温度。这一切都多亏了物联网的发展。
人们对于生活的追求是无止尽的。随着身边的智能产品逐渐增加,我们总想要这些设备更加方便和智能。比如,有这样一个需求:“当我人在客厅时,如果是白天,则调节窗帘打开的尺度,以保证一个让我感到舒适的亮度”,又或者“当我打开衣柜时,我的智能语音助手能为我播报一下今天的天气”,再或者“当晚上8 点半时,如果我坐在书桌前,请热水器为我开始加热洗澡水,等水温到达60 度时,有闹铃提醒我去洗澡”。想象上面这些场景,或许这些场景在未来会渐渐多起来。这里遇到的一个问题是,我如何让窗帘知道我人在客厅,并且时间是白天?我打开衣柜时,又如何知道今天的天气?我坐在书桌前,如何知道是晚上8 点半,又如何通知热水器加热和设置闹钟?这是比物联网更高一层次的问题,它涉及“如何建立一种通用的语言,让不同厂商的智能产品能够彼此通信并协同工作”的问题,而这就是本书的核心概念,即万维物联网(WoT)。如果说,万维网是通过浏览器连接人与内容、人与人,那么WoT 就是连接智能产品与智能产品、智能产品与应用程序、智能产品与数据,以及智能产品与人,这样就能形成一个全球化的、万物互联的公共网络。
作者在本书中提出WoT 这样的设想,即利用现成的Web 标准,以树莓派这样的单板计算机或者Arduino 这样更低成本的RTOS 设备作为网关,让众多设备以HTTP 协议进行通信,内容以JSON 或HTML 形式呈现。这样的话,未来开发和维护IoT 设备,让IoT 设备彼此通信,就和Web 工程师维护网页没有太大的区别。更关键的是,通过本书的分析,作者指出,使用现有的Web 标准和相关技术,完全可以解决IoT 相互通信面临的各种问题,让智能产品进入WoT 时代!
回到前面的三个场景,如果用WoT 来解决,也就是智能红外传感器检测到客厅有人,则推送一个事件给网关的Web 服务,随后Web 服务发送一个POST 请求给窗帘控制器,它控制窗帘打开一定的幅度,并将结果返回;衣柜门锁检测到被开启,则推送一个事件给网关的Web 服务,随后Web 服务请求网络上的天气服务,获得当地此刻的天气,将数据发送给语音助手,语音助手开始播报天气;桌面上的智能摄像机检测到我坐在书桌前,则推送一个事件给网关的Web 服务,随后Web 服务发送一个GET 请求获得当前时间,判断时间是否是八点半,如果已经到八点半,POST 请求就被发送给热水器控制器,让热水器开始加热。如果红外传感器、窗帘控制器、衣柜门、语音助手、智能摄像机、热水器控制器都能与Web 网关通信,那么它们之间的相互控制逻辑就可以用JavaScript 发送简单的HTTP 请求来轻松完成,而且可以用HTML 和CSS 来生成控制界面,将各个智能产品由封闭的孤岛转变成可以任意组合的物理网聚合应用。这就是WoT 最大的魅力!
本书的两位作者Dominique Guinard 和Vlad Trifa 是IoT 世界的领军人,也是WoT 的先行者,提出以Web 的思路解决IoT 的互通问题,为我们描绘了万物互联的美好前景。而像树莓派这样体积小巧、功耗低并且廉价的单板计算机,也许是未来智能家居网关最合适的选择。
如果你想探索未知的智能产品世界,同时又想让生活更美好,那么只要阅读本书,你就能通过一张名片大小的“电脑”和前端程序员熟悉的HTML、CSS 和JavaScript 技术来实现,这是多么棒的一件事!
本书没有难懂晦涩的专业术语和多么高深的理论,所有的技术内容都没有脱离Web 技术的范畴,一位稍有经验的Web 工程师应该能轻松理解和掌握书中所讲述的内容。作者还为本书提供了丰富的例子,甚至考虑到没有购买树莓派硬件的情况,为例子提供了PC 模拟的方式,便于读者理解书中的概念。当然,购买一款树莓派和一些外设来自己动手实践,无疑会更有趣一些。
由于Node.js 和树莓派在最近几年发展很快,一些标准和API 也可能发生变化,作者也考虑了这种情况,将书中所有例子以开源的形式放在了GitHub 上,如果你发现书中例子代码不能正常运行,可以访问 github.com/webofthings/wot-book 获取代码的最新版本。
本书作者在Web 和IoT 领域都有丰富的经验,知识面广泛,行文流畅,介绍的内容深入浅出。非常感谢博文视点侠少(张春雨)将这样一本好书给我翻译。我拿到本书时,就被书中内容深深吸引,迫不及待地入手树莓派深入学习。这是我独自翻译的第一本技术书籍,我深知自己知识面有限,翻译过程难免疏漏。对我翻译的书稿,奇舞团李松峰老师、博文视点恩惠编辑帮忙耐心审阅,提出了许多中肯的修改意见,非常感谢他们。希望读者能从书中得到知识,收获乐趣,用树莓派做出更有趣的WoT 应用。期待未来WoT 让这个世界变得更美好!
月影
序
从物联到万联:Node.js与树莓派万维物联网构建实战 下载 mobi pdf epub txt 电子书 格式 2024
从物联到万联:Node.js与树莓派万维物联网构建实战 下载 mobi epub pdf 电子书兴趣广泛,买了随便看看。
评分兴趣广泛,买了随便看看。
评分兴趣广泛,买了随便看看。
评分我为什么喜欢在京东买东西,因为今天买明天就可以送到。我为什么每个商品的评价都一样,因为在京东买的东西太多太多了,导致积累了很多未评价的订单,所以我统一用段话作为评价内容。京东购物这么久,有买到很好的产品,也有买到比较坑的产品,如果我用这段话来评价,说明这款产品没问题,至少85分以上,而比较垃圾的产品,我绝对不会偷懒到复制粘贴评价,我绝对会用心的差评,这样其他消费者在购买的时候会作为参考,会影响该商品销量,而商家也会因此改进商品质量。
评分我为什么喜欢在京东买东西,因为今天买明天就可以送到。我为什么每个商品的评价都一样,因为在京东买的东西太多太多了,导致积累了很多未评价的订单,所以我统一用段话作为评价内容。京东购物这么久,有买到很好的产品,也有买到比较坑的产品,如果我用这段话来评价,说明这款产品没问题,至少85分以上,而比较垃圾的产品,我绝对不会偷懒到复制粘贴评价,我绝对会用心的差评,这样其他消费者在购买的时候会作为参考,会影响该商品销量,而商家也会因此改进商品质量。
评分我为什么喜欢在京东买东西,因为今天买明天就可以送到。我为什么每个商品的评价都一样,因为在京东买的东西太多太多了,导致积累了很多未评价的订单,所以我统一用段话作为评价内容。京东购物这么久,有买到很好的产品,也有买到比较坑的产品,如果我用这段话来评价,说明这款产品没问题,至少85分以上,而比较垃圾的产品,我绝对不会偷懒到复制粘贴评价,我绝对会用心的差评,这样其他消费者在购买的时候会作为参考,会影响该商品销量,而商家也会因此改进商品质量。
评分此用户未填写评价内容
评分正在看,
评分不错
从物联到万联:Node.js与树莓派万维物联网构建实战 mobi epub pdf txt 电子书 格式下载 2024