尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

树莓派3实战指南:系统安装、GPIO开发与家庭服务器搭建

树莓派3实战指南:系统安装、GPIO开发与家庭服务器搭建 最近清理抽屉翻出一块吃灰的树莓派 3刚好有朋友问我想入门硬件开发选哪块板子我想了想还是推荐它。树莓派 3Raspberry Pi 3 Model B虽然已经是几年前的型号了但在一众派友心中地位依然很稳。这板子对我来说是个特别的存在——它是我上手 Linux 和 GPIO 的第一块板子也是我带过好几个新人入坑的起点。如果你手里正好有一块树莓派 3或者正在纠结要不要买二手来玩这篇内容应该能帮你把它从“落灰神器”变成真正能跑项目的生产力工具。这篇文章不打算罗列官网上那些枯燥的参数表而是从一个实际用过、折腾过、踩过坑的人的角度讲清楚树莓派 3 的硬件底子、系统安装、基础配置、GPIO 控制和常见问题。无论你是刚接触树莓派的小白还是想拿它做点小项目的进阶玩家这都应该能给你省下不少时间。1. 树莓派 3 的核心价值为什么它现在依然值得用1.1 从硬件规格说起它到底是个什么水平树莓派 3 Model B 搭载的是博通 BCM2837 芯片四核 Cortex-A53 架构主频 1.2GHz。内存是 1GB LPDDR2。放进今天的手机市场你肯定觉得寒酸但在单板计算机SBC这个领域里这配置放到现在依然是“够用偏上”的存在。接口方面是它的强项4 个 USB 2.0 口、1 个 HDMI 输出、3.5mm 音频复合视频口、千兆以太网口实际走 USB 总线真实带宽约 300Mbps后面详细说、40 针 GPIO 排针、摄像头 CSI 接口和屏幕 DSI 接口。无线方面支持 2.4GHz WiFi 和蓝牙 4.1BLE。这里我多说一句选型感受。很多人纠结“我都花这个钱了为什么不买树莓派 4 或者 5”答案很现实树莓派 3 二手价格通常在 100 到 180 元左右而同样功能需求的场景下4B 至少要贵一倍多。如果你是做智能家居网关、NAS、网络广告屏这类负载不高的项目树莓派 3 完全扛得住省下的钱足够你再买一堆传感器了。1.2 生态系统这块板子最大的隐形资产树莓派系列最大的财富其实不是硬件本身而是沉淀了十多年的软件生态。Raspberry Pi OS原 Raspbian针对树莓派 3 做了专门的优化各种第三方系统镜像也是琳琅满目Lakka 游戏模拟机、Home Assistant 智能家居中心、OctoPrint 打印机服务器、Pi-hole 广告拦截器全部都有树莓派 3 对应版本。这块板子的另一个身份是“教育工具”。全球很多学校用它来教编程和物理计算。你要是零基础遇到问题搜一下基本都有答案。这一点很重要——新手和老手的差距很多时候就是靠“能查到的可靠资料”填平的。2. 入手后的第一步系统安装与基础配置全流程2.1 需要准备的东西开箱之后先别急着通电。树莓派 3 是没有板载存储的系统装在 microSD 卡里。一张 16GB 以上的 Class 10 存储卡是必备的推荐 SanDisk Extreme 系列读写速度稳定稳定性好别在这种地方省钱——我遇到过因为存储卡太劣质导致系统莫名其妙损坏的情况折腾一圈才发现是卡的问题非常浪费时间。电源方面也要注意。树莓派 3 推荐 5V/2.5A 的电源适配器。很多用户随便拿个手机充电头就插上去结果发现 WiFi 不稳定、USB 外设掉线甚至系统崩溃这就是供电不足的表现。我实测过用普通 5V/1A 充电头带树莓派 3 接一个 USB 移动硬盘系统直接卡死在启动界面。建议直接买官方电源某宝二十多块钱换来的是一年不出幺蛾子。另外还需要读卡器、HDMI 线配显示器、USB 键盘鼠标。如果你打算无头模式headless不接显示器操作那么还需要网线或者到时候想办法开启 SSH。2.2 镜像烧录别再手动解压写盘了最早玩树莓派还是用 Win32DiskImager 一步步烧录镜像现在早就有更省心的工具了。官方推荐的 Raspberry Pi Imager 自 2020 年后基本成了标准答案支持 Windows、macOS 和 Ubuntu操作简单从树莓派官网下载 Raspberry Pi Imager 并安装。准备一张 microSD 卡插入读卡器连电脑。打开 Imager选择操作系统——如果第一次玩直接选 Raspberry Pi OS32 位就可以注意选带 Desktop 的版本带图形界面如果是要做服务器选 Lite 版无桌面更节省资源。选择存储卡点击写入等待完成。有个细节值得注意最新版 Imager 在写入前会弹出一个齿轮图标设置选项你可以在烧录的同时直接配置好 SSH、WiFi、用户名密码不用再像以前那样烧完还要手动创建 ssh 文件和 wpa_supplicant.conf。这能省下不少步骤强烈推荐新手把这个偷懒机会用起来。2.3 开机引导和初次配置系统烧录完把卡插进树莓派 3 底部的卡槽里接上显示器、键鼠、网线最后再插电源。注意顺序——养成“先插所有线缆最后上电”的习惯。树莓派没有电源开关断电重来就是拔插头保护存储卡的最佳方式是先 shutdown 再断电这个后面也会提。第一次启动大概要等 40 秒左右你会看到 Raspberry Pi OS 的初始配置向导。主要设置项包括地区、语言、时区在中国的话选 Shanghai 时区就好键盘布局选 EnglishUS或者保持默认的 GB 也没有太大影响但如果你发现打不出 符号那就是键盘布局的问题。设置账号密码默认账号是 pi密码 raspberry强烈建议改成自己的密码。连接 WiFi树莓派 3 的 WiFi 是 2.4GHz 单频段连 5GHz 路由器的话是搜不到信号的不要怀疑是网卡坏了。软件更新向导会询问是否更新系统建议先跳过系统装完后再执行 sudo apt update sudo apt upgrade -y这样更可控。初次配置完成后Linux 树莓派就正式跑起来了。2.4 开启 SSH 实现无头管理树莓派的大量实用场景其实是没有显示器的——插个电、连个网然后躺沙发上用笔记本电脑 SSH 进去操作。这就是所谓的“无头模式”也是我个人的主力使用方式。如果你用 Imager 烧录时已经配置了 SSH直接跳过这一步。如果已经烧好系统了在 SD 卡根目录新建一个空文件命名为 ssh不带任何扩展名插回树莓派启动SSH 服务就会开启。然后需要知道树莓派的 IP 地址。最简单的办法是登录路由器后台看 DHCP 客户端列表找到树莓派对应的 IP。也可以手机装个 Fing 之类的工具扫一下。拿到 IP 后ssh pi192.168.x.x输入密码后就进去了。此时如果不方便插网线而且你烧录时也没配 WiFi那就得临时接上键盘显示器在图形界面里点 WiFi 图标连上无线网之后才能拔掉显示器纯 SSH 操作。无头模式下我会建议进一步做两件事设置静态 IP 或 DHCP 保留地址避免路由重启后树莓派 IP 变化导致 SSH 连不上。配置好密钥登录ssh-copy-id之后每次连接不用输密码安全又方便。这两点配合好树莓派就成一台真正意义上 7x24 小时跑着的“无头服务器”了。3. 核心玩法实操从 GPIO 点亮一颗 LED 到驱动传感器3.1 GPIO 引脚到底怎么用很多人买树莓派就是冲着这排针脚来的。GPIO 全称 General Purpose Input/Output也就是通用输入输出接口。树莓派 3 上的 40 针排针大概长这样包含电源引脚3.3V、5V、GND和可编程输入输出引脚。第一次上手建议先看一张引脚图。终端里执行pinout这个命令会直接打印出漂亮的引脚分布图哪个是 5V、哪个是 3.3V、哪个是 GND、哪个是 PWM一目了然。Raspberry Pi OS 默认自带这个工具非常方便。GPIO 的核心逻辑就是用 Python 控制某个引脚输出高电平3.3V或低电平0V或者读取某个引脚是高电平还是低电平。高和低对应数字电路里的 1 和 0整个世界就是靠这个撑起来的。3.2 从点亮 LED 开始用树莓派控制外部设备最常见的方式是通过面包板连接电路。下面是最基础的一个例子点亮一颗 LED。需要的元件面包板一块、5mm LED 一个、220Ω 电阻一个、公母跳线若干。电路连接方式GPIO 17物理引脚 11接到 LED 阳极长脚。LED 阴极短脚串联一个 220Ω 电阻。电阻另一端接面包板 GND 轨。树莓派任意 GND 引脚接到面包板 GND 轨。为什么要串电阻LED 正常工作电流大约 20mA直接接 3.3V 的话 LED 会被烧掉。串联电阻限流简单算一下R (3.3V - 2V) / 0.02A ≈ 65Ω使用常见的 220Ω 也能有效保护 LED。然后写 Python 代码import RPi.GPIO as GPIO import time LED_PIN 17 GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) try: while True: GPIO.output(LED_PIN, GPIO.HIGH) time.sleep(0.5) GPIO.output(LED_PIN, GPIO.LOW) time.sleep(0.5) finally: GPIO.cleanup()保存为 blink.py然后执行python3 blink.pyLED 应该以 0.5 秒的间隔闪烁了。这里有一个每个新手都会遇到的坑GPIO.setmode(GPIO.BCM) 和 GPIO.setmode(GPIO.BOARD) 有什么区别BCM 模式使用芯片上的引脚编号比如 GPIO17BOARD 模式使用排针物理位置编号物理引脚 11。我个人习惯用 BCM因为写代码的时候可以直接对应 pinout 显示的排列。只要别混用就行混用代码就会控制到错误的引脚。3.3 按键输入与软件防抖光输出还不够我们再来个输入场景接一个按键按下去时点亮 LED松开熄灭。元件在上一节基础上增加一个轻触按键连接如下按键一脚接 GPIO 2物理引脚 3。按键另一脚接 GND。使用内部上拉电阻模式代码中设置 GPIO.setup(2, GPIO.IN, pull_up_downGPIO.PUD_UP)。代码如下import RPi.GPIO as GPIO LED_PIN 17 BUTTON_PIN 2 GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_downGPIO.PUD_UP) try: while True: if GPIO.input(BUTTON_PIN) GPIO.LOW: GPIO.output(LED_PIN, GPIO.HIGH) else: GPIO.output(LED_PIN, GPIO.LOW) finally: GPIO.cleanup()这里解释一下“上拉电阻”由于 GPIO 引脚在悬空状态下电压不确定读到的电平可能随机跳变。设置 GPIO.PUD_UP 后引脚默认被拉到 3.3V高电平按键按下接地时变成低电平读取到 LOW 就是按下状态。实际按键过程中会遇到一个常见问题机械按键在物理接触的瞬间会因为金属弹片抖动产生多个高低电平跳变也就是“抖动”这会导致一次按压被程序误判成多次触发。解决办法是软件防抖简单做法是在检测到变化后延迟一小段时间再重新读取import time def read_button_debounced(): if GPIO.input(BUTTON_PIN) GPIO.LOW: time.sleep(0.05) if GPIO.input(BUTTON_PIN) GPIO.LOW: return True return False时间取 50ms 是比较通用的值。如果你想更彻底地防抖可以用中断方式加 threading 配合但先用延时解决 90% 的场景就够了。3.4 用 DHT11 读取温湿度树莓派玩物联网离不开传感器。DHT11 是一款入门级的数字温湿度传感器便宜、接线简单、资料多非常适合练手。接线方式DHT11 VCC 接 3.3V物理引脚 1。DHT11 GND 接 GND。DHT11 DATA 接 GPIO 4物理引脚 7。先安装 Adafruit 的 DHT 库pip3 install Adafruit_DHT然后写测程代码import Adafruit_DHT SENSOR Adafruit_DHT.DHT11 PIN 4 humidity, temperature Adafruit_DHT.read_retry(SENSOR, PIN) if humidity is not None and temperature is not None: print(f温度: {temperature:.1f}°C, 湿度: {humidity:.1f}%) else: print(读取失败请检查接线)DHT11 的采样频率比较低规范上要求两次读取间隔至少 1 秒你在循环里读它的话记得 time.sleep(2) 一下否则读出错误数据不要奇怪。DHT11 精度也只有 ±2°C 和 ±5%你要是做精密测量就别用它至少换成 DHT22 或 BME280贵不了几块钱但精度高一个数量级。这类数字传感器的数据手册上一般会写明时序要求实测下来的经验就是“照着官方例程来别自己发挥”。我见过太多所谓“传感器不好使”的案例最后查出来都是线接触不良或者供电电压不够。先确认供电再查信号线这是排查铁律。4. 树莓派 3 作为家庭服务器的实战配置4.1 系统精简与基础优化树莓派玩到后面很多人会把它长期跑着当服务器毕竟功耗才 5V/2.5A满打满算 12 瓦左右一个月电费不到五块钱比云服务器便宜太多了。但是默认的树莓派 OS 桌面版带了一堆图形组件对纯服务器用途来说都是负担。我的建议是如果你确定只做服务器用重装成 Raspberry Pi OS Lite无桌面版这样内存占用直接砍掉一半以上整体会更稳定。装完系统先进来更新一下sudo apt update sudo apt upgrade -y然后按自己的使用习惯装基础软件。我的标配是sudo apt install -y vim git curl wget htop tree如果内存不够用可以给系统加一个 swap 文件但注意树莓派 3 用的是 SD 卡swap 频繁读写会加速存储卡老化所以 swap 可以设但别设太大512MB 就够了。另外建议把系统日志写入改成“循环写入”或减小保留量减少 SD 卡写入次数sudo nano /etc/systemd/journald.conf找到 SystemMaxUse设置成 100M 后重启 journald 服务。这种小细节虽然不显眼但对存储卡的寿命有明显帮助。4.2 固定 IP 与远程访问服务器必须有固定的内网地址。两种方式路由器设置 DHCP 静态分配或者在树莓派里配置静态 IP。前者更简单可靠推荐优先用。如果要在树莓派里配置静态 IP编辑 /etc/dhcpcd.confsudo nano /etc/dhcpcd.conf在文件末尾加interface wlan0 static ip_address192.168.1.50/24 static routers192.168.1.1 static domain_name_servers192.168.1.1 223.5.5.5保存后重启 dhcpcdsudo systemctl restart dhcpcd然后验证网络是否正常。注意不要把 IP 跟路由器 DHCP 池重复否则会出现 IP 冲突表现为网络时通时断排查起来极其痛苦。外网远程访问方面不建议直接把端口映射到公网。基础的端口敲门、密钥认证这些安全措施要做足。如果想省事可以用 Tailscale 这类组网工具免费、跨平台、打洞成功率很高。把树莓派装好 Tailscale 后你在外面用手机或者笔记本也能直接 SSH 回家延迟还很低这个方案我实测很久配合树莓派 3 很稳定。4.3 搭建个人 NAS 网盘树莓派 3 的 USB 2.0 端口传输速度上限为 480Mbps实际受总线限制大约在 300Mbps 左右换算下来约 37MB/s。这个速度做普通家庭文件共享、备份、离线下载都够用但要拿它做视频剪辑素材盘那确实为难它了。我用树莓派 3 搭过基于 Samba 的简易 NAS效果相当不错。先把移动硬盘格式化为 ext4注意备份数据然后用命令挂载sudo mkdir /mnt/usbdata sudo mount /dev/sda1 /mnt/usbdata接着安装 Sambasudo apt install samba samba-common-bin修改配置文件 /etc/samba/smb.conf在末尾添加[share] path /mnt/usbdata browseable yes read only no valid users pi设置 Samba 用户密码并重启服务sudo smbpasswd -a pi sudo systemctl restart smbdWindows 文件管理器输入 \ip 就能访问了。有一个坑必须提醒移动硬盘的挂载不会自动恢复断电重启后得手动挂载。要解决这个问题在 /etc/fstab 里加一条记录/dev/sda1 /mnt/usbdata ext4 defaults,noatime 0 0加完之后执行 sudo mount -a 测试一下没报错就稳了。你可以再用 ncdu 之类的工具查看磁盘占用情况长期运行时注意留意硬盘温度。5. 树莓派 3 的常见问题与排查技巧实录5.1 WiFi 掉线问题树莓派 3 的 WiFi 掉线是论坛上的高频话题实际遇到的情况五花八门。最常见的是电源供电不足导致 WiFi 芯片电压不稳其次是系统电源管理默认开启了 WiFi 省电模式导致低功耗状态下连接中断。解决省电模式的问题修改配置文件sudo nano /etc/network/interfaces.d/wlan0加入wireless-power off如果是 NetworkManager 管理网络则用sudo iw dev wlan0 set power_save off验证是否生效iw dev wlan0 get power_save输出 Power save: off 就说明生效了。5.2 开机后找不到树莓派有时候上电后发现网络里扫不到树莓派第一反应不要慌从这两步入手检查电源指示灯是否稳定亮起。如果红灯闪烁或者干脆不亮大概率是供电问题或者存储卡系统损坏。拔卡插电脑上看 boot 分区是否有异常。如果 boot 分区文件受损系统是无法启动的。如果你接显示器启动但屏幕黑屏先把 HDMI 线拔了重插确认电视/显示器切换到正确信号源。树莓派 3 对某些老显示器存在握手问题临时解决方案是在 config.txt 里强制 HDMI 输出hdmi_force_hotplug1 hdmi_group2 hdmi_mode82这里的 82 代表 1080p 60Hz 输出。改完后重启基本能解决。5.3 系统卡死与安全关机树莓派跑久了之后可能会遇到系统卡死的问题原因多半是内存不足1GB 说实话偏小。解决办法是找到占用内存的大头比如关掉不需要的桌面服务、限制浏览器标签页数量、把 MySQL 换成 SQLite 等等。另一个必须养成的习惯不要直接拔电源。这会导致 SD 卡上的文件系统损坏轻则丢配置重则系统无法启动。正确的关机方式sudo shutdown -h now或者sudo halt等待电源指示灯变暗或者熄灭再拔电。如果系统已经卡死、SSH 都连不进去了可以按键盘上的 SysRq 组合键做安全重启但我更推荐接入一个带物理开关的智能插座这样远程也能完成断电重启当然前提是你的树莓派有独立电源开关控制。5.4 性能降级与散热树莓派 3 芯片在满负荷运行时温度可以到 80°C 以上温度过高会触发降频保护性能明显下跌。长期使用时建议至少加装散热片最好配一个带风扇的散热壳。实测下来裸板全核跑满温度约 82°C加散热片后降到 65°C再加主动风扇后稳定在 48°C 左右。别小看这几十度的差别温度每降低 10°C芯片寿命和稳定性都完全不同。你可以用 vcgencmd measure_temp 查看实时温度vcgencmd measure_temp如果温度常规状态下都超过 75°C那你真的需要考虑优化散热了。5.5 常见问题速查表问题现象可能原因快速排查方法完全无法启动电源功率不足 / SD 卡损坏换官方电源重刷系统WiFi 频繁掉线供电不足 / 省电模式检查电源禁用省电SSH 连不上SSH 未启用 / IP 变动确认 ssh 文件存在查路由表GPIO 无输出引脚编号模式混用检查 BCM/BOARD 一致性温度过高缺少散热加装散热片或风扇这块排查表是我从上百次“折腾”中总结出来的每一个都是实际上踩过或者帮别人解决过的。你按顺序排查大多数问题都能定位。6. 树莓派 3 的进阶项目思路与扩展建议6.1 智能家居中枢Home Assistant如果你对智能家居感兴趣树莓派 3 是个非常合适的中枢设备。Home Assistant 是开源智能家居平台系统要求不高树莓派 3 跑起来很流畅。它能接入小米、Yeelight、Sonoff、涂鸦等大量品牌设备还能通过 MQTT 协议和自制传感器联动。安装方式推荐直接用 Home Assistant OS 镜像用 Imager 烧录后会自动部署。部署完成后在浏览器打开 http://树莓派IP:8123 就能进入配置界面。整个过程大概 30 分钟比从零折腾干净很多非常适合我这种不太喜欢浪费时间在基础环境上的人。6.2 网络广告拦截Pi-hole树莓派 3 跑 Pi-hole 可以说是零压力。Pi-hole 能在 DNS 层面拦截广告和追踪域名整个家庭网络的广告数量会大幅减少。装上它之后最大的感受是手机 App 开屏广告少了、视频网站片头广告没了当然某些平台的特殊广告另说、网页加载速度也似乎变快了。安装命令一行curl -sSL https://install.pi-hole.net | bash安装完后把路由器的 DNS 改成树莓派 IP所有设备自动过一遍广告过滤。树莓派 3 处理这个绰绰有余CPU 占用常年低于 5%。6.3 复古游戏机RetroPie 或 Lakka把树莓派 3 改造成游戏机也是个经典玩法。RetroPie 和 Lakka 都支持树莓派 3可以模拟 FC、SFC、MD、PS1、GBA 等平台。树莓派 3 跑 16 位机游戏几乎完美PS1 游戏大部分可以流畅运行N64 则性能吃紧不建议尝试。外壳方面可以买个复古 FC 外壳加两个手柄插电视上就是一个迷你游戏机。需要注意的一点游戏 ROM 下载要自己准备树莓派学习套装里没有内置任何授权受限内容。6.4 自制网络监控与数据采集终端树莓派 3 的低功耗特性特别适合做 7x24 小时数据采集。比如接个 DHT11 记录温湿度、接个摄像头做环境监控、接一些传感器做家庭能耗分析。配合 InfluxDB 加 Grafana 做数据可视化能搭出一套完整的监控面板。我是把树莓派 3 放在阳台接了一堆传感器数据每 30 秒采集一次入库再通过 Grafana 画折线图。跑了半年多除了路由器重启导致断过两次网之外从没主动宕机过。这种长期运行项目树莓派 3 的稳定性和低功耗优势体现得淋漓尽致。6.5 与传统开发板的选择岔路口很多人搞不清树莓派和 Arduino、ESP32 的区别。简单来说树莓派是“迷你电脑”运行完整操作系统能跑 Python、Node.js、Docker 等Arduino 是“单片机”没有完整操作系统代码直接跑在裸金属上强调实时性和外设控制。ESP32 则介于两者之间有 WiFi 蓝牙但也是裸机编程为主。选型建议很直接项目需要网络、需要跑脚本、需要复杂逻辑选树莓派 3项目只是读取按钮、驱动电机、简单传感Arduino/ESP32 更合适。二者也可以结合用 ESP32 做硬件采集端树莓派 3 做数据汇总和控制中心各取所长。我自己的一个项目就是这么干的ESP32 挂在角落里读传感器数据通过 MQTT 推到树莓派 3 上的 Home Assistant树莓派再把数据同步到云端。整个链路功耗极低但能力却覆盖了本地采集、本地处理和远程访问三个层次。7. 写在折腾路上的几点心里话树莓派 3 陪我从一个只会照着教程敲命令的纯新手变成了能独立设计小系统的业余嵌入门。虽然它性能已经落后了但在某个抽屉角落它依然是我想快速验证一个想法时的首选。如果你手头有这块板子别让它吃灰。哪怕是先点亮一颗 LED或者搭一个 Pi-hole这一个小小的动作就能打开一个全新的世界。硬件这东西你越是动手折腾就越是能感受到它的乐趣。树莓派 3 可能不是最快的板子但绝对是最适合作为第一块板子的选择。希望这篇内容能帮你少走一些弯路把这些经验真正用到自己的项目里。
返回列表