树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践pdf下载

树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践百度网盘pdf下载

作者:
简介:树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践
出版社:机械工业出版社
出版时间:2016-03-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

资深嵌入式系统硬件开发工程师撰写,系统阐述如何将传感器应用于树莓派电脑板,创建令人难忘的交互式项目
用Linux和Python深入挖掘树莓派的功能,并详细介绍一系列包括OpenCV在内的激动人心的库来增强项目功能

内容简介
  本书正文共分为7章,其中第1章、第2章简要介绍了树莓派的基本概念和电子学的基本知识,第3~7章则分别介绍了如何利用树莓派和传感器测量距离、监控温度和湿度、连接树莓派和传感器、在线上传数据以及图像与视频处理。书中后还给出列出了购物清单的附录,以供读者进行项目开发时选购相应工具和元器件。
作者简介

Rushi Gajjar 是一位资深嵌入式系统硬件开发工程师,也是一名电子学爱好者,他的工作领域是针对物联网研究、开发高速单板嵌入式计算机以及传感器节点。除此以外,他还曾经在印度韦洛尔理工大学参与研究,并藉此获得嵌入式系统的工程硕士学位。
在此之前,他在电子硬件设计领域作为自由撰稿人从事了大量工作,这些工作让他开始涉足快速原型开发板(例如树莓派)。他在闲暇时间里喜欢在树莓派上开发项目,这些项目包括可视化、数据记录、Web服务器以及机器学习自动化系统。他热衷于向在校学生讲授树莓派项目。
他志在将世界上所有东西都接入互联网,以增强人们的生活体验,他的业余爱好是打手鼓、摄影和旅行。 

目录
译者序
前言
致谢
第1章 认识你的小伙伴——树莓派
1.1 树莓派板卡一览
1.2 首次配置
1.3 将树莓派接入互联网
1.4 Linux速成教程
1.5 安装实用库
1.6 python-gpio
1.7 准备学习Python和C
1.8 实战练习
1.9 本章小结
第2章 认识电子学世界
2.1 电子学基本术语
2.2 通信协议
2.3 实用技巧和注意事项
2.4 理解GPIO端口
2.5 点亮LED
2.6 本章小结
第3章 用超声波传感器测量距离
3.1 神秘的超声波传感器
3.2 创建项目
3.3 解决常见问题
3.4 面向视力不佳人群的可穿戴设备
3.5 本章小结
第4章 用传感器监控大气
4.1 传感器选择过程
4.2 DHT内置的温度和湿度传感器
4.3 引入光敏电阻(光敏元件)
4.4 创建项目
4.5 解决常见问题
4.6 本章小结
第5章 用模数转换器连接模拟传感器和树莓派
5.1 模数转换器
5.2 MCP3008模数转换器
5.3 制作你自己的传感器站
5.4 准备通用软件
5.5 使用你的传感器站——创建温度记录器
5.6 本章小结
第6章 在线上传数据——电子表格、移动设备和电子邮件
6.1 物联网
6.2 硬件设置
6.3 用互联网进行时钟同步
6.4 向Google电子表格上传数据
6.5 通过电子邮件接收通知
6.6 集成所有东西
6.7 面临的常见问题
6.8 本章小结
第7章 用摄像头和OpenCV制作图像传感器
7.1 图像处理
7.2 OpenCV
7.3 可与树莓派连接的摄像头
7.4 用网络摄像头传输实时视频流
7.5 安装OpenCV
7.6 创建运动探测器
7.7 一些令人惊叹不已的项目
7.8 本章小结
附录 购物清单
前言
  前言
  树莓派是一种信用卡大小的单板计算机,能提供大量开展研究和发明创造的机会。看到一个孩子从零开始学习编写Python代码,制作一个鸟笼并在互联网上传输实时视频来检查鸟是否得到了食物,这种事情真是让人惊叹。记得我还是个孩子时,曾经将乐高玩具连接到直流电动机和电池上,效果很迷人。在那时我无法想象代码中的逻辑,也没有机会为自己的项目编写代码,然后用手机来控制乐高玩具运动,但现在我很幸运能有机会介绍这类项目,为那些真正渴望创造一些东西来改变周边世界的年轻创客提供一个起步平台。
  世界正迈向新时代,技术正在改变人们日常的需求和习惯(通过一个简单的界面就可以实现),这给予了我写一本有关树莓派传感器书籍的动机。世界充满创造性,我认为在你开始理解和懂得一些基础知识并应用相应逻辑时,创造灵感就会涌现出来。在不同的网站上有大量的树莓派知识和项目,任何一个人都能尽其所能地获取这些知识和项目。我认为网站上的知识通常都是不完整的,它能让我们快速开始创建项目,但不能使我们明白项目背后的原理。
  众所周知,即使没有深入研究过电子设备和通信协议,你也可以在树莓派上编写代码并创建令人惊叹的项目。我周围的同事经常需要在树莓派平台上编写代码,并将传感器连接到树莓派上,他们可以在很短的时间内就编写出有关人工神经网络的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章以及后续章节之前,可先参阅附录,准备好硬件。
  本书的读者对象
  对于想用树莓派创建不同项目的硬件发烧友而言,本书十分理想。本书的读者对象是具有编程经验,尤其是具有Linux、C语言和Python编程经验的人,但又不局限于这类人群,不具备编程知识的读者也可以从本书获得必要的知识并立即开始项目开发。无论读者是否具有编程经验,本书都准备了一些电子学相关的最新概念,这些概念对于用树莓派进行硬件编程十分必要。
  本书的约定
  你在本书中会看到若干不同的文本样式,这些样式用于区分不同类型的信息。下面是这些样式的一些示例,并对样式的含义进行了解释。
  代码块如下所示:
  命令行输入或输出如下所示:
  读者反馈
  时刻欢迎读者的反馈,我们也十分想知道你对本书的想法—喜欢哪些内容、不喜欢哪些内容,读者反馈对于我们改进书籍并让你从中得到更多的收获非常重要。
  客户支持
  既然你已经成为Packt出版社的尊敬读者,我们就应该告诉你一些事情,以便你在购买本书的同时获得最大的价值。
  勘误
  虽然我们已经非常谨慎,尽力保证书中内容的正确性,但仍然会有错误出现。如果你在我们的任何一本书籍中发现了错误——可能是文字错误,也可能是代码中的错误,请告知我们,我们将不胜感激,这样做可以减少读者的挫败感并减少本书的错误。如果你发现了错误,可以通过以下方式提交它们,访问//www.packtpub.com/submit-errata并选择对应的书名,然后单击errata submission form链接,输入错误的详情。一旦你提交的错误修正意见得到确认,那么你所做的勘误就会被接受并上传到我们的网站或添加到相应书籍Errata部分已有的勘误表中,你可以通过访问//www.packtpub.com/support选择相应书名来查看已有的勘误表。
  问题
  如果对本书的内容有任何疑问,请向questions@packtpub.com发送邮件,我们将竭尽所能解答你的疑问。
精彩书摘
  在购买了树莓派之后,现在就必须让它好好工作。本节中准备在要工作的树莓派上安装操作系统,最流行稳定也是应用最广泛的树莓派操作系统是Wheezy-Raspbian。
  Raspbian运行在开放平台Debian Linux之上,为何我们要用Raspbian而不是直接使用Linux或其他Linux的变种?这只是因为Raspbian具有针对树莓派编写的设备驱动程序,简单来说,设备驱动程序给出了硬件在操作系统之上的运行细节并支持用户接收硬件发送的命令(或向硬件发送命令)。由于树莓派的硬件与PC或通用计算机上的硬件不同,所以要用进行了改良的操作系统,以便完全利用所有的硬件资源,这对于那些希望遵守默认标准的用户再好不过。
  你可以从树莓派基金会网站//downloads.raspberrypi.org/raspbian_latest上下载Wheezy-Raspbian的安装文件(是一个镜像文件)。如果你想要安装无图形用户界面风格的Linux(直接使用命令行界面),那么可以试试Arch Linux,它可以从ArchLinuxArm的网页//archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz上下载。
  安装操作系统
  我们需要一些基本部件来成功启动树莓派。请注意,本小节是为那些首次使用树莓派并且还未购买预加载SD卡的用户准备的。如果你已经在SD卡上安装过了操作系统,那么可以跳过本小节,或者浏览一下安装步骤以便帮助新入手树莓派的朋友。
  1.购买SD卡
  在购买树莓派模块时,可能连同SD卡一起购买了,也有可能没有,如果没有的话,那么要购买的SD卡的最小容量为4GB。树莓派没有板载存储器,因此购买SD卡是存储数据和操作系统的唯一方法。我的树莓派有一块8GB的SD卡,它工作得不错,并且足以处理所有项目。
  2.下载必备软件
  在有了SD卡之后,就可以准备下一步了。下面的步骤在我的个人博客中也进行了介绍,你可以访问//rushigajjar.blogspot.in/2014/03/setting-up-raspberry-pi-for-first-time.html进行查看。
  让我们来看看不同操作系统上的操作步骤。
  Windows
  当在Windows上工作时,请记住如下几点:
精彩插图