基本信息
- 原书名:Raspberry Pi Sensors
- 作者: (印)鲁什·贾加(Rushi Gajjar)
- 译者: 胡训强 张欣景
- 丛书名: 数字匠人
- 出版社:机械工业出版社
- ISBN:9787111529620
- 上架时间:2017-9-18
- 出版日期:2016 年3月
- 开本:16开
- 页码:168
- 版次:1-1
- 所属分类:计算机 > 计算机组织与体系结构 > 嵌入式计算机

编辑推荐
资深嵌入式系统硬件开发工程师撰写,系统阐述如何将传感器应用于树莓派电脑板,创建令人难忘的交互式项目。
用Linux和Python深入挖掘树莓派的功能,并详细介绍一系列包括OpenCV在内的激动人心的库来增强项目功能。
内容简介
计算机书籍
树莓派从2012年发行**个版本以来,由于其通
用的架构、标准的接口和丰富的外围设备,吸引了无
数硬件和软件工程师的眼球,将其视为投身物联网产
业的必备法宝之一。鲁什·贾加*的《树莓派+传感
器》详细讲解了如何将传感器集成到树莓派电脑板,
创建令人难忘的交互式项目,并用Linux和Python深
入挖掘树莓派的功能,为那些希望了解各种硬件和软
件如何协同工作以及希望得到在树莓派上开发传感器
和物联网项目的创造者们提供实用指南。
全书分为7章:**章介绍市面上可找到的所有型
号的树莓派,包括*新发布的B型树莓派,并讨论安
装操作系统的方法以及将树莓派接入互联网的几种有
趣的方式;第2章简要介绍树莓派的电子学基本知识
;第3~7章则通过5个不同的项目分别详细讲解如何
利用树莓派和传感器测量距离、监控温度和湿度、连
接树莓派和传感器、在线上传数据以及图像与视频处
理。书中*后的附录给出一份购物清单,可以作为读
者进行项目开发时选购相应工具和元器件的参考。
作译者
Gajjar 是一位资深嵌入式系统硬件开发工程师,也是一名电子学爱好者,他的工作领域是针对物联网研究、开发高速单板嵌入式计算机以及传感器节点。除此以外,他还曾经在印度韦洛尔理工大学参与研究,并藉此获得嵌入式系统的工程硕士学位。
在此之前,他在电子硬件设计领域作为自由撰稿人从事了大量工作,这些工作让他开始涉足快速原型开发板(例如树莓派)。他在闲暇时间里喜欢在树莓派上开发项目,这些项目包括可视化、数据记录、Web服务器以及机器学习自动化系统。他热衷于向在校学生讲授树莓派项目。
他志在将世界上所有东西都接入互联网,以增强人们的生活体验,他的业余爱好是打手鼓、摄影和旅行。
目录
前言
致谢
第1章 认识你的小伙伴——树莓派1
1.1 树莓派板卡一览2
1.2 首次配置8
1.3 将树莓派接入互联网12
1.3.1 通过无线网卡接入互联网12
1.3.2 通过PC从以太网接入互联网14
1.4 Linux速成教程19
1.4.1 终端和shell20
1.4.2 常见的实用Linux命令20
1.5 安装实用库23
1.5.1 git-core24
1.5.2 wiringPi24
1.6 python-gpio25
1.7 准备学习Python和C26
1.7.1 编写和执行Python程序27
1.7.2 编写和执行C程序27
1.8 实战练习28
译者序
树莓派是将各类组件集成在一张信用卡大小的主板上的小型计算机,它基于ARM架构,运行Linux专用版本操作系统。在2006年研发之初,Eben Upton 与 David Braben(树莓派的主要研发者)想使树莓派成为一款价格低廉的计算机,以便让更多的人有机会学习硬件知识和编程技术。但是事情的发展远远出乎他们的预料,树莓派从2012年发行第一个版本以来,凭借其通用的架构、标准的接口和丰富的外围设备,吸引了无数硬件、软件工程师的眼球,大家将其视为投身物联网产业的必备法宝之一。在国内,越来越多的从业人士或业余发烧友希望了解和学习如何基于树莓派进行开发,尤其希望学习如何结合树莓派和传感器实现远程感知、控制。在这个背景下,机械工业出版社独具慧眼,引入了这本极具实用价值的书,为众多希望学习树莓派的读者奉上了一份大餐。
本书正文共分7章,其中第1章、第2章简要介绍了树莓派的基本概念和电子学的基本知识,第3~第7章则分别介绍了如何利用树莓派、传感器测量距离、监控大气温度和湿度、连接树莓派和传感器、在线上传数据以及图像与视频处理。附录列出了购物清单,以帮助读者在进行项目开发时选购相应工具和元器件。可以说本书绝不是炒作概念的泛泛之作,而是能让读者将概念落到实处的实用指南,作者邻家大哥般的语言风格更是让读者倍感亲切。
我们很荣幸能够成为本书的译者,在这里,首先要感谢机械工业出版社的杨福川老师给予我们的信任,其次要感谢缪杰编辑,与你们的交流让我们获益匪浅,也让本书的质量更上一层楼。
此外,请读者朋友注意,如果没有任何Python或C语言编程经验,建议你先补上,这会让你在本书的学习过程中轻松很多;如果你已经有了Python或C语言编程经验,并且对Linux系统稍有了解,那么就可以直接拿起本书开始你的树莓派之旅;如果你之前就已经做过树莓派开发工作,那么将本书作为参考工具书放在案头,以备不时之需,这也是个不错的选择。
全书由胡训强和张欣景共同翻译,其中,胡训强翻译了第1章、第3章、第4章、第6章和第7章,张欣景翻译了第2章和第5章。最后要说明一点,由于树莓派问世不久,所以很多相关技术会不断更新,再加上囿于译者的技术和语言水平,书中难免会出现不准确甚至错误之处,如果读者发现了这样的地方,恳请通过邮箱10185014@qq.com告知我们,在此向大家表示感谢。
最后,感谢所有为本书顺利付梓而付出艰辛劳动的人!
胡训强张欣景
2015年11月于广州
前言
世界正迈向新时代,技术正在改变人们日常的需求和习惯(通过一个简单的界面就可以实现),这给予了我写一本有关树莓派传感器书籍的动机。世界充满创造性,我认为在你开始理解和懂得一些基础知识并应用相应逻辑时,创造灵感就会涌现出来。在不同的网站上有大量的树莓派知识和项目,任何一个人都能尽其所能地获取这些知识和项目。我认为网站上的知识通常都是不完整的,它能让我们快速开始创建项目,但不能使我们明白项目背后的原理。
众所周知,即使没有深入研究过电子设备和通信协议,你也可以在树莓派上编写代码并创建令人惊叹的项目。我周围的同事经常需要在树莓派平台上编写代码,并将传感器连接到树莓派上,他们可以在很短的时间内就编写出有关人工神经网络的Python代码,但到了连接硬件时就徘徊不前。我认为对电子学有基本的了解能帮助那些想在树莓派之类的平台上进行程序开发的精英走出上述困境。与此相反,硬件开发人员能够连接传感器,保证设备引脚上具有正确的电压电平,但到了编写代码之时,他们就需要帮助了。
我发现树莓派最有趣的地方在于我能使用硬件元器件和电烙铁,并且能为硬件编写代码让其工作。本书为那些希望了解各种硬件和软件如何协同工作以及希望在树莓派上开发传感器、物联网项目的创客提供了入门指南,在我们期待将周边所有的东西连接成一体之时,科技将会有大的发展。
物联网以更好的用户体验为出发点,为收集和分析数据开启了一个新世界,传感器阵列输出的大量数据都是由传感器节点生成的,在这种背景下,树莓派向我们提供了从简单的项目(例如本书介绍的将数据从开发好的传感器站上传到互联网)入手的机会,这是我们创建物联网项目的第一步。另一件有趣的事是随着B型树莓派2的出现,开发人员能够拥有足够强的处理能力,可在树莓派上完成计算密集型算法,因此本书用一章来讲解图像处理。对初学者而言,想向他们解释清楚图像处理相当困难,但是至少我试着为读者提供一个自发进行图像处理的简单起点。
本书介绍了5个不同项目,它们是用不同方法创建电子学项目的学习起点,我在准备这些项目时遵循的方法相当有趣,这也是我从事复杂硬件设计时所遵循的方法。虽然我并不依赖于面包板(因为我从事的工作大多都是高速电路设计),但本书介绍的一些小型项目原型可以很容易地在面包板上实现。第一步,购买最好的硬件元器件(最好针对面包板测试进行了通孔),在代码不能执行或者无法给出正确结果时你能依靠这些硬件元器件解决问题。提前准备好一个框图并考虑在硬件和固件设计期间会用到的每个元器件。第二步,请仔细阅读要用到的电子元器件的数据手册,确保每个元器件都能满足设计要求。第三步,将电子元器件连接到面包板上,并进行彻底检测。最后,在硬件设置稳定后,编写代码(或固件),并且为了获得更好的性能,可能还要不断改写代码,删除不必要的变量及不可达的代码或循环、处理中断、定义处理器的休眠时间和看门狗、管理合适的内存片段,以避免程序崩溃。但是本书涉及的都是最简单的代码,并不会深入研究嵌入式程序开发。在树莓派上安装代码库可以减少程序员常犯的错误,只要调用一个函数,就能在后台执行所有的内置调用,这得感谢树莓派代码库的开发者,有了这些代码库,我们就能编写出更健壮的代码(有意地或无意地)。当准备编写实例代码时,建议你将其先拆分成几个部分。
读者在创建从温度-湿度-光线传感器中获取数据的项目时,可能会遇到一些困难。首先要获取温度和湿度值,然后再针对光线传感器编写代码,如果这两段代码都能给出正确的值,那么请记下它们,最后通过函数调用将这两段代码合并到一起。
本书的写作思路是:首先介绍项目的设置,然后描述项目的目的,最后描述硬件实现的所有细节。在某些章节中,软件会被拆分成若干部分,然后再将它们合并起来,这样做是为了避免让读者感到单调。书中某些章节的理论知识篇幅较长,对此,我深表歉意,但我敢肯定读者会喜欢阅读这些理论知识,并且能从中学到很多东西。
欢迎大家在GitHub上有关本书的主题下提问、提出改进意见和建议,网址是:https://github.com/rushigajjar/raspberrypisensors,所有人都可参与。
本书内容
第1章介绍了市面上可找到的所有型号的树莓派,包括最新发布的B型树莓派2;讨论了安装操作系统的方法以及几种有趣的将树莓派接入互联网的方式,然后我们在树莓派上执行了用Linux终端、Linux shell脚本、Python和C语言编写的若干代码。
第2章介绍了电子学的基础知识以及电子设备的通信协议,更加有趣的是,用shell、Python和C语言对GPIO进行了若干实验。
第3章介绍了如何在树莓派上设置超声波传感器,以及如何小心地处理各设备上不同的电压水平,还编写了一段让超声波传感器运行起来的代码,并针对视力不佳的人开发了一个避障系统中的辅助工具。
第4章教你如何在市面上选择可用的传感器,然后实现了温度-湿度-光线传感器所需的硬件和软件设计,以使家用电器自动化。
第5章介绍了如何连接模数转换器和一组传感器,我们用串行通信协议为树莓派创建了一个传感器站,从而可以使用所构建的通用软件来获取任意与树莓派连接的传感器中的数据。最后将获取的数据存储在一个日志文件中,供分析使用。
第6章对物联网和传感器节点进行了研究,在第5章的传感器站的帮助下,我们将数据上传到在线电子表格中,从而实现了一个实时图表,同时还可以在电子邮件平台上收到紧急电子邮件。读者在完成自己的项目之后,可以将传感器数据发送至rushi.raspberrypisensors@gmail.com。
第7章介绍了图像处理的基础知识,以及成功安装OpenCV库的方法。我们用摄像头开发了一个IP探头,将这个IP探头安装在后院中,可观看人类的日常活动的实时视频。进一步,我们在OpenCV中编写了一段运动检测代码来检测特定区域内的人类运动,并捕获即时警报下的图像。
附录是需要购置的硬件元器件清单,便于读者执行本书所介绍的制作任务,从第2章开始就需要用这些元器件来测试我们所编写的代码,你可以带着这张清单去你家附近的电子销售商处购买。
阅读本书的要求
除了必备的硬件元器件之外,用树莓派完成书中的任务时没有特别的要求!你可以将树莓派连接到安装有Linux、Windows或Max OS X操作系统的个人计算机上。任何能在市面上找到的任意型号的树莓派(A+型、B型或B+型树莓派1以及B型树莓派2)都可以用来测试代码。在阅读第3章以及后续章节之前,可先参阅附录,准备好硬件。