
资源介绍
第二版)(英文版电子书)
本书聚焦于利用 Python 语言结合 GPIO Zero 库,实现树莓派在物联网(IoT)领域的应用开发。与其他树莓派物联网书籍不同,它并非单纯的项目集合,而是从硬件原理与软件逻辑双维度出发,帮助读者理解底层工作机制,进而具备自定义设备和扩展 GPIO Zero 库的能力。
书中以树莓派全系列设备为基础,从基础的 GPIO(通用输入输出)引脚操作,到复杂的电机控制、SPI 总线通信,再到远程开发环境搭建,形成了一套完整的知识体系。无论是 Python 新手还是有一定基础的开发者,都能通过本书掌握树莓派物联网开发的核心技能,尤其解决了树莓派 5 与前代产品兼容性问题 ——GPIO Zero 成为目前唯一能在包括树莓派 5 在内的全系列设备上顺畅运行的简易物联网编程方案。
三、主要章节亮点
1. 树莓派选型与基础准备(第 1-2 章)
设备选型指南:详细对比树莓派各型号特性,包括树莓派 Zero 系列(Zero、Zero W、Zero 2W)、3 系列(3A+、3B+)、4 系列及最新的 5 系列,从 CPU 性能、内存、网络功能、价格等维度给出选型建议。例如,树莓派 Zero 2W 以 15 美元价格提供四核 CPU 和 WiFi 功能,适合低成本物联网部署;树莓派 5 则凭借 2.4GHz 四核 CPU、4/8GB 内存及高速 I/O,成为开发阶段的优选。
开发环境搭建:介绍本地开发(基于 Thonny 编辑器)与远程开发(基于 SSH 的 Thonny、VS Code)两种模式。针对无显示器、键盘的 “无头” 树莓派,提供通过 Raspberry Pi Imager 预设 WiFi、SSH 及用户信息的实操步骤,降低入门门槛。
2. GPIO 基础与 Python 面向对象(第 3-4 章)
GPIO 核心概念:解析 GPIO 引脚编号规则(物理引脚编号与逻辑 GPIO 编号)、工作模式(输入 / 输出、上拉 / 下拉),并通过 “Blinky”(LED 闪烁)示例,演示如何用 GPIO Zero 快速控制硬件 —— 仅需 6 行代码即可实现 LED 周期性闪烁,帮助读者建立硬件控制的直观认知。
Python 面向对象编程:针对物联网开发需求,重点讲解类与对象、继承、多继承(Mixin 模式)、属性与特性(Property)等关键概念。以 GPIO Zero 的 LED 类为例,剖析其封装逻辑,为后续自定义设备类打下基础。
3. 简单与复杂设备控制(第 5-9 章)
简单开关设备:详解 LED、蜂鸣器的控制方法,包括常亮 / 熄灭、闪烁(blink/beep)、状态切换(toggle),并演示如何通过继承 DigitalOutputDevice 类创建自定义设备(如电子门锁类 Lock,将 on/off 方法封装为 lock/unlock,提升代码可读性)。
电子电路基础:补充必要的电子知识,包括欧姆定律应用(计算 LED 限流电阻)、晶体管(BJT、MOSFET)驱动原理,解决树莓派 GPIO 引脚电流限制(单引脚最大 16mA,总电流不超过 50mA)的问题,例如用 2N2222 晶体管驱动 20mA 的标准 LED。
复杂输入设备:介绍基于 SmoothedInputDevice 的传感器控制,包括红外循迹传感器(TRCT5000)、人体红外传感器(PIR)、光敏电阻(LDR)、超声波测距传感器(HC-SR04),并讲解如何通过 “source/values” 机制实现设备间数据联动(如将距离传感器数据直接映射到 PWM LED 亮度)。
4. 高级硬件控制(第 10-12 章)
脉冲宽度调制(PWM):解析 PWM 原理(频率、占空比),演示如何用 PWM 控制 LED 亮度、RGB LED 颜色、蜂鸣器音调(TonalBuzzer),甚至通过低通滤波器实现数模转换(D/A),生成模拟波形。
电机与舵机控制:覆盖直流电机(单向 / 双向,基于 H 桥驱动)、舵机(Servo、AngularServo 类)、步进电机(自定义 StepperBi4 类),提供硬件接线图与软件代码,解决电机方向切换、速度调节、精确角度控制等核心问题。
复合设备:介绍 GPIO Zero 的 CompositeDevice 类,演示如何组合多个基础设备形成复杂系统,如 LED 阵列(LEDBoard)、交通灯(TrafficLights)、机器人(Robot 类,控制左右轮电机实现前进、后退、转向)。
5. 总线通信与底层库(第 13-15 章)
SPI 总线:讲解 SPI 总线原理(MOSI、MISO、SCLK、CE 引脚),演示如何通过 GPIO Zero 控制 MCP3008 等 ADC 芯片实现模拟信号采集,并提供自定义 SPI 设备(如 DS3234 实时时钟)的开发方法。
lgpio 库:作为 GPIO Zero 的默认底层库,lgpio 通过 Linux 驱动实现跨树莓派型号的硬件兼容。书中介绍其基础功能(GPIO 读写、脉冲生成、分组控制),帮助读者在需要更高速度或底层控制时,绕过 GPIO Zero 直接操作硬件。
6. 附录:VS Code 远程开发进阶
提供 VS Code 远程调试、免密码 SSH 登录、本地与远程文件同步的详细配置步骤,解决树莓派 Zero 等低性能设备运行 VS Code 卡顿的问题,同时支持多设备间代码快速部署。
四、本书特色与适用人群
1. 特色
兼容性优先:全程围绕 GPIO Zero 库展开,确保代码可在树莓派全系列(包括最新的 5 系列)运行,解决前代书籍对树莓派 5 支持不足的问题。
原理与实践结合:不仅提供 “照做即行” 的代码示例,更深入剖析硬件工作机制(如 PWM 生成、SPI 数据传输)与软件封装逻辑,帮助读者具备解决未知问题的能力。
注重实用性:针对物联网开发常见场景(如低功耗、多设备协同、远程控制)提供解决方案,例如用树莓派内部设备(CPU 温度、内存占用)作为数据源,实现状态监控。
2. 适用人群
物联网开发初学者,希望通过 Python 快速入门树莓派硬件控制;
有 Python 基础,但缺乏硬件开发经验的开发者;
需要为树莓派项目(如智能家居、环境监测、机器人)构建稳定、可扩展代码的工程师;
教育场景中,用于教授物理计算与物联网编程的师生。