物联网远不止是把东西连接到互联网上那么简单。物联网给沉默呆滞的东西加上感知、通信和响应的能力,从而把它们变得更加智能。本书来自于作者对物联网的个人体验。全书包含两个部分,第壹部分介绍构建物联网应用的基础知识,第二部分采用基于项目的方法介绍物联网应用的开发。在每一章的后,读者都会得到一个物联网应用的可用原型。
译者序
前言
第一部分 基础
第1章 Arduino入门 2
1.1 学习目标 2
1.2 硬件需求 2
1.3 软件需求 4
1.3.1 工具栏 5
1.3.2 状态窗口 6
1.3.3 串口监视器窗口 6
1.4 Arduino编程语言参考 6
1.4.1 执行Arduino代码 9
1.5 小结 10
第2章 互联网连接 11
2.1 学习目标 11
2.2 Arduino Uno的有线连接(以太网) 12
2.2.1 硬件需求 12
2.2.2 软件需求 12
2.2.3 电路 12
2.2.4 代码(Arduino) 13
2.2.5 最终的作品 15
2.3 Arduino Uno的无线连接(WiFi) 16
2.3.1 硬件需求 16
2.3.2 软件需求 17
2.3.3 电路 17
2.3.4 代码(Arduino) 17
2.3.5 最终的作品 20
2.4 Arduino Yún的无线连接(WiFi) 21
2.4.1 硬件需求 21
2.4.2 软件需求 21
2.4.3 无线设置 21
2.4.4 代码(Arduino) 26
2.4.5 最终的作品 28
2.5 小结 28
第3章 通信协议 29
3.1 学习目标 29
3.2 HTTP 29
3.2.1 代码(Arduino) 30
3.2.2 最终的作品 34
3.3 MQTT 35
3.3.1 入侵检测系统 35
3.3.2 远程灯光控制 36
3.3.3 代码(Arduino) 37
3.3.4 最终的作品 39
3.4 小结 40
第二部分 原型
第4章 复杂流程:Node-RED 42
4.1 学习目标 44
4.2 硬件需求 44
4.3 软件需求 44
4.4 电路 45
4.5 Node-RED流 46
4.6 代码(Arduino) 55
4.6.1 外部库 55
4.6.2 互联网连接(无线) 55
4.6.3 读取传感器数据 55
4.6.4 数据发布 56
4.6.5 标准函数 57
4.7 最终的作品 58
4.8 小结 58
第5章 物联网模式:实时客户端 59
5.1 学习目标 60
5.2 硬件需求 60
5.3 软件需求 61
5.4 电路 61
5.5 代码(Arduino) 62
5.5.1 外部库 62
5.5.2 互联网连接(无线) 63
5.5.3 读取传感器数据 63
5.5.4 数据发布 65
5.5.5 标准函数 66
5.6 代码(安卓) 66
5.6.1 项目设置 66
5.6.2 屏幕布局 70
5.6.3 屏幕逻辑 74
5.6.4 MQTT客户端 76
5.7 最终的作品 84
5.8 小结 86
第6章 物联网模式:遥控 87
6.1 学习目标 88
6.2 硬件需求 88
6.3 软件需求 88
6.4 电路 89
6.5 代码(安卓) 90
6.5.1 项目设置 90
6.5.2 屏幕布局 94
6.5.3 屏幕逻辑 98
6.5.4 MQTT客户端 99
6.6 代码(Arduino) 104
6.6.1 外部库 104
6.6.2 互联网连接(无线) 104
6.6.3 数据订阅 105
6.6.4 控制灯光 105
6.6.5 标准函数 106
6.7 最终的作品 107
6.8 小结 109
第7章 物联网模式:点播客户端 110
7.1 学习目标 111
7.2 硬件需求 111
7.3 软件需求 112
7.4 电路 112
7.5 数据库表(MySQL) 112
7.6 代码(PHP) 114
7.6.1 数据库连接 115
7.6.2 接收和保存传感器数据 115
7.6.3 停车位数量 117
7.7 代码(Arduino) 118
7.7.1 外部库 118
7.7.2 互联网连接(无线) 119
7.7.3 读取传感器数据 119
7.7.4 数据发布 120
7.7.5 标准函数 121
7.8 代码(iOS) 122
7.8.1 项目设置 122
7.8.2 屏幕布局 124
7.8.3 屏幕逻辑 130
7.9 最终的作品 136
7.10 小结 138
第8章 物联网模式:网页应用 139
8.1 学习目标 139
8.2 硬件需求 140
8.3 软件需求 140
8.4 电路 141
8.5 数据库表(MySQL) 142
8.6 代码(PHP) 143
8.6.1 数据库连接 143
8.6.2 接收和保存传感器数据 144
8.6.3 仪表盘 145
8.7 代码(Arduino) 148
8.7.1 外部库 149
8.7.2 互联网连接(无线) 149
8.7.3 读取传感器数据 149
8.7.4 数据发布 150
8.7.5 标准函数 151
8.8 最终的作品 152
8.9 小结 153
第9章 物联网模式:位置感知 154
9.1 学习目标 155
9.2 硬件需求 155
9.3 软件需求 155
9.4 电路 156
9.5 数据库表(MySQL) 156
9.6 代码(PHP) 158
9.6.1 数据库连接 158
9.6.2 接收和保存传感器数据 159
9.6.3 地图 161
9.7 代码(Arduino) 164
9.7.1 外部库 164
9.7.2 互联网连接(无线) 164
9.7.3 获得GPS坐标 164
9.7.4 数据发布 166
9.7.5 标准函数 167
9.8 最终的作品 168
9.9 小结 169
第10章 物联网模式:人-机交互 170
10.1 学习目标 170
10.2 硬件需求 171
10.3 软件需求 171
10.4 电路 172
10.5 代码(Arduino) 173
10.5.1 外部库 173
10.5.2 互联网连接(无线) 174
10.5.3 读取传感器数据 174
10.5.4 数据发布 175
10.5.5 标准函数 176
10.6 Effektif工作流 177
10.6.1 创建过程 177
10.6.2 配置过程 178
10.7 Node-RED流 184
10.8 最终的作品 188
10.9 小结 190
第11章 物联网模式:机-机交互 191
11.1 学习目标 192
11.2 光线传感器 192
11.2.1 代码(Arduino) 192
11.3 灯光控制设备 195
11.3.1 代码(Arduino) 195
11.4 最终的作品 19
Preface分析家预测,到了2020年,会有超过500亿的联网物(设备),在物联网领域的总营收会轻松超过1.5万亿美元。
数字看上去巨大,但是物联网究竟是什么呢?是不是就只是把东西连接到互联网上呢?为什么连接后的东西就有意义了呢?物联网远不止是把东西连接到互联网上那么简单。物联网给沉默呆滞的东西加上感知、通信和响应的能力,从而把它们变得更加智能。人有五官——我们可以看、听、尝、闻和触摸。同样,如果把这些传感器加到东西身上,它们也就可以有同样的感知了。比如,加上摄像头,东西就能看见;加上声音传感器,东西就能听见;加上扬声器,东西就能说话。东西能用的传感器比我们的多多了。把这些东西连接到互联网上,就能与我们交流,与其他东西交流。接下去,下一个前沿方向就是它们也可以运用人工智能来思考了。物联网有大量的应用,下面举两个例子来说明物联网是如何改善人类生活的:
监视用于监测生命体征的腕带,发现任何异常,就立刻通知你和你的医生。
监视你家房子的保安系统,发现任何入侵行为,就通知你和安保机构。
本书的内容本书来自于我开始接触物联网的个人体验。本书包含两个部分,第一部分介绍构建物联网应用的基础知识,而第二部分采用基于项目的方法介绍物联网应用开发方法。在每一章的最后,你会得到一个物联网应用的可用原型。
第一部分:基础第1~3章覆盖了物联网的基础知识。
第1章介绍本书所用的Arduino原型平台。
第2章讨论了把东西连入互联网的几个方案。
第3章介绍通信协议,哪些是物联网能用的协议。
第二部分:原型第4~12章用了第一部分的资料来构建物联网应用的原型。
第4章介绍Node-RED,这是一个可视化的设计软件,用来减少物联网应用所需的代码量。
第5章讨论的是可以实时给用户提供数据的物联网应用的构建,教你如何构建一个入侵检测系统。
第6章讨论可以遥控东西的物联网应用,比如灯光控制系统。
第7章展示了用来构建点播物联网应用所需的各种元件。本章要构建一个智能停车系统。
第8章教你适合网页应用的场景,所用的例子是温度监视系统。
第9章讨论位置感知装置的重要性。在本章中,你将学习如何开发一个牲畜跟踪系统。
第10章是关于需要人的响应的场景,在本章中,你将构建一个废物管理系统。
第11章讨论了物联网的一种模式,当东西越来越智能时,这种模式会非常常见。该章的示例是一个节能系统。
第12章介绍有助于加速进入物联网领域的一些平台。这一章的例子是构建一个土壤水分控制系统。
阅读本书前的准备工作物联网应用需要硬件和软件,可以涉及很多不同的技术,所以本书用到了不少技术。不过,我们已经尽力让所用的技术简单、精简。
硬件需求请参考每一章所提供的完整的说明,因为基于不同的作品,某些元器件不是必需的。
ArduinoUno或ArduinoYu?n以太网盾板WiFi(无线)盾板面包板跳线(面包线,针连针或针连孔的)光线传感器运动传感器(HC-SR501)LED220Ω电阻接近传感器(超声波测距HC-SR04)温度传感器(TMP36)GPS模块(NEO6MV2)土壤水分传感器软件需求ArduinoIDENode-REDMQTT代理(本书用了EclipseFoundation提供的免费公开的代理)AndroidStudioXcode/SwiftPHP服务器MySQL服务器文本编辑器EffektifBPM(基于云的,需要免费账户)Xively(基于云的,需要免费账户)Zapier(基于云的,需要免费账户)为了能更好地帮到你,我们还专门为这本书建立了一个网站(http://codifythings.com)。这个网站有书中所开发的原型的各种变化和增强版本,还有其他的原型作品。
本书的读者对象本书是为想要进入物联网世界的爱好者和专业人士所写的。本书所述的知识需要读者掌握一些Arduino或类似的元器件的基础知识,也需要读者具备一些编程经验。我们用了基础的硬件元器件,而且给出了逐步搭建电路的说明。我们保持代码简单、可读和简洁,以帮助新手理解概念、开发出可用的原型。全书的代码风格是一致的,在需要的地方,都加入了详细的代码注释。
TheTranslator’sWords?译者序这是一本角度独特的书。
大多数和Arduino相关的书会把重点放在Arduino编程或各种外部传感器、动作器的使用上;大多数和物联网相关的书会把重点放在各种外部传感器的使用和通信模块的编程上。这本书确实是讲物联网的原型开发的,确实是用Arduino来做原型开发的,也涉及通信模块和传感器、动作器,但是这本书志不在此。
那么,这本书到底讲了哪些东西呢?这得从下面四条线来讲。
通信线物联网总是需要一定的通信方式来联网的,本书关心的通信方式只是:
通信手段:WiFi或以太网。这两者的一致之处就是TCP/IP网络,这本书并不涉及蓝牙、ZigBEE、LoRa、NB-IoT这些通信手段,它只关心WiFi或以太网这些在家居条件下最容易部署和实现的方式。
通信协议:HTTP或MQTT。物联网设备用HTTP协议配合JSON格式来向服务器发送数据已经是常见的手段了,而MQTT则可能是更为轻巧的方式。MQTT(http://mqtt.org)是一种物联网连接协议,用于实现非常轻量级的发布/订阅方式的消息传输,只需要很少的代码和很小的网络流量就可以实现。本书并没有介绍如何自行搭建MQTT代理服务器,而是使用免费开放的Eclipse基金会所架设的MQTT服务器(iot.eclipse.org)。
流程线很多作者只关心如何把传感器的数据送到服务器上,之后就不管了。而本书还关心数据到服务器之后再怎样做:要不要存储进数据库?要不要发邮件或推特通知?要不要发给其他物联网设备来形成对应的动作?一个数据从传感器采集到最后被某个应用或设备处理,这中间怎么走,也就是物联网应用的流程问题。这样的流程是在服务器上运行的,但是并不需要写专门的服务器程序来实现,现在有一些专门的流程服务来替你完成,你只需要配置就可以了。这本书介绍的流程服务包括:
Node-RED(http://nodered.org)。Node-RED是IBM新兴技术服务团队创建的物联网流程配置可视化工具。这是一个出色的拖曳式的可重用代码的工具集,每个任务流从收到一个或多个输入开始,比如HTTP、MQTT和TCP;在一个或多个输出任务上结束,比如HTTP回复、MQTT发布、推特等。
SignavioWorkflow(https://www.signavio.com/products/workflow/)。这是一个云端的平台,能自动快速地把工作流和过程导入应用。同样的功能过去常常需要一条企业数据总线和几名开发人员,而现在非技术人员都能可视化地部署消息的转发过程。
Xively(https://www.xively.com)。这是一个开放的通用物联网平台,通过这个PaaS云平台,可将应用、设备、虚拟电子物体、数据及用户链接在一起,从而创建方案,与物理世界的物体交互。
传统的Apache+PHP+MySQL:本书还介绍了传统的LAMP模式,解释了如何构建自己的服务器来接收通过HTTP方式传输的数据,并保存在MySQL数据库中,之后可以通过PHP脚本来查询和访问。
终端线物联网的两端,可能是机器——传感器和动作器,也可能是人。本书介绍了连接在物联网的两端的四种终端:
Arduino安卓iOS网页模式线物联网应用虽然千变万化、纷繁复杂,但是万变不离其宗,作者总结了几种常见的模式:
实时模式:传感器的数据实时地推送到终端。
点播模式:终端需要的时候才会拉取传感器的数据。
遥控模式:从终端控制动作器。
位置感知:利用GPS获得地理位置,将坐标实时发送给服务器,并形成后续的流程动作。
机器->人:传感器的数据需要人工介入来完成数据的处理和后续流程。
机器->机器:传感器的数据直接发给动作器实现相应的响应。
本书分成了两个部分:第一个部分适合对Arduino及其网络通信还不熟悉的读者;第二部分则是具体展开各种模式。阅读本书时,不需要从头到尾逐章地读,它不是连续剧而是系列剧,你完全可以直接阅读自己感兴趣的章节。
翁恺2017年2月
这本书,即《用于物联网的Arduino项目开发:实用案例解析》,给我最大的感受是它的“落地性”。我之前也曾尝试过阅读一些关于物联网的书籍,但很多都停留在理论层面,讲得很抽象,很难真正转化为实践。这本书则完全不同,它非常实在地从“能做什么”出发,为我提供了一个个可操作的“蓝图”。我最喜欢的是书中对“项目复用”的强调,它鼓励读者在掌握一个基本案例后,能够在此基础上进行拓展和创新,而不是仅仅停留在“照搬”的阶段。这种“授人以渔”的教学方式,让我觉得学到的不仅仅是技术,更是解决问题的方法论。书中对社区资源的提及,也让我看到了一个更广阔的学习和交流空间,这对于一个初学者来说,是非常宝贵的。总的来说,这本书不仅仅是一本技术手册,更像是一本激发创造力、培养实践能力的“行动指南”,它让我看到了物联网的无限可能,并给了我踏出第一步的勇气和信心。
评分这本书的名字虽然是《用于物联网的Arduino项目开发:实用案例解析》,但我拿到它的时候,其实是抱着一种对“物联网”这个概念既好奇又有些畏惧的心情。我一直觉得物联网离我们很遥远,是那种高大上的技术,跟我的生活没什么关系。然而,这本书的封面设计就很有亲和力,各种色彩搭配得恰到好处,不会显得过于专业或者冰冷,反而透露出一股“你也可以做到”的鼓励感。我翻开目录,看到里面介绍了一些看起来并不复杂,但很有趣的应用场景,比如智能家居控制、环境监测等等。这让我突然觉得,原来物联网并没有我想象的那么难以接近,或许通过Arduino这个平台,我真的可以动手实践,把一些科幻电影里的场景搬到现实生活中来。这本书的标题也强调了“实用案例”,这对我这种希望学以致用的人来说,是非常吸引人的。我期待着它能给我带来一些耳目一新的启发,让我对物联网有一个更直观、更具象的认识,而不是停留在抽象的概念层面。
评分《用于物联网的Arduino项目开发:实用案例解析》这本书,给我的感觉就像是一个循序渐进的良师益友。从我接触Arduino开始,就一直渴望能找到一本能够真正带领我入门,并且能让我学有所成的书。这本书在这方面做得非常出色。它从最基础的Arduino硬件知识讲起,然后逐步深入到各种物联网相关的技术,比如网络通信、传感器集成等等,每一个章节都衔接得非常自然,没有那种“为了讲而讲”的生硬感。尤其让我印象深刻的是,书中对于每个案例的讲解都非常细致,从项目的设计理念,到所需的元器件,再到具体的接线图和代码实现,都一一呈现,并且详细说明了每一步操作的原理和目的。这让我感觉作者非常负责任,生怕读者因为某个细节而卡住。当我看到一些看似复杂的项目,在书里被拆解成一个个简单易懂的步骤时,我感到一种前所未有的自信,仿佛只要跟着书的指引,我真的就能成为一个物联网的“开发者”。
评分读了《用于物联网的Arduino项目开发:实用案例解析》这本书,我最大的收获是它打破了我对于“开发”这个词的刻板印象。我一直以为“开发”意味着需要深入理解各种复杂的算法和协议,需要编写大量的代码,是一个非常枯燥且耗时耗力的过程。但这本书通过一个又一个生动有趣的案例,向我展示了如何将Arduino巧妙地与各种传感器、执行器连接,并结合简单的代码逻辑,就能实现意想不到的功能。比如,书中关于智能浇花系统的介绍,让我看到了如何用低成本的方案解决生活中的实际问题,这种成就感是无与伦比的。而且,书中提供的代码示例都非常清晰,并配有详细的解释,即便是初学者也能快速理解和上手。让我感到惊喜的是,这本书并非只是简单地罗列技术知识,而是更侧重于“如何解决问题”的思维方式,它教会我如何将物联网技术应用到实际场景中,从而创造出真正有价值的东西,这对我来说是具有革命性的启发。
评分拿到《用于物联网的Arduino项目开发:实用案例解析》这本书,我最直观的感受就是它的排版设计。不同于我之前看过的很多技术类书籍,这本书的页面非常干净,文字大小适中,行间距也处理得恰到好处,阅读起来非常舒服,一点都不会觉得疲劳。而且,书中穿插的插图和图表也做得相当用心,它们不仅仅是简单的示意图,而是能够很清晰地展示出硬件连接、代码逻辑以及项目最终效果,这对于我这种动手能力相对较弱的读者来说,简直是福音。我特别喜欢书里那些“小贴士”和“注意事项”的版块,它们往往能点出一些容易被新手忽略的关键细节,或者提供一些优化建议,这让我感觉作者非常接地气,真正站在了读者的角度去思考问题。虽然我还没有深入研究里面的技术细节,但光是这份细致周到的设计,就足以让我对这本书产生极大的好感,并充满继续探索的动力,我确信它将是我在Arduino物联网开发旅途中的一位得力助手。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有