新書推薦:
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
《
周易
》
售價:HK$
44.6
《
东南亚的传统与发展
》
售價:HK$
67.2
|
編輯推薦: |
★ 内容不专在某一方面知识,专在系统设计
★ 运用目前的主流技术,将不同的领域联通
★ 循序渐进,一步一步搭建一个完整的物联网系统
★ 作者是物流网领域全栈工程师
★ 清晰展现了实际物联网系统设计和实现思路
|
內容簡介: |
物联网是一个跨领域的学科,涉及方方面面的知识,包括硬件、软件、网络、协议等,这些知识很难在一本书里详细展开。目前很多关于物联网的图书集中于射频、ZigBee、WiFi、蓝牙等硬件层级的构建。本书从自己动手打造一个物联网出发,旨在教会读者如何从系统级别、架构级别去设计物联网,从而掌握打造物联网系统的全过程。本书在讲解的过程中遵循循序渐进的思想。首先,设计一个基于文本文件的物联网系统,向读者展示一个基本的物联网体系。然后,实现以互联网为基础的物联网系统,即以HTTP协议与Web编程为基础的物联网系统。最后,打造一个能结合多个物联网协议的物联网系统。在这个过程中,读者还将学会如何打造物联网的相关应用——手机APP、温度趋势、网页端控制等,以及如何打造智能、安全的物联网系统的相关内容。
|
關於作者: |
黄峰达,毕业于西安文理学院电子信息工程专业,2013.12~今,在思特沃克软件技术西安有限公司ThoughtWorks任软件开发工程师,常年活跃在Github等技术社区。
|
目錄:
|
第1章 概览1
1.1 物联网发展历史1
1.2 物联网概念3
1.3 联网——各式各样的联网设备4
1.4 物联网系统的核心是网络5
1.5 小结6
第2章 一个极简的物联网:hello,world8
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控制LED28
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 MVC55
4.1.2 领域与适配器层56
4.1.3 最小的HTTP API57
4.1.4 RESTful API58
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 一个重复的示例以及仿造API89
5.1.2 Raspberry Pi + Arduino90
5.1.3 Arduino与网络模块94
5.1.4 NodeMCU98
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 使用Dashing140
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 MQTT171
7.1.1 MQTT消息订阅示例171
7.1.2 创建MQTT服务174
7.1.3 整合MQTT服务179
7.1.4 MQTT-SN189
7.2 CoAP189
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
|
內容試閱:
|
序
很久之前读过一本关于芯片技术的书籍,在书的前言中作者讲述了一个故事。大意是这位教授在某次讲座中说到:以后芯片的数量肯定是现在的几十倍,到时候我们都会享受到各种芯片强大的计算能力。
这时一位听众当场起来反驳他道:难道这栋大厦也会安装几个芯片吗?随后引来哄堂大笑。
十年后当这位教授再次来到这栋大厦开讲座时,这里已经安装了不止几十个芯片。每个门侧都有一个门禁芯片,走廊里面各种传感芯片负责感应温度变化来检测火情等。
反观现在,如果我们说以后电视、冰箱、空调甚至菜刀、锅碗、窗户都可以上网,也一定会迎来不少人的嘲笑。但是我们依然有理由坚信这些正在慢慢成为现实。
上过大学的人都有感触,自行车、饭卡、女朋友,三者其一如果没有弄丢过,那么你的大学是不完整的。当手机不知道放在哪了,我们可以用朋友的手机拨通这个号码,这样就可以根据来电声音找到手机。但是当钥匙不知道放哪了,除了翻箱倒柜地找之外,貌似没有更好的办法了。如果钥匙也能够接入网络的话,那么我们就可以轻松地定位钥匙于千里之外。
互联网的发展飞速地改变着世界,也改变着我们。而细看互联网的发展你会发现,之前我们使用互联网检索信息,这时的互联网连接的是人与信息,可以广义地称之为人与物。随着QQ、微信、人人网等社交网站的兴起,互联网连接的是人与人。而下一个互联网的发展方向则是连接物与物我们称之为物联网。
小时候我们总会幻想有一个哈利?波特那样的魔法世界,或者西游记那样的神话世界,而长大后我们则会畅想钢铁侠那样的科幻世界。
下班后当你拖着疲惫的身体坐在地铁上,拿出手机更新自己的状态为下班路上,这时电饭煲会自动开启,里面的米饭进入蒸煮状态,窗户自动关闭,而空调自动打开并根据室内温度调整到最适合的温度不过最霸气的当然还是每天早上,你睁开朦胧睡眼,大喊一声要有光,于是整个屋子都亮了。
虽然如此便捷,但是你是一个保守派,于是你并没有把root权限给它们,凡是都要亲自做决定,这时打开E-mail将是你最忙的时候。
冰箱给你发来2封邮件,牛奶不够了,我已经查询了各大商城和附近超市,建议从家乐福订购打折促销的纯牛奶,提示:最新发现您的各项饮食指标不平衡,所摄取的食物中维生素C的含量偏低,是否购买半斤芹菜。
床发来1封邮件,最近七天睡眠质量图表如下
就连菜刀都发来了1封邮件:我该磨了。
而这一切天方夜谭似的故事正在工程师们的智慧和努力下成为现实。本书就讲述了如何设计并构建一个完善的物联网系统。
最初在网上了解Phodal是那篇在GitHub连击300天的文章,按活跃度来讲Phodal应该是国内最活跃的开源贡献者了。
当作者Phodal告诉我,他的书要出版了,让我写个序。我最初以为是Growth增长全栈,当他告诉我是关于物联网的时候,确实有些吃惊。当我再重读Phodal 的《编程之路》时发现,他不仅仅是一名前端加后端的全栈工程师,更是一位软件加硬件的全能工程师。
去年Phodal曾向我问Flarum接口API的情况,当时我正在国内为Flarum布道,遂给他介绍了一下Flarum的源码、接口、文档,以及中文社区的建设情况。没过几天Phodal告诉我,他用Growth为Flarum做了一个全平台的客户端iOS、Android、WinPhone、Windows、Mac、其他。但愿有一天我家的微波炉也可以在Flarum论坛发帖。
Phodal来写这本物联网的书,那么注定这本书将是一本科普与实战相结合的进阶读物。里面不会有太多的名词概念的解释,更多的是如何设计,如何实现。
如果你是一名创客、极客,那么这本书很适合你。
Just enjoy it.
justjavac
Flarum中国社区创始人
2016年5月,天津
前 言
在最开始的时候,人们使用CGI来开发动态网页。在那个时候,人们也使用CGI来开发一些联网应用。早先及现有的物联网应用使用Web技术作为基础的技术,接着人们开始将一些不错的协议使用在物联网中,如MQTT。又有一些组织在制定一些协议,如CoAP。同时越来越多的国家和组织在出台自己的标准。
幸运的是,这些技术都是依据现有的技术发展而来的。技术在过去的几十年里发生了快速的变化,但是它们的本质是解决问题。而问题并没有发生快速的变化还是一样的问题,只是我们有了更多可用的解决方案。
本书目标
本书不是一本详细介绍物联网系统的书籍,也不会和国内的一些教程一样主要集中于射频、ZigBee、WiFi、蓝牙等。我相信这些知识你已经在其他书中学到过了,而这些书籍更多的是侧重于硬件层级的构建,没有从系统级别、架构级别对系统进行设计。设计这样一个完整的系统,则是本书的核心。本书旨在教会用户如何去设计的思想,以及如何打造物联网系统的过程。至于系统底层硬件的实现细节则需要用户去把握。
本书遵循循序渐进的思想,从设计一个极其简单的物联网系统,再到基于以互联网为基础的物联网系统,最后打造了一个基于物联网协议的物联网系统。在这个过程中我们还将教会读者打造物联网的相关应用手机APP、温度趋势、网页端控制等。
由于设计这个物联网系统本身有太多的知识点,并且涉及方方面面的知识,本书将尽可能地向读者推荐一些扩展阅读资料,并且建议读者多多实践。同时,由于章节间是一步步加深的关系,如果你在这其中遇到什么问题可以及时与作者联系。
目标读者:对物联网感兴趣的创客、极客、程序员、设计师;对物联网感兴趣的大学、中学师生;想自己动手设计完整物联网的相关从业人员。
为什么是JavaScript
在思考着用哪门语言来编写程序的时候,我考虑到了Python、Java、JavaScript。Python是我最喜欢的语言,JavaScript是我最擅长的语言,Java是我最常用(工作)的语言。它们都是非常不错的跨平台语言,它们都有广泛的使用者。
如果考虑将其商业化,我会考虑使用Java语言。Java语言是一门正统的语言,即在国内的计算机科学领域,各个院校都将之列为必学语言。除去Java Web的流行带来的需求,Android也增大了对Java语言的需求。由于Java语言是一门编译语言,并且经过二十多年的发展,积累了大量的技术和智慧,使得它相当稳定。因而多数企业都采用这门语言作为其主要语言。尽管Java语法简单,但是语法却比较烦琐、开发效率低,并不利于我们表述。
如果仅仅是考虑学习服务端,我会考虑使用Python来写我们的物联网系统。Python是一门简单、易学、易懂的脚本语言,在科学计算领域非常受欢迎。并且,在书中的一些例子里我会使用Python语言。Python语言富有表现力,可以更容易地让我们将自然语言转换为机器语言。然而,对于读者来说可能存在更多的学习成本。
So,JavaScript有什么优点?无论我们使用Java还是Python语言来开发我们的物联网应用,凡是涉及到网页前端相关的内容,我们都需要JavaScript,这就足够了!
那么,为什么我们不使用JavaScript来完成所有的这些工作呢?它有:
?Node.js框架最流行的JavaScript服务端平台,可以创建Web应用。
?Cordova框架最流行的混合应用框架,可以使用Web技术来开发手机应用(iOS、Android、Windows Phone等)。
这就意味着,我们可以用这门语言完成所有的开发任务服务端、客户端、移动应用。如果你想,也可以用这门语言完成硬件端的开发。三星推出了可以适用于嵌入式设备的小型JerryScript,谷歌的两名前员工推出了适用于物联网领域的软件平台Smart.js。并且已经有几个开发板,如Tessel 2、Espruino,可以让你使用JavaScript为你的芯片编程。
其他语言
在服务端、客户端和移动应用的例子里,我们会用JavaScript、HTML、CSS来向读者展示其中的原理。在硬件部分,我们会用CC语言。在Raspberry Pi上编程的时候,会使用Python。其他部分,如Dashborad和NodeMCU的介绍,会有一些Lua或者Ruby语言的例子。
我们之所以在Raspberry Pi上使用Python语言,不仅仅是因为使用Python语言更容易读懂,而且在这个领域中主要使用的也是Python语言。同理于Dashboard的示例,我们使用了Dashing这个流行的框架,只是因为它更容易上手,并且使用的人较多。这就意味着,在我们遇到问题的时候更容易解决。
我们并不希望这些语言会阻碍你前进。在适当的时候你可以先跳过这一部分如Dashing,我们展示了如何自己去写类似的界面,使用这个框架只是为了开发更快。随后在真正使用它的时候去深入它们。
为了用而学习是最有效率的学习。
本书内容
如下所示,本书分为8个章节和4个附录。
第1章 概览
本章介绍了物联网的历史背景和相关技术,以及其与互联网的关系。
第2章 一个极简的物联网:hello,world
本章以一个文本文件的数据为中心,快速搭建一个极简的物联网原型。其中将向读者展示物联网的一些基础知识。
第3章 分解物联网系统
本章将描述常用的物联网系统架构,并对每一个层级进行详细的描述和介绍。
第4章 基于Web的物联网系统
本章将介绍常用API的模式RESTful,并将带领读者打造基于HTTP协议的物联网系统。
第5章 连接设备
本章将介绍一些容易上手的设备,并将这些设备连接到物联网。不仅可以控制LED,也可以上传传感器数据。
第6章 物联网应用示例
本章将介绍用趋势图来显示传感器的数据,还将展示如何打造一个跨平台的APP来控制物联网设备。同时,还有使用一些当前的云服务来降低开发难度。
第7章 实现超越互联网的物联网
本章将介绍MQTT、CoAP等物联网协议,它们可以帮助我们更好地处理物联网系统中的消息通信
|
|