产品特色
内容简介
本书以Arduino 这个著名的开放式软硬件平台为工具,结合丰富的范例,系统全面地介绍了物联网的三大要素“物”“联”和“网”的产品开发和具体实现。书中涵盖了物联网的概念与技术,主控端、传感端、通信和联网等模块的硬件集成、软件开发和软硬件整合等。另外,云下载资源中还提供了范例程序、电路图等资源,以配合本书的学习和实践。
本书适合物联网产品开发从业者与技术人员使用,也可以用作高校学生学习硬件设计的实践教程。
内页插图
目录
01 浅谈物联网
物联网 (Internet of Things,IoT)这个名词可以解释得很简单,物品能够连上网络就算是物联网。
1-1 物联网的起源与发展 2
1-2 新时代新思维 6
1-3 关于本书 9
02 全面感知的联网节点
点是构成平面最重要也是最基本的单位。它的结构看似简单,却必须担负起、承、转、结尾等不同的角色。借助数以百计、数以千计的点,可以变化出无穷尽的网络世界。
2-1 基础节点的组成 12
2-2 控制核心的选择 14
2-3 介绍 Arduino 22
2-4 Arduino 的软件介绍与第一次下载 27
2-5 如何感知信号 31
2-6 系统规划与优化 45
03 物物相连的关键
数以万计的点洒落在空间中,彼此之间有着默契的相连,几个之间组成一个网络。这样的网络连接非常有价值,点与点、网络与网络间共享着信息与数据,带给空间无穷无尽的变化。
3-1 浅谈物联网通信 56
3-2 通信种类介绍 60
3-3 串行通信 64
3-4 I2C通信 81
3-5 SPI通信 90
3-6 网络通信 92
3-7 小结 105
04 无所不在的连接
在物联网中,无所不在的通信占有大部分的版图,其中又以无线通信被视为物联网设置的基本配备。所有感测到的数据要能够不受限制地往上传递,靠的就是部署完善的通信网络,目前在大都市中,移动通信网络(Cellular communication)和Wi-Fi无线网络覆盖范围最为广泛,有许多的应用因此孕育而生。
4-1 初入无线通信 108
4-2 RF通信 115
4-3 2.4G RF 通信(nRF24L01) 122
4-4 蓝牙通信 130
4-5 XBee 143
4-6 Wi-Fi 无线网络 156
4-7 小结 164
05家庭自动化物联系统
本章以3种无线技术为引子,分别引入不同的应用到家庭自动化的开发中,通过前面学习的传感与控制方式,完成一个完整的解决方案。
5-1 事前准备 166
5-2 RFID 168
5-3 NFC 202
5-4 GPRS 208
5-5 小结 217
06爱上云计算
物联网的最后一公里,数据的集成与应用,才是发挥物联网价值的所在。为山九仞岂能功亏一篑。
6-1 通往云计算的道路 220
6-2 RESTful 222
6-3 MQTT 226
6-4 MQTT to Cloud 230
APPENDIX A?如何破坏 Arduino
APPENDIX B?如何进行除错
APPENDIX C?ASCII字元码
APPENDIX D?物联网套件组合包
前言/序言
物联网这个名词真是让人又爱又恨。这个名词绝对是这几年最常被人 提出来讨论的议题之一,但是因为它所涉及的范围广,听得越多反而越不知道什么是物联网真正的应用所在。其实它早在我们生活周围了!智能手机,不!我们应该称之为智能终端,因为手机早已不只是手机,它可以让用户随时随地通过因特网得到所有想知道的信息,以及随时随地和朋友互动,这就是物联网的应用之一。我们把物联网细分成3部分:“物”,各种各样的设备,甚至包括人类都是其中一部分;“联”,将所有的物品通过有线或无线的方式连接在一起,彼此能够交换信息;“网”,将物物相连成网,这个网将成为应用与价值的所在。
笔者接触 Arduino 也快 10 年了,看着它开始在中国台湾落地萌芽,到 现在百花齐放,每天都有人发表新的应用和新的想法,Arduino 不再只是冷冰冰的硬件,而是实现大家心中梦想的最佳垫脚石。以 Arduino 来展开物联网的介绍,无疑是希望用最简单的东西让大家能够体验物联网的无所不及。本书篇幅有限,只能点出每种应用的关键与角色,书中有太多太多主题可以再单独深入研究下去。坦白地说,笔者也无法将每个技术或领域研究透彻,因此本书若有错误或引用不当之处,欢迎随时来信指教。
希望以此书抛砖引玉,吸引更多玩家一起悠游物联网的世界。
Scott Sun
2016夏
云端启航:Linux系统管理与自动化运维实战指南 在这个数字化浪潮奔涌的时代,服务器作为信息时代的基石,其稳定、高效的运行是一切业务得以开展的前提。而Linux,作为开源操作系统的王者,凭借其强大的稳定性、灵活性和广泛的应用领域,早已成为企业级IT架构的核心。从互联网巨头到传统行业的数字化转型,Linux无处不在。本书并非聚焦于某一特定发行版或某一技术栈的入门,而是旨在构建一套系统性的Linux运维知识体系,通过深入浅出的理论讲解和贴近实际的案例分析,帮助读者建立起扎实的Linux基础,掌握核心的系统管理技能,并迈向高效、智能的自动化运维之路。 我们将从最基础的Linux哲学出发,带您领略开源社区的魅力,理解Linux系统架构的精髓。这不仅是学习命令的堆砌,更是理解“为什么”的过程。我们将深入探索Linux的文件系统,理解其层级结构、权限管理以及不同文件系统的特性(如ext4, XFS),并学习如何进行高效的文件查找、复制、移动和压缩,为后续的系统管理打下坚实基础。 核心系统管理能力构建: 本书将重点讲解Linux系统管理的核心要素,这些要素是任何一名合格的Linux运维人员都必须熟练掌握的。 进程管理与资源监控: 您将学习如何查看、管理和优化系统进程,理解CPU、内存、磁盘I/O等关键资源的消耗情况,并掌握top, htop, vmstat, iostat, free等工具的使用,能够快速定位性能瓶颈,保障系统平稳运行。 用户与权限管理: 深入理解Linux的用户、组、权限模型,学习如何创建、删除用户,配置用户组,以及使用chmod, chown, chgrp等命令进行精细化的文件权限控制。我们将探讨SUID, SGID, Sticky Bit等特殊权限的应用场景,以及ACLs(访问控制列表)如何提供更灵活的权限管理方案。 软件包管理: 掌握主流的Linux软件包管理工具(如yum/dnf, apt),学习如何安装、更新、卸载软件,解决依赖关系问题,并理解RPM和DEB软件包的工作原理。我们将探讨如何配置软件源,以及如何使用本地仓库来提高效率。 系统日志分析: 日志是系统健康状况的晴雨表。您将学会如何查找、分析和理解系统日志(syslog, journald),识别潜在的错误和安全隐患,并掌握配置日志转发和集中管理的技巧,例如使用rsyslog或syslog-ng。 网络基础与服务配置: 理解TCP/IP协议栈的基本概念,掌握Linux下的网络配置(IP地址、网关、DNS),并深入学习SSH远程管理、SCP文件传输等常用网络工具。我们将讲解常见的网络服务配置,如HTTP(Apache/Nginx)、DNS(BIND)、DHCP等,理解其工作原理并学会基础的配置和故障排除。 存储管理: 学习Linux的磁盘分区、格式化、挂载操作,理解LVM(逻辑卷管理)的优势,并掌握如何创建、扩展和管理逻辑卷。我们将探讨RAID(冗余独立磁盘阵列)的原理和配置,以及NFS(网络文件系统)和Samba等文件共享技术的应用。 走向自动化运维: 在自动化浪潮席卷IT行业的今天,手动执行重复性任务已经成为瓶颈。本书将循序渐进地引导您进入自动化运维的世界。 Shell脚本编程: Bash脚本是Linux运维的灵魂。您将从零开始学习Shell脚本的语法,包括变量、条件判断、循环、函数等,并掌握如何编写实用脚本来自动化日常管理任务,如系统备份、服务重启、日志清理等。我们将通过丰富的实例,演示如何将复杂的命令序列转化为简洁高效的脚本。 版本控制(Git): 代码管理是协作和效率的基石。我们将引入Git版本控制系统,学习其基本概念(仓库、提交、分支、合并),并掌握如何在团队中有效地使用Git进行协作开发和管理配置文件。 自动化配置管理入门: Ansible作为当前最流行的自动化配置管理工具之一,将是本书的重点。您将学习Ansible的核心概念(Playbooks, Roles, Modules, Inventory),并掌握如何使用Ansible来自动化部署应用、配置服务器、管理服务,从而显著提高运维效率,减少人为错误。我们将通过具体的用例,演示如何编写Ansible Playbooks来完成常见的运维任务。 监控与告警: 系统的稳定运行离不开有效的监控。您将了解Nagios, Zabbix, Prometheus等主流监控系统的基本原理和应用,学习如何配置监控项、触发告警,并理解构建一个完善的监控体系的重要性。 实践出真知: 本书强调理论与实践相结合。我们精心设计了大量的实操练习和案例分析,涵盖了从搭建Web服务器、配置数据库,到部署应用、排查故障等各种真实场景。每一章都配有清晰的操作步骤和结果验证,让您在动手实践中巩固所学知识。通过模拟真实环境,您将有机会: 搭建高可用Web服务: 学习如何配置Nginx/Apache集群,实现负载均衡和故障转移。 部署与管理数据库: 掌握MySQL/PostgreSQL等常用数据库在Linux上的安装、配置、备份与恢复。 容器化基础(Docker入门): 了解容器化的概念,学习Docker的基本命令,以及如何使用Docker来打包和部署应用,为后续的容器编排打下基础。 故障排除实战: 通过分析各种常见的系统故障场景,学习如何运用所学的知识和工具,快速定位问题并给出解决方案。 进阶思考与职业发展: 在掌握了Linux系统管理和自动化运维的基础之后,本书还将引导您思考更广阔的领域。我们将简要介绍云原生技术(如Kubernetes)的概念,以及DevOps文化对现代IT运维的影响,为您的职业发展指明方向。理解如何将自动化运维与DevOps理念相结合,是成为一名优秀的现代IT工程师的关键。 本书适合谁? IT新手: 渴望进入IT运维领域,但对Linux一无所知,需要一个系统性的入门。 初级运维工程师: 希望巩固Linux基础,提升自动化运维能力,向资深运维转型。 开发人员: 希望更好地理解服务器端运维,能够独立完成部署和排查,与运维团队更高效协作。 技术爱好者: 对Linux系统和自动化技术充满好奇,希望系统地学习和掌握相关技能。 本书的价值: 本书不是一本纯粹的命令手册,也不是一本只讲理论的枯燥读物。它是一座连接您与高性能、高薪资IT运维职业的桥梁。通过本书的学习,您将能够: 建立坚实的Linux系统知识体系。 掌握核心的系统管理与故障排除能力。 熟练运用Shell脚本和自动化工具提升工作效率。 为应对更复杂的云原生和DevOps挑战做好准备。 提升个人在IT行业中的竞争力,为职业生涯的腾飞奠定基础。 在这个快速变化的IT世界里,持续学习和掌握核心技能是至关重要的。让我们一起踏上这段激动人心的Linux运维探索之旅,在云端启航,成为一名具备高价值的IT专业人士!
这本书的封面设计我很喜欢,一种沉稳中带着一丝科技感的蓝色,让人一看就觉得是关于技术类的书籍。拿到手后,份量倒是比我想象的要厚实一些,封面上的书名——《Red Hat Enterprise Linux 7 高薪运维入门》——也相当直接,点出了核心技术和目标受众。我一直对Linux运维这个领域非常感兴趣,特别是RHEL,因为我知道很多大型企业都在使用它,而且这个岗位的薪资待遇确实很有吸引力。这本书的“入门”两个字,给了我一种信心,觉得即使我之前没有太多Linux的基础,也可以通过它来学习。我希望这本书不仅仅是罗列命令和配置,而是能够循序渐进地讲解原理,让我理解“为什么”要这么做,而不是死记硬背。比如,对于一些基础概念,比如文件系统、进程管理、用户权限等,能够有清晰的图解或者案例分析,帮助我更好地理解。我更期待的是,它能介绍一些实际工作中经常会遇到的场景,比如如何排查常见的网络问题,如何进行性能调优,如何保证系统的安全等等。毕竟,运维工作最考验的就是解决实际问题的能力。而且,如果能有一些“进阶”或者“深入”的提示,在入门的基础上,让我看到未来可以发展的方向,那就更好了。总的来说,这本书给我的第一印象是专业、有深度,并且能够满足我对Linux运维入门学习的期待。