You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/zh/1-getting-started/lessons/1-introduction-to-iot/pi.md

15 KiB

树莓派

树莓派 是一款单板计算机。你可以通过各种设备和生态系统添加传感器和执行器,在这些课程中,我们将使用一个名为 Grove 的硬件生态系统。你将使用 Python 编写代码来控制树莓派并访问 Grove 传感器。

树莓派 4

设置

如果你使用树莓派作为物联网硬件,有两种选择——你可以直接在树莓派上完成所有课程并编写代码,或者通过远程连接到一个“无头”树莓派,从你的电脑上进行编程。

在开始之前,你还需要将 Grove 基座帽连接到树莓派。

任务 - 设置

安装 Grove 基座帽并配置树莓派

  1. 将 Grove 基座帽连接到树莓派。基座帽上的插槽与树莓派的所有 GPIO 引脚对接,滑动到底部,牢固地固定在基座上。它覆盖在树莓派上。

    安装 Grove 基座帽

  2. 决定如何编程树莓派,然后进入以下相关部分:

直接在树莓派上工作

如果你想直接在树莓派上工作,可以使用树莓派 OS 的桌面版本并安装所需的所有工具。

任务 - 直接在树莓派上工作

为开发设置树莓派。

  1. 按照 树莓派设置指南 中的说明设置树莓派,连接键盘/鼠标/显示器,连接到 WiFi 或以太网网络,并更新软件。

为了使用 Grove 传感器和执行器编程树莓派,你需要安装一个编辑器来编写设备代码,以及与 Grove 硬件交互的各种库和工具。

  1. 树莓派重启后,点击顶部菜单栏的 Terminal 图标启动终端,或者选择 Menu -> Accessories -> Terminal

  2. 运行以下命令以确保操作系统和已安装的软件是最新的:

    sudo apt update && sudo apt full-upgrade --yes
    
  3. 运行以下命令安装 Grove 硬件所需的所有库:

    sudo apt install git python3-dev python3-pip --yes
    
    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .
    
    sudo raspi-config nonint do_i2c 0
    

    这首先安装了 Git 和用于安装 Python 包的 Pip。

    Python 的一个强大功能是可以安装 Pip 包——这些是其他人编写并发布到互联网的代码包。你可以通过一个命令将 Pip 包安装到你的电脑上,然后在代码中使用该包。

    Seeed Grove 的 Python 包需要从源码安装。这些命令将克隆包含该包源码的仓库,然后在本地安装。

    💁 默认情况下,当你安装一个包时,它会在你的电脑上全局可用,这可能会导致包版本问题——例如,一个应用程序依赖于某个版本的包,而另一个应用程序安装新版本时可能会导致问题。为了解决这个问题,你可以使用 Python 虚拟环境,它本质上是一个专用文件夹中的 Python 副本,当你安装 Pip 包时它们只会安装到该文件夹中。在使用树莓派时你不会使用虚拟环境。Grove 安装脚本会全局安装 Grove 的 Python 包,因此如果你想使用虚拟环境,需要先设置虚拟环境,然后手动重新安装 Grove 包到该环境中。使用全局包更简单,尤其是许多树莓派开发者会为每个项目重新刷写干净的 SD 卡。

    最后,这启用了 I2C 接口。

  4. 使用菜单或在终端中运行以下命令重启树莓派:

    sudo reboot
    
  5. 树莓派重启后,重新启动终端并运行以下命令安装 Visual Studio Code (VS Code)——这是你将用来用 Python 编写设备代码的编辑器。

    sudo apt install code
    

    安装完成后VS Code 可以从顶部菜单中访问。

    💁 如果你有偏好的工具,可以自由使用任何 Python IDE 或编辑器完成这些课程,但课程中的说明将基于 VS Code。

  6. 安装 Pylance。这是 VS Code 的一个扩展,提供 Python 语言支持。参考 Pylance 扩展文档 了解如何在 VS Code 中安装此扩展。

远程访问树莓派进行编程

与直接在树莓派上编程不同,它可以运行“无头”模式,即不连接键盘/鼠标/显示器,并通过你的电脑进行配置和编程,使用 Visual Studio Code。

设置树莓派操作系统

要远程编程,需要在 SD 卡上安装树莓派操作系统。

任务 - 设置树莓派操作系统

设置无头树莓派操作系统。

  1. 树莓派操作系统软件页面 下载 树莓派镜像工具 并安装

  2. 将 SD 卡插入你的电脑,必要时使用适配器

  3. 启动树莓派镜像工具

  4. 在树莓派镜像工具中,选择 CHOOSE OS 按钮,然后选择 Raspberry Pi OS (Other),接着选择 Raspberry Pi OS Lite (32-bit)

    树莓派镜像工具选择 Raspberry Pi OS Lite

    💁 Raspberry Pi OS Lite 是树莓派操作系统的一个版本,没有桌面 UI 或基于 UI 的工具。这些对于无头树莓派来说是不需要的,并且使安装更小,启动时间更快。

  5. 选择 CHOOSE STORAGE 按钮,然后选择你的 SD 卡

  6. 按下 Ctrl+Shift+X 启动 高级选项。这些选项允许在将操作系统写入 SD 卡之前进行一些预配置。

    1. 勾选 Enable SSH 复选框,并为 pi 用户设置密码。这是你稍后登录树莓派时使用的密码。

    2. 如果你计划通过 WiFi 连接到树莓派,勾选 Configure WiFi 复选框,并输入你的 WiFi SSID 和密码,同时选择你的 WiFi 国家。如果你将使用以太网线,则无需执行此操作。确保你连接的网络与你的电脑在同一个网络中。

    3. 勾选 Set locale settings 复选框,并设置你的国家和时区

    4. 选择 SAVE 按钮

  7. 选择 WRITE 按钮将操作系统写入 SD 卡。如果你使用 macOS系统会要求你输入密码因为写入磁盘镜像的底层工具需要特权访问。

操作系统将被写入 SD 卡,完成后操作系统会弹出 SD 卡,并通知你。将 SD 卡从电脑中取出,插入树莓派,启动树莓派并等待大约 2 分钟让其正常启动。

连接到树莓派

下一步是远程访问树莓派。你可以使用 ssh 来完成,这在 macOS、Linux 和最新版本的 Windows 上都可用。

任务 - 连接到树莓派

远程访问树莓派。

  1. 启动终端或命令提示符,输入以下命令连接到树莓派:

    ssh pi@raspberrypi.local
    

    如果你使用的是旧版本的 Windows没有安装 ssh,可以使用 OpenSSH。安装说明可以在 OpenSSH 安装文档 中找到。

  2. 这将连接到你的树莓派并要求输入密码。

    通过 <hostname>.local 在网络中找到计算机是 Linux 和 Windows 最近添加的功能。如果你使用 Linux 或 Windows 并收到关于找不到主机名的错误,则需要安装额外的软件以启用 ZeroConf 网络Apple 称为 Bonjour

    1. 如果你使用 Linux运行以下命令安装 Avahi

      sudo apt-get install avahi-daemon
      
    2. 如果你使用 Windows启用 ZeroConf 的最简单方法是安装 Bonjour Print Services for Windows。你也可以安装 iTunes for Windows 来获取更新版本的工具(独立版本不可用)。

    💁 如果你无法使用 raspberrypi.local 连接,可以使用树莓派的 IP 地址。参考 树莓派 IP 地址文档 了解获取 IP 地址的多种方法。

  3. 输入你在树莓派镜像工具高级选项中设置的密码

配置树莓派上的软件

连接到树莓派后,需要确保操作系统是最新的,并安装与 Grove 硬件交互的各种库和工具。

任务 - 配置树莓派上的软件

配置已安装的树莓派软件并安装 Grove 库。

  1. 在你的 ssh 会话中,运行以下命令更新并重启树莓派:

    sudo apt update && sudo apt full-upgrade --yes && sudo reboot
    

    树莓派将被更新并重启。树莓派重启时,ssh 会话将结束,因此等待大约 30 秒后重新连接。

  2. 在重新连接的 ssh 会话中,运行以下命令安装 Grove 硬件所需的所有库:

    sudo apt install git python3-dev python3-pip --yes
    
    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .
    
    sudo raspi-config nonint do_i2c 0
    

    这首先安装了 Git 和用于安装 Python 包的 Pip。

    Python 的一个强大功能是可以安装 Pip 包——这些是其他人编写并发布到互联网的代码包。你可以通过一个命令将 Pip 包安装到你的电脑上,然后在代码中使用该包。

    Seeed Grove 的 Python 包需要从源码安装。这些命令将克隆包含该包源码的仓库,然后在本地安装。

    💁 默认情况下,当你安装一个包时,它会在你的电脑上全局可用,这可能会导致包版本问题——例如,一个应用程序依赖于某个版本的包,而另一个应用程序安装新版本时可能会导致问题。为了解决这个问题,你可以使用 Python 虚拟环境,它本质上是一个专用文件夹中的 Python 副本,当你安装 Pip 包时它们只会安装到该文件夹中。在使用树莓派时你不会使用虚拟环境。Grove 安装脚本会全局安装 Grove 的 Python 包,因此如果你想使用虚拟环境,需要先设置虚拟环境,然后手动重新安装 Grove 包到该环境中。使用全局包更简单,尤其是许多树莓派开发者会为每个项目重新刷写干净的 SD 卡。

    最后,这启用了 I2C 接口。

  3. 运行以下命令重启树莓派:

    sudo reboot
    

    树莓派重启时,ssh 会话将结束。无需重新连接。

配置 VS Code 进行远程访问

树莓派配置完成后,你可以使用 Visual Studio Code (VS Code) 从你的电脑连接到它——这是一个免费的开发文本编辑器,你将用它用 Python 编写设备代码。

任务 - 配置 VS Code 进行远程访问

安装所需软件并远程连接到树莓派。

  1. 按照 VS Code 文档 的说明在你的电脑上安装 VS Code

  2. 按照 VS Code 使用 SSH 进行远程开发文档 的说明安装所需组件

  3. 按照相同的说明,将 VS Code 连接到树莓派

  4. 连接后,按照 管理扩展 的说明,将 Pylance 扩展 远程安装到树莓派上

Hello world

在学习一门新的编程语言或技术时通常会从创建一个“Hello World”应用程序开始。这是一个小型应用程序用于输出类似于 "Hello World" 的文本,以验证所有工具是否已正确配置。

针对树莓派的 Hello World 应用程序将确保您正确安装了 Python 和 Visual Studio Code。

这个应用程序将存放在一个名为 nightlight 的文件夹中。在本任务的后续部分中,我们会在此基础上添加不同的代码,最终构建一个夜灯应用程序。

任务 - Hello World

创建 Hello World 应用程序。

  1. 启动 VS Code可以直接在树莓派上运行也可以通过 Remote SSH 扩展在您的电脑上连接到树莓派运行。

  2. 通过选择 Terminal -> New Terminal 或按下 CTRL+` 打开 VS Code 的终端。终端会默认打开到 pi 用户的主目录。

  3. 运行以下命令,为您的代码创建一个目录,并在该目录中创建一个名为 app.py 的 Python 文件:

    mkdir nightlight
    cd nightlight
    touch app.py
    
  4. 在 VS Code 中打开这个文件夹,选择 File -> Open...,然后选择 nightlight 文件夹,最后点击 OK

    VS Code 的打开对话框显示了 nightlight 文件夹

  5. 从 VS Code 的资源管理器中打开 app.py 文件,并添加以下代码:

    print('Hello World!')
    

    print 函数会将传递给它的内容打印到控制台。

  6. 在 VS Code 的终端中运行以下命令来运行您的 Python 应用程序:

    python app.py
    

    💁 如果您的设备同时安装了 Python 2 和 Python 3可能需要显式调用 python3 来运行此代码。如果调用 python,系统可能会默认使用 Python 2 而不是 Python 3。默认情况下最新版本的树莓派操作系统只安装了 Python 3。

    终端中会显示以下输出:

    pi@raspberrypi:~/nightlight $ python3 app.py
    Hello World!
    

💁 您可以在 code/pi 文件夹中找到这段代码。

😀 恭喜!您的 'Hello World' 程序运行成功!

免责声明
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。我们对因使用此翻译而产生的任何误解或误读不承担责任。