65.9K
CodeProject 正在变化。 阅读更多。
Home

Raspberry Pi 入门,使用 Raspbian OS

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (36投票s)

2014年11月10日

CPOL

23分钟阅读

viewsIcon

106269

downloadIcon

415

Raspberry Pi 和 Raspbian 操作系统入门。还有一个构建简单电路并编程的示例

引言

本文面向 Raspberry Pi 的新手(就像我一样)。它介绍了 Raspberry Pi 和 Raspbian 是什么,以及它们的用途。它还提供了一个简单的指南,教您如何设置您的第一台 Pi 及其操作系统,玩转一个 hello world 程序,并让您走上构建一支机器人大军的道路,这支大军终有一天会统治世界。

以下是涵盖的主题。

背景

下面链接的关于物联网概述的文章可以很好地介绍物联网是什么及其用途。

物联网 - 概述

什么是 Raspberry Pi?

*为了节省版面,我们把 Raspberry Pi 简称为 Pi。:)

关于上述问题的一句话答案是:“Pi 是一台单板计算机”。Pi 是一种比信用卡稍大的小型计算机,它拥有足够的算力来运行游戏、像 OpenOffice 这样的文字处理器、像 Gimp 这样的图像编辑器以及任何类似规模的程序。

Pi 最初作为一种教育工具推出,供爱好者进行原型设计,以及供那些想了解更多编程知识的人使用。它当然不能取代我们日常使用的 Linux、Mac 或 Windows PC。

Pi 基于 Broadcom SoC(片上系统),配备 ARM 处理器(约 700 MHz)、GPU 和 256 到 512 MB 内存。启动介质是 SD 卡(不包含在内),SD 卡也可以用于持久化数据。既然您知道内存和处理能力远不及您家中可能拥有的强大机器,这些 Pi 可以用作一些基本功能(尤其是实验和教育)的廉价计算机。Pi 有三种配置,我们将在接下来的部分讨论它们的规格。一个 B 型 Pi 的成本约为 35 美元,可以通过许多在线和实体商店购买。

我需要什么才能开始?

以下是开始使用 Pi 所需的基本物品。

电脑

一个 Raspberry Pi

存储

SD 卡和 SD 卡读卡器用于写入操作系统镜像(现在笔记本电脑通常内置读卡器)

电源

5 伏 micro USB 适配器,大部分安卓手机充电器都可以使用

显示

带 DVI 或 HDMI 端口的电视/显示器

显示连接器

HDMI 线缆或 HDMI 转 DVI 转换线缆

输入

USB 鼠标

输入

USB 键盘

网络

以太网线

情况

如果您真的需要,可以根据您的型号在线购买

Raspberry Pi 系统规格

如前所述,Pi 有三种配置。下表详细列出了 A、B 和 B+ 三种型号。

描述

A型

B型

B+型

芯片

Broadcom BCM2835 (CPU, GPU, DSP, SDRAM, 单个 USB 端口)

Processor

700 MHz ARM1176JZF-S 核 (ARM11 系列, ARMv6 指令集)

RAM

256 MB

512 MB

512 MB

USB

1(直接来自 BCM2835 芯片)

2个板载

4个板载

存储

SD卡

SD卡

MicroSD卡

电压

600mA 至 1.2A @ 5V

750mA 至 1.2A @ 5V

600mA 至 1.8A @ 5V

GPO

26

26

40

为了我们的学习,我们选择 B 型,并围绕该型号进行解释。如果您想知道为什么是 B 而不是 B+,那是因为我只有 B 型,没有 B+ 型 :)。

端口、引脚及其用途

以下是 Raspberry Pi 板上的端口及其部分用途。这些端口也可能用于以下未列出的其他用途。

USB

主要用于连接键盘、鼠标和 WiFi 适配器等外围设备。可以连接一个带电源的 USB 集线器进行扩展。

HDMI

这是高清多媒体接口 [HDMI],用于连接电视、显示器或有时是投影仪等显示设备

立体声

使用 3.5 毫米插孔进行音频连接

SD卡

SD卡用作启动设备和持久存储。更多存储可以连接到USB

Micro USB

micro USB 端口用于为主机供电

CSI 连接器

CSI(摄像头串行接口)用于将摄像头连接到设备

以太网

用于通过网线连接到网络

DSI 连接器

DSI [数字串行接口] 用于将 LCD 连接到设备

另一个重要的引脚是 GPIO。

GPIO 代表通用输入输出。

Model B 总共有 26 个引脚。

  • 有三个电源引脚 [3.3v, 5.0v 和 0v]。
  • 6 个不连接 (DNC) 引脚
  • 17 个 GPIO 引脚

在本教程的最后,我们将构建一个简单的电路,以了解更多关于如何使用这些 GPIO 的知识。在此之前,我们先为我们的 Pi 设置一个操作系统。

Raspberry Pi 与 Raspbian 操作系统

以下是一些 Pi 可以运行的操作系统,但本文中我们只学习 Raspbian。

Linux

有三种官方 Linux 版本可供下载,分别是

Debian [Raspbian] *推荐

ArchLinux

Pidora [基于 Fedora]

RISC OS

由 ARM 设计师设计的复古风格 1080p 图形用户界面。RISC 在 90 年代更常见。

Firefox OS

Firefox 团队开发的新操作系统。基本上是 Firefox 和 PTXdist 构建的 Linux 的结合。

计划 9

由贝尔实验室(UNIX 的创建者)创建的类 Unix 操作系统

Android

无需解释,但此版本尚未超出 2.3 版本,而且速度有点慢。

Raspbian OS 是可免费下载和使用的官方操作系统之一。该系统基于 Debian Linux,并已优化以与 Raspberry Pi 计算机高效工作。正如我们所知,操作系统是一组在指定硬件(在本例中为 Pi)上运行的基本程序和实用程序。Debian 非常轻量级,是 Pi 的绝佳选择。Raspbian 包含用于浏览、Python 编程和 GUI 桌面的工具。

Raspbian 桌面环境被称为“轻量级 X11 桌面环境”,简称 LXDE。它具有一个相当吸引人的用户界面,该界面使用 X 窗口系统软件构建,并且是一个熟悉的点击式界面。我们将在下一节中详细了解如何安装和使用此操作系统。

设置 Raspbian 操作系统

让我们首先连接电路板及所有必要的附件,以便安装和运行操作系统。

第一步:将 Pi 从防静电套中取出,放在非金属桌面上。

第二步:连接显示器 – 将 HDMI 线缆连接到 Pi 上的 HDMI 端口,另一端连接到电视的 HDMI 端口。

第三步:将以太网线从路由器连接到 Pi 上的以太网端口

第四步:将 USB 鼠标连接到 Pi 上的一个 USB 端口

第五步:将 USB 键盘连接到 Pi 上的另一个 USB 端口

第六步:将 micro USB 充电器连接到 Pi,但暂时不要连接到电源

第七步:用 Raspbian 操作系统刷写 SD 卡。

  1. 为了准备好在 Pi 上使用这张卡,我们需要在上面安装一个操作系统。我们当然不能简单地将操作系统文件拖放到卡上,但刷写这张卡也不是很困难。
  2. 既然我们已经决定安装 Raspbian,那么让我们从以下链接下载 RASPBIAN 镜像:http://www.raspberrypi.org/downloads/。
  3. 将 Zip 文件的内容解压缩到计算机上的一个文件夹中,其中一个解压缩的文件将是一个 .img 文件,这就是需要刷写到 SD 卡上的文件。[如果有一个以上的文件,当前版本的 Zip 包中只有这个文件,没有其他文件]
  4. 从 Linux 刷写说明。
    1. 在你的 Linux 操作系统上启动终端。
    2. 将空白 SD 卡插入您机器的读卡器中。
    3. 输入 `sudo fdisk -l` 查看所有列出的磁盘。通过其大小找到 SD 卡,并记下设备地址(/dev/sdX,其中 X 是标识存储设备的字母。某些带有集成 SD 卡读卡器的系统可能使用 /dev/mmcblkX 格式,只需相应地更改以下说明中的目标即可)。
    4. 使用 cd 命令切换到您从 Zip 存档中提取的 .img 文件所在的目录。
  5. 键入 `sudo dd if=imagefilename.img of=/dev/sdX bs=2M` 将文件 `imagefilename.img` 写入连接到设备地址的 SD 卡。将 `imagefilename.img` 替换为从 Zip 存档中提取的实际文件名。此步骤需要一段时间,请耐心等待!在刷写过程中,屏幕上不会显示任何内容,直到整个过程完全完成。
  6. Windows 刷写说明
    1. Windows 版 Image Writer 用于替代 dd,它专门用于创建 Linux 发行版的 USB 或 SD 卡镜像,它具有一个简单的图形用户界面,使 Raspberry Pi SD 卡的创建变得简单。从以下网站下载最新版本的 Windows 版 Image Writer:https://launchpad.net/win32-image-writer。以下是步骤。

      i. 下载 Windows 版 Image Writer 的二进制(非源代码)Zip 文件,并将其解压到您计算机上的一个文件夹中。

      ii. 将您的空白 SD 卡插入连接到 PC 的读卡器中。

      iii. 双击 Win32DiskImager.exe 文件打开程序,然后点击蓝色文件夹图标以打开文件浏览对话框。

      iv. 浏览到您从发行版存档中提取的 `imagefilename.img` 文件,将 `imagefilename.img` 替换为从 Zip 存档中提取的实际文件名,然后单击“打开”按钮。

      v. 从“设备”下拉对话框中选择与 SD 卡对应的驱动器号。如果您不确定选择哪个驱动器号,请打开“我的电脑”或“Windows 资源管理器”进行检查。

      vi. 单击“写入”按钮将镜像文件刷写到 SD 卡。

    2. 操作系统刷写完成后,将 SD 卡插入 Pi 的 SD 卡槽
    3. 将 MicroUSB 连接到电源并打开电源。
    4. 现在系统将启动到以下屏幕,板上的 LED 灯将闪烁。下面是一个显示启动屏幕的小 GIF 动画
    5. 现在您需要使用用户名/密码组合 pi/raspberry 登录。
    6. 如果您想使用 GUI 界面,请键入 startx。下图显示了前两个步骤。

现在您已完成操作系统安装,并且您的 Pi 已启动并运行。

配置您的 Raspbian

* 我正在使用 Qemu 模拟器获取屏幕截图,但真实的配置包含以下所有选项,以及一些其他选项,例如摄像头配置。

如果需要进入 Pi 的配置菜单,您需要使用 sudo raspi-config 命令。

此配置在您的 Pi 首次启动时也会出现。下面是一些可用选项及其快速解释。

以下是我第一次启动时使用的一些选项。

步骤1:expand_rootfs。

选择或高亮显示“expand_rootfs”选项并按回车键。使用键盘上的箭头键选择该选项。一旦您按下回车键,您将看到如下所示的确认屏幕,再次按下回车键,您将返回到主配置屏幕。

步骤2:过扫描

您可以在这里启用或禁用过扫描。我正在禁用它,这样我的屏幕就可以完全填充。

第三步:配置键盘

由于初始设置给我的是英国键盘格式,我将更改设置,使用带英语(美国)选项的通用国际 105 键盘。选择“configure_keyboard”并按 Enter。

键盘类型设置好后,您需要指定布局。很有可能您想要一个与英式英语(UK)不同的布局,就像我一样,所以选择“Other”并选择一个适合您的选项。我坚持使用美式英语(US)。

之后,当提示时,只需选择默认修饰键,以及在下一个屏幕上选择“无组合键”。如果以后您发现需要组合键来创建其他字符,您可以通过运行“raspi-config”返回此配置屏幕。

步骤 4:更改密码。选择 change_pass,其余步骤不言自明。我认为更改通用密码是个好主意 :)

第五步:设置区域设置

如果您住在美国,那么您需要 en_US.UTF-8,否则取决于您住在哪里。向下滚动到您需要的区域设置,并取消选择 en_GB [大不列颠] 选项。在我们的例子中,我们将启用 en_US.UTF-8。

下一个对话框窗口将要求您选择一个默认区域设置,选择您在上一屏幕中刚刚选择的区域设置,然后按 Enter。

第六步:设置时区

选择“change_timezone”选项。您将首先看到一个地区列表。

下一个对话框将显示该区域内的区域列表。我相信你能从这里搞定 J。

步骤 7:完成

返回主菜单并选择“完成”。这应该会将您带回到原始启动屏幕,您可以从那里输入 startx 进入 LXDE 环境或 GUI。

GUI - “轻量级 X11 桌面环境”或简称 LXDE

如前所述,LXDE 是 Raspbian 操作系统的图形用户界面。现在让我们快速了解一下 LXDE 中包含的工具和功能。

GUI 不会默认加载,您需要输入 `startx` 命令来启动 GUI。

LXDE 预装了大量软件,可供您开始使用。以下是 Pi 上可用的一些软件列表,该列表并非详尽无遗,您可以自由探索此处未列出的功能。以下列表仅作为 LXDE 软件包的介绍。

LXDE 软件分为以下类别

  1. 附件
    1. Debian 参考——一份详细解释 Debian Linux 发行版以及程序员如何为其开发做出贡献的指南。
    2. 文件管理器——这称为 PCManFM 文件,它提供了一个图形浏览器,用于查看存储在 Pi 或任何连接存储设备上的文件。
    3. 图像查看器——这被称为 GPicView,它是操作系统的图像查看器。图像可以来自数码相机或连接的存储设备。
    4. Leafpad——Raspbian 的记事本,用于快速笔记和一些简单程序
    5. LXTerminal——此 LXDE 终端软件包允许您在不离开图形用户界面的情况下在窗口中使用 Linux 命令行。
    6. Root Terminal——类似于 LXTerminal,Root Terminal 会自动以 root 超级用户帐户登录,以便执行普通用户帐户无法执行的系统维护任务。
    7. Xarchiver——如果您需要创建或提取压缩文件,例如 ZIP 档案,这就是您的工具。
  2. 教育程度
    1. Scratch——这是一种为儿童设计的图形化编程语言,我们将在单独的部分中详细介绍。
    2. Squeak——这是 Scratch 运行的平台,您可能永远不会使用此菜单项,因为我们将使用 Scratch 创建程序。
  3. 互联网 <> Midori——轻量但快速的网页浏览器,相当于 Windows 上的 Internet Explorer 或 Mac OSx 上的 Safari。<!-- -->Midori 私密浏览——私密浏览以掩盖您的行踪,而不是稍后擦除它们 ;)。您的浏览历史记录和访问网站的其他详细信息将永远不会被保存。<!-- -->NetSurf 网页浏览器——Midori 的替代网页浏览器
  4. 编程
    1. IDLE——这是 Python 编程语言 2.7 版本的集成开发环境。我们将在本文的单独部分中了解更多关于使用 IDLE 编写自己的 Python 程序的信息。
    2. IDLE 3——这是另一个 Python IDE,但适用于版本 3。两个版本相互兼容,但有些程序特别需要版本 3。
    3. Scratch——与教育版 Scratch 相同
    4. Squeak——与教育版 Squeak 相同

  1. 系统工具
    1. 任务管理器——类似于 Windows 上的任务管理器。您可以查看可用内存、终止烦人的程序、查看处理器的工作负载等等。
  2. 偏好设置
    1. 自定义外观——更改桌面外观
    2. 桌面会话设置——用于更改用户登录时系统工作方式的工具,包括自动加载哪些程序以及使用哪个窗口管理器(绘制窗口边框和标题栏的软件)。
    3. 键盘和鼠标——用于调整输入设备的工具。如果您的键盘某些键输入了错误的字符,或者您的鼠标过于灵敏,可以在此处更改设置。
    4. 显示器设置——连接到 Pi 的显示器或电视的运行分辨率可以在此处更改,尽管高级更改需要修改配置文件。
    5. Openbox 配置管理器——LXDE GUI 使用名为 Openbox 的桌面环境,可以在此处进行调整。使用此工具,您可以应用新主题来更改 GUI 的外观,或更改界面某些方面的操作方式。
    6. 偏好设置。

文件系统布局

正如大多数人已经知道的,文件系统是任何操作系统用于存储、组织和访问文件所选择的数据结构和访问方法。文件系统也用于表示机器上正在使用的磁盘分区。每个文件系统都有自己将文件存储到存储介质(如硬盘或 SD 卡)的方法。如果没有这些可识别的表示,系统和人之间将很难共享文件。

逻辑布局

Linux 存储和组织文件的方式与 Windows 有点不同。与 Windows 中所有内容都存储在驱动器下且每个驱动器都有一个字母不同,在 Linux 中,所有内容都分组在根文件系统下的一个分支下。

要查看这些分支是什么,请在您的 pi 上打开终端并输入以下命令。

ls /

正如您在上面的 gif 图像中看到的,有各种目录。其中一些目录位于 SD 卡上,用于持久化文件,另一些则是用于访问操作系统或硬件不同部分的虚拟目录。以下是您所看到内容的列表和简短描述。

Directory(目录)

描述

boot

用于 Linux 内核和启动/启动 Pi 所需的其他软件包的文件夹

bin

与 Raspbian 相关的二进制文件,包括运行操作系统 GUI 所需的文件

dev

这是一个虚拟目录,用于访问所有连接的设备,包括存储设备

etc

杂项配置文件,如加密密码,都放在这里。

主页

这就像“我的文档”,每个用户名都会在此目录下获得一个单独的目录

lib

Lib = 库,各种应用程序所需的代码

lost+found

系统崩溃时,文件的零散部分会存储在这里

媒体

可移动存储设备(如 USB 和 CD)的目录

mnt

用于手动挂载外部硬盘和类似存储设备

opt

可选软件目录,任何不属于操作系统的应用程序都将放置在此处

proc

另一个虚拟目录,包含有关运行进程(程序)的信息

selinux

最初由我们敬爱的 NSA 开发的安全实用程序,这些实用程序与安全增强型 Linux 有关。

sbin

通常由 root/超级用户使用的系统维护二进制文件

sys

操作系统文件

tmp

临时文件

usr

这用作用户可访问程序的存储

var

程序可以用来持久化数据的虚拟目录

物理布局

尽管我们看到上述所有目录,但如果您查看 SD 卡内容,您会看到一个完全不同的结构。

对于 Raspbian,卡将分为两个部分或分区。

第一个分区较小,约 75 MB,格式化为 VFAT,这是微软用于可移动驱动器的相同格式。此分区被挂载,并通过 Linux 在 /boot 目录中访问,该文件夹中存储了所有用于配置 Pi 和运行操作系统的文件。

第二个分区更大,格式为 EXT4,EXT4 是原生 Linux 文件系统之一,以其数据安全性和高速而闻名。它包含发行版的主要部分、程序和用户文件。

安装和卸载软件

尽管发行版自带的软件包足以启动,但我们总是需要为新项目或工作在操作系统上安装新软件。

在 Pi 上安装软件是一个非常简单直接的过程。名为 apt 的工具将帮助我们完成这些任务,它是 Raspbian 的默认软件包管理器。在 Linux 世界中,软件被称为“软件包”,因此我们开始使用这个术语。软件包不过是旨在协同工作以执行任务的程序或程序集合。

apt 工具可以通过终端的命令行执行,也有基于 apt 工具的 GUI 软件包管理器,如 Synaptic 软件包管理器,您可以使用。目前,让我们使用命令行版本,因为 Synaptic 会占用大量内存。软件安装有三件事,即查找软件、安装软件和卸载软件。让我们在下面分别看看它们。

查找软件

安装任何软件包的第一步是按名称查找软件包。通常我们应该在缓存中搜索可用的软件包,很有可能我们会在那里找到我们需要的软件包。缓存是可以通过 apt 安装的所有可用软件包的列表,并存储在仓库(互联网服务器)中。

apt 工具包含一个用于管理此缓存的实用程序,称为 apt-cache。使用此工具,我们可以通过单词或短语搜索软件。

例如,要查找所有可用的包管理器,我们可以输入以下内容

apt-cache search package manager

该命令基本上是告诉 `apt-cache` 工具搜索标题或描述中包含“Package manager”的所有软件包。通常我们会得到大量记录,因此最好尽可能具体。下面是您执行命令后发生的情况。

如你所见,我并没有足够具体,结果得到了一长串列表。:)

安装软件

一旦您选择了要安装的软件包名称,我们需要使用 `apt-get` 命令来安装它。安装只允许以 root 用户身份进行,因此命令需要带 `sudo` 前缀运行,以告知操作系统此命令以 root 用户身份运行。

让我们选择 thrust 包并安装它。

输入以下命令

sudo apt-get install thrust

下面是发生的事情。

卸载软件

一旦您决定从系统中移除一个包,您可以使用相同的 apt-get 命令与 remove 参数来卸载软件。下面是命令和其工作方式的图片。

Sudo apt-get remove thrust

移除还有一个“老大”叫 purge。移除命令会将配置文件留在系统中,而 purge 会清除与软件包相关的一切。下面是命令。

sudo apt-get purge thrust

升级软件

有时我们需要获取已安装软件包的最新版本。为此,apt-get 使用相同的 install 参数。如果软件包已经安装,它会将 install 命令视为升级;如果已经安装了最新版本,它只会告诉您软件已是最新版本并退出。以下是命令。

sudo apt-get install

此外,要一次性升级系统上的所有软件,您可以使用 upgrade 参数,如下所示。

sudo apt-get upgrade

除了升级软件包,如果您需要获取 apt-get 的更新工具,请使用 update 参数,如下所示。

sudo apt-get update

下面是显示上述三个命令的图片

在 Raspberry Pi 上进行“Hello World”编程

正如我们已经知道的,Raspbian 预装了 Python 编程语言及其 IDE。我将快速演示一个 Python 的“Hello World”程序。学习 Python 是一个完全不同的部分,我将尝试在另一篇文章中介绍。Python 也被认为是 Raspberry Pi 的官方语言。

学习任何一门新的计算机语言通常/传统上都从 Hello World 程序开始,我真的不会打破这个传统。以下是编写和执行您的第一个“Hello World” **Pi-Thon** 程序的步骤 [双关语 ;) ]

步骤1:点击并从开始菜单打开 IDLE 3 [Python 3 IDE]

步骤2:点击“文件”菜单并打开一个新窗口

步骤3:在新窗口中输入以下代码

#my first Pi-thon program

print (‘Hello World’)
username = input("What is your name? ")
print (‘Welcome to Pi world, ' + username + ' have a good one!')

步骤4:从文件菜单中点击保存,并为文件命名

步骤5:从“运行”菜单中点击“运行”或按 F5。就是这样。下面是一个 gif 演示了上述步骤。

使用 GPIO 库控制 LED 的开关

正如我们之前看到的,Pi 上的 GIPO 引脚用于与其他的输入和输出设备进行接口连接。

让我们快速编写一个示例,当收件箱中没有新邮件时,点亮绿色 LED;当有新邮件时,点亮红色 LED。

我们将使用 Python 作为编程语言。为了访问 GPIO,Python 提供了一个名为 RPi.GPIO 的库,该库已预装在我们正在使用的 Raspbian 中。但是,让我们导入该库并获取最新版本的库,以防它已过时。以下是相应的命令。

sudo apt-get install RPi.GPIO

现在我们已经安装了 GPIO 库,接下来我们还将安装 feedparser 库,它将帮助我们解析从 Gmail 获取的订阅源。

sudo pip install feedparser

现在让我们在 IDLE 中打开一个新窗口,并开始以下代码,第一行将是导入我们所需的所有库,即

  • GPIO
  • Feed Parser
  • 时间
import RPi.GPIO as GPIO, feedparser, time

现在我们来为下面将使用的引脚分配编号系统。

#assign numbering for the GPIO using BCM

GPIO.setmode(GPIO.BCM)

#assingn number for the GPIO using Board

#GPIO.setmode(GPIO.BOARD)

我已经将板载编号模式注释掉了,因为我将在示例的其余部分中使用 BCM 编号。BCM (Broadcom SoC 编号) 和 BOARD 模式之间的区别在于,BOARD 模式使用与板上布局完全相同的引脚,而 BCM 针对两个不同的版本有两种不同的方式。下面是 Meltwater 的 Raspberry Pi 硬件的一张快速图片,显示了修订版 1 和 2 之间不同的 BCM 编号。

现在让我们声明一些将在程序中使用的变量

USERNAME = "YOUR_USERNAME" #just the part before the @ sign, add yours here
PASSWORD = "YOUR_PASSWORD"
NEWMAIL_OFFSET = 0
MAIL_CHECK_FREQ = 2 # check mail every 2 seconds

以下逻辑将检查来自 Gmail 的邮件订阅源,并查看未读计数是否大于 0,如果是,则将 GPIO GREEN 设置为 true,表示点亮绿色 LED。

否则,点亮红色 LED。由于我们将绿色 LED 连接到 Pi 上的引脚 18(BCM 编号),将红色 LED 连接到引脚 23,因此这些变量已分别设置为它们的初始值。

GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
while True:
    
    newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
                        
    if newmails > NEWMAIL_OFFSET :
        print("You have", newmails, "new emails!")
        GPIO.output(GREEN_LED, True)
        GPIO.output(RED_LED, False)
    else:
        print("You have no new emails!")
        GPIO.output(GREEN_LED, False)
        GPIO.output(RED_LED, True)
                                    
    time.sleep(MAIL_CHECK_FREQ)

下面是我们如何连接电路。

一旦我们运行代码,结果如下

 

© . All rights reserved.