Skip to content

Latest commit

 

History

History
151 lines (86 loc) · 12 KB

File metadata and controls

151 lines (86 loc) · 12 KB

零、前言

物联网物联网)有望像几十年前互联网解锁数百万台电脑一样解锁现实世界。Raspberry Pi 电脑于 2012 年首次发布,风靡全球。树莓圆周率(Raspberry Pi)最初的设计目的是让新一代人对编程产生与 20 世纪 80 年代个人电脑一样的兴奋感,现在已经成为世界各地数百万制造商的主食

1991 年,GuidovanRossum 向全世界介绍了 Python 编程语言。Python 是一种简洁的语言,专为代码可读性而设计。Python 程序比其他编程语言需要更少的代码行。Python 是一种可扩展的语言,可以用于从最简单的程序到大规模项目的任何事情。

在本书中,我们将利用 Raspberry Pi 和 Python 的强大功能来创建激动人心的物联网项目

书的第一部分向读者介绍了令人惊叹的树莓派。我们将学习如何设置它并直接进入 Python 编程。我们将通过为物理计算创建“Hello world”应用程序,即闪烁的 LED,开始进军现实世界的计算领域

我们的第一个项目把我们带回了一个时代,当时模拟针式仪表主宰着数据显示的世界。回想那些旧的模拟万用表和无数的旧科幻电影,在这些电影中,信息通过按钮和大闪光灯进行控制和显示。在我们的项目中,我们将从 web 服务检索天气数据,并将其显示在模拟指针式仪表上。我们将通过 GPIO 将伺服电机连接到我们的 Raspberry Pi 来实现这一点。

家庭安全系统在现代生活中几乎无处不在。整个行业和职业都是基于对它们的安装和监控。你知道你可以轻松创建自己的家庭安全系统吗?在我们的第二个项目中,我们就是这样做的,因为我们构建了一个家庭安全系统,使用 Raspberry Pi 作为 web 服务器来显示它。

简陋的门铃自 1831 年以来一直伴随着我们。在我们的第三个项目中,我们将给它一个 21 世纪的转折点,让我们的 Raspberry Pi 向一个 web 服务发送一个信号,当有人在门口时,它会给我们发短信

在我们的最后一个项目中,我们从之前的两个项目中学习,并创建了一款物联网机器人车,我们称之为 T.A.R.A.S(这款令人惊叹的 Raspberry Pi 自动安全代理)。

在未来的几年里,无人驾驶汽车将成为规则而不是例外,并且需要控制这些汽车的方法。本最终项目为读者提供了洞察和知识,让读者了解如何控制没有人类驾驶的汽车。

这本书是给谁的

本书面向那些接触过编程并对物联网感兴趣的人。掌握 Python 编程语言一定是一项宝贵的财富。对面向对象编程的理解或浓厚兴趣将有助于读者更好地了解本书中使用的编码示例。

这本书涵盖的内容

第 1 章将 Raspbian 安装在 Raspberry Pi上,通过在 Raspberry Pi 上安装 Raspbian 操作系统,我们开始了 Raspberry Pi 物联网之旅。然后我们将看一看 Raspbian 预装的一些程序

第 2 章使用 Raspberry Pi编写 Python 程序,介绍了 Windows、macOS 和 Linux 是开发人员熟悉的操作系统。许多关于开发 Raspberry Pi 的书都涉及到使用这些操作系统之一并远程访问 Raspberry Pi。在本书中,我们将采用不同的方法。我们将使用我们的树莓 Pi 作为开发机器。在本章中,我们将使用树莓 Pi 作为开发机器。

第三章使用 GPIO 连接到外部世界解释了如果覆盆子 Pi 只是一台 35 美元的电脑,我们中的许多人就可以用它了。然而,Raspberry Pi 背后的真正力量是开发者通过使用通用输入输出GPIO引脚)访问外部世界的能力。在本章中,我们将深入研究 GPIO,并开始将 Raspberry Pi 与现实世界联系起来。我们将使用外部 LED 为我们的项目创建一个莫尔斯电码发生器,然后使用该发生器闪烁模拟天气信息。

第 4 章订阅 Web 服务**探讨了世界上一些最大公司提供的一些 Web 服务。我们的项目将使用虚拟版本的覆盆子 Pi Sense 帽子作为股票代码,显示来自雅虎的当前天气信息!天气网络服务。

第 5 章用 Python控制伺服介绍了使用连接到树莓 Pi 的伺服电机创建模拟仪表指针的概念*

*第 6 章使用伺服控制代码控制模拟设备,在我们构建第一个真正的物联网设备——天气仪表板时,继续使用伺服电机的主题。这种天气仪表板不仅具有模拟指针;它将根据天气情况,用指针指向建议的衣柜图片。

第 7 章设置 Raspberry Pi Web 服务器介绍如何安装和配置 Web 框架 CherryPy。我们将通过建立一个显示天气信息的本地网站来结束本章。

第 8 章使用 Python读取树莓 Pi GPIO 传感器数据介绍了如何在移动到 PIR 传感器和距离传感器之前读取按钮的状态。我们将通过构建简单的报警系统来结束本章。

*第 9 章构建家庭安全仪表板介绍了如何使用 Raspberry Pi 作为 web 服务器构建家庭安全仪表板,提供包含从 GPIO 收集的感官数据的 HTML 内容。

第 10 章发布到 Web 服务中,介绍了如何测量室温和湿度,并通过使用物联网仪表板将这些值发布到 Web 上。我们还将使用 Twilio 服务设置并运行短信警报。

第 11 章使用蓝牙创建门铃按钮,本章将重点转向使用蓝牙。蓝牙是一种允许短距离传输数据的无线技术。对于我们的项目,我们将探索 Android Play Store 中的 BlueDot 应用程序。我们将使用此应用程序构建一个简单的蓝牙连接门铃。

第 12 章提升我们的物联网门铃将以第 11 章中创建的简单门铃使用蓝牙创建门铃按钮,并使用第 10 章中学习的知识将其变成物联网门铃发布到 Web 服务

第 13 章介绍 Raspberry Pi 机器人车通过介绍这款令人惊叹的 Raspberry Pi 自动安全代理(T.A.R.A.S),开始我们进入物联网机器人车的旅程。本章将首先概述构建 T.A.R.A.S 所需的组件,然后我们将继续将其整合在一起。

第 14 章使用 Python 控制机器人车介绍了如何为我们的机器人车编写 Python 代码。我们将利用 GPIO Zero 库使车轮向前移动,移动固定摄像头的伺服电机,并点亮机器人车后部的 LED。

第 15 章将机器人车的感官输入连接到网络,这有助于我们理解,为了将我们的机器人车变成真正的物联网设备,我们必须将其连接到互联网。在本章中,我们将把机器人车的距离传感器连接到互联网。

第 16 章通过 Web 服务调用控制机器人车,通过深入查看我们为机器人车创建的互联网仪表板,继续将我们的机器人车转变为物联网设备。

第 17 章构建 JavaScript 客户端**将我们的注意力从 Python 移开,转而关注 JavaScript。我们将使用 JavaScript 构建一个基于 web 的客户端,该客户端使用 MQTT 协议通过 internet 进行通信。

*第 18 章将所有内容放在一起,介绍如何将我们的机器人车 T.A.R.A.S 连接到 JavaScript 客户端,并使用 MQTT 协议通过互联网控制它

充分利用这本书

为了充分利用这本书,我将假设:

  • 您已购买或将购买 Raspberry Pi 计算机,最好是 2015 款或更高版本。
  • 您已经接触过 Python 编程语言,或者渴望学习它。
  • 您基本熟悉电子元件以及如何使用试验板。
  • 您已经购买或愿意购买基本电子元件。

就硬件要求而言,您至少需要以下各项:

  • Raspberry Pi 3 型(2015 型或更新型)
  • USB 电源
  • 计算机显示器
  • USB 键盘
  • USB 鼠标
  • microSD 内存卡
  • 试验板和试验板跳线

在每章的开头将介绍额外的硬件。

在软件需求方面,您将需要 Raspberry Pi NOOBS 图像(https://www.raspberrypi.org/downloads/noobs/ )。在此过程中还将提供其他软件、帐户和 Python 包。我们在本书中使用的任何软件、web 服务或 Python 包都是免费的。

下载示例代码文件

您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packt.com/support并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packt.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Internet-of-Things-Programming-Projects 。如果代码有更新,它将在现有 GitHub 存储库中更新。

我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!

下载彩色图像

我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在这里下载:https://www.packtpub.com/sites/default/files/downloads/9781789134803_ColorImages.pdf

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“为了访问 Python 3,我们在终端窗口中键入python3命令。”

代码块设置如下:

wind_dir_str_len = 2
if currentWeather.getWindSpeed()[-2:-1] == ' ':
    wind_dir_str_len = 1

任何命令行输入或输出的编写方式如下:

pip3 install weather-api

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“从“视图”菜单中,选择“对象检查器和变量”

Warnings or important notes appear like this. Tips and tricks appear like this.

联系

我们欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至customercare@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,并输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packt.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问Packt.com。****