第1章 Raspberry Pi、Arduino与智能家居
本章内容是关于Raspberry Pi、Arduino和智能家居的基本介绍。
我们将介绍Raspberry Pi的发展历程,也会介绍Arduino这种开源的微控制器平台,它让开发者得以方便地连接各种传感器和电机,与周围环境交互。
最后介绍智能家居的一些背景知识,并展示如何通过使用Raspberry Pi这样的设备,结合开源社区的软件,构造一个复杂的基于传感器的系统。
让我们首先来关注一下在接下来的几章中会提及的内容。
1.1 本书将要展示的内容
我们拥有大量令人兴奋的项目,通过使用Raspberry Pi及Arduino技术来实现这些项目,可以逐步帮助你了解智能家居。这些项目包括:
编写软件来控制硬件
使用热敏电阻来制作温度计
通过继电器使温度计变成恒温器
使用电机驱动板来控制电机
编写软件,把项目中传感器数据所产生的数据进行存储
通过阅读本书的所有章节,你将能够获得为智能家居项目搭建电路和硬件的基本知识。你还将会学到如何编写程序创建一个项目,这个项目可以在控制你的设备的同时,记录所产生的数据。最后,我们期待在未来你能用学到的新技术开发更多的项目。
首先,我们来初步了解将要使用的技术的背景。首先从Raspberry Pi开始。
1.2 Raspberry Pi的历史和背景
从第一台真空管计算机,到20世纪60年代的磁带和穿孔卡片机,再到70年代的第一台拥有微处理器的大型机,大型商业机构和大学研究机构一直保持着对计算机的研究。然而,70年代后期,随着苹果二代(Apple II)的发布,以及更早期电视打字机和苹果一代这类科技的积淀,这种现状迅速改变。
随着80年代的到来,公众看到了ZX Spectrum和Commodore 64这类低价家用计算机冲击大众市场,从而涌现新一代业余程序设计员。到90年代,这些自己捣鼓家用计算机和写BASIC语言的业余程序设计员慢慢长大,后来进入学术界或计算机产业,通过游戏、网络、开源、商业技术的开发掀起了网络热潮。
从很多方面来看,Raspberry Pi的创始也和这股网络热潮有关。2006年,在剑桥大学计算机实验室里,一群由Eben Upton领导的计算机科学家执着于制造一种面向业余计算机发烧友、初露头角的学生和孩子们的廉价但具有教育功能的微型计算机。他们的目标是让那些即将从大学毕业的学习计算机的学生可以具备更多90年代后才出现的计算机技能,这当然离不开80年代家用计算机技术发展的基础。
然而,两年之后这个项目才得以实施。直到2012年,Raspberry Pi才向公众发布。
20世纪,移动计算技术得到了迅猛发展,这主要得益于智能手机产业的兴起。到2005年,一家前身为80年代家用计算机制造商Acorn的英国公司,推出了ARM CPU内核。目前随着ARM的发展,98%的手机内核技术都由该公司提供,其每年约向世界提供10亿CPU内核。Raspberry Pi使用的正是ARM公司提供的ARM1176JZF-S处理器内核。
与此同时,Eben Upton为Raspberry Pi做出过很多设想,直到2008年,得益于移动电话技术无孔不入的渗透和快速发展,制造一台小型且轻便,但拥有许多普通大众习惯使用的多媒体功能的微型计算机的成本才变得不再高不可攀。
因此,Raspberry Pi基金会正式成立,并且开始开发、生产Raspberry Pi。
到2011年,第一个内部测试模型被制造出来并开始进入测试流程。公众最终看到了Raspberry Pi的强大能力。
这台小小的低价计算机可以运行游戏《雷神之锤Ⅲ》和播放1080P全高清视频。
2012年,Raspberry Pi最终向公众开放购买。两种型号的Raspberry Pi(A型和B型)开始按计划投入生产,B型首先发布。
A型Paspberry Pi没有以太网接口,但与B型相比,它的功耗更低,并且售价仅为25美元。
B型拥有以太网接口,售价为35美元。它首先在中国生产,随后移至英国,由索尼公司接手生产。
经历许多挫折(如早期成品被安装了错误的以太网接口),通过一系列法规的认证之后,Raspberry Pi终于漂洋过海到达全球科技发烧友的手中。
那么,到底你手中的B型Raspberry Pi都包括些什么呢?
1.3 Raspberry Pi硬件说明
我们将简单介绍组成Raspberry Pi的核心组件来帮助你更好地体会它所拥有的功能。
Raspberry Pi的核心是博通(Broadcom)公司出产的BCM2835处理器——一种用于移动及嵌入式设备的多媒体应用处理器。
在此基础上,它还包括许多用于支持USB、RCA接口和SD卡的其他配件。
现在我们来了解Raspberry Pi主板上的一部分核心组件。图1.1中标明了一些核心组件,随后是各部分的说明。
规 格
Raspberry Pi体积很小,外形只有85.60mm×53.98mm×17mm,重量仅为45g。这让它非常适合用于智能家居,因为它可以被放在一个小盒子里,安装在配电箱里,或者直接取代墙上的恒温器。
3.5mm模拟音频接口
通过3.5mm模拟音频接口,你可以把耳机和音箱连接至Raspberry Pi。这对基于音频、媒体播放器的项目尤其有用。
复合RCA视频接口
你也许已经对连接DVD播放器和电视机的复合电缆很熟悉了,它们通常连着红色、白色和黄色之类的插头。Raspberry Pi有一个可以连接电视机黄色视频电缆的接口,你可以用它连接电视机,把电视机作为屏幕。
两个USB 2.0和一个Micro USB接口
USB是计算机连接外设和存储装置的最普遍的方法。Raspberry Pi有两个USB接口,你可以用它们来连接键盘和鼠标。一个Micro USB接口用于给Raspberry Pi供电。
HDMI接口
HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)可以让Raspberry Pi连接支持此项技术的高清晰度电视机和显示屏。它可以取代复合RCA视频接口和音频接口。
如果想用Raspberry Pi在电视机上播放网络音乐或视频,推荐你使用HDMI接口。
SD卡槽
SD卡是Raspberry Pi上数据的最主要的存储方式。我们需要把操作系统安装在SD卡上,并且把它当作硬盘来使用。当然,也可以通过USB接口的外置存储设备来扩展Raspberry Pi的存储能力。
与GPU共享的256MB/512MB内存
老款B型Raspberry Pi拥有256MB的SDRAM(Synchronous Dynamic Random Access Memory,同步动态随即存取存储器),而新型号拥有512MB。与拥有千兆字节(Gigabyte)内存的个人计算机相比,这个容量并不是很大。但是,对于我们要开发的应用来说,256MB和512MB的存储容量已经足够。
CPU
在本章的开头,我们介绍过ARM——一家提供CPU(Central Processor Unit,中央处理器)内核的英国公司。Raspberry Pi装备有一块700MHz、拥有ARM1176JZF-S内核的CPU,它是ARM11 32位多核处理器家族的一员。
CPU是Raspberry Pi的主要组成部分,通过执行计算机程序指令来进行数学、逻辑运算。
Raspberry Pi所使用的ARM11系列处理器,在iPhone、亚马逊Kindle和三星Galaxy系列手机里都有使用。
GPU
GPU(Graphics-Processing Unit,图形处理器)是一种专用芯片,用来加速图像计算的操作。
Raspberry Pi配备了博通VideoCore IV图像处理器,可以支持OpenGL应用的硬件加速回放。
如果想要在你的Raspberry Pi玩游戏、播放视频,或者使用Blender这样的开源3D图像应用,图形处理器就将发挥极大的作用。
以太网接口
以太网接口是Raspberry Pi连接其他设备及访问Internet的主要途径。你可以使用Raspberry Pi的以太网接口连接正在用于上网的家用路由器或设置好的网络交换机。
GPIO
Raspberry Pi上的GPIO(General Purpose Input/Output,通用输入输出)引脚主要用于连接其他电路板,如Arduino。
顾名思义,GPIO引脚能够接收与输入输出有关的控制命令,可以在Raspberry Pi上进行编程来发出这些控制命令。
Arduino扩展板可以将GPIO引脚连接到Arduino,这让我们能够把设备传感器采集到的数据传回Raspberry Pi。这一点在智能家居中尤其实用,因为人们都希望通过运行着操作系统的Raspberry Pi来存储数据或操作电机。
以上内容大概讲解了Raspberry Pi的技术功能,下面我们将关注Arduino,以及如何使两种技术(Raspberry Pi和Arduino)通过GPIO引脚进行连接。
1.4 Arduino的历史与背景
Arduino是市场上使用最广泛的开源硬件产品之一,它早期属于Wiring开源平台的分支,由Massimo Banzi和David Cuartielles于2005年在意大利开发。Arduino是一项开源硬件技术,还包括编程语言和IDE(Integrated Development Environment,集成开发环境)。
Arduino平台允许用户通过其同名的编程语言来创建自定义硬件和开发应用。
目前,市场上有许多不同大小、不同组件组成的主板模块。如Lilly Pad可以让发烧友们把Arduino主板集成在衣物上,这是可穿戴电子的概念。这些主板支持各种各样的扩展板(Shield)—— 一种可以与Arduino兼容的电路板,它可以插在主板上并扩展其功能。其中,使用以太网扩展版和无线Xbee装置来连接家用网络和Internet就是一种独特的扩展功能。