Cài đặt Raspberry Pi 5 cho người mới: Raspberry Pi OS, SSH, VNC, kiểm tra nguồn và nhiệt độ

Cách cài đặt Raspberry Pi 5 không cần màn hình: chọn nguồn 27 W, thẻ nhớ, tản nhiệt; ghi Raspberry Pi OS bằng Imager có Wi-Fi, SSH; đăng nhập SSH, cập nhật, bật VNC, kiểm tra get_throttled.

Raspberry Pi 5 là máy tính nhỏ chạy Linux, mạnh hơn Pi 4 khoảng hai đến ba lần, hợp làm máy chủ nhỏ trong nhà (MQTT, Home Assistant, cơ sở dữ liệu cảm biến), máy đọc dữ liệu từ ESP32, Arduino, hay máy học lập trình Python. Bài này hướng dẫn cài đặt Raspberry Pi 5 cho người mới theo cách không cần màn hình, bàn phím: chuẩn bị nguồn và thẻ nhớ đúng loại, ghi Raspberry Pi OS bằng Raspberry Pi Imager có cài sẵn Wi-Fi và SSH, đăng nhập SSH từ máy tính, cập nhật hệ thống, bật VNC hoặc Raspberry Pi Connect để xem desktop, và kiểm tra nguồn, nhiệt độ bằng vcgencmd.

1. Chuẩn bị phần cứng

Bảng chuẩn bị Raspberry Pi 5: nguồn USB-C PD 27 W 5,1 V 5 A, thẻ microSD 32 GB loại A2 hoặc SSD NVMe qua M.2 HAT+, tản nhiệt Active Cooler, cáp micro HDMI, Wi-Fi hoặc dây LAN
Nguồn đủ công suất là điều quan trọng nhất.
  • Nguồn 27 W: Pi 5 cần nguồn USB-C hỗ trợ 5,1 V 5 A. Với nguồn 3 A thông thường, Pi vẫn khởi động nhưng báo thiếu nguồn và giới hạn tổng dòng các cổng USB ở 600 mA: ổ cứng, camera USB hay chập chờn.
  • Thẻ nhớ: 32 GB trở lên, loại A2 cho tốc độ đọc ghi ngẫu nhiên tốt. Máy chạy suốt ngày đêm, ghi dữ liệu liên tục thì dùng SSD NVMe qua bo M.2 HAT+: nhanh và bền hơn thẻ nhớ nhiều.
  • Tản nhiệt: Pi 5 nóng khi chạy nặng; khi chạm giới hạn nhiệt, chip tự giảm xung nhịp. Active Cooler (quạt gắn trên chip) hoặc vỏ có quạt là đủ.

Chưa chắc nên chọn Raspberry Pi hay vi điều khiển cho dự án thì xem bài Arduino, ESP32, STM32 hay Raspberry Pi.

2. Ghi Raspberry Pi OS bằng Raspberry Pi Imager

Sơ đồ các bước cài Raspberry Pi 5: chuẩn bị, Raspberry Pi Imager, tùy chỉnh tên máy user Wi-Fi SSH, ghi thẻ cắm vào Pi, ssh user tenmay.local, apt update full-upgrade, bật VNC hoặc Raspberry Pi Connect
Cài không cần màn hình, bàn phím.
  1. Tải Raspberry Pi Imager từ trang chính thức raspberrypi.com, cài trên Windows, macOS hoặc Linux.
  2. Chọn thiết bị Raspberry Pi 5, hệ điều hành Raspberry Pi OS (64-bit) (bản Lite nếu chỉ dùng làm máy chủ, không cần desktop), chọn thẻ nhớ.
  3. Khi Imager hỏi có muốn tùy chỉnh cài đặt hệ điều hành không, chọn Edit settings và điền:
    • tên máy (hostname), ví dụ pyworld-pi;
    • tên người dùng và mật khẩu: Raspberry Pi OS không còn tài khoản mặc định pi / raspberry;
    • tên và mật khẩu Wi-Fi, quốc gia Wi-Fi VN;
    • múi giờ Asia/Ho_Chi_Minh;
    • tab Services: bật SSH, đăng nhập bằng mật khẩu (hoặc khóa công khai nếu đã quen).
  4. Ghi thẻ, cắm vào Pi, cấp nguồn. Lần đầu khởi động mất vài phút vì Pi tự mở rộng phân vùng và áp cài đặt.

3. Đăng nhập SSH và cập nhật

Trên Windows 10, 11 mở PowerShell (macOS, Linux mở Terminal):

ssh tenban@pyworld-pi.local
sudo apt update
sudo apt full-upgrade -y
sudo reboot
  • .local là tên máy được phân giải trong mạng nội bộ. Không được thì vào trang quản lý router tìm IP của Pi, dùng ssh tenban@192.168.1.x.
  • Lần đầu SSH hỏi có tin khóa máy chủ không: gõ yes.
  • sudo raspi-config mở công cụ cấu hình: bật giao tiếp I2C, SPI, cổng nối tiếp, VNC, đổi tên máy, mở rộng phân vùng.

4. Xem desktop: VNC hoặc Raspberry Pi Connect

Bảng ba cách điều khiển Raspberry Pi từ máy tính: SSH dòng lệnh, VNC màn hình desktop trong mạng nhà bật bằng raspi-config, Raspberry Pi Connect qua trình duyệt từ xa với rpi-connect và Raspberry Pi ID
SSH luôn nên bật; desktop chỉ khi cần.
  • VNC: sudo raspi-config → Interface Options → VNC → Yes. Raspberry Pi OS bản mới trên Pi 5 dùng giao diện Wayland và máy chủ WayVNC; trên máy tính dùng một VNC viewer bất kỳ, nhập tên máy hoặc IP.
  • Raspberry Pi Connect: dịch vụ của Raspberry Pi cho phép mở dòng lệnh và màn hình Pi trong trình duyệt, kể cả khi ở ngoài mạng nhà. Cài gói rpi-connect (bản Lite: rpi-connect-lite, chỉ có dòng lệnh) và đăng nhập bằng tài khoản Raspberry Pi ID.

5. Kiểm tra nguồn và nhiệt độ

vcgencmd measure_temp      # nhiệt độ chip, ví dụ temp=52.1'C
vcgencmd get_throttled     # 0x0 là chưa từng thiếu nguồn, quá nhiệt

Giá trị get_throttled là các cờ dạng bit. Script dưới đây đọc và giải nghĩa:

# PYWORLD.VN - Giải mã kết quả vcgencmd get_throttled của Raspberry Pi: thiếu điện áp, bị giảm xung nhịp, quá nhiệt
# PYWORLD.VN - Chạy trên Pi: python3 giai_ma_throttled.py; hoặc đưa giá trị đã đọc: python3 giai_ma_throttled.py 0x50005
# PYWORLD.VN - Bit 0–3: đang xảy ra; bit 16–19: đã từng xảy ra từ lúc khởi động
"""Mỗi bit của get_throttled là một cờ; 0x0 nghĩa là chưa từng có vấn đề nào từ lúc bật máy."""
from __future__ import annotations

import subprocess
import sys

CO = {
    0: "Dang thieu dien ap (nguon yeu, day USB-C kem)",
    1: "Dang bi gioi han xung nhip CPU",
    2: "Dang bi giam toc (throttled)",
    3: "Dang cham gioi han nhiet do mem",
    16: "Da tung thieu dien ap",
    17: "Da tung bi gioi han xung nhip",
    18: "Da tung bi giam toc",
    19: "Da tung cham gioi han nhiet do mem",
}


def doc_tren_pi() -> int:
    ra = subprocess.run(["vcgencmd", "get_throttled"], capture_output=True, text=True, check=True).stdout
    return int(ra.strip().split("=")[1], 16)              # dạng "throttled=0x50005"


def giai_ma(gia_tri: int) -> list[str]:
    return [mo_ta for bit, mo_ta in CO.items() if gia_tri >> bit & 1]


def main() -> None:
    gia_tri = int(sys.argv[1], 16) if len(sys.argv) > 1 else doc_tren_pi()
    co = giai_ma(gia_tri)
    print(f"throttled = 0x{gia_tri:X}")
    print("\n".join("  - " + c for c in co) if co else "  Khong co van de nao tu luc khoi dong")


if __name__ == "__main__":
    main()
Kết quả giải mã get_throttled cho ba giá trị: 0x0 không có vấn đề; 0x50005 đang và đã từng thiếu điện áp, bị giảm tốc; 0x80008 đang và đã từng chạm giới hạn nhiệt độ mềm
Ba giá trị mẫu, giải mã bằng script.

Thấy cờ thiếu điện áp (bit 0 hoặc 16): thay nguồn 27 W, dây USB-C ngắn, chất lượng tốt; tháo bớt thiết bị USB ăn dòng lớn. Thấy cờ nhiệt độ (bit 3 hoặc 19): lắp tản nhiệt có quạt, để vỏ thoáng.

6. Làm gì tiếp với Raspberry Pi

  • Làm máy chủ MQTT cho các mạch ESP32 (Mosquitto), lưu dữ liệu vào InfluxDB, vẽ bằng Grafana.
  • Cài Home Assistant để điều khiển thiết bị trong nhà: các bài ESP32 vào Home Assistant bằng MQTT discovery và ESPHome cho ESP32 dùng được với Home Assistant chạy trên Pi.
  • Điều khiển GPIO bằng Python, đọc cảm biến I2C trực tiếp trên Pi.

7. Lỗi hay gặp

Hiện tượngNguyên nhânCách xử lý
ssh: Could not resolve hostnameMáy tính không phân giải được tên .local, Pi chưa vào Wi-FiDùng IP từ router; kiểm tra tên, mật khẩu Wi-Fi trong Imager
Đèn xanh không nháy, Pi không khởi độngThẻ ghi lỗi, thẻ kém chất lượngGhi lại bằng Imager, đổi thẻ khác
Thông báo thiếu nguồn, USB chập chờnNguồn dưới 27 W, dây USB-C kémNguồn 5,1 V 5 A, dây ngắn
Đăng nhập bằng pi / raspberry không đượcKhông còn tài khoản mặc địnhDùng tên đã đặt trong Imager; quên thì ghi lại thẻ
VNC viewer báo không kết nối đượcChưa bật VNC, đang dùng bản LiteBật trong raspi-config; bản Lite không có desktop
Chạy chậm, nóngKhông tản nhiệt, bị giảm xung nhịpKiểm tra get_throttled, lắp quạt

Bài cùng cụm chủ đề: điều khiển GPIO Raspberry Pi bằng Python với gpiozero; Raspberry Pi làm MQTT broker Mosquitto; cài Home Assistant trên Raspberry Pi; Raspberry Pi Pico khác Raspberry Pi thế nào.


Tin tức liên quan

Pin LiPo cho flycam: 1S–6S, mAh, C, tính thời gian bay, sạc cân bằng và bảo quản an toàn
Pin LiPo cho flycam: 1S–6S, mAh, C, tính thời gian bay, sạc cân bằng và bảo quản an toàn

Pin LiPo cho flycam: ý nghĩa S, P, mAh, C, điện áp đầy và bảo quản, đường cong xả, cách tính thời gian bay, sạc cân bằng, dấu hiệu pin phồng và quy định mang pin khi đi máy bay.

Thực hành hiệu chuẩn load cell bằng quả cân với HX711 và ESP32: khớp đa thức và độ không đảm bảo
Thực hành hiệu chuẩn load cell bằng quả cân với HX711 và ESP32: khớp đa thức và độ không đảm bảo

Tự hiệu chuẩn load cell 5 kg bằng quả cân với HX711, ESP32: ghi điểm kèm độ lệch chuẩn, khớp đa thức bậc 1, bậc 2, lưu hệ số, kiểm tra lại và ước lượng độ không đảm bảo.

Liên kết chuẩn đo lường (traceability): chuỗi hiệu chuẩn từ đơn vị SI tới thiết bị hiện trường
Liên kết chuẩn đo lường (traceability): chuỗi hiệu chuẩn từ đơn vị SI tới thiết bị hiện trường

Liên kết chuẩn đo lường là gì: chuỗi hiệu chuẩn không đứt đoạn từ đơn vị SI, chuẩn quốc gia tới thiết bị hiện trường, CIPM MRA, ILAC MRA, VILAS, các trường hợp chuỗi bị đứt và cách kiểm tra.

Điện áp, dòng điện, điện trở và định luật Ohm: hiểu bằng ví dụ và đo bằng ESP32
Điện áp, dòng điện, điện trở và định luật Ohm: hiểu bằng ví dụ và đo bằng ESP32

Điện áp, dòng điện, điện trở là gì, đơn vị và tiền tố, định luật Ohm U = I × R với ví dụ, đường U–I của điện trở và LED, thí nghiệm kiểm chứng định luật Ohm bằng DAC và ADC của ESP32.

Arduino Pro Mini 3,3 V và 5 V: nạp code bằng USB-TTL FTDI, ngủ sâu, đo điện áp pin, chạy pin lâu
Arduino Pro Mini 3,3 V và 5 V: nạp code bằng USB-TTL FTDI, ngủ sâu, đo điện áp pin, chạy pin lâu

Arduino Pro Mini bản 3,3 V 8 MHz và 5 V 16 MHz: nạp code bằng USB-TTL FTDI có DTR, chương trình ngủ sâu bằng watchdog đo điện áp pin, bỏ đèn và ổn áp để chạy pin hàng năm.

Học lập trình có lợi gì cho trẻ? Lợi ích thật và những hiểu lầm thường gặp
Học lập trình có lợi gì cho trẻ? Lợi ích thật và những hiểu lầm thường gặp

Học lập trình có lợi gì cho trẻ: sáu lợi ích có cơ sở, nghiên cứu nói gì, sáu hiểu lầm thường gặp và cách phụ huynh nhìn ra tiến bộ thật của con qua năm bậc.

Dự án STEM cho trẻ mầm non theo chủ đề: cách xây dựng và 6 ý tưởng
Dự án STEM cho trẻ mầm non theo chủ đề: cách xây dựng và 6 ý tưởng

Cách xây dựng dự án STEM cho trẻ mầm non theo chủ đề với 5 bước hỏi, tưởng tượng, lên kế hoạch, làm thử, cải tiến; 6 ý tưởng giao thông, thực vật, nước, gia đình, động vật, Trung thu.

Hàn linh kiện dán SMD bằng tay: cỡ 0805, SOT-23, SOIC, dụng cụ, các bước và lỗi hay gặp
Hàn linh kiện dán SMD bằng tay: cỡ 0805, SOT-23, SOIC, dụng cụ, các bước và lỗi hay gặp

Các cỡ linh kiện dán 1206, 0805, 0603, 0402, SOT-23, SOIC; dụng cụ cần có; bốn bước hàn điện trở, tụ dán; hàn IC bằng kéo thiếc; nhận ra mối hàn tốt và cách sửa lỗi.


Bình luận
Đã thêm vào giỏ hàng