搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
自己动手设计物联网
0.00     定价 ¥ 59.00
图书来源: 浙江图书馆(由JD配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787121290534
  • 作      者:
    黄峰达
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2016-06-01
收藏
产品特色
编辑推荐

★ 内容不专在某一方面知识,专在“系统设计”

★ 运用目前的主流技术,将不同的领域联通

★ 循序渐进,一步一步搭建一个完整的物联网系统

★ 作者是物流网领域“全栈”工程师

★ 清晰展现了实际物联网系统设计和实现思路


展开
作者简介

黄峰达,毕业于西安文理学院电子信息工程专业,现就职于ThoughtWorks。长期活跃于开源软件社区GitHub,并编写有相当数量的物联网相关开源软件、维护物联网相关资料。


专注于物联网和前端领域,长期为InfoQ编写《物联网周报》,著有电子书《一步步搭建物联网系统》、《GitHub 漫游指南》,被CSDN授予前端博客专家称号。曾作为技术专家,审阅英文版Packt出版社的物联网书籍《Learning Internet of Things》,并翻译该书。


个人网站:https://www.phodal.com/ 

个人微信公众号: phodal


展开
内容介绍

物联网是一个跨领域的学科,涉及方方面面的知识,包括硬件、软件、网络、协议等,这些知识很难在一本书里详细展开。目前很多关于物联网的图书集中于射频、ZigBee、WiFi、蓝牙等硬件层级的构建。本书从自己动手打造一个物联网出发,旨在教会读者如何从系统级别、架构级别去设计物联网,从而掌握打造物联网系统的全过程。

本书在讲解的过程中遵循循序渐进的思想。首先,设计一个基于文本文件的物联网系统,向读者展示一个基本的物联网体系。然后,实现以互联网为基础的物联网系统,即以HTTP协议与Web编程为基础的物联网系统。最后,打造一个能结合多个物联网协议的物联网系统。在这个过程中,读者还将学会如何打造物联网的相关应用——手机APP、温度趋势、网页端控制等,以及如何打造智能、安全的物联网系统的相关内容。

    本书适合对物联网感兴趣的创客、极客、程序员、设计师,对物联网感兴趣的大学、中学师生,以及想自己动手设计完整物联网的相关从业人员。


展开
精彩书评

物联网是一个跨学科的新兴领域。物联网应用系统的设计和实现,涉及门类众多的硬件、软件和网络通信知识。无论是技术选型还是具体的实现,设计者可能都需要面对各种各样的挑战和困难。作者运用目前主流的技术,用清晰流畅的表述方式,向读者呈现了物联网系统设计和实现的实际过程。作者是Github上的活跃开发者,是物联网领域的“全栈”工程师,他的设计和实现思路值得本书大多数的读者去学习和借鉴。 


——张崇明,《物联网设计:从原型到产品》译者


在如今物联网大热的环境下,很多 APP 工程师不懂硬件,很多硬件工程师不懂云,很多云工程师不懂 APP。物联网是不同技术高速公路的交汇点,这本书充当了立交桥的作用,将不同的领域连通,以实战为主,由浅入深,帮助物联网开发者快速学习物联网这个交叉领域,是一本不错的好书。


——黄锐,NodeMCU 开源项目创始人


近年来物联网的概念逐渐走进人们的视野,基于物联网的应用正在改变着我们的生活,越来越多的人们期待着它在未来的广阔应用前景。这本书给我们打开了物联网的大门,既从整体上呈现了物联网的框架,又深入地剖析了物联网所涉及的各种技术细节,如多种开发板的应用实现和物联网数据传输协议MQTT和CoAP的介绍等。更加难得的是,贯穿整本书的系统架构设计,展现了实际物联网系统的设计和实现思路,使得这本书非常具备实战价值。


——张龙,绿米联创高级软件工程师   


展开
精彩书摘

5.3 连接传感器

传感器测量的是真实世界的物理量,在测量完后,我们需要将这些数值上传到服务器。这些数据提供给其他控制器或者协调层来处理、分析数据,并发出相应的控制指令。如Oculus  公司在面向开发人员的虚拟现实设备Oculus Rift 中采用了MPU6000六轴陀螺仪传感器——融合3轴陀螺仪、3轴加速器,传感器检测用户头部在空间中的运动情况,获取其用于表示空间旋转状态的四元数与欧拉角,再分析这些数值上传到计算机来控制屏幕中物体的状态。同理,在手机上人们通过倾斜屏幕来玩游戏也是这个原理。

需要注意的是,由于传感器属于电子元件,可能易受外界的一些干扰。这时候会导致测量结果不准确,并且导致一些误差,这可以通过一些算法来解决。因此在选用传感器的时候需要注意一下传感器适合的工作环境,如环境温度,以及其工作范围等一些参数。如DS18B20的测温范围是从 -55℃~+125℃,固有测温误差1℃。在一些特殊的环境中,这些元件会相互影响,如当这个传感器需要工作在100℃的时候,我们就需要考虑到升级其周边元件。

5.3.1 让API支持上传传感器数据

在那之前,我们的服务器需要能处理数据,这就意味着要先修改一下API。

如果你使用的是SQL数据库,那么你可能需要预先设计好这些用于存储数据的字段。或者,有一个名为sensors的字段,用于存放所有的传感器值。否则,你可能需要经常做数据迁移。而使用NoSQL数据库就不存在这个问题。只要我们以同样的方式存储数据,并以同样的方式读取数据即可。

因此我们需要更新UpdateData方法。原先,我们会从request的body中拿到led的值并判断:

var payload = {user: req.params.user_id};

var data = {user: req.params.user_id, led: false};

if (req.body.led === true) {

    data.led = true;

}

现在,我们假设客户端返回的数据是正确的,即不对其数据进行验证。客户端想要存储什么数据就存储什么数据,在读取的时候返回两样的数据。修改完后的代码如下:

function updateData(req, res) {

    var userId = req.params.user_id;

    var payload = {user: userId};


    var data = req.body;

    data.user = userId;


    db.find(payload, function (results) {

        if (results.length > 0) {

            db.update(data);

            res.send({db: "update"});

        } else {

            db.insert(data);

            res.send({db: "insert"});

        }

    });

}

直接将req.body的值赋予data,并将userId也保存了下来——为了以后查询和修改。现在,让我们来更新数据试试:

curl -X PUT -d '{ "led": true, "temperature": 33 }' -H "Content-Type: application/json" http://localhost:3000/api/14

curl -X PUT -d '{ "led": true, "temperature": 33, "sun":13 }' -H "Content-Type: application/json" http://localhost:3000/api/15

我们创建了两个新的数据,一个是user为14,另一个是user为15,打开MongoDB的客户端图形界面,会有如图5-16所示的内容。

 

图5-16 MongoDB返回不同Key的结果

第二个对象比第一个对象多了一个sun的键值。对于物联网应用来说,灵活的数据库结构更容易加速我们的开发过程,并且方便扩展。

在我们完成这部分的扩展之后,就可以接上我们的传感器并开始传输数据。


展开
目录

第1章 概览 1
1.1 物联网发展历史 1
1.2 物联网概念 3
1.3 联网――各式各样的联网设备 4
1.4 物联网系统的核心是网络 5
1.5 小结 6
第2章 一个极简的物联网:hello,world 8
2.1 数据的传输过程 9
2.1.1 将数据快递到用户手中 10
2.1.2 数据与服务中心 14
2.2 一个文本的物联网 16
2.2.1 从浏览器到服务器 17
2.2.2 获取数据与状态 22
2.3 设备状态改变 23
2.3.1 用Raspberry Pi来读取数据 24
2.3.2 使用Raspberry Pi控制LED 28
2.4 小结 32
2.5 练习建议 33
2.6 问题回顾 33
2.7 相关阅读资料 33
第3章 分解物联网系统 34
3.1 物联网的层级结构 35
3.1.1 一个常见场景下的层级结构 35
3.1.2 理想的物联网层级结构 38
3.1.3 与真实世界交互的物理层 41
3.1.4 物联网的神经中枢――协调层 45
3.1.5 物联网的核心――应用层 47
3.1.6 通信 49
3.2 小结 51
3.3 相关阅读资料 52
第4章 基于Web的物联网系统 53
4.1 Web应用架构 54
4.1.1 MVC 55
4.1.2 领域与适配器层 56
4.1.3 最小的HTTP API 57
4.1.4 RESTful API 58
4.2 数据持久化 63
4.2.1 数据库简介 63
4.2.2 连接MongoDB数据库 65
4.3 视图与应用层 76
4.3.1 视图 76
4.3.2 控制层界面 78
4.4 部署 84
4.5 小结 85
4.6 练习建议 86
4.7 相关阅读资料 86
第5章 连接设备 87
5.1 连接控制器 88
5.1.1 一个重复的示例以及仿造API 89
5.1.2 Raspberry Pi + Arduino 90
5.1.3 Arduino与网络模块 94
5.1.4 NodeMCU 98
5.2 连接执行器 103
5.2.1 直接控制示例 103
5.2.2 间接控制示例 106
5.2.3 示例代码 109
5.3 连接传感器 111
5.3.1 让API支持上传传感器数据 112
5.3.2 土壤湿度传感器 114
5.3.3 温度传感器 115
5.3.4 数据合并 121
5.4 小结 123
5.5 相关阅读资料 123
第6章 物联网应用示例 124
6.1 数据可视化 125
6.1.1 可视化用户数据 127
6.1.2 仪表盘 129
6.2 仪表盘类型示例:温度趋势图 130
6.2.1 移动设备上查看 139
6.2.2 使用Dashing 140
6.3 创建手机应用 146
6.3.1 Ionic简介 147
6.3.2 趋势图 153
6.3.3 控制硬件 155
6.3.4 用蓝牙来与硬件通信 158
6.4 使用AWS云平台构建物联网 162
6.5 小结 167
6.6 相关阅读资料 168
第7章 真正的物联网:MQTT与CoAP协议 169
7.1 MQTT 171
7.1.1 MQTT消息订阅示例 171
7.1.2 创建MQTT服务 174
7.1.3 整合MQTT服务 179
7.1.4 MQTT-SN 189
7.2 CoAP 189
7.2.1 CoAP协议示例 191
7.2.2 创建CoAP服务 194
7.2.3 整合CoAP服务 197
7.3 小结 200
7.4 相关阅读资料 200
第8章 智能与安全 201
8.1 回顾我们的物联网系统 202
8.2 智能化 204
8.2.1 自然语言处理 204
8.2.2 机器学习之贝叶斯分类器 207
8.3 安全与隐私 209
8.3.1 网络攻击 209
8.3.2 认证 211
8.3.3 私有物联网 212
8.3.4 隐私 212
8.4 小结 213
8.5 相关阅读资料 214
附录A Raspberry Pi快速指南 215
附录B JavaScript基础 217
附录C Ionic简单帮助文档 228
附录D 相关资源 233

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证