硬件初始化与连接:树莓派系统烧录与SSH远程登录
好,咱们正式开始动手了。这一章要解决的是「硬件怎么跑起来」的问题。说白了,就是让树莓派和ESP32这两个核心设备先能正常工作,并且能跟你的电脑通信。我刚开始做远程监控项目时,光是在这步就卡了两天——后来发现是SD卡没格式化干净。嗯,咱们一步步来。
树莓派系统烧录:别小看这张SD卡
树莓派本身没有硬盘,系统装在MicroSD卡里。我个人习惯用官方工具 Raspberry Pi Imager,省心。
- 下载并安装 Raspberry Pi Imager
- 插入SD卡(建议16GB以上,Class 10速度)
- 选择操作系统:我推荐 Raspberry Pi OS Lite(无桌面版),省资源
- 点击右下角齿轮图标,提前配置:
主机名: raspberrypi.local
启用SSH: 是
用户名: pi
密码: 你自己设一个
WiFi配置: 填入你的2.4G WiFi名称和密码
点击「写入」,等几分钟就好。这里有个坑——我曾经用了一张旧卡,写入时总报错,换了张新卡立刻解决。SD卡寿命有限,别省这个钱。
SSH远程登录:终于不用接屏幕了
树莓派通电后,怎么操作?用SSH。你想想看,如果每次都要接HDMI显示器,那还叫什么远程监控?
确保你的电脑和树莓派在同一个WiFi下。然后打开终端(Windows用PowerShell或Putty):
ssh pi@raspberrypi.local
第一次连接会提示确认指纹,输入 yes,然后输入你设的密码。看到类似这样的界面就成功了:
pi@raspberrypi:~ $
ssh pi@192.168.x.x。我在项目中遇到过好几次mDNS解析失败的情况,直接输IP最稳。
ESP32固件烧录与WiFi配置
ESP32是咱们的传感器采集终端。它需要烧录一个固件,才能知道「我要连哪个WiFi、采集什么数据」。
我习惯用 Arduino IDE 来开发ESP32,当然你也可以用ESP-IDF。这里用Arduino IDE演示:
- 安装Arduino IDE,在「文件→首选项」中添加开发板管理器网址:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 在「工具→开发板→开发板管理器」中搜索ESP32并安装
- 选择开发板:
ESP32 Dev Module - 编写一个简单的WiFi连接程序:
#include <WiFi.h>
const char* ssid = "你的WiFi名称";
const char* password = "你的WiFi密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi连接成功");
Serial.print("IP地址: ");
Serial.println(WiFi.localIP());
}
void loop() {
// 暂时空着
}
- 按住ESP32开发板上的 BOOT 按钮,点击上传。看到「Connecting...」时松开BOOT
摄像头模块驱动安装与测试
树莓派支持两种摄像头:USB摄像头和CSI接口摄像头。我个人更推荐CSI摄像头,延迟低、画质好。
CSI摄像头
先确保排线插对了——金属触点朝向网口方向。然后:
sudo raspi-config
进入 Interface Options → Camera → Enable。重启后测试:
raspistill -o test.jpg
如果生成了test.jpg文件,说明摄像头工作正常。我在项目中遇到过排线松动导致画面花屏的情况,重新插紧就好了。
USB摄像头
插上USB摄像头后,先看看系统认不认:
lsusb
ls /dev/video*
如果看到 /dev/video0,说明识别了。用 fswebcam 测试:
sudo apt install fswebcam
fswebcam test_usb.jpg
温湿度传感器(DHT11/DHT22)接线与数据读取
DHT11和DHT22都是单总线协议,接线方式一样。区别在于精度:DHT11精度±2°C,DHT22精度±0.5°C。我一般直接上DHT22,差不了几块钱。
接线方式
| DHT引脚 | 树莓派/ESP32 |
|---|---|
| VCC(左1) | 3.3V |
| DATA(左2) | GPIO4(示例) |
| NC(左3) | 不接 |
| GND(左4) | GND |
注意:DATA引脚和VCC之间需要接一个 4.7kΩ上拉电阻。有些模块已经内置了,买的时候问清楚。
读取数据(树莓派Python示例)
import Adafruit_DHT
sensor = Adafruit_DHT.DHT22
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")
print(f"湿度: {humidity:.1f}%")
else:
print("读取失败,检查接线")
本章知识体系
下面这张图帮你理清整个硬件初始化的流程:
说白了,这一章就是让树莓派和ESP32「活过来」。树莓派负责跑服务、接摄像头;ESP32负责采集温湿度数据。两者通过WiFi通信。嗯,基础打牢了,后面搭建MQTT服务器、做数据可视化就顺了。
- 树莓派系统烧录时提前配置SSH和WiFi,省去接屏幕的麻烦
- ESP32上传固件记得按住BOOT键,选对COM口
- CSI摄像头比USB摄像头更适合实时监控
- DHT传感器必须用3.3V供电,加4.7kΩ上拉电阻
公众号:蓝海资料掘金营,微信deep3321